- value = strchr(argv[1], '=');
- if (value) {
- *value = 0;
- value++;
- if (!uci_validate_text(value))
- return 1;
- }
-
- str = strdup(argv[1]);
- if (!str)
- return 1;
-
- if (value && (cmd != CMD_SET) && (cmd != CMD_ADD_LIST) && (cmd != CMD_RENAME))
- return 1;
-
- if (uci_parse_tuple(ctx, str, &package, §ion, &option, NULL) != UCI_OK) {
- cli_perror();
- return 1;
- }
- sprintf(argv[1], "%s.%s", package, section);
- free(str);
-
- if (uci_lookup_ext(ctx, &e, argv[1]) != UCI_OK) {
+ if (uci_lookup_ptr(ctx, &ptr, argv[1], true) != UCI_OK) {