Changeset 1202 in kBuild for trunk/src/kash/var.c
- Timestamp:
- Oct 7, 2007 12:24:15 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/var.c
r1200 r1202 195 195 char **envp; 196 196 197 initvar( );197 initvar(psh); 198 198 for (envp = environ ; *envp ; envp++) { 199 199 if (strchr(*envp, '=')) { 200 setvareq( *envp, VEXPORT|VTEXTFIXED);200 setvareq(psh, *envp, VEXPORT|VTEXTFIXED); 201 201 } 202 202 } … … 295 295 else { 296 296 handler = &jmploc; 297 setvar( name, val, flags);297 setvar(psh, name, val, flags); 298 298 } 299 299 handler = savehandler; … … 347 347 if (val) 348 348 scopy(val, d); 349 setvareq( nameeq, flags);349 setvareq(psh, nameeq, flags); 350 350 } 351 351 … … 394 394 */ 395 395 if (vp == &vmpath || (vp == &vmail && ! mpathset())) 396 chkmail( 1);396 chkmail(psh, 1); 397 397 INTON; 398 398 return; … … 423 423 INTOFF; 424 424 for (lp = list ; lp ; lp = lp->next) { 425 setvareq( savestr(lp->text), flags);425 setvareq(psh, savestr(lp->text), flags); 426 426 } 427 427 INTON; … … 434 434 435 435 for (lp = list ; lp ; lp = lp->next) 436 mklocal( lp->text, flags);436 mklocal(psh, lp->text, flags); 437 437 } 438 438 … … 528 528 529 529 #ifdef mkinit 530 void shprocvar( void);530 void shprocvar(shinstance *psh); 531 531 532 532 SHELLPROC { 533 shprocvar( );533 shprocvar(psh); 534 534 } 535 535 #endif 536 536 537 537 void 538 shprocvar( void)538 shprocvar(shinstance *psh) 539 539 { 540 540 struct var **vpp; 541 541 struct var *vp, **prev; 542 542 543 for (vpp = vartab ; vpp <vartab + VTABSIZE ; vpp++) {543 for (vpp = psh->vartab ; vpp < psh->vartab + VTABSIZE ; vpp++) { 544 544 for (prev = vpp ; (vp = *prev) != NULL ; ) { 545 545 if ((vp->flags & VEXPORT) == 0) { … … 558 558 } 559 559 } 560 initvar( );560 initvar(psh); 561 561 } 562 562 … … 675 675 int pflag; 676 676 677 pflag = nextopt( "p") == 'p' ? 3 : 0;677 pflag = nextopt(psh, "p") == 'p' ? 3 : 0; 678 678 if (argc <= 1 || pflag) { 679 showvars( pflag ? argv[0] : 0, flag, pflag );679 showvars(psh, pflag ? argv[0] : 0, flag, pflag ); 680 680 return 0; 681 681 } … … 691 691 } 692 692 } 693 setvar( name, p, flag);693 setvar(psh, name, p, flag); 694 694 } 695 695 return 0; … … 709 709 error(psh, "Not in a function"); 710 710 while ((name = *argptr++) != NULL) { 711 mklocal( name, 0);711 mklocal(psh, name, 0); 712 712 } 713 713 return 0; … … 740 740 if (vp == NULL) { 741 741 if (strchr(name, '=')) 742 setvareq( savestr(name), VSTRFIXED|flags);742 setvareq(psh, savestr(name), VSTRFIXED|flags); 743 743 else 744 setvar( name, NULL, VSTRFIXED|flags);744 setvar(psh, name, NULL, VSTRFIXED|flags); 745 745 vp = *vpp; /* the new variable */ 746 746 lvp->text = NULL; … … 751 751 vp->flags |= VSTRFIXED|VTEXTFIXED; 752 752 if (name[vp->name_len] == '=') 753 setvareq( savestr(name), flags);753 setvareq(psh, savestr(name), flags); 754 754 } 755 755 } … … 779 779 ckfree(lvp->text); 780 780 } else if ((lvp->flags & (VUNSET|VSTRFIXED)) == VUNSET) { 781 (void)unsetvar( vp->text, 0);781 (void)unsetvar(psh, vp->text, 0); 782 782 } else { 783 783 if (vp->func && (vp->flags & VNOFUNC) == 0) … … 797 797 { 798 798 if (argc <= 2) 799 return unsetcmd( argc, argv);799 return unsetcmd(psh, argc, argv); 800 800 else if (argc == 3) 801 setvar( argv[1], argv[2], 0);801 setvar(psh, argv[1], argv[2], 0); 802 802 else 803 803 error(psh, "List assignment not implemented"); … … 821 821 int ret = 0; 822 822 823 while ((i = nextopt( "evf")) != '\0') {823 while ((i = nextopt(psh, "evf")) != '\0') { 824 824 if (i == 'f') 825 825 flg_func = 1; … … 862 862 } else { 863 863 if (vp->text[vp->name_len + 1] != '\0') 864 setvar( s, nullstr, 0);864 setvar(psh, s, nullstr, 0); 865 865 vp->flags &= ~VEXPORT; 866 866 vp->flags |= VUNSET;
Note:
See TracChangeset
for help on using the changeset viewer.