aboutsummaryrefslogtreecommitdiff
path: root/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx')
-rw-r--r--libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx23
1 files changed, 10 insertions, 13 deletions
diff --git a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx
index f93ecf8..dcbe588 100644
--- a/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx
+++ b/libxsde/xsde/cxx/parser/validating/normalized-string-stl.cxx
@@ -23,24 +23,21 @@ namespace xsde
void normalized_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;
}
void normalized_string_pimpl::
_post ()
{
- std::string::size_type size = str_.size ();
-
- for (std::string::size_type i = 0; i < size; ++i)
- {
- char& c = str_[i];
-
- if (c == 0x0A || c == 0x0D || c == 0x09)
- c = 0x20;
- }
-
- string_common::validate_facets (
- str_.c_str (), str_.size (), _facets (), _context ());
+ string_common::validate_facets (str_, _facets (), _context ());
}
std::string normalized_string_pimpl::