Bug fix for multiple parameters of nitool 32/113532/4
authorJongHeon Choi <j-h.choi@samsung.com>
Wed, 8 Feb 2017 05:39:43 +0000 (14:39 +0900)
committerJongHeon Choi <j-h.choi@samsung.com>
Tue, 14 Mar 2017 04:12:27 +0000 (13:12 +0900)
Change-Id: Iddca7fd903e6cb42caed952b803a3f3100497a59

NativeLauncher/installer-plugin/nitool.cc

index dbda0d5..b60bd8b 100644 (file)
 
 std::vector<const char*> get_cmd_args(char** begin, char** end)
 {
-  for (char** itr = end-1; itr != begin-1; --itr)
+  std::vector<const char*> list;
+  for (char** itr = begin+1; itr != end; itr++)
   {
-    if (itr != end && strncmp(*itr, "--", 2) == 0)
-    {
-      itr++;
-      int len = end - itr;
-      return std::vector<const char*>(len, *itr);
-    }
+    if (strncmp(*itr, "--", 2) != 0)
+      list.push_back(*itr);
   }
-  return std::vector<const char*>(end-begin-1, *(begin+1));
+  return list;
 }
 
 bool cmd_option_exists(char** begin, char** end, const std::string& option)
@@ -70,22 +67,23 @@ int main(int argc, char* argv[])
     help(argv[0]);
     return 0;
   }
-
-  if (cmd_option_exists(argv, argv+argc, "--system"))
+  else if (cmd_option_exists(argv, argv+argc, "--system"))
   {
     create_ni_platform();
     return 0;
   }
-
-  if (cmd_option_exists(argv, argv+argc, "--dll"))
+  else if (cmd_option_exists(argv, argv+argc, "--dll"))
   {
     dll_mode = true;
   }
-
-  if (cmd_option_exists(argv, argv+argc, "--pkg"))
+  else if (cmd_option_exists(argv, argv+argc, "--pkg"))
   {
     pkg_mode = true;
   }
+  else {
+    help(argv[0]);
+    return 1;
+  }
 
   std::vector<const char*> args = get_cmd_args(argv, argv+argc);