Changeset c12cf96 in git


Ignore:
Timestamp:
Sep 29, 1998, 12:39:12 PM (25 years ago)
Author:
Kai Krüger <krueger@…>
Branches:
(u'spielwiese', '8d54773d6c9e2f1d2593a28bc68b7eeab54ed529')
Children:
c898336d2b07c6834ddddbc81515f8b883795ba3
Parents:
9ccebb1f2afc97ac52cb586d379fed91a6b84060
Message:
Modified Files:
 	* subexpr.h subexpr.cc
	Added packhdl and req_packhdl to sleftv (needed by namespaces)
	Added char * Fullname() to sleftv
        Changed syMake() for it.
        Added char *iiSleftv2name(leftv v)


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

Legend:

Unmodified
Added
Removed
  • Singular/subexpr.cc

    r9ccebb rc12cf96  
    243243  }
    244244  name=NULL;
     245#ifdef HAVE_NAMESPACES
     246  packhdl = NULL;
     247  req_packhdl = NULL;
     248#endif /* HAVE_NAMESPACES */
    245249  if (data!=NULL)
    246250  {
     
    10491053#endif
    10501054  memset(v,0,sizeof(sleftv));
     1055#ifdef HAVE_NAMESPACES
     1056  v->packhdl = NULL;
     1057  if(packhdl != NULL)
     1058    v->req_packhdl = packhdl;
     1059  else v->req_packhdl = namespaceroot->get(namespaceroot->name, 0, TRUE);
     1060#endif /* HAVE_NAMESPACES */
    10511061#ifdef SIQ
    10521062  if (siq<=0)
     
    10731083        }
    10741084      }
     1085#ifdef HAVE_NAMESPACES
     1086      if (strcmp(id,"Current")==0)
     1087      {
     1088        h = namespaceroot->get(namespaceroot->name,0, TRUE);
     1089        if (id!=IDID(h)) FreeL((ADDRESS)id);
     1090        v->rtyp = IDHDL;
     1091        v->data = (char *)h;
     1092        v->flag = IDFLAG(h);
     1093        v->name = IDID(h);
     1094        v->attribute=IDATTR(h);
     1095        return;
     1096      }
     1097      h=ggetid(id, packhdl==NULL ? FALSE : TRUE, &(v->packhdl));
     1098      //if(h==NULL) Print("syMake: h is null\n");
     1099#else /* HAVE_NAMESPACES */
    10751100      h=ggetid(id);
     1101#endif /* HAVE_NAMESPACES */
    10761102      /* 3) existing identifier, local */
    10771103      if ((h!=NULL) && (IDLEV(h)==myynest))
     
    13481374}
    13491375
     1376
     1377char *iiSleftv2name(leftv v)
     1378{
     1379#ifdef HAVE_NAMESPACES
     1380  char *name;
     1381  if(v->packhdl != NULL) {
     1382    name = (char *)AllocL(strlen(v->name) + strlen(IDID(v->packhdl)) + 3);
     1383    sprintf(name, "%s::%s", IDID(v->packhdl), v->name);
     1384    return(name);
     1385  }
     1386  else
     1387  {
     1388    return(v->name);
     1389  }
     1390#else /* HAVE_NAMESPACES */
     1391  return(v->name);
     1392#endif /* HAVE_NAMESPACES */
     1393}
  • Singular/subexpr.h

    r9ccebb rc12cf96  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: subexpr.h,v 1.8 1998-08-27 12:03:49 obachman Exp $ */
     6/* $Id: subexpr.h,v 1.9 1998-09-29 10:39:11 krueger Exp $ */
    77/*
    88* ABSTRACT: handling of leftv
     
    2323extern const char sNoName[];
    2424extern BOOLEAN siq;
     25extern char *iiSleftv2name(leftv v);
    2526
    2627class sleftv;
     
    5051                  */
    5152    Subexpr e;    /* holds the indices for indexed values */
     53#ifdef HAVE_NAMESPACES
     54    idhdl       packhdl;
     55    idhdl       req_packhdl;
     56#define IDSROOT(a) (IDPACKAGE(((sleftv)a).packhdl)->idroot)
     57#endif /* HAVE_NAMESPACES */
    5258    inline void Init() { memset(this,0,sizeof(*this)); }
    5359    void Set(int val);
     
    6268    {
    6369      if ((name!=NULL) && (e==NULL)) return name;
     70      else return sNoName;
     71    }
     72    inline const char * Fullname()
     73    {
     74      if ((name!=NULL) && (e==NULL)) return(iiSleftv2name(this));
    6475      else return sNoName;
    6576    }
Note: See TracChangeset for help on using the changeset viewer.