summaryrefslogtreecommitdiff
path: root/sys/src/9/port/devenv.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-08-03 22:08:10 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2015-08-03 22:08:10 +0200
commitd5d6724805fa7df9cb74d9b05a4eb3bf10d1997c (patch)
tree1f92a4b5924863c47ec71628ff0f68c2f76b451a /sys/src/9/port/devenv.c
parent37e4ce0ea75ae0e9a71d773d7fc7f16fd3d64fe7 (diff)
devenv: simplify envremove(), cleanup
Diffstat (limited to 'sys/src/9/port/devenv.c')
-rw-r--r--sys/src/9/port/devenv.c24
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);