summaryrefslogtreecommitdiff
path: root/modules/webcpanel/template_fileserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/webcpanel/template_fileserver.cpp')
-rw-r--r--modules/webcpanel/template_fileserver.cpp26
1 files changed, 11 insertions, 15 deletions
diff --git a/modules/webcpanel/template_fileserver.cpp b/modules/webcpanel/template_fileserver.cpp
index 384fbe126..92b7c8cc7 100644
--- a/modules/webcpanel/template_fileserver.cpp
+++ b/modules/webcpanel/template_fileserver.cpp
@@ -1,20 +1,20 @@
/*
- * (C) 2003-2023 Anope Team
+ * (C) 2003-2024 Anope Team
* Contact us at team@anope.org
*
* Please read COPYING and README for further details.
*/
#include "webcpanel.h"
+#include <cerrno>
#include <fstream>
#include <stack>
-#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
-struct ForLoop
+struct ForLoop final
{
static std::vector<ForLoop> Stack;
@@ -25,28 +25,24 @@ struct ForLoop
ForLoop(size_t s, TemplateFileServer::Replacements &r, const std::vector<Anope::string> &v, const std::vector<Anope::string> &r_names) : start(s), vars(v)
{
- for (unsigned i = 0; i < r_names.size(); ++i)
- ranges.push_back(r.equal_range(r_names[i]));
+ for (const auto &r_name : r_names)
+ ranges.push_back(r.equal_range(r_name));
}
void increment(const TemplateFileServer::Replacements &r)
{
- for (unsigned i = 0; i < ranges.size(); ++i)
+ for (auto &[begin, end] : ranges)
{
- range &ra = ranges[i];
-
- if (ra.first != r.end() && ra.first != ra.second)
- ++ra.first;
+ if (begin != r.end() && begin != end)
+ ++begin;
}
}
bool finished(const TemplateFileServer::Replacements &r) const
{
- for (unsigned i = 0; i < ranges.size(); ++i)
+ for (const auto &[begin, end] : ranges)
{
- const range &ra = ranges[i];
-
- if (ra.first != r.end() && ra.first != ra.second)
+ if (begin != r.end() && begin != end)
return false;
}
@@ -186,7 +182,7 @@ void TemplateFileServer::Serve(HTTPProvider *server, const Anope::string &page_n
if (temp_variables.size() != real_variables.size())
Log() << "Invalid FOR in web template " << this->file_name << " variable mismatch";
else
- ForLoop::Stack.push_back(ForLoop(j + f, r, temp_variables, real_variables));
+ ForLoop::Stack.emplace_back(j + f, r, temp_variables, real_variables);
}
}
else if (content == "END FOR")