Lines Matching full:ev
45 struct env_var *ev; in env_getenv() local
47 for (ev = environ; ev != NULL; ev = ev->ev_next) in env_getenv()
48 if (!strcmp(ev->ev_name, name)) in env_getenv()
50 return (ev); in env_getenv()
65 struct env_var *ev, *curr, *last; in env_setenv() local
67 if ((ev = env_getenv(name)) != NULL) { in env_setenv()
77 ev->ev_flags &= ~EV_NOKENV; in env_setenv()
83 if ((ev->ev_sethook != NULL) && !(flags & EV_NOHOOK)) in env_setenv()
84 return (ev->ev_sethook(ev, flags, value)); in env_setenv()
87 if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) in env_setenv()
88 free(ev->ev_value); in env_setenv()
89 ev->ev_value = NULL; in env_setenv()
90 ev->ev_flags &= ~EV_DYNAMIC; in env_setenv()
96 ev = malloc(sizeof(struct env_var)); in env_setenv()
97 ev->ev_name = strdup(name); in env_setenv()
98 ev->ev_value = NULL; in env_setenv()
99 ev->ev_flags = 0; in env_setenv()
101 ev->ev_sethook = sethook; in env_setenv()
102 ev->ev_unsethook = unsethook; in env_setenv()
105 ev->ev_prev = NULL; in env_setenv()
106 ev->ev_next = NULL; in env_setenv()
111 if (strcmp(ev->ev_name, curr->ev_name) < 0) { in env_setenv()
113 curr->ev_prev->ev_next = ev; in env_setenv()
115 environ = ev; in env_setenv()
117 ev->ev_next = curr; in env_setenv()
118 ev->ev_prev = curr->ev_prev; in env_setenv()
119 curr->ev_prev = ev; in env_setenv()
125 environ = ev; in env_setenv()
127 last->ev_next = ev; in env_setenv()
128 ev->ev_prev = last; in env_setenv()
135 ev->ev_value = strdup(value); in env_setenv()
138 ev->ev_value = (char *)value; in env_setenv()
141 ev->ev_flags |= flags & (EV_DYNAMIC | EV_NOKENV); in env_setenv()
150 struct env_var *ev; in getenv() local
153 if ((ev = env_getenv(name)) != NULL) { in getenv()
154 if (ev->ev_value != NULL) in getenv()
155 return (ev->ev_value); in getenv()
187 struct env_var *ev; in unsetenv() local
191 if ((ev = env_getenv(name)) == NULL) { in unsetenv()
194 if (ev->ev_unsethook != NULL) in unsetenv()
195 err = ev->ev_unsethook(ev); in unsetenv()
197 env_discard(ev); in unsetenv()
204 env_discard(struct env_var *ev) in env_discard() argument
206 if (ev->ev_prev) in env_discard()
207 ev->ev_prev->ev_next = ev->ev_next; in env_discard()
208 if (ev->ev_next) in env_discard()
209 ev->ev_next->ev_prev = ev->ev_prev; in env_discard()
210 if (environ == ev) in env_discard()
211 environ = ev->ev_next; in env_discard()
212 free(ev->ev_name); in env_discard()
213 if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0) in env_discard()
214 free(ev->ev_value); in env_discard()
215 free(ev); in env_discard()
219 env_noset(struct env_var *ev __unused, int flags __unused, in env_noset()
226 env_nounset(struct env_var *ev __unused) in env_nounset()