summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Parser/PayloadParsers/FormParser.h')
-rw-r--r--Swiften/Parser/PayloadParsers/FormParser.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/Swiften/Parser/PayloadParsers/FormParser.h b/Swiften/Parser/PayloadParsers/FormParser.h
index eae40a1..a3e2524 100644
--- a/Swiften/Parser/PayloadParsers/FormParser.h
+++ b/Swiften/Parser/PayloadParsers/FormParser.h
@@ -43,18 +43,19 @@ namespace Swift {
}
else {
field->setValue(field->getValue() + "\n" + s);
}
getField()->addRawValue(s);
}
};
class JIDFieldParseHelper : public FieldParseHelper {
virtual void addValue(const std::string& s) {
+ getField()->addRawValue(s);
boost::dynamic_pointer_cast< GenericFormField<JID> >(getField())->setValue(JID(s));
}
};
class StringListFieldParseHelper : public FieldParseHelper {
virtual void addValue(const std::string& s) {
// FIXME: Inefficient, but too much hassle to do efficiently
boost::shared_ptr<GenericFormField< std::vector<std::string> > > field = boost::dynamic_pointer_cast< GenericFormField<std::vector<std::string > > >(getField());
std::vector<std::string> l = field->getValue();
l.push_back(s);
@@ -100,11 +101,14 @@ namespace Swift {
enum Level {
TopLevel = 0,
PayloadLevel = 1,
FieldLevel = 2
};
int level_;
std::string currentText_;
std::string currentOptionLabel_;
boost::shared_ptr<FieldParseHelper> currentFieldParseHelper_;
+ bool parsingItem_;
+ bool parsingReported_;
+ std::vector<FormField::ref> currentFields_;
};
}