Skip to content

Commit

Permalink
Merge pull request #190 from jow-/uci-changes-load-package
Browse files Browse the repository at this point in the history
uci: refactor uci.changes() to match documentation
  • Loading branch information
jow- authored Feb 21, 2024
2 parents 39109a9 + a275399 commit 7076944
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions lib/uci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1574,12 +1574,12 @@ change_to_uval(uc_vm_t *vm, struct uci_delta *d)
}

static uc_value_t *
changes_to_uval(uc_vm_t *vm, struct uci_context *ctx, const char *package)
changes_to_uval(uc_vm_t *vm, struct uci_context *ctx, const char *package,
bool unload)
{
uc_value_t *a = NULL, *c;
struct uci_package *p = NULL;
struct uci_element *e;
bool unload = false;

uci_foreach_element(&ctx->root, e) {
if (strcmp(e->name, package))
Expand All @@ -1588,10 +1588,10 @@ changes_to_uval(uc_vm_t *vm, struct uci_context *ctx, const char *package)
p = uci_to_package(e);
}

if (!p) {
unload = true;
if (!p)
uci_load(ctx, package, &p);
}
else
unload = false;

if (!p)
return NULL;
Expand Down Expand Up @@ -1631,7 +1631,8 @@ changes_to_uval(uc_vm_t *vm, struct uci_context *ctx, const char *package)
* delta directory and yet unsaved cursor changes.
*
* When the optional "config" parameter is specified, the requested
* configuration is implicitly loaded if it not already loaded into the cursor.
* configuration is implicitly loaded if it is not already loaded into the
* cursor.
*
* Returns a dictionary of change record arrays, keyed by configuration name.
*
Expand Down Expand Up @@ -1678,7 +1679,7 @@ uc_uci_changes(uc_vm_t *vm, size_t nargs)
if (conf && strcmp(configs[i], ucv_string_get(conf)))
continue;

chg = changes_to_uval(vm, *c, configs[i]);
chg = changes_to_uval(vm, *c, configs[i], !conf);

if (chg)
ucv_object_add(res, configs[i], chg);
Expand Down

0 comments on commit 7076944

Please sign in to comment.