aboutsummaryrefslogtreecommitdiffstats
path: root/xmlregexp.c
diff options
context:
space:
mode:
authorWilliam M. Brack <wbrack@src.gnome.org>2003-12-27 01:54:25 +0000
committerWilliam M. Brack <wbrack@src.gnome.org>2003-12-27 01:54:25 +0000
commitdc99df936c74b6ced82904086544fec365d1f219 (patch)
tree83d47b2a6280d35cb285bea25b86d5f3d6e74f36 /xmlregexp.c
parent9887395b556af391306245b52487c215337c4054 (diff)
downloadandroid_external_libxml2-dc99df936c74b6ced82904086544fec365d1f219.tar.gz
android_external_libxml2-dc99df936c74b6ced82904086544fec365d1f219.tar.bz2
android_external_libxml2-dc99df936c74b6ced82904086544fec365d1f219.zip
fixed xmlFAParseCharRange for Unicode ranges with patch from Charles
* xmlregexp.c: fixed xmlFAParseCharRange for Unicode ranges with patch from Charles Bozeman.
Diffstat (limited to 'xmlregexp.c')
-rw-r--r--xmlregexp.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/xmlregexp.c b/xmlregexp.c
index 784feaf1..08b51d8a 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -3533,7 +3533,7 @@ xmlFAParseCharRef(xmlRegParserCtxtPtr ctxt) {
*/
static void
xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
- int cur;
+ int cur, len;
int start = -1;
int end = -1;
@@ -3560,13 +3560,14 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
return;
}
end = start;
+ len = 1;
} else if ((cur != 0x5B) && (cur != 0x5D)) {
- end = start = cur;
+ end = start = CUR_SCHAR(ctxt->cur, len);
} else {
ERROR("Expecting a char range");
return;
}
- NEXT;
+ NEXTL(len);
if (start == '-') {
return;
}
@@ -3593,13 +3594,14 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
ERROR("Invalid escape value");
return;
}
+ len = 1;
} else if ((cur != 0x5B) && (cur != 0x5D)) {
- end = cur;
+ end = CUR_SCHAR(ctxt->cur, len);
} else {
ERROR("Expecting the end of a char range");
return;
}
- NEXT;
+ NEXTL(len);
/* TODO check that the values are acceptable character ranges for XML */
if (end < start) {
ERROR("End of range is before start of range");