aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/parser/non-validating/string-stl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/parser/non-validating/string-stl.cxx')
-rw-r--r--libxsde/xsde/cxx/parser/non-validating/string-stl.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/libxsde/xsde/cxx/parser/non-validating/string-stl.cxx b/libxsde/xsde/cxx/parser/non-validating/string-stl.cxx
index cd82550..4e979d8 100644
--- a/libxsde/xsde/cxx/parser/non-validating/string-stl.cxx
+++ b/libxsde/xsde/cxx/parser/non-validating/string-stl.cxx
@@ -4,6 +4,7 @@
// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
#include <xsde/cxx/parser/non-validating/string-stl.hxx>
+#include <xsde/cxx/parser/non-validating/string-common.hxx>
namespace xsde
{
@@ -22,12 +23,22 @@ namespace xsde
void string_pimpl::
_characters (const ro_string& s)
{
- str_ += s;
+ if (_facets ().whitespace_ == 2 && str_.size () == 0)
+ {
+ ro_string tmp (s.data (), s.size ());
+
+ if (trim_left (tmp) != 0)
+ str_ += tmp;
+ }
+ else
+ str_ += s;
}
std::string string_pimpl::
post_string ()
{
+ string_common::process_facets (str_, _facets ());
+
std::string r;
r.swap (str_);
return r;