UCI_HANDLE_ERR(ctx);
UCI_ASSERT(ctx, dir != NULL);
+ if (!strcmp(dir, ctx->savedir))
+ return -1;
e = uci_alloc_generic(ctx, UCI_TYPE_PATH, dir, sizeof(struct uci_element));
uci_list_add(&ctx->delta_path, &e->list);
if (h->cmd == UCI_CMD_REMOVE && !h->value)
fprintf(f, "\n");
- else
- fprintf(f, "=%s\n", h->value);
+ else {
+ int i;
+
+ fprintf(f, "='");
+ for (i = 0; h->value[i]; i++) {
+ unsigned char c = h->value[i];
+ if (c != '\'')
+ fputc(c, f);
+ else
+ fprintf(f, "'\\''");
+ }
+ fprintf(f, "'\n");
+ }
uci_free_delta(h);
}