summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <matz@ruby-lang.org>1995-03-15 14:59:18 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2019-08-17 22:09:31 +0900
commitd349889e770a2078c247d9d28070e86a54b856f4 (patch)
tree8bdbf87f3ff78ef237c4ff8efa061fbb8dc5a226 /string.c
parent881c5a9c320c637ee0f6526b40cf70c1379ab656 (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.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/string.c b/string.c
index a107a7f8b7..73c1678974 100644
--- a/string.c
+++ b/string.c
@@ -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;
}