Lines Matching refs:vp

167 	struct var *vp;
170 for (ip = varinit ; (vp = ip->var) != NULL ; ip++) {
171 if (find_var(ip->text, &vpp, &vp->name_len) != NULL)
173 vp->next = *vpp;
174 *vpp = vp;
175 vp->text = strdup(ip->text);
176 vp->flags = ip->flags;
177 vp->func = ip->func;
275 struct var *vp, **vpp;
280 vp = find_var(s, &vpp, &nlen);
281 if (vp != NULL) {
282 if (vp->flags & VREADONLY)
283 error("%.*s: is read only", vp->name_len, s);
288 if (vp->func && (flags & VNOFUNC) == 0)
289 (*vp->func)(s + vp->name_len + 1);
291 if ((vp->flags & (VTEXTFIXED|VSTACK)) == 0)
292 ckfree(vp->text);
294 vp->flags &= ~(VTEXTFIXED|VSTACK|VUNSET);
295 vp->flags |= flags & ~VNOFUNC;
296 vp->text = s;
304 vp = ckmalloc(sizeof (*vp));
305 vp->flags = flags & ~VNOFUNC;
306 vp->text = s;
307 vp->name_len = nlen;
308 vp->next = *vpp;
309 vp->func = NULL;
310 *vpp = vp;
394 struct var *vp;
400 for (vp = *vpp ; vp ; vp = vp->next)
401 if (vp->flags & VEXPORT)
406 for (vp = *vpp ; vp ; vp = vp->next)
407 if (vp->flags & VEXPORT)
408 *ep++ = vp->text;
433 struct var *vp, **prev;
436 for (prev = vpp ; (vp = *prev) != NULL ; ) {
437 if ((vp->flags & VEXPORT) == 0) {
438 *prev = vp->next;
439 if ((vp->flags & VTEXTFIXED) == 0)
440 ckfree(vp->text);
441 if ((vp->flags & VSTRFIXED) == 0)
442 ckfree(vp);
444 if (vp->flags & VSTACK) {
445 vp->text = savestr(vp->text);
446 vp->flags &=~ VSTACK;
448 prev = &vp->next;
510 struct var *vp;
523 for (vp = *vpp ; vp ; vp = vp->next) {
524 if (flag && !(vp->flags & flag))
526 if (vp->flags & VUNSET && !(show_value & 2))
533 list[count++] = vp;
540 vp = *vpp;
543 for (p = vp->text ; *p != '=' ; p++)
545 if (!(vp->flags & VUNSET) && show_value) {
563 struct var *vp;
579 vp = find_var(name, NULL, NULL);
580 if (vp != NULL) {
581 vp->flags |= flag;
621 struct var *vp;
629 vp = NULL;
631 vp = find_var(name, &vpp, NULL);
632 if (vp == NULL) {
637 vp = *vpp; /* the new variable */
641 lvp->text = vp->text;
642 lvp->flags = vp->flags;
643 vp->flags |= VSTRFIXED|VTEXTFIXED;
644 if (name[vp->name_len] == '=')
648 lvp->vp = vp;
663 struct var *vp;
667 vp = lvp->vp;
668 TRACE(("poplocalvar %s", vp ? vp->text : "-"));
669 if (vp == NULL) { /* $- saved */
673 (void)unsetvar(vp->text, 0);
675 if (vp->func && (vp->flags & VNOFUNC) == 0)
676 (*vp->func)(lvp->text + vp->name_len + 1);
677 if ((vp->flags & VTEXTFIXED) == 0)
678 ckfree(vp->text);
679 vp->flags = lvp->flags;
680 vp->text = lvp->text;
742 struct var *vp;
744 vp = find_var(s, &vpp, NULL);
745 if (vp == NULL)
748 if (vp->flags & VREADONLY)
753 vp->flags &= ~VEXPORT;
755 if (vp->text[vp->name_len + 1] != '\0')
757 vp->flags &= ~VEXPORT;
758 vp->flags |= VUNSET;
759 if ((vp->flags & VSTRFIXED) == 0) {
760 if ((vp->flags & VTEXTFIXED) == 0)
761 ckfree(vp->text);
762 *vpp = vp->next;
763 ckfree(vp);
792 * vppp is set to the pointer to vp, or the list head if vp isn't found
801 struct var *vp, **vpp;
815 for (vp = *vpp ; vp ; vpp = &vp->next, vp = *vpp) {
816 if (vp->name_len != len)
818 if (memcmp(vp->text, name, len) != 0)
822 return vp;