Skip to content

Commit 762c8b7

Browse files
committed
print BUGFIX do not trim containers with non-default values
Fixes #570
1 parent e6ee035 commit 762c8b7

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

src/printer.c

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,12 +467,34 @@ lyd_wd_toprint(const struct lyd_node *node, int options)
467467
if (elem->dflt) {
468468
/* skip subtree */
469469
goto trim_dfs_nextsibling;
470-
} else if (elem->schema->nodetype & (LYS_LEAF | LYS_LEAFLIST)) {
470+
}
471+
switch (elem->schema->nodetype) {
472+
case LYS_LEAF:
473+
case LYS_LEAFLIST:
471474
if (!lyd_wd_default((struct lyd_node_leaf_list *)elem)) {
472475
/* non-default node */
473476
flag = 1;
474-
break;
475477
}
478+
break;
479+
case LYS_ANYDATA:
480+
case LYS_ANYXML:
481+
case LYS_NOTIF:
482+
case LYS_ACTION:
483+
case LYS_LIST:
484+
/* non-default nodes */
485+
flag = 1;
486+
break;
487+
case LYS_CONTAINER:
488+
if (((struct lys_node_container *)elem->schema)->presence) {
489+
/* non-default node */
490+
flag = 1;
491+
}
492+
break;
493+
default:
494+
break;
495+
}
496+
if (flag) {
497+
break;
476498
}
477499

478500
/* modified LY_TREE_DFS_END */

0 commit comments

Comments
 (0)