ruby-changes:13516
From: naruse <ko1@a...>
Date: Sun, 11 Oct 2009 03:12:41 +0900 (JST)
Subject: [ruby-changes:13516] Ruby:r25292 (trunk): * regparse.c (onig_syntax_warn): added.
naruse 2009-10-11 03:12:26 +0900 (Sun, 11 Oct 2009) New Revision: 25292 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25292 Log: * regparse.c (onig_syntax_warn): added. * regparse.c (CC_ESC_WARN, CLOSE_BRACKET_WITHOUT_ESC_WARN, CC_DUP_WARN, UNKNOWN_ESC_WARN): use onig_syntax_warn. Modified files: trunk/ChangeLog trunk/regparse.c Index: regparse.c =================================================================== --- regparse.c (revision 25291) +++ regparse.c (revision 25292) @@ -2845,17 +2845,29 @@ #endif /* USE_NAMED_GROUP */ static void -CC_ESC_WARN(ScanEnv* env, UChar *c) +onig_syntax_warn(ScanEnv *env, const char *fmt, ...) { + va_list args; + UChar buf[WARN_BUFSIZE]; + va_start(args, fmt); + onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, + env->pattern, env->pattern_end, + (const UChar *)fmt, args); + va_end(args); + if (env->sourcefile == NULL) + rb_warn(fmt, buf); + else + rb_compile_warn(env->sourcefile, env->sourceline, fmt, buf); +} + +static void +CC_ESC_WARN(ScanEnv *env, UChar *c) +{ if (onig_warn == onig_null_warn) return ; if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED) && IS_SYNTAX_BV(env->syntax, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) { - UChar buf[WARN_BUFSIZE]; - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"character class has '%s' without escape", c); - (*onig_warn)((char* )buf); + onig_syntax_warn(env, "character class has '%s' without escape", c); } } @@ -2865,48 +2877,27 @@ if (onig_warn == onig_null_warn) return ; if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED)) { - UChar buf[WARN_BUFSIZE]; - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc, - (env)->pattern, (env)->pattern_end, - (UChar* )"regular expression has '%s' without escape", c); - (*onig_warn)((char* )buf); + onig_syntax_warn(env, "regular expression has '%s' without escape", c); } } static void CC_DUP_WARN(ScanEnv *env) { - UChar buf[WARN_BUFSIZE]; if (onig_warn == onig_null_warn || !RTEST(ruby_verbose)) return ; if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_DUP) && !((env)->warnings_flag & ONIG_SYN_WARN_CC_DUP)) { (env)->warnings_flag |= ONIG_SYN_WARN_CC_DUP; - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"character class has duplicated range"); - - if (env->sourcefile == NULL) - (*onig_warn)((char* )buf); - else - rb_compile_warn(env->sourcefile, env->sourceline, (char* )buf); + onig_syntax_warn(env, "character class has duplicated range"); } } static void UNKNOWN_ESC_WARN(ScanEnv *env, int c) { - UChar buf[WARN_BUFSIZE]; if (onig_warn == onig_null_warn || !RTEST(ruby_verbose)) return ; - - onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc, - env->pattern, env->pattern_end, - (UChar* )"Unknown escape \\%c is ignored", c); - - if (env->sourcefile == NULL) - (*onig_warn)((char* )buf); - else - rb_compile_warn(env->sourcefile, env->sourceline, (char* )buf); + onig_syntax_warn(env, "Unknown escape \\%c is ignored", c); } static UChar* Index: ChangeLog =================================================================== --- ChangeLog (revision 25291) +++ ChangeLog (revision 25292) @@ -1,3 +1,10 @@ +Sun Oct 11 03:10:50 2009 NARUSE, Yui <naruse@r...> + + * regparse.c (onig_syntax_warn): added. + + * regparse.c (CC_ESC_WARN, CLOSE_BRACKET_WITHOUT_ESC_WARN, + CC_DUP_WARN, UNKNOWN_ESC_WARN): use onig_syntax_warn. + Sun Oct 11 00:14:38 2009 Nobuyoshi Nakada <nobu@r...> * marshal.c (marshal_dump, marshal_load): prevent from GC. -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/