diff --git a/CHANGELOG.md b/CHANGELOG.md index d8192326..f924454b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -106,6 +106,7 @@ Users may have to change how they access the system ### Corrected Bugs +* Fixed: Autocli YANG patterns including `"` were not properly escaped: `\"` * Ensure auto-cli can be run with `CLICON_CLI_VARONLY=1` * Strip constants in cli_dbxml * rpc_callback_call(): Check if nrp parameter is NULL to avoid SEGV diff --git a/apps/cli/cli_generate.c b/apps/cli/cli_generate.c index 8cc9e462..16049c4a 100644 --- a/apps/cli/cli_generate.c +++ b/apps/cli/cli_generate.c @@ -332,6 +332,7 @@ yang2cli_var_range(yang_stmt *ys, * @param[in] patterns Cvec of regexp patterns * @param[out] cb Buffer where cligen code is written * @see cv_validate_pattern for netconf validate code + * @note for cligen, need to escape " -> \" */ static int yang2cli_var_pattern(clicon_handle h, @@ -343,32 +344,43 @@ yang2cli_var_pattern(clicon_handle h, cg_var *cvp; char *pattern; int invert; - char *posix; + char *posix = NULL; + int i; mode = clicon_yang_regexp(h); cvp = NULL; /* Loop over compiled regexps */ while ((cvp = cvec_each(patterns, cvp)) != NULL){ pattern = cv_string_get(cvp); invert = cv_flag(cvp, V_INVERT); + cprintf(cb, " regexp:%s\"", invert?"!":""); if (mode == REGEXP_POSIX){ posix = NULL; if (regexp_xsd2posix(pattern, &posix) < 0) goto done; - cprintf(cb, " regexp:%s\"%s\"", - invert?"!":"", - posix); + for (i=0; i false - kw-key + kw-nokey false list container true diff --git a/test/test_openconfig_network_instance.sh b/test/test_openconfig_network_instance.sh index 648a38ce..9bee3214 100755 --- a/test/test_openconfig_network_instance.sh +++ b/test/test_openconfig_network_instance.sh @@ -42,7 +42,7 @@ cat < $cfg openconfig1 enable - openconfig-bgp + clixon-example openconfig2 @@ -70,13 +70,6 @@ EOF # Example system cat < $dir/startup_db - - - - 0 /* XXX */ - - - default