summaryrefslogtreecommitdiff
path: root/modules/nickserv
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/nickserv
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/nickserv')
-rw-r--r--modules/nickserv/nickserv.cpp2
-rw-r--r--modules/nickserv/ns_ajoin.cpp8
-rw-r--r--modules/nickserv/ns_alist.cpp6
-rw-r--r--modules/nickserv/ns_list.cpp12
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 = "*";
}