From 7ada0b665433d5eec84993f35ac5a6b8f934bfca Mon Sep 17 00:00:00 2001 From: An-Cheng Huang Date: Tue, 18 Jan 2011 15:55:42 -0800 Subject: have caller handle edit level for context diff --- src/cli_shell_api.cpp | 4 +++- src/cnode/cnode-algorithm.cpp | 7 ++++--- src/cnode/cnode-algorithm.hpp | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/cli_shell_api.cpp b/src/cli_shell_api.cpp index c04cf16..6546480 100644 --- a/src/cli_shell_api.cpp +++ b/src/cli_shell_api.cpp @@ -391,7 +391,9 @@ showCfg(Cstore& cstore, const vector& args) // just show the working config (no diff) cnode::show_cfg(wroot, op_show_show_defaults, op_show_hide_secrets); } else { - cnode::show_cfg_diff(aroot, wroot, op_show_show_defaults, + vector cur_path; + cstore.getEditLevel(cur_path); + cnode::show_cfg_diff(aroot, wroot, cur_path, op_show_show_defaults, op_show_hide_secrets, op_show_context_diff); } } diff --git a/src/cnode/cnode-algorithm.cpp b/src/cnode/cnode-algorithm.cpp index 526a218..fbb26e9 100644 --- a/src/cnode/cnode-algorithm.cpp +++ b/src/cnode/cnode-algorithm.cpp @@ -820,7 +820,8 @@ _print_cmds_list(const char *op, vector >& list) ////// algorithms void -cnode::show_cfg_diff(const CfgNode& cfg1, const CfgNode& cfg2, bool show_def, +cnode::show_cfg_diff(const CfgNode& cfg1, const CfgNode& cfg2, + vector& cur_path, bool show_def, bool hide_secret, bool context_diff) { if (cfg1.isInvalid() || cfg2.isInvalid()) { @@ -832,14 +833,14 @@ cnode::show_cfg_diff(const CfgNode& cfg1, const CfgNode& cfg2, bool show_def, printf("Configuration under specified path is empty\n"); return; } - vector cur_path; _show_diff(&cfg1, &cfg2, -1, cur_path, show_def, hide_secret, context_diff); } void cnode::show_cfg(const CfgNode& cfg, bool show_def, bool hide_secret) { - show_cfg_diff(cfg, cfg, show_def, hide_secret); + vector cur_path; + show_cfg_diff(cfg, cfg, cur_path, show_def, hide_secret); } void diff --git a/src/cnode/cnode-algorithm.hpp b/src/cnode/cnode-algorithm.hpp index 8837054..4b1ec2f 100644 --- a/src/cnode/cnode-algorithm.hpp +++ b/src/cnode/cnode-algorithm.hpp @@ -22,6 +22,7 @@ namespace cnode { void show_cfg_diff(const CfgNode& cfg1, const CfgNode& cfg2, + vector& cur_path, bool show_def = false, bool hide_secret = false, bool context_diff = false); void show_cfg(const CfgNode& cfg, bool show_def = false, -- cgit v1.2.3