diff options
| author | jhurst <jhurst@cinecert.com> | 2014-10-14 00:14:39 +0000 |
|---|---|---|
| committer | jhurst <> | 2014-10-14 00:14:39 +0000 |
| commit | 9b450aad2327719d051e986549f0416e17b5dbff (patch) | |
| tree | 1d19dec5ce50a497d07bcd0a3e319e4d7bf35896 /src/KM_xml.cpp | |
| parent | 59197ff8e4001ae1ddc3aee5453422bab897d770 (diff) | |
comment insensitivity
Diffstat (limited to 'src/KM_xml.cpp')
| -rw-r--r-- | src/KM_xml.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/KM_xml.cpp b/src/KM_xml.cpp index c52d73a..dcb35a3 100644 --- a/src/KM_xml.cpp +++ b/src/KM_xml.cpp @@ -1067,8 +1067,29 @@ Kumu::GetXMLDocType(const byte_t* buf, ui32_t buf_len, std::string& ns_prefix, s break; } } + else if ( *p1 == '<' && ( ( p1 + 3 ) < end_p ) && p1[1] == '!' && p1[2] == '-' && p1[3] == '-' ) + { + p1 += 4; - ++p1; + for (;;) + { + while ( *p1 != '>' && p1 < end_p ) + { + ++p1; + } + + if ( *(p1-2) == '-' && *(p1-1) == '-' && *p1 == '>' ) + { + break; + } + + ++p1; + } + } + else + { + ++p1; + } } if ( isspace(*p2) ) @@ -1104,7 +1125,7 @@ Kumu::GetXMLDocType(const byte_t* buf, ui32_t buf_len, std::string& ns_prefix, s for ( i = doc_attr_nvpairs.begin(); i != doc_attr_nvpairs.end(); ++i ) { // trim leading and trailing whitespace an right-most character, i.e., \" - std::string trimmed = i->substr(i->find_first_not_of(" "), i->find_last_not_of(" ")); + std::string trimmed = i->substr(i->find_first_not_of(" "), i->find_last_not_of(" \r\n\t")); std::list<std::string> nv_tokens = km_token_split(trimmed, "=\""); if ( nv_tokens.size() != 2 ) |
