Lines Matching refs:ev

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