MCPcopy Create free account
hub / github.com/Singular/Singular / ssiWrite

Function ssiWrite

Singular/links/ssiLink.cc:1719–1871  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1717//**************************************************************************/
1718
1719BOOLEAN ssiWrite(si_link l, leftv data)
1720{
1721 if(SI_LINK_W_OPEN_P(l)==0)
1722 if (slOpen(l,SI_LINK_OPEN|SI_LINK_WRITE,NULL)) return TRUE;
1723 ssiInfo *d = (ssiInfo *)l->data;
1724 d->level++;
1725 //FILE *fich=d->f;
1726 while (data!=NULL)
1727 {
1728 int tt=data->Typ();
1729 void *dd=data->Data();
1730 attr *aa=data->Attribute();
1731 if ((aa!=NULL) && ((*aa)!=NULL)) // n user attributes
1732 {
1733 attr a=*aa;
1734 int n=0;
1735 while(a!=NULL) { n++; a=a->next;}
1736 fprintf(d->f_write,"21 %d %d ",data->flag,n);
1737 }
1738 else if (data->flag!=0) // only "flag" attributes
1739 {
1740 fprintf(d->f_write,"21 %d 0 ",data->flag);
1741 }
1742 if ((dd==NULL) && (data->name!=NULL) && (tt==0)) tt=DEF_CMD;
1743 // return pure undefined names as def
1744
1745 switch(tt /*data->Typ()*/)
1746 {
1747 case 0: /*error*/
1748 case NONE/* nothing*/:fputs("16 ",d->f_write);
1749 break;
1750 case STRING_CMD: fputs("2 ",d->f_write);
1751 ssiWriteString(d,(char *)dd);
1752 break;
1753 case INT_CMD: fputs("1 ",d->f_write);
1754 ssiWriteInt(d,(int)(long)dd);
1755 break;
1756 case BIGINT_CMD:fputs("4 ",d->f_write);
1757 ssiWriteBigInt(d,(number)dd);
1758 break;
1759 case NUMBER_CMD:
1760 if (d->r!=currRing)
1761 {
1762 fputs("15 ",d->f_write);
1763 ssiWriteRing(d,currRing);
1764 if (d->level<=1) fputc('\n',d->f_write);
1765 }
1766 fputs("3 ",d->f_write);
1767 ssiWriteNumber(d,(number)dd);
1768 break;
1769 case RING_CMD:fputs("5 ",d->f_write);
1770 ssiWriteRing(d,(ring)dd);
1771 break;
1772 case BUCKET_CMD:
1773 {
1774 sBucket_pt b=(sBucket_pt)dd;
1775 if (d->r!=sBucketGetRing(b))
1776 {

Callers 5

ssiWriteCommandFunction · 0.85
ssiWriteListFunction · 0.85
ssiOpenFunction · 0.85
ssiBatchFunction · 0.85
DumpSsiIdhdlFunction · 0.85

Calls 15

slOpenFunction · 0.85
ssiWriteStringFunction · 0.85
ssiWriteIntFunction · 0.85
ssiWriteBigIntFunction · 0.85
ssiWriteRingFunction · 0.85
ssiWriteNumberFunction · 0.85
sBucketGetRingFunction · 0.85
ssiWritePolyFunction · 0.85
sBucketPeekFunction · 0.85
ssiWriteIdealFunction · 0.85
ssiWriteCommandFunction · 0.85
ssiWriteProcFunction · 0.85

Tested by

no test coverage detected