* Replaced separate autocli trees with a single @basemodel tree by using filter labels

* Added lastkey argument to yang_key_match()
* Fixed segv in process-sigchld
* Added ietf-yang-library to CLICON_CLI_AUTOCLI_EXCLUDE default value
* Added yang_spec_print() function
This commit is contained in:
Olof hagsand 2021-12-15 14:23:05 +01:00
parent 87d243d7e5
commit f8f34e3571
17 changed files with 666 additions and 192 deletions

View file

@ -272,7 +272,7 @@ xml2cli_recurse(FILE *f,
if (yang_keyword_get(ys) == Y_LIST){
xe = NULL;
while ((xe = xml_child_each(x, xe, -1)) != NULL){
if ((match = yang_key_match(ys, xml_name(xe))) < 0)
if ((match = yang_key_match(ys, xml_name(xe), NULL)) < 0)
goto done;
if (!match)
continue;
@ -301,7 +301,7 @@ xml2cli_recurse(FILE *f,
xe = NULL;
while ((xe = xml_child_each(x, xe, -1)) != NULL){
if (yang_keyword_get(ys) == Y_LIST){
if ((match = yang_key_match(ys, xml_name(xe))) < 0)
if ((match = yang_key_match(ys, xml_name(xe), NULL)) < 0)
goto done;
if (match){
(*fn)(f, "%s\n", cbuf_get(cbpre));
@ -730,7 +730,7 @@ xml_tree_prune_flagged_sub(cxobj *xt,
}
/* If it is key dont remove it yet (see second round) */
if (yt){
if ((iskey = yang_key_match(yt, xml_name(x))) < 0)
if ((iskey = yang_key_match(yt, xml_name(x), NULL)) < 0)
goto done;
if (iskey){
anykey++;
@ -758,7 +758,7 @@ xml_tree_prune_flagged_sub(cxobj *xt,
while ((x = xml_child_each(xt, x, CX_ELMNT)) != NULL) {
/* If it is key remove it here */
if (yt){
if ((iskey = yang_key_match(yt, xml_name(x))) < 0)
if ((iskey = yang_key_match(yt, xml_name(x), NULL)) < 0)
goto done;
if (iskey && xml_purge(x) < 0)
goto done;
@ -2166,7 +2166,7 @@ xml_copy_marked(cxobj *x0,
* node in list is marked */
if (mark && yt && yang_keyword_get(yt) == Y_LIST){
/* XXX: I think yang_key_match is suboptimal here */
if ((iskey = yang_key_match(yt, name)) < 0)
if ((iskey = yang_key_match(yt, name, NULL)) < 0)
goto done;
if (iskey){
if ((xcopy = xml_new(name, x1, CX_ELMNT)) == NULL)