diff options
| author | Sadie Powell <sadie@witchery.services> | 2024-03-11 13:53:05 +0000 |
|---|---|---|
| committer | Sadie Powell <sadie@witchery.services> | 2024-03-11 19:17:29 +0000 |
| commit | 29e7674e56bf2b829bba22def2760d034a76e788 (patch) | |
| tree | f40049ba995b03dd7c510d88f9f19db2d2e65a2e /modules/nickserv | |
| parent | e2df7d4d01f8fdb41c49ce8efc462cab005e7d5c (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/nickserv')
| -rw-r--r-- | modules/nickserv/nickserv.cpp | 2 | ||||
| -rw-r--r-- | modules/nickserv/ns_ajoin.cpp | 8 | ||||
| -rw-r--r-- | modules/nickserv/ns_alist.cpp | 6 | ||||
| -rw-r--r-- | modules/nickserv/ns_list.cpp | 12 |
4 files changed, 13 insertions, 15 deletions
diff --git a/modules/nickserv/nickserv.cpp b/modules/nickserv/nickserv.cpp index 541b7f0f9..f1f087163 100644 --- a/modules/nickserv/nickserv.cpp +++ b/modules/nickserv/nickserv.cpp @@ -246,7 +246,7 @@ public: int i = 0; do { - guestnick = guestprefix + stringify(static_cast<uint16_t>(Anope::RandomNumber())); + guestnick = guestprefix + Anope::ToString(static_cast<uint16_t>(Anope::RandomNumber())); if (guestnick.length() > nicklen) guestnick = guestnick.substr(0, nicklen); } diff --git a/modules/nickserv/ns_ajoin.cpp b/modules/nickserv/ns_ajoin.cpp index f6e716a36..91e700e4a 100644 --- a/modules/nickserv/ns_ajoin.cpp +++ b/modules/nickserv/ns_ajoin.cpp @@ -105,7 +105,7 @@ class CommandNSAJoin final { AJoinEntry *aj = (*channels)->at(i); ListFormatter::ListEntry entry; - entry["Number"] = stringify(i + 1); + entry["Number"] = Anope::ToString(i + 1); entry["Channel"] = aj->channel; entry["Key"] = aj->key; list.AddEntry(entry); @@ -382,13 +382,11 @@ public: Anope::string l; if (c->GetParam("LIMIT", l)) { - try + if (auto limit = Anope::TryConvert<unsigned>(l)) { - unsigned limit = convertTo<unsigned>(l); - if (c->users.size() >= limit) + if (c->users.size() >= limit.value()) need_invite = true; } - catch (const ConvertException &) { } } } } diff --git a/modules/nickserv/ns_alist.cpp b/modules/nickserv/ns_alist.cpp index e4adfb870..0d02894af 100644 --- a/modules/nickserv/ns_alist.cpp +++ b/modules/nickserv/ns_alist.cpp @@ -59,7 +59,7 @@ public: if (ci->GetFounder() == nc) { ++chan_count; - entry["Number"] = stringify(chan_count); + entry["Number"] = Anope::ToString(chan_count); entry["Channel"] = (ci->HasExt("CS_NO_EXPIRE") ? "!" : "") + ci->name; entry["Access"] = Language::Translate(source.GetAccount(), _("Founder")); entry["Description"] = ci->desc; @@ -70,7 +70,7 @@ public: if (ci->GetSuccessor() == nc) { ++chan_count; - entry["Number"] = stringify(chan_count); + entry["Number"] = Anope::ToString(chan_count); entry["Channel"] = (ci->HasExt("CS_NO_EXPIRE") ? "!" : "") + ci->name; entry["Access"] = Language::Translate(source.GetAccount(), _("Successor")); entry["Description"] = ci->desc; @@ -84,7 +84,7 @@ public: ++chan_count; - entry["Number"] = stringify(chan_count); + entry["Number"] = Anope::ToString(chan_count); entry["Channel"] = (ci->HasExt("CS_NO_EXPIRE") ? "!" : "") + ci->name; for (auto &p : access.paths) { diff --git a/modules/nickserv/ns_list.cpp b/modules/nickserv/ns_list.cpp index a1c28a28d..1bd4ea043 100644 --- a/modules/nickserv/ns_list.cpp +++ b/modules/nickserv/ns_list.cpp @@ -39,17 +39,17 @@ public: Anope::string n1, n2; sepstream(pattern.substr(1), '-').GetToken(n1, 0); sepstream(pattern, '-').GetToken(n2, 1); - try - { - from = convertTo<int>(n1); - to = convertTo<int>(n2); - } - catch (const ConvertException &) + + auto num1 = Anope::TryConvert<int>(n1); + auto num2 = Anope::TryConvert<int>(n2); + if (!num1.has_value() || !num2.has_value()) { source.Reply(LIST_INCORRECT_RANGE); return; } + from = num1.value(); + to = num2.value(); pattern = "*"; } |
