From 552c820cbe58ebd64b43da780b63362dca8067f0 Mon Sep 17 00:00:00 2001
From: Arnaud Blanchard <arnaud.blanchard@ensea.fr>
Date: Wed, 31 Jul 2019 12:03:30 +0200
Subject: [PATCH] Update toshow multiple parameters

---
 t_parse_args/CMakeLists.txt |  2 +-
 t_parse_args/main.cpp       | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/t_parse_args/CMakeLists.txt b/t_parse_args/CMakeLists.txt
index b9516df..8a160d6 100644
--- a/t_parse_args/CMakeLists.txt
+++ b/t_parse_args/CMakeLists.txt
@@ -17,7 +17,7 @@ project(${PROJECT_NAME})
 find_package(blc_program)
 
 #Add your definitions, include directories, sources and libraries now
-add_definitions(${BL_DEFINITIONS})
+add_definitions(${BL_DEFINITIONS} -std=c++14)
 include_directories(${BL_INCLUDE_DIRS})
 add_executable(${PROJECT_NAME} main.cpp)
 target_link_libraries(${PROJECT_NAME} ${BL_LIBRARIES})
diff --git a/t_parse_args/main.cpp b/t_parse_args/main.cpp
index 72e38d0..9fa8aa3 100644
--- a/t_parse_args/main.cpp
+++ b/t_parse_args/main.cpp
@@ -4,7 +4,9 @@
 
 int main( int argc, char **argv){
     
-    char const *text_option, *first_parameter, *optional_parameter, *flag;
+    char const *text_option, *first_parameter, *optional_parameter;
+    char **parameter_list;
+    char const *flag;
     
     //The text that appear when help is called.
     blc_program_set_description("Program to show how to parse arguments.");
@@ -18,6 +20,9 @@ int main( int argc, char **argv){
     
     //Accept a second optional argument.
     blc_program_add_parameter(&optional_parameter, "string", 0,  "Show how to accept simple text as option", NULL);
+    
+    //Accept a list of argument of any size ( -1 require at least one, 2 required exactly two).
+    blc_program_add_multiple_parameters(&parameter_list, "string", 0,  "Show how to accept multiple parameters");
 
     //Interprets the arguments, associates variables and print program name as title.
     blc_program_parse_args(&argc, &argv);
@@ -37,7 +42,15 @@ int main( int argc, char **argv){
     else fprintf(stderr, "- The flag is not activated.\n");
 
     fprintf(stderr, "- The first argument is: '%s'\n", first_parameter);
-    if (optional_parameter) fprintf(stderr, "- The optional argument is: '%s'\n", optional_parameter);
+    if (optional_parameter) {
+        fprintf(stderr, "- The optional argument is: '%s'\n", optional_parameter);
+        fprintf(stderr, "- The list of parameters is:\n");
+        
+        for(char  **parameter = parameter_list; *parameter!=nullptr; parameter++){
+            fprintf(stderr, "   - %s\n", *parameter);
+        }
+
+    }
     else fprintf(stderr, "- No optional argument\n");
 
     return 0;
-- 
GitLab