Lines Matching refs:ev

40 static void	env_discard(struct env_var *ev);
50 struct env_var *ev;
52 for (ev = environ; ev != NULL; ev = ev->ev_next)
53 if (!strcmp(ev->ev_name, name))
55 return(ev);
70 struct env_var *ev, *curr, *last;
72 if ((ev = env_getenv(name)) != NULL) {
77 if ((ev->ev_sethook != NULL) && !(flags & EV_NOHOOK))
78 return(ev->ev_sethook(ev, flags, value));
84 ev = malloc(sizeof(struct env_var));
85 ev->ev_name = strdup(name);
86 ev->ev_value = NULL;
88 ev->ev_sethook = sethook;
89 ev->ev_unsethook = unsethook;
92 ev->ev_prev = NULL;
93 ev->ev_next = NULL;
99 if (strcmp(ev->ev_name, curr->ev_name) < 0) {
101 curr->ev_prev->ev_next = ev;
103 environ = ev;
105 ev->ev_next = curr;
106 ev->ev_prev = curr->ev_prev;
107 curr->ev_prev = ev;
113 environ = ev;
115 last->ev_next = ev;
116 ev->ev_prev = last;
122 if (ev->ev_value != NULL)
123 free(ev->ev_value);
127 ev->ev_value = strdup(value);
129 ev->ev_value = (char *)value;
133 ev->ev_flags = flags & (EV_DYNAMIC);
141 struct env_var *ev;
144 if ((ev = env_getenv(name)) != NULL) {
145 if (ev->ev_value != NULL)
146 return(ev->ev_value);
178 struct env_var *ev;
182 if ((ev = env_getenv(name)) == NULL) {
185 if (ev->ev_unsethook != NULL)
186 err = ev->ev_unsethook(ev);
188 env_discard(ev);
195 env_discard(struct env_var *ev)
197 if (ev->ev_prev)
198 ev->ev_prev->ev_next = ev->ev_next;
199 if (ev->ev_next)
200 ev->ev_next->ev_prev = ev->ev_prev;
201 if (environ == ev)
202 environ = ev->ev_next;
203 free(ev->ev_name);
204 if (ev->ev_flags & EV_DYNAMIC)
205 free(ev->ev_value);
206 free(ev);
210 env_noset(struct env_var *ev __unused, int flags __unused,
217 env_nounset(struct env_var *ev __unused)