Watson1978
4/19/2012 - 9:03 AM

MacRuby : bug : regexp

MacRuby : bug : regexp

diff --git a/re.c b/re.c
index acf6cb5..d638cac 100644
--- a/re.c
+++ b/re.c
@@ -161,6 +161,19 @@ sanitize_regexp_string(UChar **chars_p, long *chars_len_p)
 		break;
 	    }
 	    UChar c = chars[i];
+	    if (c == 'h') {
+		// Handling for '\h'. replace '\h' to "[0-9a-fA-F]".
+		char *hex = "[0-9a-fA-F]";
+		long len = strlen(hex);
+		chars = (UChar *)xrealloc(chars, sizeof(UChar) * (chars_len + len));
+		memmove(&chars[i + len - 1], &chars[i + 1],
+			sizeof(UChar) * (chars_len - i - 1));
+		for(int j = 0; j < len; j++) {
+		    chars[i + j - 1] = hex[j];
+		}
+		chars_len += len - 2;
+		break;
+	    }
 	    if (rb_isdigit(c)) {
 		if (is_octal_literal(&chars[i], chars_len)) {
 		    // Handling for octal literals.
str = "abc%64%65%65"
p /%\h\h/ =~ str
p /%[0-9a-fA-F][0-9a-fA-F]/ =~ str