diff options
| author | Adam <Adam@anope.org> | 2012-12-12 01:30:50 -0500 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2012-12-12 01:30:50 -0500 |
| commit | 04f96a54b8387c1362e6695a13dd0dd71ce0a347 (patch) | |
| tree | 34174d64dbb161654252807fead2f82751cc00a0 /modules/extra/webcpanel/template_fileserver.cpp | |
| parent | 5f72d1fda5e297990aee7e0be805df0a734ca87d (diff) | |
Some small improvements to last few commits, and fixed some problems with the template engine
Diffstat (limited to 'modules/extra/webcpanel/template_fileserver.cpp')
| -rw-r--r-- | modules/extra/webcpanel/template_fileserver.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/extra/webcpanel/template_fileserver.cpp b/modules/extra/webcpanel/template_fileserver.cpp index cf7094e39..ca2ff034f 100644 --- a/modules/extra/webcpanel/template_fileserver.cpp +++ b/modules/extra/webcpanel/template_fileserver.cpp @@ -137,10 +137,14 @@ void TemplateFileServer::Serve(HTTPProvider *server, const Anope::string &page_n if (second.empty()) second = tokens[3]; - IfStack.push(first == second); + bool stackok = IfStack.empty() || IfStack.top(); + IfStack.push(stackok && first == second); } else if (tokens.size() == 3 && tokens[1] == "EXISTS") - IfStack.push(r.count(tokens[2]) > 0); + { + bool stackok = IfStack.empty() || IfStack.top(); + IfStack.push(stackok && r.count(tokens[2]) > 0); + } else Log() << "Invalid IF in web template " << this->file_name; } @@ -152,7 +156,8 @@ void TemplateFileServer::Serve(HTTPProvider *server, const Anope::string &page_n { bool old = IfStack.top(); IfStack.pop(); // Pop off previous if() - IfStack.push(!old); // Push back the opposite of what was popped + bool stackok = IfStack.empty() || IfStack.top(); + IfStack.push(stackok && !old); // Push back the opposite of what was popped } } else if (content == "END IF") |
