diff options
author | Felix Fietkau <nbd@pi.lan> | 2008-08-22 20:17:09 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@pi.lan> | 2008-08-22 20:17:09 +0200 |
commit | 9efd0d9456d1822cb93b4ce1cc769b09a400852d (patch) | |
tree | 42d946fecf8d9bbe58a4e3e740484db50b9ff400 | |
parent | 563f8dd6f0eb56780a00f5856bf7fcf40e39d845 (diff) | |
download | uci-9efd0d9456d1822cb93b4ce1cc769b09a400852d.tar.gz |
cleanup, fix rename
-rw-r--r-- | cli.c | 16 | ||||
-rw-r--r-- | list.c | 5 |
2 files changed, 7 insertions, 14 deletions
@@ -187,13 +187,7 @@ static int package_cmd(int cmd, char *tuple) return 1; } - if (ptr.o) - e = &ptr.o->e; - else if (ptr.s) - e = &ptr.s->e; - else - e = &ptr.p->e; - + e = ptr.last; switch(cmd) { case CMD_CHANGES: uci_show_changes(ptr.p); @@ -341,13 +335,7 @@ static int uci_do_section_cmd(int cmd, int argc, char **argv) if (ptr.value && (cmd != CMD_SET) && (cmd != CMD_ADD_LIST) && (cmd != CMD_RENAME)) return 1; - if (ptr.o) - e = &ptr.o->e; - else if (ptr.s) - e = &ptr.s->e; - else - e = &ptr.p->e; - + e = ptr.last; switch(cmd) { case CMD_GET: switch(e->type) { @@ -350,6 +350,7 @@ error: UCI_THROW(ctx, UCI_ERR_INVAL); done: free(section); + ptr->section = e->name; return e; } @@ -371,8 +372,10 @@ int uci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str, bool UCI_INTERNAL(uci_load, ctx, ptr->package, &ptr->p); if (!ptr->p) goto notfound; + ptr->last = &ptr->p->e; } else { ptr->p = uci_to_package(e); + ptr->last = e; } if (!ptr->section) @@ -388,6 +391,7 @@ int uci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str, bool if (!e) goto abort; + ptr->last = e; ptr->s = uci_to_section(e); if (ptr->option) { @@ -396,6 +400,7 @@ int uci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str, bool goto abort; ptr->o = uci_to_option(e); + ptr->last = e; } complete: |