From 9efd0d9456d1822cb93b4ce1cc769b09a400852d Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 22 Aug 2008 20:17:09 +0200 Subject: [PATCH 1/1] cleanup, fix rename --- cli.c | 16 ++-------------- list.c | 5 +++++ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/cli.c b/cli.c index 5a260ef..290dcbf 100644 --- a/cli.c +++ b/cli.c @@ -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) { diff --git a/list.c b/list.c index e770234..98a6e28 100644 --- a/list.c +++ b/list.c @@ -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: -- 2.11.0