diff --git a/samples/cpp/common/utils/src/args_helper.cpp b/samples/cpp/common/utils/src/args_helper.cpp index e8845fd2470..8ac09e6728c 100644 --- a/samples/cpp/common/utils/src/args_helper.cpp +++ b/samples/cpp/common/utils/src/args_helper.cpp @@ -67,22 +67,30 @@ void readInputFilesArguments(std::vector& files, const std::string& */ void parseInputFilesArguments(std::vector& files) { std::vector args = gflags::GetArgvs(); + auto args_it = begin(args); const auto is_image_arg = [](const std::string& s) { return s == "-i" || s == "--images"; }; const auto is_arg = [](const std::string& s) { return s.front() == '-'; }; - const auto img_start = std::find_if(begin(args), end(args), is_image_arg); - if (img_start == end(args)) { - return; - } - const auto img_begin = std::next(img_start); - const auto img_end = std::find_if(img_begin, end(args), is_arg); - for (auto img = img_begin; img != img_end; ++img) { - readInputFilesArguments(files, *img); + + while (args_it != args.end()) { + const auto img_start = std::find_if(args_it, end(args), is_image_arg); + if (img_start == end(args)) { + break; + } + const auto img_begin = std::next(img_start); + const auto img_end = std::find_if(img_begin, end(args), is_arg); + for (auto img = img_begin; img != img_end; ++img) { + readInputFilesArguments(files, *img); + } + args_it = img_end; } + if (files.empty()) { + return; + } size_t max_files = 20; if (files.size() < max_files) { slog::info << "Files were added: " << files.size() << slog::endl;