diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-08-03 22:08:10 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-08-03 22:08:10 +0200 |
commit | d5d6724805fa7df9cb74d9b05a4eb3bf10d1997c (patch) | |
tree | 1f92a4b5924863c47ec71628ff0f68c2f76b451a /sys/src/9/port/devenv.c | |
parent | 37e4ce0ea75ae0e9a71d773d7fc7f16fd3d64fe7 (diff) |
devenv: simplify envremove(), cleanup
Diffstat (limited to 'sys/src/9/port/devenv.c')
-rw-r--r-- | sys/src/9/port/devenv.c | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/sys/src/9/port/devenv.c b/sys/src/9/port/devenv.c index 8c3e3bd63..728df1f47 100644 --- a/sys/src/9/port/devenv.c +++ b/sys/src/9/port/devenv.c @@ -192,27 +192,23 @@ static void envremove(Chan *c) { Egrp *eg; - Evalue *e, *ee; + Evalue *e; if(c->qid.type & QTDIR || !envwriteable(c)) error(Eperm); eg = envgrp(c); wlock(eg); - e = eg->ent; - for(ee = e + eg->nent; e < ee; e++){ - if(e->qid.path == c->qid.path){ - free(e->name); - free(e->value); - *e = ee[-1]; - eg->nent--; - eg->vers++; - wunlock(eg); - return; - } + e = envlookup(eg, nil, c->qid.path); + if(e == nil){ + wunlock(eg); + error(Enonexist); } + free(e->name); + free(e->value); + *e = eg->ent[--eg->nent]; + eg->vers++; wunlock(eg); - error(Enonexist); } static void @@ -416,7 +412,7 @@ getconfenv(void) /* determine size */ n = 0; e = eg->ent; - for(ee = e+eg->nent; e<ee; e++) + for(ee = e + eg->nent; e < ee; e++) n += strlen(e->name) + e->len + 2; p = malloc(n + 1); |