Changeset 4b2155 in git for Singular/subexpr.cc
- Timestamp:
- Apr 16, 1999, 9:53:44 AM (25 years ago)
- Branches:
- (u'spielwiese', 'e7cc1ebecb61be8b9ca6c18016352af89940b21a')
- Children:
- 0df02761ea5104747ff923eee578ddb4d27f4a45
- Parents:
- 04d56fffcf5bd9bd7b214fdec1609e8a293fd986
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/subexpr.cc
r04d56f r4b2155 638 638 } 639 639 640 char * sleftv::String(void *d )640 char * sleftv::String(void *d, BOOLEAN func) 641 641 { 642 642 #ifdef SIQ … … 658 658 { 659 659 /* create a string, which may be freed by FreeL 660 * leave the switch with return661 * or with break, which copies the string s*/660 * leave the switch with return 661 * or with break, which copies the string s*/ 662 662 char *s; 663 663 const char *n; … … 666 666 switch (Typ()) 667 667 { 668 case INT_CMD: 669 s=(char *)AllocL(MAX_INT_LEN+2); 670 sprintf(s,"%d",(int)d); 671 return s; 672 case STRING_CMD: 673 return (char *)CopyD(STRING_CMD); 674 case POLY_CMD: 675 case VECTOR_CMD: 676 s = pString((poly)d); 677 break; 678 case NUMBER_CMD: 679 StringSetS(""); 680 if ((rtyp==IDHDL)&&(IDTYP((idhdl)data)==NUMBER_CMD)) 681 { 682 nWrite(IDNUMBER((idhdl)data)); 683 } 684 else if (rtyp==NUMBER_CMD) 685 { 686 number n=(number)data; 687 nWrite(n); 688 data=(char *)n; 689 } 690 else if((rtyp==VMINPOLY)&&(rField_is_GF())) 691 { 692 nfShowMipo(); 693 } 694 else 695 { 696 number n=nCopy((number)d); 697 nWrite(n); 698 nDelete(&n); 699 } 700 s = StringAppend(""); 701 break; 702 case MATRIX_CMD: 703 s= iiStringMatrix((matrix)d,2); 704 break; 705 case MODUL_CMD: 706 case IDEAL_CMD: 707 case MAP_CMD: 708 s= iiStringMatrix((matrix)d,1); 709 break; 710 case INTVEC_CMD: 711 case INTMAT_CMD: 712 { 713 intvec *v=(intvec *)d; 714 return v->String(); 715 } 716 case RING_CMD: 717 case QRING_CMD: 718 { 719 return rString((ring)d); 720 } 668 case INT_CMD: 669 s=(char *)AllocL(MAX_INT_LEN+2); 670 sprintf(s,"%d",(int)d); 671 return s; 672 case STRING_CMD: 673 if (d != NULL) return mstrdup((char*)d); 674 return mstrdup(""); 675 case POLY_CMD: 676 case VECTOR_CMD: 677 s = pString((poly)d); 678 break; 679 case NUMBER_CMD: 680 StringSetS(""); 681 if ((rtyp==IDHDL)&&(IDTYP((idhdl)data)==NUMBER_CMD)) 682 { 683 nWrite(IDNUMBER((idhdl)data)); 684 } 685 else if (rtyp==NUMBER_CMD) 686 { 687 number n=(number)data; 688 nWrite(n); 689 data=(char *)n; 690 } 691 else if((rtyp==VMINPOLY)&&(rField_is_GF())) 692 { 693 nfShowMipo(); 694 } 695 else 696 { 697 number n=nCopy((number)d); 698 nWrite(n); 699 nDelete(&n); 700 } 701 s = StringAppend(""); 702 break; 703 case MATRIX_CMD: 704 s= iiStringMatrix((matrix)d,1); 705 break; 706 case MODUL_CMD: 707 case IDEAL_CMD: 708 case MAP_CMD: 709 s= iiStringMatrix((matrix)d,1); 710 break; 711 case INTVEC_CMD: 712 case INTMAT_CMD: 713 { 714 intvec *v=(intvec *)d; 715 return v->String(1); 716 } 717 case RING_CMD: 718 { 719 return rString((ring)d); 720 } 721 case QRING_CMD: 722 { 723 char* r = rString((ring)d); 724 char* i = iiStringMatrix((matrix) ((ring) d)->qideal, 1); 725 s = (char*) AllocL(strlen(r) + strlen(i) + 4); 726 sprintf(s, "%s,(%s)", r, i); 727 FreeL(r); 728 return s; 729 } 730 731 case RESOLUTION_CMD: 732 { 733 lists l = syConvRes((syStrategy)d); 734 s = lString(l); 735 l->Clean(); 736 return (s); 737 } 738 case PROC_CMD: 739 { 740 procinfo* pi = (procinfo*) d; 741 if((pi->language == LANG_SINGULAR) && (pi->data.s.body!=NULL)) 742 return mstrdup(pi->data.s.body); 743 else 744 return mstrdup(""); 745 } 746 721 747 case LINK_CMD: 722 748 { 723 749 return slString((si_link) d); 724 750 } 751 case DEF_CMD: 752 { 753 return mstrdup(""); 754 } 725 755 726 default: 727 #ifdef TEST 728 ::Print("String:unknown type %s(%d)", Tok2Cmdname(Typ()),Typ()); 729 #endif 730 return NULL; 756 case LIST_CMD: 757 { 758 return lString((lists) d); 759 } 760 default: 761 #ifdef TEST 762 ::Print("String:unknown type %s(%d)", Tok2Cmdname(Typ()),Typ()); 763 #endif 764 return mstrdup(""); 731 765 } /* end switch: (Typ()) */ 732 766 return mstrdup(s); 733 767 } 734 return NULL;768 return mstrdup(""); 735 769 } 736 770
Note: See TracChangeset
for help on using the changeset viewer.