Lines Matching refs:shv
3489 struct sh_vars *shv = 0; in export() local
3493 if (strchr(str, '=')) shv = setvar(xstrdup(str)); in export()
3494 else if (!(shv = findvar(str, 0))) { in export()
3495 shv = addvar(str = xmprintf("%s=", str), TT.ff->prev); in export()
3496 shv->flags = VAR_WHITEOUT; in export()
3497 } else if (shv->flags&VAR_WHITEOUT) shv->flags |= VAR_GLOBAL; in export()
3498 if (!shv || (shv->flags&VAR_GLOBAL)) return; in export()
3501 if (shv->flags&VAR_MAGIC) { in export()
3502 s = shv->str; in export()
3503 shv->str = xmprintf("%.*s=%s", (int)(varend(str)-str), str, getvar(str)); in export()
3506 shv->flags |= VAR_GLOBAL; in export()
3511 struct sh_vars *shv = findvar(str, 0); in unexport() local
3513 if (shv) shv->flags &=~VAR_GLOBAL; in unexport()
3609 struct sh_vars *shv; in subshell_setup() local
3665 if (!(shv = findvar(s, 0))) addvar(s, TT.ff)->flags = VAR_GLOBAL|VAR_NOFREE; in subshell_setup()
3666 else if (shv->flags&VAR_READONLY) continue; in subshell_setup()
3668 if (!(shv->flags&VAR_NOFREE)) { in subshell_setup()
3669 free(shv->str); in subshell_setup()
3670 shv->flags ^= VAR_NOFREE; in subshell_setup()
3672 shv->flags |= VAR_GLOBAL; in subshell_setup()
3673 shv->str = s; in subshell_setup()