summaryrefslogtreecommitdiff
path: root/src/KM_xml.cpp
diff options
context:
space:
mode:
authorjhurst <jhurst@cinecert.com>2014-10-14 00:14:39 +0000
committerjhurst <>2014-10-14 00:14:39 +0000
commit9b450aad2327719d051e986549f0416e17b5dbff (patch)
tree1d19dec5ce50a497d07bcd0a3e319e4d7bf35896 /src/KM_xml.cpp
parent59197ff8e4001ae1ddc3aee5453422bab897d770 (diff)
comment insensitivity
Diffstat (limited to 'src/KM_xml.cpp')
-rw-r--r--src/KM_xml.cpp25
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 )