[#28413] [mkmf] quoting directory names — "Nobuyoshi Nakada" <nobu@...>
なかだです。
2 messages
2006/03/01
[#28417] make install may make other ruby processs SEGV. — Tanaka Akira <akr@...17n.org>
たまに、動いている ruby プロセスがあるときに make install し
6 messages
2006/03/02
[#28418] Re: make install may make other ruby processs SEGV.
— Yukihiro Matsumoto <matz@...>
2006/03/02
まつもと ゆきひろです
[#28425] -MT付きでのコンパイルについて on Win32 VC7 — TOBY <toby@...>
TOBYと申します。
9 messages
2006/03/09
[#28446] named capture and /g, /G option — "K.Kosako" <sndgk393@...>
Ruby 1.9に、
30 messages
2006/03/21
[#28449] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/21
> Ruby 1.9に、
[#28452] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/21
まつもと ゆきひろです
[#28453] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/21
Yukihiro Matsumoto wrote:
[#28454] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/21
まつもと ゆきひろです
[#28457] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/22
Yukihiro Matsumoto wrote:
[#28459] Re: named capture and /g, /G option
— Tanaka Akira <akr@...17n.org>
2006/03/22
In article <44213D1A.2090100@ybb.ne.jp>,
[#28460] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/22
まつもと ゆきひろです
[#28484] Re: named capture and /g, /G option
— "K.Kosako" <sndgk393@...>
2006/03/29
K.Kosako wrote:
[#28485] Re: named capture and /g, /G option
— Tanaka Akira <akr@...17n.org>
2006/03/29
In article <442A83BE.1040200@ybb.ne.jp>,
[#28487] Re: named capture and /g, /G option
— Yukihiro Matsumoto <matz@...>
2006/03/29
まつもと ゆきひろです
[#28471] aliasとcaller — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
7 messages
2006/03/27
[ruby-dev:28489] Re: named capture and /g, /G option
From:
"K.Kosako" <sndgk393@...>
Date:
2006-03-30 07:58:34 UTC
List:
ruby-dev #28489
Yukihiro Matsumoto wrote:
> |> そろそろ、/g, /Gオプションの追加を実装しようかと
> |> 考えていますが、オプション値の定数名は以下の
> |> 名前で良いでしょうか?
> |
> |そもそも必要なのかなぁ、という疑問がやっぱりあるんですが、ど
> |のくらい使いたくなるのか g, G を実装する前にしばらく使ってみ
> |るみるというのはどうでしょう。
>
> そう言われると迷ってしまいますね。毅然としない私。
> では、オプション値は追加するが、オプションは後回しではどうで
> しょう?
誰かが必要性を示すまで、何も入れずに保留としておきます。
そのときに私が生きている保証もないので、既に作って
しまったパッチを以下に示しておきます。
--
小迫
--- /home/kosako/ruby_lang_org/ruby/re.c 2006-03-26 21:52:36.427444000 +0900
+++ re.c 2006-03-29 22:45:34.554899200 +0900
@@ -159,8 +159,8 @@ rb_memsearch(char *x0, long m, char *y0,
#define KCODE_FIXED FL_USER4
#define KCODE_MASK (KCODE_EUC|KCODE_SJIS|KCODE_UTF8)
-#define ARG_REG_OPTION_MASK 0x0f
-#define ARG_KCODE_UNIT 16
+#define ARG_REG_OPTION_MASK ((ONIG_OPTION_CAPTURE_GROUP<<1) - 1)
+#define ARG_KCODE_UNIT (ONIG_OPTION_CAPTURE_GROUP<<1)
#define ARG_KCODE_NONE (ARG_KCODE_UNIT * 1)
#define ARG_KCODE_EUC (ARG_KCODE_UNIT * 2)
#define ARG_KCODE_SJIS (ARG_KCODE_UNIT * 3)
@@ -185,6 +185,12 @@ static int char_to_option(int c)
case 'm':
val = ONIG_OPTION_MULTILINE;
break;
+ case 'g':
+ val = ONIG_OPTION_DONT_CAPTURE_GROUP;
+ break;
+ case 'G':
+ val = ONIG_OPTION_CAPTURE_GROUP;
+ break;
default:
val = 0;
break;
@@ -417,6 +423,10 @@ rb_reg_desc(const char *s, long len, VAL
rb_str_buf_cat2(str, "i");
if (RREGEXP(re)->ptr->options & ONIG_OPTION_EXTEND)
rb_str_buf_cat2(str, "x");
+ if (RREGEXP(re)->ptr->options & ONIG_OPTION_DONT_CAPTURE_GROUP)
+ rb_str_buf_cat2(str, "g");
+ if (RREGEXP(re)->ptr->options & ONIG_OPTION_CAPTURE_GROUP)
+ rb_str_buf_cat2(str, "G");
if (FL_TEST(re, KCODE_FIXED)) {
switch ((RBASIC(re)->flags & KCODE_MASK)) {
@@ -631,11 +641,13 @@ rb_reg_casefold_p(VALUE re)
* Regexp::IGNORECASE #=> 1
* Regexp::EXTENDED #=> 2
* Regexp::MULTILINE #=> 4
+ * Regexp::DONT_CAPTURE_GROUP #=> 128
+ * Regexp::CAPTURE_GROUP #=> 256
*
- * /cat/.options #=> 128
- * /cat/ix.options #=> 131
- * Regexp.new('cat', true).options #=> 129
- * Regexp.new('cat', 0, 's').options #=> 384
+ * /cat/.options #=> 64
+ * /cat/ix.options #=> 67
+ * Regexp.new('cat', true).options #=> 65
+ * Regexp.new('cat', 0, 's').options #=> 48
*
* r = /cat/ix
* Regexp.new(r.source, r.options) #=> /cat/ix
@@ -2346,6 +2358,8 @@ Init_Regexp(void)
rb_define_const(rb_cRegexp, "IGNORECASE",
INT2FIX(ONIG_OPTION_IGNORECASE));
rb_define_const(rb_cRegexp, "EXTENDED", INT2FIX(ONIG_OPTION_EXTEND));
rb_define_const(rb_cRegexp, "MULTILINE",
INT2FIX(ONIG_OPTION_MULTILINE));
+ rb_define_const(rb_cRegexp, "DONT_CAPTURE_GROUP",
INT2FIX(ONIG_OPTION_DONT_CAPTURE_GROUP));
+ rb_define_const(rb_cRegexp, "CAPTURE_GROUP",
INT2FIX(ONIG_OPTION_CAPTURE_GROUP));
rb_global_variable(®_cache);