fixed xmlFAParseCharRange for Unicode ranges with patch from Charles
* xmlregexp.c: fixed xmlFAParseCharRange for Unicode ranges
with patch from Charles Bozeman.
diff --git a/xmlregexp.c b/xmlregexp.c
index 784feaf..08b51d8 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -3533,7 +3533,7 @@
*/
static void
xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
- int cur;
+ int cur, len;
int start = -1;
int end = -1;
@@ -3560,13 +3560,14 @@
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 @@
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");