diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1995-03-15 14:59:18 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:31 +0900 |
commit | d349889e770a2078c247d9d28070e86a54b856f4 (patch) | |
tree | 8bdbf87f3ff78ef237c4ff8efa061fbb8dc5a226 /string.c | |
parent | 881c5a9c320c637ee0f6526b40cf70c1379ab656 (diff) |
version 0.69v0_69
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.69.tar.gz
Wed Mar 15 14:59:18 1995 Yukihiro Matsumoto (matz@ix-02)
* version 0.69
* eval.c(method_missing): unknownから名称変更.
* eval.c(single_method_added): 特異メソッドが定義された時に呼ばれ
るメソッド.hookとして使える.実際に定義される直前に呼ばれる.
Tue Mar 14 14:46:44 1995 Yukihiro Matsumoto (matz@ix-02)
* ruby.c(proc_options): 引数の解析を自分でやることにより引数指定の
方法がperlに近付いた.getopt_longはもう使わない.
* dir.c(glob): `{}'のネストを許すようにした.
Mon Mar 13 17:56:25 1995 Yukihiro Matsumoto (matz@ix-02)
* glob.c: Glob(ワイルドカードオブジェクト)はなくなった.ワイルドカー
ドの展開はDir.glob(文字列)を使う.ワイルドカードのマッチは正規表
現で代用.
Fri Mar 10 18:35:46 1995 Yukihiro Matsumoto (matz@ix-02)
* eval.c: Mathのようなモジュールは自分自身でextendする.
* eval.c: クラスやモジュールを定義した既に同名のものがあれば追加定
義となるように.ただし.superクラスの違いなどはチェックする.
* regex.c: debug.
* math.c: 定数PIとEを定義.
Thu Mar 9 21:35:12 1995 Yukihiro Matsumoto (matz@ix-02)
* regex.c: EUC,SJISモードでは0x80以上の8進,16進リテラルを禁止.
* regex.c: クラス内でも数値リテラル・文字クラスが使えるようした.
Wed Mar 8 17:39:05 1995 Yukihiro Matsumoto (matz@ix-02)
* regex.c: \200など括弧の数以上の表現は8進リテラルと解釈する.ただ
し,\1から\9までは例外.
* regex.c: \9以上のリファレンスも有効にした.
Tue Mar 7 14:26:01 1995 Yukihiro Matsumoto (matz@ix-02)
* eval.c(public/private): スコープ制御メソッドの名称変更.静的なア
クセスも出来るようにしてみたが,不採用.
Mon Mar 6 19:34:32 1995 Yukihiro Matsumoto (matz@ix-02)
* eval.c(inlcude): メソッド化.動的にモジュールをインクルードでき
るように.さらに任意のオブジェクトにもモジュールをインクルードで
きるメソッド `extend'も用意した.
* parse.y: 文法からincludeを削除.メソッド化.
Tue Feb 28 15:35:10 1995 Yukihiro Matsumoto (matz@ix-02)
* parse.y: 配列,連想配列の最後に`,'をおけるように.
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 25 |
1 files changed, 7 insertions, 18 deletions
@@ -360,8 +360,6 @@ Fstr_cmp(str1, str2) VALUE Freg_match(); -extern VALUE C_Glob; - static VALUE Fstr_match(x, y) struct RString *x, *y; @@ -382,9 +380,6 @@ Fstr_match(x, y) return INT2FIX(start); default: - if (obj_is_kind_of(y, C_Glob)) { - return Fglob_match(y, x); - } Fail("type mismatch"); break; } @@ -684,8 +679,8 @@ str_sub(str, pat, val, once) for (offset=0, n=0; (beg=research(pat, str, offset)) >= 0; - offset=RREGEXP(pat)->ptr->regs.start[0]+STRLEN(val)) { - end = RREGEXP(pat)->ptr->regs.end[0]-1; + offset=BEG(0)+STRLEN(val)) { + end = END(0)-1; sub = re_regsub(val); str_replace2(str, beg, end, sub); n++; @@ -1339,11 +1334,8 @@ Fstr_split(argc, argv, str) int last_null = 0; int idx; -#define LMATCH spat->ptr->regs.start -#define RMATCH spat->ptr->regs.end - while ((end = research(spat, str, start)) >= 0) { - if (start == end && LMATCH[0] == RMATCH[0]) { + if (start == end && BEG(0) == END(0)) { if (last_null == 1) { if (ismbchar(str->ptr[beg])) ary_push(result, str_substr(str, beg, 2)); @@ -1360,17 +1352,17 @@ Fstr_split(argc, argv, str) } else { ary_push(result, str_substr(str, beg, end-beg)); - beg = start = RMATCH[0]; + beg = start = END(0); if (limit && lim <= ++i) break; } last_null = 0; for (idx=1; idx < 10; idx++) { - if (LMATCH[idx] == -1) break; - if (LMATCH[idx] == RMATCH[idx]) + if (BEG(idx) == -1) break; + if (BEG(idx) == END(idx)) tmp = str_new(0, 0); else - tmp = str_subseq(str, LMATCH[idx], RMATCH[idx]-1); + tmp = str_subseq(str, BEG(idx), END(idx)-1); ary_push(result, tmp); if (limit && lim <= ++i) break; } @@ -1380,9 +1372,6 @@ Fstr_split(argc, argv, str) if (str->len > beg) { ary_push(result, str_subseq(str, beg, -1)); } - else if (str->len == beg) { - ary_push(result, str_new(0, 0)); - } return result; } |