summaryrefslogtreecommitdiff
path: root/delta.c
diff options
context:
space:
mode:
authorLuka Perkov <openwrt@lukaperkov.net>2012-11-09 11:40:10 +0100
committerFelix Fietkau <nbd@openwrt.org>2012-11-09 11:40:10 +0100
commitec8cbbbe0f20e67cbd3bd471b9ac55ceacaef7b8 (patch)
tree1d0abef96830dfd00813aaeb8e390ff97302dd5d /delta.c
parent2e90d2637abcbea12f5f4070be7a158fb4637604 (diff)
downloaduci-ec8cbbbe0f20e67cbd3bd471b9ac55ceacaef7b8.tar.gz
add new command del_list
Diffstat (limited to 'delta.c')
-rw-r--r--delta.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/delta.c b/delta.c
index 24784f8..0a24f31 100644
--- a/delta.c
+++ b/delta.c
@@ -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;
}