summaryrefslogtreecommitdiff
path: root/modules/operserv/os_logsearch.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-03-11 13:53:05 +0000
committerSadie Powell <sadie@witchery.services>2024-03-11 19:17:29 +0000
commit29e7674e56bf2b829bba22def2760d034a76e788 (patch)
treef40049ba995b03dd7c510d88f9f19db2d2e65a2e /modules/operserv/os_logsearch.cpp
parente2df7d4d01f8fdb41c49ce8efc462cab005e7d5c (diff)
Replace convertTo/stringify with non-throwing alternatives.
Having these throw is terrible for ergonomics and there are loads of places where the exception was either silently ignored or not handled at all. Having a function which returns an optional and another that returns a default works a lot better imo.
Diffstat (limited to 'modules/operserv/os_logsearch.cpp')
-rw-r--r--modules/operserv/os_logsearch.cpp26
1 files changed, 8 insertions, 18 deletions
diff --git a/modules/operserv/os_logsearch.cpp b/modules/operserv/os_logsearch.cpp
index 606a74d78..0282644b2 100644
--- a/modules/operserv/os_logsearch.cpp
+++ b/modules/operserv/os_logsearch.cpp
@@ -47,32 +47,22 @@ public:
if (params[i].length() > 2)
{
Anope::string dur = params[i].substr(1, params[i].length() - 2);
- try
- {
- days = convertTo<int>(dur);
- if (days <= 0)
- throw ConvertException();
- }
- catch (const ConvertException &)
- {
+ auto d = Anope::Convert<int>(dur, 0);
+ if (d > 0)
+ days = d;
+ else
source.Reply(_("Invalid duration %s, using %d days."), dur.c_str(), days);
- }
}
break;
case 'l':
if (params[i].length() > 2)
{
Anope::string dur = params[i].substr(1, params[i].length() - 2);
- try
- {
- replies = convertTo<int>(dur);
- if (replies <= 0)
- throw ConvertException();
- }
- catch (const ConvertException &)
- {
+ auto r = Anope::Convert<int>(dur, 0);
+ if (r > 0)
+ replies = r;
+ else
source.Reply(_("Invalid limit %s, using %d."), dur.c_str(), replies);
- }
}
break;
default: