[#2568] experimental release 1.1b9_17 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2577] how to check if ruby method is defined — Kikutani Makoto <kikutani@...>
きくたにです。
立石@JAISTです。
まつもと ゆきひろです
きくたにです。
[#2580] File::Separator — WATANABE Tetsuya <tetsu@...>
連休中にいくつかスクリプトを書いていて思ったのですが。
[#2602] experimental release 1.1b9_18 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2608] experimental release ruby 1.1b9_19 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
わたなべです.
わたなべです.
まつもと ゆきひろです
[#2632] RE: English uguide (Re: experimental release ruby 1.1b9_19) — 助田 雅紀 <masaki.suketa@...>
助田です。
[#2657] uguide07.html — gotoken@... (GOTO Kentaro)
ごとけんです
[#2664] [BUG] b = proc{binding}.call — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#2681] [BUG] eval str, b, fn, ln — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#2698] experimental release 1.1b9_22 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2706] [BUG??] a +"::" — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#2708] Re: experimental release 1.1b9_21 — "MAEDA Shugo" <shugo@...>
前田です。
[#2721] convert Perl's t/regexp.t to ruby — Inaba Hiroto <inaba@...>
ruby-list の regexp difference with perl のスレッドを読んでいて思いつ
まつもと ゆきひろです
t/regexp.tではなくてt/op/regexp.tでした。
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
From: Inaba Hiroto <inaba@st.rim.or.jp>
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
まつもと ゆきひろです
ちょっとソースを読んでみました。それで気がついた事を書きます。
まつもと ゆきひろです
From: matz@netlab.co.jp (Yukihiro Matsumoto)
うーーん、もうけりがついたと思ったのに...
まつもと ゆきひろです
[#2725] return value of iterator File.open and Dir.open — Inaba Hiroto <inaba@...>
[ruby-list:8003] Re: Dir.open orderでFile.openやDir.openがイテレータと
まつもと ゆきひろです
[#2733] File::expand_path — "MAEDA Shugo" <shugo@...>
前田です。
[#2772] nil + obj — "MAEDA Shugo" <shugo@...>
前田です。
[#2779] Re: experimental release 1.1b9_21 — "MAEDA Shugo" <shugo@...>
前田です。
[ruby-dev:2663] File#expand_path
前田です。
MacRubyのスレッドを見ていて思い出したのですが、前からEmacsLisp
みたいにexpand_pathでデフォルトディレクトリを指定できたらいいな
と思っていたのですが、如何でしょう。
あと、できればfile-name-as-directoryもあるとうれしいです。
--
前田修吾
--- eval.c.orig Mon May 18 03:28:09 1998
+++ eval.c Mon May 18 03:27:57 1998
@@ -4043,7 +4043,7 @@
Check_SafeStr(fname);
if (RSTRING(fname)->ptr[0] == '~') {
- fname = file_s_expand_path(0, fname);
+ fname = file_s_expand_path(1, &fname);
}
file = find_file(RSTRING(fname)->ptr);
if (!file) LoadError("No such file to load -- %s", RSTRING(fname)->ptr);
--- file.c.orig Mon May 18 03:18:50 1998
+++ file.c Mon May 18 03:35:24 1998
@@ -1177,12 +1177,16 @@
}
VALUE
-file_s_expand_path(obj, fname)
- VALUE obj, fname;
+file_s_expand_path(argc, argv)
+ int argc;
+ VALUE *argv;
{
+ VALUE fname, dname;
char *s, *p;
char buf[MAXPATHLEN+2];
+ rb_scan_args(argc, argv, "11", &fname, &dname);
+
Check_Type(fname, T_STRING);
s = RSTRING(fname)->ptr;
@@ -1225,12 +1229,18 @@
}
}
else if (s[0] != '/') {
+ if (argc == 2) {
+ Check_Type(dname, T_STRING);
+ strcpy(buf, RSTRING(dname)->ptr);
+ } else {
#ifdef HAVE_GETCWD
- getcwd(buf, MAXPATHLEN);
+ getcwd(buf, MAXPATHLEN);
#else
- getwd(buf);
+ getwd(buf);
#endif
+ }
p = &buf[strlen(buf)];
+ while (p > buf && *(p - 1) == '/') p--;
}
*p = '/';
@@ -1695,7 +1705,7 @@
rb_define_singleton_method(cFile, "rename", file_s_rename, 2);
rb_define_singleton_method(cFile, "umask", file_s_umask, -1);
rb_define_singleton_method(cFile, "truncate", file_s_truncate, 2);
- rb_define_singleton_method(cFile, "expand_path", file_s_expand_path, 1);
+ rb_define_singleton_method(cFile, "expand_path", file_s_expand_path, -1);
rb_define_singleton_method(cFile, "basename", file_s_basename, -1);
rb_define_singleton_method(cFile, "dirname", file_s_dirname, 1);
--- intern.h.orig Mon May 18 03:25:14 1998
+++ intern.h Mon May 18 03:24:52 1998
@@ -139,7 +139,7 @@
/* file.c */
VALUE file_open _((char *, char *));
int eaccess _((char *, int));
-VALUE file_s_expand_path _((VALUE, VALUE));
+VALUE file_s_expand_path _((int, VALUE *));
/* gc.c */
void rb_global_variable _((VALUE *));
void gc_mark_locations _((VALUE *, VALUE *));