Changeset a79a128 in git


Ignore:
Timestamp:
Apr 17, 1999, 4:58:54 PM (24 years ago)
Author:
Olaf Bachmann <obachman@…>
Branches:
(u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
Children:
a30caa3e79912e5d42b9d62c6d2e1aa1239e5486
Parents:
b45d9738be1be20b4a90b80e61feae602bc1558d
Message:
* use vsnprintf, instead of vsprintf, when possible
* new string and print implementation
* small bug fixes in iparith.cc


git-svn-id: file:///usr/local/Singular/svn/trunk@2990 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • Singular/clapsing.cc

    rb45d97 ra79a128  
    33*  Computer Algebra System SINGULAR     *
    44****************************************/
    5 // $Id: clapsing.cc,v 1.49 1999-04-17 12:30:16 Singular Exp $
     5// $Id: clapsing.cc,v 1.50 1999-04-17 14:58:38 obachman Exp $
    66/*
    77* ABSTRACT: interface between Singular and factory
     
    609609        //#ifdef LDEBUG
    610610        //number cn=(number)c;
    611         //StringSet(""); nWrite(nt); StringAppendS(" ==> ");
    612         //nWrite(cn);PrintS(StringAppendS("\n"));
     611        //StringSetS(""); nWrite(nt); StringAppend(" ==> ");
     612        //nWrite(cn);PrintS(StringAppend("\n"));
    613613        //#endif
    614614      }
     
    917917  List<int> IL=neworderint(L);
    918918  ListIterator<int> Li;
    919   StringSet("");
     919  StringSetS("");
    920920  Li = IL;
    921921  int offs=rPar(currRing);
  • Singular/configure

    rb45d97 ra79a128  
    28232823fi
    28242824
    2825 for ac_func in gettimeofday atexit bcopy getcwd getwd sbrk readlink sleep usleep valloc getpagesize
     2825for ac_func in gettimeofday atexit bcopy getcwd getwd vsnprintf sbrk readlink sleep usleep valloc getpagesize
    28262826do
    28272827echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
  • Singular/configure.in

    rb45d97 ra79a128  
    312312AC_TYPE_SIGNAL
    313313AC_FUNC_VPRINTF
    314 AC_CHECK_FUNCS(gettimeofday atexit bcopy getcwd getwd sbrk readlink sleep usleep valloc getpagesize)
     314AC_CHECK_FUNCS(gettimeofday atexit bcopy getcwd getwd vsnprintf sbrk readlink sleep usleep valloc getpagesize)
    315315
    316316dnl llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
  • Singular/febase.cc

    rb45d97 ra79a128  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: febase.cc,v 1.70 1998-12-02 13:57:25 obachman Exp $ */
     4/* $Id: febase.cc,v 1.71 1999-04-17 14:58:45 obachman Exp $ */
    55/*
    66* ABSTRACT: i/o system
     
    778778  va_list ap;
    779779  char *s = feBufferStart; /*feBuffer + strlen(feBuffer);*/
    780   int more;
     780  int more, vs;
    781781  va_start(ap, fmt);
    782782  if ((more=feBufferStart-feBuffer+strlen(fmt)+100)>feBufferLength)
     
    797797  feBufferStart =s;
    798798#else
     799#ifdef HAVE_VSNPRINTF
     800  vs = vsnprintf(s, feBufferLength - (feBufferStart - feBuffer), fmt, ap);
     801  if (vs == -1)
     802  {
     803    assume(0);
     804    feBufferStart = feBuffer + feBufferLength -1;
     805  }
     806  else
     807  {
     808    feBufferStart += vs;
     809  }
     810#else
    799811  feBufferStart += vsprintf(s, fmt, ap);
    800812#endif
     813#endif
     814  mmTest(feBuffer, feBufferLength);
    801815  va_end(ap);
    802816  return feBuffer;
     
    818832  strcat(feBufferStart, st);
    819833  feBufferStart +=l;
    820   return feBuffer;
    821 }
    822 
    823 char * StringSet(char *fmt, ...)
    824 {
    825   va_list ap;
    826   char *s = feBuffer;
    827   va_start(ap, fmt);
    828 #ifdef BSD_SPRINTF
    829   vsprintf(s, fmt, ap);
    830   while (*s!='\0') s++;
    831   feBufferStart = s;
    832 #else
    833   feBufferStart = feBuffer + vsprintf(s, fmt, ap);
    834 #endif
    835   va_end(ap);
    836834  return feBuffer;
    837835}
     
    10041002#endif
    10051003
     1004// some routines which redirect the output of print to a string
     1005static char* sprint = NULL;
     1006void SPrintStart()
     1007{
     1008  sprint = mstrdup("");
     1009}
     1010
     1011static void SPrintS(char* s)
     1012{
     1013  if (s == NULL) return;
     1014  int ls = strlen(s);
     1015  if (ls == 0) return;
     1016 
     1017  char* ns;
     1018  int l = strlen(sprint);
     1019  ns = (char*) AllocL((l + ls + 1)*sizeof(char));
     1020  if (l > 0) strcpy(ns, sprint);
     1021 
     1022  strcpy(&(ns[l]), s);
     1023  FreeL(sprint);
     1024  sprint = ns;
     1025}
     1026
     1027char* SPrintEnd()
     1028{
     1029  char* ns = sprint;
     1030  sprint = NULL;
     1031  return ns;
     1032}
     1033
     1034// Print routines
    10061035extern "C" {
    10071036void PrintS(char *s)
    10081037{
     1038  if (sprint != NULL)
     1039  {
     1040    SPrintS(s);
     1041    return;
     1042  }
     1043 
    10091044  if (feOut) /* do not print when option --no-out was given */
    10101045  {
     
    10431078void Print(char *fmt, ...)
    10441079{
     1080  if (sprint != NULL)
     1081  {
     1082    int ls = strlen(fmt);
     1083    va_list ap;
     1084    va_start(ap, fmt);
     1085    if (fmt != NULL && ls > 0)
     1086    {
     1087      char* ns;
     1088      int l = strlen(sprint);
     1089      ns = (char*) AllocL(sizeof(char)*(ls + l + 256));
     1090      if (l > 0)  strcpy(ns, sprint);
     1091               
     1092#ifdef HAVE_VSNPRINTF
     1093      l = vsnprintf(&(ns[l]), ls+255, fmt, ap);
     1094      assume(l != -1);
     1095#else
     1096      vsprintf(&(ns[l]), fmt, ap);
     1097#endif
     1098      mmTestL(ns);
     1099      FreeL(sprint);
     1100      sprint = ns;
     1101    }
     1102    va_end(ap);
     1103    return;
     1104  }
    10451105  if (feOut)
    10461106  {
  • Singular/febase.h

    rb45d97 ra79a128  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: febase.h,v 1.27 1999-03-16 15:33:05 Singular Exp $ */
     6/* $Id: febase.h,v 1.28 1999-04-17 14:58:46 obachman Exp $ */
    77/*
    88* ABSTRACT: basic i/o
     
    124124char *  StringAppend(char *fmt, ...);
    125125char *  StringAppendS(char *s);
    126 char *  StringSet(char *fmt, ...);
    127126char *  StringSetS(char* s);
    128127const  char * VoiceName();
     
    193192#endif
    194193#endif
     194
     195/* everything in between calls to these procedures is printed into a string
     196 * which is returned by SprintEnd()
     197 */
     198void SPrintStart();
     199char* SPrintEnd();
  • Singular/iparith.cc

    rb45d97 ra79a128  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: iparith.cc,v 1.142 1999-04-16 07:53:37 obachman Exp $ */
     4/* $Id: iparith.cc,v 1.143 1999-04-17 14:58:47 obachman Exp $ */
    55
    66/*
     
    22142214,{jjPARSTR2,   PARSTR_CMD,     STRING_CMD,     RING_CMD,   INT_CMD PROFILER}
    22152215,{jjPARSTR2,   PARSTR_CMD,     STRING_CMD,     QRING_CMD,  INT_CMD PROFILER}
    2216 ,{jjPRINT_FORMAT, PRINT_CMD,   NONE,           DEF_CMD,    STRING_CMD PROFILER}
     2216,{jjPRINT_FORMAT, PRINT_CMD,   ANY_TYPE,       DEF_CMD,    STRING_CMD PROFILER}
    22172217,{jjQUOT,      QUOTIENT_CMD,   IDEAL_CMD,      IDEAL_CMD,  IDEAL_CMD PROFILER}
    22182218,{jjQUOT,      QUOTIENT_CMD,   MODUL_CMD,      MODUL_CMD,  IDEAL_CMD PROFILER}
     
    34693469,{jjLEADMONOM,  LEADMONOM_CMD,   VECTOR_CMD,     VECTOR_CMD }
    34703470,{jjLIB,        LIB_CMD,         NONE,           STRING_CMD }
     3471,{jjDUMMY,      LINK_CMD,        LINK_CMD,       LINK_CMD}
    34713472,{jjCALL1MANY,  LIST_CMD,        LIST_CMD,       DEF_CMD }
    34723473,{jjWRONG,      MAP_CMD,         0,              ANY_TYPE}
     
    35053506,{jjDUMMY,      POLY_CMD,        POLY_CMD,       POLY_CMD }
    35063507,{jjPRIME,      PRIME_CMD,       INT_CMD,        INT_CMD }
    3507 ,{jjPRINT_GEN,  PRINT_CMD,       NONE,           INT_CMD }
    3508 ,{jjPRINT_INTVEC,PRINT_CMD,      NONE,           INTVEC_CMD }
    3509 ,{jjPRINT_INTMAT,PRINT_CMD,      NONE,           INTMAT_CMD }
    3510 ,{jjPRINT_GEN,  PRINT_CMD,       NONE,           STRING_CMD }
    3511 ,{jjPRINT_GEN,  PRINT_CMD,       NONE,           POLY_CMD }
    3512 ,{jjPRINT_V,    PRINT_CMD,       NONE,           VECTOR_CMD }
    3513 ,{jjPRINT_GEN,  PRINT_CMD,       NONE,           IDEAL_CMD }
    3514 ,{jjPRINT_MA,   PRINT_CMD,       NONE,           MATRIX_CMD }
    3515 ,{jjPRINT_LIST, PRINT_CMD,       NONE,           LIST_CMD }
    3516 ,{jjPRINT_GEN,  PRINT_CMD,       NONE,           RESOLUTION_CMD }
     3508,{jjPRINT,      PRINT_CMD,       NONE,           LIST_CMD}
     3509,{jjPRINT,      PRINT_CMD,       NONE,           DEF_CMD}
    35173510,{jjidMinEmbedding, PRUNE_CMD,   XS(MODUL_CMD),  MODUL_CMD }
    35183511,{kQHWeight,    QHWEIGHT_CMD,    INTVEC_CMD,     IDEAL_CMD }
     
    35243517,{jjL2R,        RESOLUTION_CMD,  RESOLUTION_CMD, LIST_CMD }
    35253518,{jjDUMMY,      RESOLUTION_CMD,  RESOLUTION_CMD, RESOLUTION_CMD }
     3519,{jjDUMMY,      RING_CMD,        RING_CMD,       RING_CMD}
    35263520,{jjWRONG,      ROWS_CMD,        0,              POLY_CMD }
    35273521,{jjpMaxComp,   ROWS_CMD,        XS(INT_CMD),    VECTOR_CMD }
     
    53185312    iiOp=op;
    53195313    int i=iiTabIndex(dArithTab1,JJTAB1LEN,op);
     5314    int ti = i;
    53205315    while (dArith1[i].cmd==op)
    53215316    {
     
    53515346      int ai;
    53525347      leftv an = (leftv)Alloc0(sizeof(sleftv));
    5353       i=iiTabIndex(dArithTab1,JJTAB1LEN,op);
     5348      i=ti;
    53545349      //Print("fuer %c , typ: %s\n",op,Tok2Cmdname(at));
    53555350      while (dArith1[i].cmd==op)
     
    53855380          else
    53865381          {
     5382            if (an->Next() != NULL)
     5383            {
     5384              res->next = (leftv)Alloc(sizeof(sleftv));
     5385              failed=iiExprArith1(res->next,an->next,op);
     5386            }
    53875387            // everything ok, clean up and return
    53885388            an->CleanUp();
    53895389            Free((ADDRESS)an,sizeof(sleftv));
    53905390            a->CleanUp();
    5391             return FALSE;
     5391            return failed;
    53925392          }
    53935393        }
     
    54065406      else
    54075407      {
    5408         i=iiTabIndex(dArithTab1,JJTAB1LEN,op);
     5408        i=ti;
    54095409        char *s = iiTwoOps(op);
    54105410        Werror("%s(`%s`) is not supported"
     
    58015801  int e=len;
    58025802  int p=len/2;
    5803   while ( a!=e)
     5803  do
    58045804  {
    58055805     if (op==dArithTab[p].cmd) return dArithTab[p].start;
    5806      else if (op<dArithTab[p].cmd)
    5807      { e=p; p=a+(e-a)/2;}
    5808      else
    5809      { a=p; p=p+(e-p)/2; }
    5810   }
    5811 #endif
     5806     if (op<dArithTab[p].cmd) e=p-1;
     5807     else   a = p+1;
     5808     p=a+(e-a)/2;
     5809  }
     5810  while ( a <= e);
     5811
     5812#endif
     5813  assume(0);
    58125814  return -1;
    58135815}
  • Singular/ipprint.cc

    rb45d97 ra79a128  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipprint.cc,v 1.9 1999-04-17 12:30:18 Singular Exp $ */
     4/* $Id: ipprint.cc,v 1.10 1999-04-17 14:58:49 obachman Exp $ */
    55/*
    66* ABSTRACT: interpreter: printing
     
    1818#include "ipshell.h"
    1919#include "ipprint.h"
     20#include "ideals.h"
    2021
    2122/*2
    2223* print for: int, string, poly, vector, ideal
    2324*/
    24 BOOLEAN jjPRINT_GEN(leftv res, leftv u)
    25 {
    26   char *s=u->String();
    27   if (s==NULL) return TRUE;
    28   PrintS(s);
    29   PrintLn();
    30   FreeL((ADDRESS)s);
    31   return FALSE;
    32 }
    33 
    34 /*2
    35 * print for: list
    36 */
    37 BOOLEAN jjPRINT_LIST(leftv res, leftv u)
    38 {
    39   u->Print();
    40   return FALSE;
    41 }
    42 
    4325/*2
    4426* print for: intvec
    4527*/
    46 BOOLEAN jjPRINT_INTVEC(leftv res, leftv u)
     28static BOOLEAN ipPrint_INTVEC(leftv u)
    4729{
    4830  intvec *v=(intvec *)u->Data();
     
    5537* print for: intmat
    5638*/
    57 BOOLEAN jjPRINT_INTMAT(leftv res, leftv u)
     39static BOOLEAN ipPrint_INTMAT(leftv u)
    5840{
    5941  intvec *v=(intvec *)u->Data();
     
    7355* internal print for: matrix
    7456*/
    75 void jjPRINT_MA0(matrix m, const char *name)
     57static void ipPrint_MA0(matrix m, const char *name)
    7658{
    7759  if (MATCOLS(m)>0)
     
    196178* print for: matrix
    197179*/
    198 BOOLEAN jjPRINT_MA(leftv res, leftv u)
     180static BOOLEAN ipPrint_MA(leftv u)
    199181{
    200182  matrix m=(matrix)u->Data();
    201   jjPRINT_MA0(m,u->Fullname());
     183  ipPrint_MA0(m,u->Fullname());
    202184  return FALSE;
    203185}
     
    206188* print for: vector
    207189*/
    208 BOOLEAN jjPRINT_V(leftv res, leftv u)
     190static BOOLEAN ipPrint_V(leftv u)
    209191{
    210192  polyset m=NULL;
     
    232214}
    233215
     216BOOLEAN jjPRINT(leftv res, leftv u)
     217{
     218  switch(u->Typ())
     219  {
     220      case INTVEC_CMD:
     221        return ipPrint_INTVEC(u);
     222       
     223      case INTMAT_CMD:
     224        return ipPrint_INTMAT(u);
     225       
     226      case MATRIX_CMD:
     227        return ipPrint_MA(u);
     228
     229      case IDEAL_CMD:
     230      {
     231        char* s = u->String();
     232        PrintS(s);
     233        PrintLn();
     234        FreeL(s);
     235        return FALSE;
     236      }
     237     
     238      case MODUL_CMD:
     239      {
     240        matrix m = idModule2Matrix(idCopy((ideal) u->Data()));
     241        ipPrint_MA0(m, u->Fullname());
     242        idDelete((ideal *) &m);
     243        return FALSE;
     244      }
     245     
     246      case VECTOR_CMD:
     247        return ipPrint_V(u);
     248       
     249      default:
     250        u->Print();
     251        return FALSE;
     252  }
     253}
     254
     255
    234256/*2
    235257* dbprint
     
    252274      hh=h->next;
    253275      h->next=NULL;
    254       if (iiExprArith1(res,h,PRINT_CMD)) return TRUE;
     276      if (jjPRINT(res, h)) return TRUE;
    255277      h->next=hh;
    256278      h=hh;
     
    260282}
    261283
     284static void ipPrintBetti(leftv u)
     285{
     286  int i,j;
     287  intvec * betti=(intvec *)u->Data();
     288  // head line --------------------------------------------------------
     289  PrintS("      "); // 6 spaces for no. and :
     290  for(j=0;j<betti->cols();j++) Print(" %5d",j); // 6 spaces pro column
     291  PrintS("\n------"); // 6 spaces for no. and :
     292  for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column
     293  PrintLn();
     294  // the table --------------------------------------------------------
     295  for(i=0;i<betti->rows();i++)
     296  {
     297    Print("%5d:",i);
     298    for(j=1;j<=betti->cols();j++)
     299    {
     300      Print(" %5d",IMATELEM(*betti,i+1,j));
     301    }
     302    PrintLn();
     303  }
     304  // sum --------------------------------------------------------------
     305  PrintS("------"); // 6 spaces for no. and :
     306  for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column
     307  PrintS("\ntotal:");
     308  for(j=0;j<betti->cols();j++)
     309  {
     310    int s=0;
     311    for(i=0;i<betti->rows();i++)
     312    {
     313      s+=IMATELEM(*betti,i+1,j+1);
     314    }
     315    Print(" %5d",s); // 6 spaces pro column
     316  }
     317  PrintLn();
     318}
     319
     320
    262321/*2
    263322* print(...,"format")
     
    268327  if ((u->Typ()==INTMAT_CMD)&&(strcmp((char *)v->Data(),"betti")==0))
    269328  {
    270     int i,j;
    271     intvec * betti=(intvec *)u->Data();
    272     // head line --------------------------------------------------------
    273     PrintS("      "); // 6 spaces for no. and :
    274     for(j=0;j<betti->cols();j++) Print(" %5d",j); // 6 spaces pro column
    275     PrintS("\n------"); // 6 spaces for no. and :
    276     for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column
    277     PrintLn();
    278     // the table --------------------------------------------------------
    279     for(i=0;i<betti->rows();i++)
    280     {
    281       Print("%5d:",i);
    282       for(j=1;j<=betti->cols();j++)
    283       {
    284         Print(" %5d",IMATELEM(*betti,i+1,j));
    285       }
    286       PrintLn();
    287     }
    288     // sum --------------------------------------------------------------
    289     PrintS("------"); // 6 spaces for no. and :
    290     for(j=0;j<betti->cols();j++) PrintS("------"); // 6 spaces pro column
    291     PrintS("\ntotal:");
    292     for(j=0;j<betti->cols();j++)
    293     {
    294       int s=0;
    295       for(i=0;i<betti->rows();i++)
    296       {
    297         s+=IMATELEM(*betti,i+1,j+1);
    298       }
    299       Print(" %5d",s); // 6 spaces pro column
    300     }
    301     PrintLn();
     329    ipPrintBetti(u);
     330    res->data = NULL;
     331    res->rtyp = NONE;
    302332    return FALSE;
    303333  }
    304334/* ======================== end betti ================================= */
    305335
    306   return jjPRINT_GEN(res,u);
    307 }
     336  if (strcmp((char *)v->Data(),"%s") == 0)
     337  {
     338    res->data = (char*) u->String();
     339  }
     340  else if (strcmp((char *)v->Data(),"%;") == 0)
     341  {
     342    SPrintStart();
     343    u->Print();
     344    res->data = SPrintEnd();
     345  }
     346  else if  (strcmp((char *)v->Data(),"%p") == 0)
     347  {
     348    SPrintStart();
     349    iiExprArith1(res, u, PRINT_CMD);
     350    res->data = SPrintEnd();
     351  }
     352  else if (strcmp((char *)v->Data(),"%b") == 0 && (u->Typ()==INTMAT_CMD))
     353  {
     354    SPrintStart();
     355    ipPrintBetti(u);
     356    res->data = SPrintEnd();
     357  }
     358  else
     359  {
     360    res->data = u->String();
     361  }
     362   
     363  res->rtyp = STRING_CMD;
     364  return FALSE;
     365}
     366
     367
     368
     369
     370
     371
     372
     373
     374
     375
     376
     377
     378
     379
  • Singular/ipprint.h

    rb45d97 ra79a128  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: ipprint.h,v 1.3 1997-04-09 12:19:50 Singular Exp $ */
     6/* $Id: ipprint.h,v 1.4 1999-04-17 14:58:50 obachman Exp $ */
    77/*
    88* ABSTRACT: interpreter: printing
     
    1010#include "structs.h"
    1111
    12 BOOLEAN jjPRINT_GEN(leftv res, leftv u);
    13 BOOLEAN jjPRINT_INTVEC(leftv res, leftv u);
    14 BOOLEAN jjPRINT_INTMAT(leftv res, leftv u);
    15 BOOLEAN jjPRINT_MA(leftv res, leftv u);
    16 void    jjPRINT_MA0(matrix m, const char *name);
    17 BOOLEAN jjPRINT_V(leftv res, leftv u);
    18 BOOLEAN jjPRINT_LIST(leftv res, leftv u);
     12BOOLEAN jjPRINT(leftv res, leftv u);
     13BOOLEAN jjPRINT_FORMAT(leftv res, leftv u, leftv v);
    1914BOOLEAN jjDBPRINT(leftv res, leftv u);
    20 BOOLEAN jjPRINT_FORMAT(leftv res, leftv u, leftv v);
    2115#endif
    2216
  • Singular/ipshell.cc

    rb45d97 ra79a128  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipshell.cc,v 1.40 1999-04-17 12:30:18 Singular Exp $ */
     4/* $Id: ipshell.cc,v 1.41 1999-04-17 14:58:50 obachman Exp $ */
    55/*
    66* ABSTRACT:
     
    498498  int j,jj = MATCOLS(im);
    499499  poly *pp = im->m;
    500   char *s=StringSet("");
     500  char *s=StringSetS("");
    501501
    502502  for (i=0; i<ii; i++)
  • Singular/lists.cc

    rb45d97 ra79a128  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: lists.cc,v 1.13 1999-04-16 07:53:39 obachman Exp $ */
     4/* $Id: lists.cc,v 1.14 1999-04-17 14:58:51 obachman Exp $ */
    55/*
    66* ABSTRACT: handling of the list type
     
    354354}
    355355
    356 char* lString(lists l)
     356char* lString(lists l, BOOLEAN typed, int dim)
    357357{
    358358  if (l->nr == -1) return mstrdup("");
  • Singular/lists.h

    rb45d97 ra79a128  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: lists.h,v 1.7 1999-04-16 07:53:40 obachman Exp $ */
     6/* $Id: lists.h,v 1.8 1999-04-17 14:58:52 obachman Exp $ */
    77/*
    88* ABSTRACT: handling of the list type
     
    5656BOOLEAN lAdd(leftv res, leftv u, leftv v);
    5757BOOLEAN lRingDependend(lists L);
    58 char* lString(lists L);
     58char* lString(lists l, BOOLEAN typed = FALSE, int dim = 1);
    5959
    6060
  • Singular/misc.cc

    rb45d97 ra79a128  
    656656      BITSET tmp;
    657657      int i;
    658       StringSet("");
     658      StringSetS("");
    659659      if ((test!=0)||(verbose!=0))
    660660      {
     
    684684        }
    685685        PrintTCLS('O',StringAppendS(""));
    686         StringSet("");
     686        StringSetS("");
    687687      }
    688688      else
     
    700700  BITSET tmp;
    701701
    702   StringSet("//options:");
     702  StringSetS("//options:");
    703703  if ((test!=0)||(verbose!=0))
    704704  {
     
    743743char * versionString()
    744744{
    745   StringSet("\t");
     745  StringSetS("\t");
    746746#ifdef HAVE_FACTORY
    747747              StringAppend("factory(%s),", factoryVersion);
  • Singular/mod2.h.in

    rb45d97 ra79a128  
    8181/* Define if you have the getwd function.  */
    8282#undef HAVE_GETWD
     83/* Define if you have snprintf */
     84#undef HAVE_VSNPRINTF
    8385/* Define if you have sbrk */
    8486#undef HAVE_SBRK
  • Singular/subexpr.cc

    rb45d97 ra79a128  
    638638}
    639639
    640 char *  sleftv::String(void *d, BOOLEAN func)
     640char *  sleftv::String(void *d, BOOLEAN typed, int dim)
    641641{
    642642#ifdef SIQ
     
    669669          s=(char *)AllocL(MAX_INT_LEN+2);
    670670          sprintf(s,"%d",(int)d);
    671           return s;
     671          break;
    672672        case STRING_CMD:
    673           if (d != NULL) return mstrdup((char*)d);
    674           return mstrdup("");
     673          if (d != NULL) s = mstrdup((char*)d);
     674          else s = mstrdup("");
     675          break;
    675676        case POLY_CMD:
    676677        case VECTOR_CMD:
    677           s = pString((poly)d);
     678          s = mstrdup(pString((poly)d));
    678679          break;
    679680        case NUMBER_CMD:
     
    700701          }
    701702          s = StringAppendS("");
     703          s = mstrdup(s);
    702704          break;
    703705        case MATRIX_CMD:
    704           s= iiStringMatrix((matrix)d,1);
     706          s= mstrdup(iiStringMatrix((matrix)d,dim));
    705707          break;
    706708        case MODUL_CMD:
    707709        case IDEAL_CMD:
    708710        case MAP_CMD:
    709           s= iiStringMatrix((matrix)d,1);
     711          s= mstrdup(iiStringMatrix((matrix)d,dim));
    710712          break;
    711713        case INTVEC_CMD:
     
    713715        {
    714716          intvec *v=(intvec *)d;
    715           return v->String(1);
     717          s = v->String(dim);
     718          break;
    716719        }
    717720        case RING_CMD:
    718721        {
    719           return rString((ring)d);
     722          s = rString((ring)d);
     723          break;
    720724        }
    721725        case QRING_CMD:
     
    726730          sprintf(s, "%s,(%s)", r, i);
    727731          FreeL(r);
    728           return s;
    729         }
    730        
     732          break;
     733        }
    731734        case RESOLUTION_CMD:
    732735        {
    733736          lists l = syConvRes((syStrategy)d);
    734           s = lString(l);
     737          s = lString(l, typed, dim);
    735738          l->Clean();
    736           return (s);
     739          break;
    737740        }
    738741        case PROC_CMD:
     
    740743          procinfo* pi = (procinfo*) d;
    741744          if((pi->language == LANG_SINGULAR) && (pi->data.s.body!=NULL))
    742             return mstrdup(pi->data.s.body);
     745            s = mstrdup(pi->data.s.body);
    743746          else
    744             return mstrdup("");
     747            s = mstrdup("");
     748          break;
    745749        }
    746750         
    747751        case LINK_CMD:
    748752        {
    749           return slString((si_link) d);
    750         }
    751         case DEF_CMD:
    752         {
    753           return mstrdup("");
     753          s = slString((si_link) d);
     754          break;
    754755        }
    755756       
    756757        case LIST_CMD:
    757758        {
    758           return lString((lists) d);
     759          s = lString((lists) d, typed, dim);
    759760        }
    760761        default:
     
    764765          return mstrdup("");
    765766    } /* end switch: (Typ()) */
    766     return mstrdup(s);
     767
     768    return s;
    767769  }
    768770  return mstrdup("");
  • Singular/subexpr.h

    rb45d97 ra79a128  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: subexpr.h,v 1.16 1999-04-16 07:53:44 obachman Exp $ */
     6/* $Id: subexpr.h,v 1.17 1999-04-17 14:58:54 obachman Exp $ */
    77/*
    88* ABSTRACT: handling of leftv
     
    6060    void Print(leftv store=NULL,int spaces=0);
    6161    void CleanUp();
    62     char * String(void *d=NULL, BOOLEAN func = FALSE);
     62    char * String(void *d=NULL, BOOLEAN typed = FALSE, int dim = 1);
    6363    void Copy(leftv e);
    6464    void * CopyD();
Note: See TracChangeset for help on using the changeset viewer.