| 1219 | } |
| 1220 | |
| 1221 | int parsePreviewNumbers(Params::PreviewNumbers& previewNumbers, const std::string& optArg, int j) { |
| 1222 | size_t k = j; |
| 1223 | for (size_t i = j; i < optArg.size(); ++i) { |
| 1224 | std::ostringstream os; |
| 1225 | for (k = i; k < optArg.size() && isdigit(optArg[k]); ++k) { |
| 1226 | os << optArg[k]; |
| 1227 | } |
| 1228 | if (k > i) { |
| 1229 | bool ok = false; |
| 1230 | auto num = Exiv2::stringTo<int>(os.str(), ok); |
| 1231 | if (ok && num >= 0) { |
| 1232 | previewNumbers.insert(num); |
| 1233 | } else { |
| 1234 | std::cerr << Params::instance().progname() << ": " << _("Invalid preview number") << ": " << num << "\n"; |
| 1235 | } |
| 1236 | i = k; |
| 1237 | } |
| 1238 | if (k >= optArg.size() || optArg[i] != ',') |
| 1239 | break; |
| 1240 | } |
| 1241 | auto ret = static_cast<int>(k - j); |
| 1242 | if (ret == 0) { |
| 1243 | previewNumbers.insert(0); |
| 1244 | } |
| 1245 | #ifdef DEBUG |
| 1246 | std::cout << "\nThe set now contains: "; |
| 1247 | for (auto&& number : previewNumbers) { |
| 1248 | std::cout << number << ", "; |
| 1249 | } |
| 1250 | std::cout << std::endl; |
| 1251 | #endif |
| 1252 | return static_cast<int>(k - j); |
| 1253 | } // parsePreviewNumbers |
| 1254 | |
| 1255 | bool parseCmdFiles(ModifyCmds& modifyCmds, const Params::CmdFiles& cmdFiles) { |
| 1256 | for (auto&& filename : cmdFiles) { |
no test coverage detected