Lines Matching defs:vp

179 	struct var *vp;
182 for (ip = varinit ; (vp = ip->var) != NULL ; ip++) {
183 if (find_var(ip->text, &vpp, &vp->name_len) != NULL)
185 vp->next = *vpp;
186 *vpp = vp;
187 vp->text = __DECONST(char *, ip->text);
188 vp->flags = ip->flags | VSTRFIXED | VTEXTFIXED;
189 vp->func = ip->func;
333 struct var *vp, **vpp;
340 vp = find_var(s, &vpp, &nlen);
341 if (vp != NULL) {
342 if (vp->flags & VREADONLY) {
345 error("%.*s: is read only", vp->name_len, s);
354 if (vp->func && (flags & VNOFUNC) == 0)
355 (*vp->func)(s + vp->name_len + 1);
357 if ((vp->flags & (VTEXTFIXED|VSTACK)) == 0)
358 ckfree(vp->text);
360 vp->flags &= ~(VTEXTFIXED|VSTACK|VUNSET);
361 vp->flags |= flags;
362 vp->text = s;
372 if ((vp == &vmpath || (vp == &vmail && ! mpathset())) &&
375 if ((vp->flags & VEXPORT) && localevar(s)) {
390 vp = ckmalloc(sizeof (*vp));
391 vp->flags = flags;
392 vp->text = s;
393 vp->name_len = nlen;
394 vp->next = *vpp;
395 vp->func = NULL;
396 *vpp = vp;
397 if ((vp->flags & VEXPORT) && localevar(s)) {
558 struct var *vp;
563 for (vp = *vpp ; vp ; vp = vp->next)
564 if (vp->flags & VEXPORT)
569 for (vp = *vpp ; vp ; vp = vp->next)
570 if (vp->flags & VEXPORT)
571 *ep++ = vp->text;
603 struct var *vp;
613 for (vp = *vpp; vp; vp = vp->next) {
614 if (!(vp->flags & VUNSET))
623 for (vp = *vpp; vp; vp = vp->next) {
624 if (!(vp->flags & VUNSET))
625 vars[i++] = vp->text;
659 struct var *vp;
690 vp = find_var(name, NULL, NULL);
691 if (vp != NULL) {
692 vp->flags |= flag;
693 if ((vp->flags & VEXPORT) && localevar(vp->text)) {
694 change_env(vp->text, 1);
705 for (vp = *vpp ; vp ; vp = vp->next) {
706 if (vp->flags & flag) {
713 if (!isassignment(vp->text))
718 if (values && !(vp->flags & VUNSET)) {
719 outbin(vp->text,
720 vp->name_len + 1, out1);
721 out1qstr(vp->text +
722 vp->name_len + 1);
724 outbin(vp->text, vp->name_len,
765 struct var *vp;
772 vp = NULL;
774 vp = find_var(name, &vpp, NULL);
775 if (vp == NULL) {
780 vp = *vpp; /* the new variable */
784 lvp->text = vp->text;
785 lvp->flags = vp->flags;
786 vp->flags |= VSTRFIXED|VTEXTFIXED;
787 if (name[vp->name_len] == '=')
791 lvp->vp = vp;
806 struct var *vp;
811 vp = lvp->vp;
812 if (vp == NULL) { /* $- saved */
817 (void)unsetvar(vp->text);
819 if ((vp->flags & VTEXTFIXED) == 0)
820 ckfree(vp->text);
821 vp->flags = lvp->flags;
822 vp->text = lvp->text;
886 struct var *vp;
888 vp = find_var(s, &vpp, NULL);
889 if (vp == NULL)
891 if (vp->flags & VREADONLY)
893 if (vp->text[vp->name_len + 1] != '\0')
895 if ((vp->flags & VEXPORT) && localevar(vp->text)) {
900 vp->flags &= ~VEXPORT;
901 vp->flags |= VUNSET;
902 if ((vp->flags & VSTRFIXED) == 0) {
903 if ((vp->flags & VTEXTFIXED) == 0)
904 ckfree(vp->text);
905 *vpp = vp->next;
906 ckfree(vp);
934 * vppp is set to the pointer to vp, or the list head if vp isn't found
943 struct var *vp, **vpp;
957 for (vp = *vpp ; vp ; vpp = &vp->next, vp = *vpp) {
958 if (vp->name_len != len)
960 if (memcmp(vp->text, name, len) != 0)
964 return vp;