yanglint REFACTOR setting of --make-implemented
diff --git a/tools/lint/cmd_add.c b/tools/lint/cmd_add.c
index 3904c7a..744ea80 100644
--- a/tools/lint/cmd_add.c
+++ b/tools/lint/cmd_add.c
@@ -94,12 +94,7 @@
return 1;
case 'i': /* --make-implemented */
- if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
- yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
- yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
- } else {
- yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
- }
+ yo_opt_update_make_implemented(yo);
break;
case 'X': /* --extended-leafref */
diff --git a/tools/lint/cmd_load.c b/tools/lint/cmd_load.c
index bcd23d4..fe56d84 100644
--- a/tools/lint/cmd_load.c
+++ b/tools/lint/cmd_load.c
@@ -77,12 +77,7 @@
return 1;
case 'i': /* --make-implemented */
- if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
- yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
- yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
- } else {
- yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
- }
+ yo_opt_update_make_implemented(yo);
break;
case 'X': /* --extended-leafref */
diff --git a/tools/lint/main_ni.c b/tools/lint/main_ni.c
index 3057366..40e4df8 100644
--- a/tools/lint/main_ni.c
+++ b/tools/lint/main_ni.c
@@ -568,12 +568,7 @@
break;
case 'i': /* --make-implemented */
- if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
- yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
- yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
- } else {
- yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
- }
+ yo_opt_update_make_implemented(yo);
break;
case 'P': /* --schema-node */
diff --git a/tools/lint/yl_opt.c b/tools/lint/yl_opt.c
index 71492b2..1d21eb8 100644
--- a/tools/lint/yl_opt.c
+++ b/tools/lint/yl_opt.c
@@ -235,6 +235,17 @@
}
void
+yo_opt_update_make_implemented(struct yl_opt *yo)
+{
+ if (yo->ctx_options & LY_CTX_REF_IMPLEMENTED) {
+ yo->ctx_options &= ~LY_CTX_REF_IMPLEMENTED;
+ yo->ctx_options |= LY_CTX_ALL_IMPLEMENTED;
+ } else {
+ yo->ctx_options |= LY_CTX_REF_IMPLEMENTED;
+ }
+}
+
+void
free_cmdline(char *argv[])
{
if (argv) {
diff --git a/tools/lint/yl_opt.h b/tools/lint/yl_opt.h
index a1569dd..e0ff7bd 100644
--- a/tools/lint/yl_opt.h
+++ b/tools/lint/yl_opt.h
@@ -206,6 +206,13 @@
int yo_opt_update_data_in_format(const char *arg, struct yl_opt *yo);
/**
+ * @brief Update @p yo according to the --make-implemented parameter.
+ *
+ * @param[in,out] yo yanglint options used to update.
+ */
+void yo_opt_update_make_implemented(struct yl_opt *yo);
+
+/**
* @brief Helper function to prepare argc, argv pair from a command line string.
*
* @param[in] cmdline Complete command line string.