Fix error handling when instantiating `std::regex`
This commit is contained in:
parent
17c5f50440
commit
d006c9ce4f
|
@ -273,7 +273,11 @@ void getPackages(const Params ¶ms, ResponseHandler &&handler)
|
|||
break;
|
||||
case Mode::Regex:
|
||||
// assume names are regexes
|
||||
try {
|
||||
pushPackages(params.setup.config.findPackages(std::regex(name.data(), name.size())));
|
||||
} catch (const std::regex_error &e) {
|
||||
throw BadRequest(argsToString("regex is invalid: ", e.what()));
|
||||
}
|
||||
break;
|
||||
case Mode::Provides:
|
||||
case Mode::Depends:
|
||||
|
|
|
@ -112,7 +112,12 @@ int main(int argc, const char *argv[])
|
|||
const auto negate = negateArg.isPresent();
|
||||
auto regex = std::optional<std::regex>();
|
||||
if (regexArg.isPresent()) {
|
||||
try {
|
||||
regex = std::regex(searchTerm, std::regex::egrep);
|
||||
} catch (const std::regex_error &e) {
|
||||
cerr << "Specified regex is invalid: " << e.what() << endl;
|
||||
exit(3);
|
||||
}
|
||||
}
|
||||
for (const Database &db : cfg.databases) {
|
||||
for (const auto &pkg : db.packages) {
|
||||
|
|
Loading…
Reference in New Issue