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));
81 if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0)
82 free(ev->ev_value);
83 ev->ev_value = NULL;
84 ev->ev_flags &= ~EV_DYNAMIC;
91 ev = malloc(sizeof(struct env_var));
92 ev->ev_name = strdup(name);
93 ev->ev_value = NULL;
94 ev->ev_flags = 0;
96 ev->ev_sethook = sethook;
97 ev->ev_unsethook = unsethook;
100 ev->ev_prev = NULL;
101 ev->ev_next = NULL;
107 if (strcmp(ev->ev_name, curr->ev_name) < 0) {
109 curr->ev_prev->ev_next = ev;
111 environ = ev;
113 ev->ev_next = curr;
114 ev->ev_prev = curr->ev_prev;
115 curr->ev_prev = ev;
121 environ = ev;
123 last->ev_next = ev;
124 ev->ev_prev = last;
131 ev->ev_value = strdup(value);
132 ev->ev_flags |= EV_DYNAMIC;
134 ev->ev_value = (char *)value;
135 ev->ev_flags |= flags & EV_DYNAMIC;
144 struct env_var *ev;
147 if ((ev = env_getenv(name)) != NULL) {
148 if (ev->ev_value != NULL)
149 return(ev->ev_value);
181 struct env_var *ev;
185 if ((ev = env_getenv(name)) == NULL) {
188 if (ev->ev_unsethook != NULL)
189 err = ev->ev_unsethook(ev);
191 env_discard(ev);
198 env_discard(struct env_var *ev)
200 if (ev->ev_prev)
201 ev->ev_prev->ev_next = ev->ev_next;
202 if (ev->ev_next)
203 ev->ev_next->ev_prev = ev->ev_prev;
204 if (environ == ev)
205 environ = ev->ev_next;
206 free(ev->ev_name);
207 if (ev->ev_value != NULL && (ev->ev_flags & EV_DYNAMIC) != 0)
208 free(ev->ev_value);
209 free(ev);
213 env_noset(struct env_var *ev __unused, int flags __unused,
220 env_nounset(struct env_var *ev __unused)