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");