Changeset a3bc95e in git for Singular/ipshell.cc
- Timestamp:
- Oct 9, 2001, 6:36:27 PM (23 years ago)
- Branches:
- (u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
- Children:
- 7497ef3773fc1afff892546445b1d82b1cf0fb05
- Parents:
- e58c4abd91b68d128331a23f3f9dd76dff924048
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/ipshell.cc
re58c4a ra3bc95e 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ipshell.cc,v 1.6 7 2001-09-27 13:13:03Singular Exp $ */4 /* $Id: ipshell.cc,v 1.68 2001-10-09 16:36:06 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: … … 244 244 { 245 245 idhdl nexth = IDNEXT(h); 246 killhdl (h,localhdl);246 killhdl2(h,localhdl); 247 247 h = nexth; 248 248 //PrintS("kill\n"); … … 259 259 void killlocals(int v) 260 260 { 261 #ifndef HAVE_NS 261 262 killlocals0(v,&IDROOT); 263 #else 264 killlocals0(v,&(currPack->idroot)); 265 if (currPack!=basePack) 266 { 267 //PrintS("killlocals in Top\n"); 268 killlocals0(v,&(basePack->idroot)); 269 } 270 #endif 262 271 263 272 if ((iiRETURNEXPR_len > myynest) … … 270 279 271 280 idhdl sh=currRingHdl; 281 ring sr=currRing; 272 282 BOOLEAN changed=FALSE; 273 283 #ifndef HAVE_NAMESPACES 284 #ifdef HAVE_NS 285 idhdl h = currPack->idroot; 286 #else 274 287 idhdl h = IDROOT; 275 288 #endif 289 290 // Print("killlocals in %s\n",IDID(currPackHdl)); 276 291 while (h!=NULL) 277 292 { … … 279 294 && (IDRING(h)->idroot!=NULL)) 280 295 { 281 if ( h!=currRingHdl) {changed=TRUE;rSetHdl(h);}296 if (IDRING(h)!=currRing) {changed=TRUE;rSetHdl(h);} 282 297 killlocals0(v,&(IDRING(h)->idroot)); 283 298 } 284 299 h = IDNEXT(h); 285 300 } 301 #ifdef HAVE_NS 302 if (currPack!=basePack) 303 { 304 //PrintS("killlocals in Top\n"); 305 h=basePack->idroot; 306 while (h!=NULL) 307 { 308 if (((IDTYP(h)==QRING_CMD) || (IDTYP(h) == RING_CMD)) 309 && (IDRING(h)->idroot!=NULL)) 310 { 311 //Print("go to %s\n",IDID(h)); 312 if (IDRING(h)!=currRing) {changed=TRUE;rSetHdl(h);} 313 killlocals0(v,&(IDRING(h)->idroot)); 314 } 315 h = IDNEXT(h); 316 } 317 } 318 #endif 286 319 #else 287 320 idhdl h = NSROOT(namespaceroot->root); … … 322 355 currRingHdl=NULL; 323 356 if (sh!=NULL) rSetHdl(sh); 357 else if (sr!=NULL) 358 { 359 sh=rFindHdl(sr,NULL,NULL); 360 rSetHdl(sh); 361 } 324 362 } 325 363 326 364 if (myynest<=1) iiNoKeepRing=TRUE; 365 //Print("end killlocals >= %d\n",v); 366 //listall(); 327 367 } 328 368 … … 613 653 #else 614 654 r=IDROOT->get(theMap->preimage,myynest); 655 #ifdef HAVE_NS 656 if ((currPack!=basePack) 657 &&((r==NULL) || ((r->typ != RING_CMD) && (r->typ != QRING_CMD)))) 658 r=basePack->idroot->get(theMap->preimage,myynest); 659 #endif /* HAVE_NS */ 615 660 #endif /* HAVE_NAMESPACES */ 616 661 if ((r!=NULL) && ((r->typ == RING_CMD) || (r->typ== QRING_CMD))) … … 887 932 #endif /* HAVE_NAMESPACES */ 888 933 { 934 if (name->rtyp==IDHDL) { id=omStrDup(id); } 889 935 sy->data = (char *)enterid(id,lev,t,root,init_b); 890 936 } … … 959 1005 if (iiLocalRing[0]==IDRING(h)) iiLocalRing[0]=NULL; 960 1006 #else 1007 #endif 961 1008 proclevel *p=procstack; 962 1009 while (p->next!=NULL) p=p->next; … … 966 1013 p->currRingHdl=NULL; 967 1014 } 968 #endif969 killhdl (h,root);1015 //#endif 1016 killhdl2(h,root); 970 1017 } 971 1018 else … … 1094 1141 BOOLEAN iiExport (leftv v, int toLev) 1095 1142 { 1143 checkall(); 1096 1144 BOOLEAN nok=FALSE; 1097 1145 leftv r=v; … … 1114 1162 } 1115 1163 r->CleanUp(); 1164 checkall(); 1116 1165 return nok; 1117 1166 } … … 1142 1191 Warn("redefining %s",IDID(old)); 1143 1192 } 1144 killhdl (old,&root);1193 killhdl2(old,&root); 1145 1194 } 1146 1195 else … … 1165 1214 BOOLEAN iiExport (leftv v, int toLev, idhdl root) 1166 1215 { 1216 checkall(); 1167 1217 BOOLEAN nok=FALSE; 1168 1218 leftv rv=v; … … 1186 1236 Warn("redefining %s",IDID(old)); 1187 1237 } 1188 killhdl (old,&root);1238 killhdl2(old,&root); 1189 1239 } 1190 1240 else … … 1203 1253 } 1204 1254 rv->CleanUp(); 1255 checkall(); 1205 1256 return nok; 1206 1257 }
Note: See TracChangeset
for help on using the changeset viewer.