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.