diff options
| author | Jilles Tjoelker <jilles@FreeBSD.org> | 2011-01-01 13:26:18 +0000 |
|---|---|---|
| committer | Jilles Tjoelker <jilles@FreeBSD.org> | 2011-01-01 13:26:18 +0000 |
| commit | 850460c0f1891b03bde0193ca5af32fd6ed2ba53 (patch) | |
| tree | 9ba2056874948170151c7134c7d81e6ce37af27b /bin/sh/var.c | |
| parent | 5610751bf13f4f617c7821418b748952a1a5301a (diff) | |
Notes
Diffstat (limited to 'bin/sh/var.c')
| -rw-r--r-- | bin/sh/var.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bin/sh/var.c b/bin/sh/var.c index 6c0618f3e5832..e841647ed779b 100644 --- a/bin/sh/var.c +++ b/bin/sh/var.c @@ -333,6 +333,8 @@ setvareq(char *s, int flags) len = strchr(s, '=') - s; error("%.*s: is read only", len, s); } + if (flags & VNOSET) + return; INTOFF; if (vp->func && (flags & VNOFUNC) == 0) @@ -365,6 +367,8 @@ setvareq(char *s, int flags) } } /* not found */ + if (flags & VNOSET) + return; vp = ckmalloc(sizeof (*vp)); vp->flags = flags; vp->text = s; @@ -386,13 +390,13 @@ setvareq(char *s, int flags) */ void -listsetvar(struct strlist *list) +listsetvar(struct strlist *list, int flags) { struct strlist *lp; INTOFF; for (lp = list ; lp ; lp = lp->next) { - setvareq(savestr(lp->text), 0); + setvareq(savestr(lp->text), flags); } INTON; } |
