[前][次][番号順一覧][スレッド一覧]

ruby-changes:2347

From: ko1@a...
Date: 8 Nov 2007 15:15:12 +0900
Subject: [ruby-changes:2347] davidflanagan - Ruby:r13838 (trunk): * parse.y: fix segfault with \x escapes in regexps

davidflanagan	2007-11-08 15:14:45 +0900 (Thu, 08 Nov 2007)

  New Revision: 13838

  Modified files:
    trunk/ChangeLog
    trunk/parse.y

  Log:
    * parse.y: fix segfault with \x escapes in regexps
               delete unused #if 0 code regions from previous patch


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=13838&r2=13837
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13838&r2=13837

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 13837)
+++ ChangeLog	(revision 13838)
@@ -1,3 +1,7 @@
+Thu Nov  8 15:13:56 UTC 2007 David Flanagan <davidflanagan@r...>
+	* parse.y: fix segfault with \x escapes in regexps
+                   delete unused #if 0 code regions from previous patch
+	
 Thu Nov  8 12:12:10 2007  NAKAMURA Usaku  <usa@r...>
 
 	* parse.y (parser_read_escape): remove C99/gcc-ism.
Index: parse.y
===================================================================
--- parse.y	(revision 13837)
+++ parse.y	(revision 13838)
@@ -4973,49 +4973,7 @@
     return c;
 }
 
-#if 0
 static int
-parser_tok_utf8(struct parser_params *parser, int *numlen, rb_encoding **encp)
-{
-    int codepoint;
-
-    if (peek('{')) {  /* handle \u{...} form */
-	nextc();
-	codepoint = scan_hex(lex_p, 6, numlen);
-	if (*numlen == 0)  {
-	    yyerror("invalid Unicode escape");
-	    return 0;
-	}
-	if (codepoint > 0x10ffff) {
-	    yyerror("illegal Unicode codepoint (too large)");
-	    return 0;
-	}
-	lex_p += *numlen;
-	if (!peek('}')) {
-	    yyerror("unterminated Unicode escape");
-	    return 0;
-	}
-	nextc();
-    }
-    else {			/* handle \uxxxx form */
-	codepoint = scan_hex(lex_p, 4, numlen);
-	if (*numlen < 4) {
-	    yyerror("invalid Unicode escape");
-	    return 0;
-	}
-	lex_p += 4;
-    }
-    if (codepoint >= 0x80) {
-	*encp = UTF8_ENC();
-    }
-
-    return codepoint;
-}
-#endif
-
-
-
-static int
 parser_tokadd_utf8(struct parser_params *parser, int *hasmb,
 		   rb_encoding **encp, int string_literal, int symbol_literal)
 {
@@ -5242,27 +5200,11 @@
 
 	    hex = tok_hex(&numlen);
 	    if (numlen == 0) goto eof;
-	    lex_p += numlen;
 	    tokcopy(numlen + 2);
 	    if (hex >= 0x80) *has8bit = ENC_CODERANGE_UNKNOWN;
 	}
 	return 0;
 
-#if 0
-      case 'u':	/* Unicode constant */
-	if (flags & (ESCAPE_CONTROL|ESCAPE_META)) goto eof;
-	{
-	    int numlen;
-	    int uc;
-
-	    uc = tok_utf8(&numlen, encp);
-	    if (numlen == 0) goto eof;
-	    tokaddmbc(uc, *encp);
-	    if (uc >= 0x80) *hasmb = 1;
-	}
-	return 0;
-#endif
-
       case 'M':
 	if (flags & ESCAPE_META) goto eof;
 	if ((c = nextc()) != '-') {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]