Changeset 577d19f in git for Singular/ipassign.cc


Ignore:
Timestamp:
Mar 21, 1997, 2:19:05 PM (27 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
4f568c15ac592b67d6d689c797d299502aebc194
Parents:
cc029638a620b2b1b896a1e7d6f02f4040dd296d
Message:
fixed assignment of lists, det(constants), comparision of intmats


git-svn-id: file:///usr/local/Singular/svn/trunk@62 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/ipassign.cc

    rcc0296 r577d19f  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 static char rcsid[] = "$Header: /exports/cvsroot-2/cvsroot/Singular/ipassign.cc,v 1.1.1.1 1997-03-19 13:18:47 obachman Exp $";
     4static char rcsid[] = "$Header: /exports/cvsroot-2/cvsroot/Singular/ipassign.cc,v 1.2 1997-03-21 13:19:03 Singular Exp $";
    55/* $Log: not supported by cvs2svn $
    66*/
     
    978978  }
    979979  if(l->attribute!=NULL)
    980     l->attribute->killAll();
    981   l->attribute=NULL;
     980  {
     981    atKillAll((idhdl)l);
     982    l->attribute=NULL;
     983  } 
    982984  l->flag=0;
    983985  lists li;
     
    985987  {
    986988    li=IDLIST((idhdl)l->data);
    987     IDATTR((idhdl)l->data)=NULL;;
    988     IDFLAG((idhdl)l->data)=0;
    989989  } 
    990990  else
     
    10011001    li->nr=i;
    10021002  }
    1003   leftv ld=l->LHdl();
    1004   Subexpr e=l->e->next;
    1005   if (e==NULL)
    1006   {
     1003  leftv ld=&(li->m[i]);
     1004  ld->e=l->e->next;
     1005  BOOLEAN b;
     1006  if ((ld->rtyp!=LIST_CMD)
     1007  &&(ld->e==NULL)
     1008  &&(ld->Typ()!=r->Typ()))
     1009  {
     1010    sleftv tmp;
     1011    memset(&tmp,0,sizeof(sleftv));
     1012    tmp.rtyp=DEF_CMD;
     1013    b=iiAssign(&tmp,r);
    10071014    ld->CleanUp();
    1008     ld->rtyp=DEF_CMD;
    1009     BOOLEAN b=jiAssign_1(ld,r);
    1010     return b;
     1015    memcpy(ld,&tmp,sizeof(sleftv));
     1016  }
     1017  else
     1018  {
     1019    b=iiAssign(ld,r);
     1020    l->e->next=ld->e;
    10111021  } 
    1012   BOOLEAN b; 
    1013   ld->e=e;
    1014   if(ld->rtyp!=LIST_CMD)
    1015   {
    1016     b=jiAssign_1(ld,r);
    1017   }
    1018   else
    1019   {
    1020     b=jiAssign_list(ld,r);
    1021   }   
    1022   ld->e=NULL;
    10231022  return b;
    10241023}
     
    10561055  if(l->attribute!=NULL)
    10571056  {
    1058     atKillAll((idhdl)l->data);
    1059     l->attribute=NULL;
     1057    if (l->rtyp==IDHDL)
     1058    {
     1059      atKillAll((idhdl)l->data);
     1060      l->attribute=NULL;
     1061    }
     1062    else
     1063      atKillAll((idhdl)l);
    10601064  }
    10611065  if(l->rtyp==IDHDL)
    10621066  {
    10631067    IDFLAG((idhdl)l->data)=0;
    1064     IDATTR((idhdl)l->data)=NULL;
    10651068  } 
    10661069  l->flag=0;
     
    10691072    /* l[..] = ... */
    10701073    if((l->e!=NULL)
    1071     && (l->rtyp==IDHDL)
    1072     && (IDTYP((idhdl)l->data)==LIST_CMD))
     1074    && (((l->rtyp==IDHDL) && (IDTYP((idhdl)l->data)==LIST_CMD))
     1075      || (l->rtyp==LIST_CMD)))   
    10731076    {
    10741077       if(r->next!=NULL)
     
    10761079       else 
    10771080         b=jiAssign_list(l,r);
    1078        if(l->data!=NULL)
     1081       if((l->rtyp==IDHDL) && (l->data!=NULL))
    10791082       {
    10801083         ipMoveId((idhdl)l->data);
     1084         l->attribute=IDATTR((idhdl)l->data);
     1085         l->flag=IDFLAG((idhdl)l->data);
    10811086       } 
    10821087       r->CleanUp();
    1083        l->CleanUp();
     1088       Subexpr h;
     1089       while (l->e!=NULL)
     1090       {
     1091         h=l->e->next;
     1092         Free((ADDRESS)l->e,sizeof(*(l->e)));
     1093         l->e=h;
     1094       }
    10841095       return b;
    10851096    }
     
    11031114      {
    11041115         b=jiAssign_1(l,r);
    1105          if(l->data!=NULL)
     1116         if (l->rtyp==IDHDL)
    11061117         {
    11071118           if ((lt==DEF_CMD)||(lt=LIST_CMD)) ipMoveId((idhdl)l->data);
    11081119           l->attribute=IDATTR((idhdl)l->data);
    11091120           l->flag=IDFLAG((idhdl)l->data);
     1121           l->CleanUp();
    11101122         } 
    11111123         r->CleanUp();
    1112          l->CleanUp();
    11131124         return b;
    11141125      }
     
    11201131      {   
    11211132         b=jiAssign_1(l,r);
    1122          if(l->data!=NULL)
     1133         if((l->rtyp==IDHDL)&&(l->data!=NULL))
    11231134         {
    11241135           if (lt==DEF_CMD) ipMoveId((idhdl)l->data);
     
    11271138         } 
    11281139         r->CleanUp();
    1129          l->CleanUp();
     1140         Subexpr h;
     1141         while (l->e!=NULL)
     1142         {
     1143           h=l->e->next;
     1144           Free((ADDRESS)l->e,sizeof(*(l->e)));
     1145           l->e=h;
     1146         }
    11301147         return b;
    11311148      }
Note: See TracChangeset for help on using the changeset viewer.