From 9c1225f73511b59dd74273545fac401d711cea36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Fri, 19 Sep 2014 19:34:07 +0200 Subject: Modify multicheck to accept parent parameter. This makes it possible for multicheck to become a tree-like structure. Example: arg {number=4}{call=--devices}{display=Devices}{tooltip=Device selector}{type=multicheck} value {arg=4}{value=dev1}{display=Parent Device}{enabled=t}{default=t} value {arg=4}{value=dev2}{display=Child Device}{parent=dev1}{enabled=t} value {arg=4}{value=dev3}{display=Another Parent Device}{enabled=t} value {arg=4}{value=dev4}{display=Non-clickable Child Device}{parent=dev3} value {arg=4}{value=dev5}{display=Non-clickable Child of Child}{parent=dev4} Change-Id: I59dd7208ca0ec90cccfc49ae049559cdc6c69a4b Reviewed-on: https://code.wireshark.org/review/4192 Petri-Dish: Pascal Quantin Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall Reviewed-by: Pascal Quantin --- extcap_parser.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'extcap_parser.c') diff --git a/extcap_parser.c b/extcap_parser.c index 29c9b9de9a..3e239702e3 100644 --- a/extcap_parser.c +++ b/extcap_parser.c @@ -342,6 +342,8 @@ extcap_token_sentence *extcap_tokenize_sentence(const gchar *s) { tv->param_type = EXTCAP_PARAM_NAME; } else if (g_ascii_strcasecmp(tv->arg, "enabled") == 0) { tv->param_type = EXTCAP_PARAM_ENABLED; + } else if (g_ascii_strcasecmp(tv->arg, "parent") == 0) { + tv->param_type = EXTCAP_PARAM_PARENT; } else { tv->param_type = EXTCAP_PARAM_UNKNOWN; } @@ -681,6 +683,7 @@ extcap_arg *extcap_parse_arg_sentence(GList * args, extcap_token_sentence *s) { value->enabled = FALSE; value->is_default = FALSE; value->arg_num = tint; + value->parent = NULL; if ((v = extcap_find_param_by_type(s->param_list, EXTCAP_PARAM_VALUE)) == NULL) { @@ -698,6 +701,11 @@ extcap_arg *extcap_parse_arg_sentence(GList * args, extcap_token_sentence *s) { } value->display = g_strdup(v->value); + if ((v = extcap_find_param_by_type(s->param_list, EXTCAP_PARAM_PARENT)) + != NULL) { + value->parent = g_strdup(v->value); + } + if ((v = extcap_find_param_by_type(s->param_list, EXTCAP_PARAM_DEFAULT)) != NULL) { /* printf("found default value\n"); */ -- cgit v1.2.3