diff options
author | Luka Perkov <openwrt@lukaperkov.net> | 2012-11-09 11:40:10 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-11-09 11:40:10 +0100 |
commit | ec8cbbbe0f20e67cbd3bd471b9ac55ceacaef7b8 (patch) | |
tree | 1d0abef96830dfd00813aaeb8e390ff97302dd5d /delta.c | |
parent | 2e90d2637abcbea12f5f4070be7a158fb4637604 (diff) | |
download | uci-ec8cbbbe0f20e67cbd3bd471b9ac55ceacaef7b8.tar.gz |
add new command del_list
Diffstat (limited to 'delta.c')
-rw-r--r-- | delta.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -114,6 +114,9 @@ static inline int uci_parse_delta_tuple(struct uci_context *ctx, char **buf, str case '|': c = UCI_CMD_LIST_ADD; break; + case '_': + c = UCI_CMD_LIST_DEL; + break; } if (c != UCI_CMD_CHANGE) @@ -138,6 +141,9 @@ static inline int uci_parse_delta_tuple(struct uci_context *ctx, char **buf, str case UCI_CMD_LIST_ADD: if (!ptr->option) goto error; + case UCI_CMD_LIST_DEL: + if (!ptr->option) + goto error; } return c; @@ -176,6 +182,9 @@ static void uci_parse_delta_line(struct uci_context *ctx, struct uci_package *p, case UCI_CMD_LIST_ADD: UCI_INTERNAL(uci_add_list, ctx, &ptr); break; + case UCI_CMD_LIST_DEL: + UCI_INTERNAL(uci_del_list, ctx, &ptr); + break; case UCI_CMD_ADD: case UCI_CMD_CHANGE: UCI_INTERNAL(uci_set, ctx, &ptr); @@ -460,6 +469,9 @@ int uci_save(struct uci_context *ctx, struct uci_package *p) case UCI_CMD_LIST_ADD: prefix = "|"; break; + case UCI_CMD_LIST_DEL: + prefix = "_"; + break; default: break; } |