Changeset 24c186a in git


Ignore:
Timestamp:
Oct 21, 1998, 5:56:07 PM (26 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c7af8613769b29c741d6c338945669719f1fc4f8')
Children:
db70590bb13095fcd6ee6111c59947adffc8ffcc
Parents:
988b76aaa4ed3a9863bf3fd32588e8ee11211a7b
Message:
*hannes: minor bug fixes in assignments, see BUGS


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

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    r988b76a r24c186a  
    133133  { "continue",    0, CONTINUE_CMD ,      CONTINUE_CMD},
    134134  { "contract",    0, CONTRACT_CMD ,      CMD_2},
    135   #ifdef DRING
    136   { "dring",       0, DRING_CMD,          DRING_CMD},
    137   #endif
    138135  { "dbprint",     0, DBPRINT_CMD ,       CMD_M},
    139136  { "def",         0, DEF_CMD ,           ROOT_DECL},
     
    54825479    }
    54835480    i=(an+en)/2;
    5484     v=strcmp(n,cmds[i].name);
    5485     if(v<0)
     5481    if (*n < *(cmds[i].name))
    54865482    {
    54875483      en=i;
    54885484    }
    5489     else if(v>0)
     5485    else if (*n > *(cmds[i].name))
    54905486    {
    54915487      an=i;
    54925488    }
    5493     else /*v==0*/
    5494     {
    5495       break;
     5489    else
     5490    {
     5491      v=strcmp(n,cmds[i].name);
     5492      if(v<0)
     5493      {
     5494        en=i;
     5495      }
     5496      else if(v>0)
     5497      {
     5498        an=i;
     5499      }
     5500      else /*v==0*/
     5501      {
     5502        break;
     5503      }
    54965504    }
    54975505  }
  • Singular/ipassign.cc

    r988b76a r24c186a  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipassign.cc,v 1.36 1998-10-21 10:25:30 krueger Exp $ */
     4/* $Id: ipassign.cc,v 1.37 1998-10-21 15:56:04 Singular Exp $ */
    55
    66/*
     
    867867    h->next=NULL;
    868868    rt=h->Typ();
    869     if ((rt==0)||(rt==NONE))
     869    if ((rt==0)||(rt==NONE)||(rt==DEF_CMD))
    870870    {
    871871      L->Clean();
     
    905905  int sl = r->listLength();
    906906  lists L=(lists)Alloc(sizeof(slists));
    907   leftv h=NULL;
     907  leftv h=NULL,o_r=r;
    908908  int i;
    909909  int rt;
     
    924924    if ((rt==0)||(rt==DEF_CMD))
    925925    {
    926 //<<<<<<< ipassign.cc
    927 //      L->Clean();
    928 //      Werror("`%s` is undefined",h->Fullname());
    929 //      return TRUE;
    930 //=======
    931       Werror("`%s` is undefined",h->Name());
     926      Werror("`%s` is undefined",h->Fullname());
    932927      goto err;
    933 //>>>>>>> 1.35
    934928    }
    935929    if ((rt==RING_CMD)||(rt==QRING_CMD))
     
    939933      ((ring)L->m[i].data)->ref++;
    940934    }
    941     else
    942       L->m[i].Copy(h);
     935    L->m[i].Copy(h);
    943936    if(errorreported)  goto err;
    944937  }
    945938  IDLIST((idhdl)l->data)->Clean();
    946939  IDLIST((idhdl)l->data)=L;
     940  ipMoveId((idhdl)l->data);
     941  o_r->CleanUp();
    947942  return FALSE;
    948943err:
     944  o_r->CleanUp();
    949945  L->Clean();
    950946  return TRUE;
     
    12571253      || (l->rtyp==LIST_CMD)))
    12581254    {
    1259        if(r->next!=NULL)
    1260          b=jiA_L_LIST(l,r);
    1261        else
    1262          b=jiAssign_list(l,r);
     1255       b=jiAssign_list(l,r);
    12631256       if(!b)
    12641257       {
  • Singular/ipid.cc

    r988b76a r24c186a  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipid.cc,v 1.19 1998-10-21 10:25:32 krueger Exp $ */
     4/* $Id: ipid.cc,v 1.20 1998-10-21 15:56:05 Singular Exp $ */
    55
    66/*
     
    4444  idhdl found=NULL;
    4545  int l;
     46  char *id;
    4647  while (h!=NULL)
    4748  {
    48     l=IDLEV(h);
    4949    mmTestLP(IDID(h));
    50     if ((l==lev) && (0 == strcmp(s,IDID(h)))) return h;
    51     if ((l==0) && (found==NULL) && (0 == strcmp(s,IDID(h))))
    52     {
    53       found=h;
    54     }
     50//    id=IDID(h);
     51//    l=IDLEV(h);
     52//    if ((l==0) && (*(short *)s==*(short *)id) && (0 == strcmp(s+1,id+1)))
     53//    {
     54//      found=h;
     55//    }
     56//    else if ((l==lev) && (*(short *)s==*(short *)id) && (0 == strcmp(s+1,id+1)))
     57//    {
     58//      return h;
     59//    } 
     60    id=IDID(h);
     61    if (*(short *)s==*(short *)id)
     62    {
     63      l=IDLEV(h);
     64      if ((l==0) && (0 == strcmp(s+1,id+1)))
     65      {
     66        found=h;
     67      }
     68      else if ((l==lev) && (0 == strcmp(s+1,id+1)))
     69      {
     70        return h;
     71      }
     72    }
     73//    l=IDLEV(h);
     74//    if ((l==0)||(l==lev))
     75//    {
     76//      id=IDID(h);
     77//      if (*(short *)s==*(short *)id)
     78//      {
     79//        if (0 == strcmp(s+1,id+1))
     80//        {
     81//          if (l==lev) return h;
     82//          found=h;
     83//        }
     84//      }
     85//    }
    5586    h = IDNEXT(h);
    5687  }
  • Singular/iplib.cc

    r988b76a r24c186a  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: iplib.cc,v 1.36 1998-10-21 10:25:34 krueger Exp $ */
     4/* $Id: iplib.cc,v 1.37 1998-10-21 15:56:06 Singular Exp $ */
    55/*
    66* ABSTRACT: interpreter: LIB and help
     
    110110      *e='\0';
    111111      // check for space:
    112       if (strlen(argstr)+12 /* parameter + ;*/ +strlen(s)>= argstrlen)
     112      if ((int)strlen(argstr)+12 /* parameter + ;*/ +(int)strlen(s)>= argstrlen)
    113113      {
    114114        argstrlen*=2;
  • Singular/subexpr.cc

    r988b76a r24c186a  
    485485  void *d=source->Data();
    486486  if(!errorreported)
    487   switch (rtyp)
    488   {
    489     case INTVEC_CMD:
    490     case INTMAT_CMD:
    491       data=(void *)ivCopy((intvec *)d);
    492       break;
    493     case MATRIX_CMD:
    494       data=(void *)mpCopy((matrix)d);
    495       break;
    496     case IDEAL_CMD:
    497     case MODUL_CMD:
    498       data= (void *)idCopy((ideal)d);
    499       break;
    500     case STRING_CMD:
    501       data= (void *)mstrdup((char *)d);
    502       break;
    503     case POINTER_CMD:
    504       data=d;
    505       break;
    506     case PROC_CMD:
    507       data= (void *)piCopy((procinfov) d);
    508       break;
    509     case POLY_CMD:
    510     case VECTOR_CMD:
    511       data= (void *)pCopy((poly)d);
    512       break;
    513     case INT_CMD:
    514       data= d;
    515       break;
    516     case NUMBER_CMD:
    517       data= (void *)nCopy((number)d);
    518       break;
    519     case MAP_CMD:
    520       data= (void *)maCopy((map)d);
    521       break;
    522     case LIST_CMD:
    523       data= (void *)lCopy((lists)d);
    524       break;
    525     case LINK_CMD:
    526       data = (void *)slCopy((si_link)d);
    527       break;
    528     case RING_CMD:
    529     case QRING_CMD:
    530       {
    531         if (d!=NULL)
    532         {
    533           ring r=(ring)d;
    534           r->ref++;
    535           data=d;
    536         }
    537         else
    538         {
    539           WerrorS("invalid ring description");
    540         }
    541         break;
    542       }
    543     case RESOLUTION_CMD:
    544       data=(void*)syCopy((syStrategy)d);
    545       break;
    546 #ifdef TEST
    547     case DEF_CMD:
    548     case NONE:
    549       break; /* error recovery: do nothing */
    550     //case COMMAND:
    551     default:
    552       Warn("Copy: cannot copy type %s(%d)",Tok2Cmdname(rtyp),rtyp);
    553 #endif
    554   }
    555   flag=source->flag;
     487  {
     488    switch (rtyp)
     489    {
     490      case INTVEC_CMD:
     491      case INTMAT_CMD:
     492        data=(void *)ivCopy((intvec *)d);
     493        break;
     494      case MATRIX_CMD:
     495        data=(void *)mpCopy((matrix)d);
     496        break;
     497      case IDEAL_CMD:
     498      case MODUL_CMD:
     499        data= (void *)idCopy((ideal)d);
     500        break;
     501      case STRING_CMD:
     502        data= (void *)mstrdup((char *)d);
     503        break;
     504      case POINTER_CMD:
     505        data=d;
     506        break;
     507      case PROC_CMD:
     508        data= (void *)piCopy((procinfov) d);
     509        break;
     510      case POLY_CMD:
     511      case VECTOR_CMD:
     512        data= (void *)pCopy((poly)d);
     513        break;
     514      case INT_CMD:
     515        data= d;
     516        break;
     517      case NUMBER_CMD:
     518        data= (void *)nCopy((number)d);
     519        break;
     520      case MAP_CMD:
     521        data= (void *)maCopy((map)d);
     522        break;
     523      case LIST_CMD:
     524        data= (void *)lCopy((lists)d);
     525        break;
     526      case LINK_CMD:
     527        data = (void *)slCopy((si_link)d);
     528        break;
     529      case RING_CMD:
     530      case QRING_CMD:
     531        {
     532          if (d!=NULL)
     533          {
     534            ring r=(ring)d;
     535            r->ref++;
     536            data=d;
     537          }
     538          else
     539          {
     540            WerrorS("invalid ring description");
     541          }
     542          break;
     543        }
     544      case RESOLUTION_CMD:
     545        data=(void*)syCopy((syStrategy)d);
     546        break;
     547      #ifdef TEST
     548      case DEF_CMD:
     549      case NONE:
     550        break; /* error recovery: do nothing */
     551      //case COMMAND:
     552      default:
     553        Warn("Copy: cannot copy type %s(%d)",Tok2Cmdname(rtyp),rtyp);
     554      #endif
     555    }
     556    flag=source->flag;
    556557#ifdef HAVE_NAMESPACES
    557   packhdl = source->packhdl;
    558   req_packhdl = source->req_packhdl;
     558    packhdl = source->packhdl;
     559    req_packhdl = source->req_packhdl;
    559560#endif /* HAVE_NAMESPACES */
    560   if ((source->attribute!=NULL)||(source->e!=NULL))
    561     attribute=source->CopyA();
    562   if (source->next!=NULL)
    563   {
    564     next=(leftv)Alloc(sizeof(sleftv));
    565     next->Copy(source->next);
     561    if ((source->attribute!=NULL)||(source->e!=NULL))
     562      attribute=source->CopyA();
     563    if (source->next!=NULL)
     564    {
     565      next=(leftv)Alloc(sizeof(sleftv));
     566      next->Copy(source->next);
     567    }
    566568  }
    567569}
     
    588590void * sleftv::CopyD()
    589591{
    590   if ((rtyp!=IDHDL)&&(e==NULL)
    591   &&(rtyp!=VNOETHER)&&(rtyp!=LIB_CMD)&&(rtyp!=VMINPOLY))
    592   {
    593     void *x=data;
    594     data=NULL;
    595     return x;
    596   }
     592  //if ((rtyp!=IDHDL)&&(e==NULL)
     593  //&&(rtyp!=VNOETHER)&&(rtyp!=LIB_CMD)&&(rtyp!=VMINPOLY))
     594  //{
     595  //  void *x=data;
     596  //  data=NULL;
     597  //  return x;
     598  //}
    597599  return CopyD(Typ());
    598600}
Note: See TracChangeset for help on using the changeset viewer.