VirtualBox

Changeset 1202 in kBuild for trunk/src/kash/var.c


Ignore:
Timestamp:
Oct 7, 2007 12:24:15 AM (17 years ago)
Author:
bird
Message:

Added psh parameter to the remaining global functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kash/var.c

    r1200 r1202  
    195195        char **envp;
    196196
    197         initvar();
     197        initvar(psh);
    198198        for (envp = environ ; *envp ; envp++) {
    199199                if (strchr(*envp, '=')) {
    200                         setvareq(*envp, VEXPORT|VTEXTFIXED);
     200                        setvareq(psh, *envp, VEXPORT|VTEXTFIXED);
    201201                }
    202202        }
     
    295295        else {
    296296                handler = &jmploc;
    297                 setvar(name, val, flags);
     297                setvar(psh, name, val, flags);
    298298        }
    299299        handler = savehandler;
     
    347347        if (val)
    348348                scopy(val, d);
    349         setvareq(nameeq, flags);
     349        setvareq(psh, nameeq, flags);
    350350}
    351351
     
    394394                 */
    395395                if (vp == &vmpath || (vp == &vmail && ! mpathset()))
    396                         chkmail(1);
     396                        chkmail(psh, 1);
    397397                INTON;
    398398                return;
     
    423423        INTOFF;
    424424        for (lp = list ; lp ; lp = lp->next) {
    425                 setvareq(savestr(lp->text), flags);
     425                setvareq(psh, savestr(lp->text), flags);
    426426        }
    427427        INTON;
     
    434434
    435435        for (lp = list ; lp ; lp = lp->next)
    436                 mklocal(lp->text, flags);
     436                mklocal(psh, lp->text, flags);
    437437}
    438438
     
    528528
    529529#ifdef mkinit
    530 void shprocvar(void);
     530void shprocvar(shinstance *psh);
    531531
    532532SHELLPROC {
    533         shprocvar();
     533        shprocvar(psh);
    534534}
    535535#endif
    536536
    537537void
    538 shprocvar(void)
     538shprocvar(shinstance *psh)
    539539{
    540540        struct var **vpp;
    541541        struct var *vp, **prev;
    542542
    543         for (vpp = vartab ; vpp < vartab + VTABSIZE ; vpp++) {
     543        for (vpp = psh->vartab ; vpp < psh->vartab + VTABSIZE ; vpp++) {
    544544                for (prev = vpp ; (vp = *prev) != NULL ; ) {
    545545                        if ((vp->flags & VEXPORT) == 0) {
     
    558558                }
    559559        }
    560         initvar();
     560        initvar(psh);
    561561}
    562562
     
    675675        int pflag;
    676676
    677         pflag = nextopt("p") == 'p' ? 3 : 0;
     677        pflag = nextopt(psh, "p") == 'p' ? 3 : 0;
    678678        if (argc <= 1 || pflag) {
    679                 showvars( pflag ? argv[0] : 0, flag, pflag );
     679                showvars(psh, pflag ? argv[0] : 0, flag, pflag );
    680680                return 0;
    681681        }
     
    691691                        }
    692692                }
    693                 setvar(name, p, flag);
     693                setvar(psh, name, p, flag);
    694694        }
    695695        return 0;
     
    709709                error(psh, "Not in a function");
    710710        while ((name = *argptr++) != NULL) {
    711                 mklocal(name, 0);
     711                mklocal(psh, name, 0);
    712712        }
    713713        return 0;
     
    740740                if (vp == NULL) {
    741741                        if (strchr(name, '='))
    742                                 setvareq(savestr(name), VSTRFIXED|flags);
     742                                setvareq(psh, savestr(name), VSTRFIXED|flags);
    743743                        else
    744                                 setvar(name, NULL, VSTRFIXED|flags);
     744                                setvar(psh, name, NULL, VSTRFIXED|flags);
    745745                        vp = *vpp;      /* the new variable */
    746746                        lvp->text = NULL;
     
    751751                        vp->flags |= VSTRFIXED|VTEXTFIXED;
    752752                        if (name[vp->name_len] == '=')
    753                                 setvareq(savestr(name), flags);
     753                                setvareq(psh, savestr(name), flags);
    754754                }
    755755        }
     
    779779                        ckfree(lvp->text);
    780780                } else if ((lvp->flags & (VUNSET|VSTRFIXED)) == VUNSET) {
    781                         (void)unsetvar(vp->text, 0);
     781                        (void)unsetvar(psh, vp->text, 0);
    782782                } else {
    783783                        if (vp->func && (vp->flags & VNOFUNC) == 0)
     
    797797{
    798798        if (argc <= 2)
    799                 return unsetcmd(argc, argv);
     799                return unsetcmd(psh, argc, argv);
    800800        else if (argc == 3)
    801                 setvar(argv[1], argv[2], 0);
     801                setvar(psh, argv[1], argv[2], 0);
    802802        else
    803803                error(psh, "List assignment not implemented");
     
    821821        int ret = 0;
    822822
    823         while ((i = nextopt("evf")) != '\0') {
     823        while ((i = nextopt(psh, "evf")) != '\0') {
    824824                if (i == 'f')
    825825                        flg_func = 1;
     
    862862        } else {
    863863                if (vp->text[vp->name_len + 1] != '\0')
    864                         setvar(s, nullstr, 0);
     864                        setvar(psh, s, nullstr, 0);
    865865                vp->flags &= ~VEXPORT;
    866866                vp->flags |= VUNSET;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette