X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=delta.c;h=082633b1c2ccd75f6889efe7c46e19091c8b7f4f;hp=32628dcb719c11a4934f780e72fbfffb15c981e2;hb=f8f9decc545a7e9fc7b4c92534f4bf2b1db4a4f0;hpb=553046dfa92cd4e0c2d16c25a80deba38d4c9ded diff --git a/delta.c b/delta.c index 32628dc..082633b 100644 --- a/delta.c +++ b/delta.c @@ -471,8 +471,19 @@ int uci_save(struct uci_context *ctx, struct uci_package *p) 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); }