summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Sluift/ElementConvertors/DOMElementConvertor.cpp')
-rw-r--r--Sluift/ElementConvertors/DOMElementConvertor.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/Sluift/ElementConvertors/DOMElementConvertor.cpp b/Sluift/ElementConvertors/DOMElementConvertor.cpp
index c03eb8c..b957686 100644
--- a/Sluift/ElementConvertors/DOMElementConvertor.cpp
+++ b/Sluift/ElementConvertors/DOMElementConvertor.cpp
@@ -1,81 +1,80 @@
/*
* Copyright (c) 2013-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Sluift/ElementConvertors/DOMElementConvertor.h>
#include <memory>
#include <lua.hpp>
-#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/RawXMLPayload.h>
#include <Swiften/Parser/Attribute.h>
#include <Swiften/Parser/AttributeMap.h>
#include <Swiften/Parser/XMLParser.h>
#include <Swiften/Parser/XMLParserClient.h>
#include <Swiften/Serializer/PayloadSerializer.h>
#include <Swiften/Serializer/XML/XMLElement.h>
#include <Swiften/Serializer/XML/XMLRawTextNode.h>
#include <Swiften/Serializer/XML/XMLTextNode.h>
#include <Sluift/Lua/Check.h>
#include <Sluift/Lua/Debug.h>
#include <Sluift/Lua/LuaUtils.h>
using namespace Swift;
namespace {
class ParserClient : public XMLParserClient {
public:
ParserClient(lua_State* L) : L(L), currentIndex(1) {
}
virtual void handleStartElement(
const std::string& element, const std::string& ns,
const AttributeMap& attributes) SWIFTEN_OVERRIDE {
lua_checkstack(L, 6);
lua_pushnumber(L, currentIndex);
lua_newtable(L);
lua_pushstring(L, element.c_str());
lua_setfield(L, -2, "tag");
if (!ns.empty()) {
lua_pushstring(L, ns.c_str());
lua_setfield(L, -2, "ns");
}
if (!attributes.getEntries().empty()) {
lua_newtable(L);
int i = 1;
- foreach(const AttributeMap::Entry& entry, attributes.getEntries()) {
+ for (const auto& entry : attributes.getEntries()) {
lua_pushnumber(L, i);
lua_newtable(L);
lua_pushstring(L, entry.getAttribute().getName().c_str());
lua_setfield(L, -2, "name");
if (!entry.getAttribute().getNamespace().empty()) {
lua_pushstring(L, entry.getAttribute().getNamespace().c_str());
lua_setfield(L, -2, "ns");
}
lua_pushstring(L, entry.getValue().c_str());
lua_setfield(L, -2, "value");
lua_settable(L, -3);
++i;
}
lua_setfield(L, -2, "attributes");
}
indexStack.push_back(currentIndex);
currentIndex = 1;
lua_newtable(L);
}
virtual void handleEndElement(
const std::string&, const std::string&) SWIFTEN_OVERRIDE {
lua_setfield(L, -2, "children");
lua_settable(L, -3);
currentIndex = indexStack.back();
indexStack.pop_back();
currentIndex++;
}