Index: xmlregexp.c =================================================================== RCS file: /cvs/gnome/libxml2/xmlregexp.c,v retrieving revision 1.27 diff -c -r1.27 xmlregexp.c *** xmlregexp.c 26 Dec 2003 06:03:14 -0000 1.27 --- xmlregexp.c 26 Dec 2003 16:12:15 -0000 *************** *** 3533,3539 **** */ static void xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) { ! int cur; int start = -1; int end = -1; --- 3533,3539 ---- */ static void xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) { ! int cur, len; int start = -1; int end = -1; *************** *** 3560,3572 **** return; } end = start; } else if ((cur != 0x5B) && (cur != 0x5D)) { ! end = start = cur; } else { ERROR("Expecting a char range"); return; } ! NEXT; if (start == '-') { return; } --- 3560,3573 ---- return; } end = start; + len = 1; } else if ((cur != 0x5B) && (cur != 0x5D)) { ! end = start = CUR_SCHAR(ctxt->cur, len); } else { ERROR("Expecting a char range"); return; } ! NEXTL(len); if (start == '-') { return; } *************** *** 3593,3605 **** ERROR("Invalid escape value"); return; } } else if ((cur != 0x5B) && (cur != 0x5D)) { ! end = cur; } else { ERROR("Expecting the end of a char range"); return; } ! NEXT; /* TODO check that the values are acceptable character ranges for XML */ if (end < start) { ERROR("End of range is before start of range"); --- 3594,3607 ---- ERROR("Invalid escape value"); return; } + len = 1; } else if ((cur != 0x5B) && (cur != 0x5D)) { ! end = CUR_SCHAR(ctxt->cur, len); } else { ERROR("Expecting the end of a char range"); return; } ! 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");