diff options
author | William M. Brack <wbrack@src.gnome.org> | 2003-12-27 01:54:25 +0000 |
---|---|---|
committer | William M. Brack <wbrack@src.gnome.org> | 2003-12-27 01:54:25 +0000 |
commit | dc99df936c74b6ced82904086544fec365d1f219 (patch) | |
tree | 83d47b2a6280d35cb285bea25b86d5f3d6e74f36 /xmlregexp.c | |
parent | 9887395b556af391306245b52487c215337c4054 (diff) | |
download | android_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.c | 12 |
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"); |