diff options
Diffstat (limited to 'libxsde/xsde/cxx/parser/non-validating/string-stl.cxx')
-rw-r--r-- | libxsde/xsde/cxx/parser/non-validating/string-stl.cxx | 13 |
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; |