[#12143] NORETURN of 1.6 and 1.7 — nobu.nakada@...
なかだです。
7 messages
2001/02/02
[#12145] [PATCH] indent of access control & symbol highlight — nobu.nakada@...
なかだです。
11 messages
2001/02/03
[#12147] Re: [PATCH] indent of access control & symbol highlight
— matz@... (Yukihiro Matsumoto)
2001/02/03
まつもと ゆきひろです
[#12150] Re: [PATCH] indent of access control & symbol highlight
— arton <arton@...>
2001/02/03
artonです。
[#12152] Re: [PATCH] indent of access control & symbol highlight
— nobu.nakada@...
2001/02/03
なかだです。
[#12155] Re: [PATCH] indent of access control & symbol highlight
— matz@... (Yukihiro Matsumoto)
2001/02/03
まつもと ゆきひろです
[#12158] Re: [PATCH] indent of access control & symbol highlight
— nobu.nakada@...
2001/02/04
なかだです。
[#12159] FRAME argv — Toyofuku <toyofuku@...>
豊福です。
8 messages
2001/02/04
[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>
新井です。
24 messages
2001/02/04
[#12168] Re: patch for ext/gdbm
— matz@... (Yukihiro Matsumoto)
2001/02/05
まつもと ゆきひろです
[#12176] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/02/05
新井です。
[#12179] Re: patch for ext/gdbm
— matz@... (Yukihiro Matsumoto)
2001/02/06
まつもと ゆきひろです
[#12219] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/02/12
新井です。
[#12220] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/02/12
新井です。
[#13051] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/04/28
新井です。
[#13052] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/04/28
新井です。
[#13054] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/04/29
新井です。
[#13056] Re: patch for ext/gdbm
— matz@... (Yukihiro Matsumoto)
2001/04/29
まつもと ゆきひろです
[#13060] Re: patch for ext/gdbm
— Koji Arai <JCA02266@...>
2001/04/29
新井です。
[#12166] observer.rb (Re: [ruby-list:27448] observer と dRuby) — Masatoshi SEKI <m_seki@...>
4 messages
2001/02/05
[#12196] File.directory? on mswin32 — Minero Aoki <aamine@...>
あおきです。
11 messages
2001/02/08
[#12198] Re: File.directory? on mswin32
— Koji Oda <oda@...1.qnes.nec.co.jp>
2001/02/09
小田@QNES です。
[#12197] String#fnmatch — "Akinori MUSHA" <knu@...>
ちょっとしたユーティリティを書いていて、 String#fnmatch() が
6 messages
2001/02/08
[#12211] Adding value in CONFIG (rbconfig.rb) — Takahiro Kambe <taca@...>
こんばんは。
7 messages
2001/02/11
[#12212] Re: Adding value in CONFIG (rbconfig.rb)
— matz@... (Yukihiro Matsumoto)
2001/02/11
まつもと ゆきひろです
[#12214] Re: Adding value in CONFIG (rbconfig.rb)
— Takahiro Kambe <taca@...>
2001/02/12
In message <981934169.246959.22124.nullmailer@ev.netlab.zetabits.com>
[#12215] [PATCH] Dir::glob escape space — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
4 messages
2001/02/12
[#12224] lazy mswin32/mingw32(Re: データベース ) — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
12 messages
2001/02/13
[#12228] Re: lazy mswin32/mingw32(Re: データベース )
— "U.Nakamura" <usa@...>
2001/02/13
こんにちは、なかむら(う)です。
[#12233] Re: lazy mswin32/mingw32(Re: データベース )
— nobu.nakada@...
2001/02/13
なかだです。
[#12235] Re: lazy mswin32/mingw32(Re: データベース )
— "U.Nakamura" <usa@...>
2001/02/14
こんにちは、なかむら(う)です。
[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
15 messages
2001/02/17
[#12258] Re: set_trace_func
— matz@... (Yukihiro Matsumoto)
2001/02/17
まつもと ゆきひろです
[#12268] Re: set_trace_func
— keiju@... (石塚圭樹)
2001/02/18
けいじゅ@日本ラショナルソフトウェアです.
[#12275] Re: set_trace_func
— matz@... (Yukihiro Matsumoto)
2001/02/18
まつもと ゆきひろです
[#12281] Re: set_trace_func
— keiju@... (石塚圭樹)
2001/02/20
けいじゅ@日本ラショナルソフトウェアです.
[#12261] system() problem — "Akinori MUSHA" <knu@...>
Ruby で以下を実行すると、いくつかの環境では終了待ちのまま
9 messages
2001/02/17
[#12263] Re: system() problem
— matz@... (Yukihiro Matsumoto)
2001/02/17
まつもと ゆきひろです
[#12288] __builtin_frame_address(2) — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
12 messages
2001/02/23
[#12289] Re: __builtin_frame_address(2)
— matz@... (Yukihiro Matsumoto)
2001/02/23
まつもと ゆきひろです
[#12294] Re: __builtin_frame_address(2)
— nobu.nakada@...
2001/02/25
なかだです。
[#12296] Re: __builtin_frame_address(2)
— matz@... (Yukihiro Matsumoto)
2001/02/25
まつもと ゆきひろです
[#12301] Re: __builtin_frame_address(2)
— nobu.nakada@...
2001/02/25
なかだです。
[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>
15 messages
2001/02/25
[#12295] Re: crash on proc without a block
— matz@... (Yukihiro Matsumoto)
2001/02/25
まつもと ゆきひろです
[#12299] Re: crash on proc without a block
— Kenichi Komiya <kom@...1.accsnet.ne.jp>
2001/02/25
[#12304] Re: crash on proc without a block
— matz@... (Yukihiro Matsumoto)
2001/02/26
まつもと ゆきひろです
[#12307] Re: crash on proc without a block
— nobu.nakada@...
2001/02/26
なかだです。
[#12318] Quote Symbol — Hiroshi IGARASHI <igarashi@...>
いがらしです。
15 messages
2001/02/27
[#12321] Re: Quote Symbol
— matz@... (Yukihiro Matsumoto)
2001/02/28
まつもと ゆきひろです
[#12325] Re: Quote Symbol
— Hiroshi IGARASHI <igarashi@...>
2001/02/28
いがらしです。
[#12326] Re: Quote Symbol
— matz@... (Yukihiro Matsumoto)
2001/02/28
まつもと ゆきひろです
[#12353] Re: Quote Symbol
— matz@... (Yukihiro Matsumoto)
2001/03/05
まつもと ゆきひろです
[#12357] Re: Quote Symbol
— Hiroshi IGARASHI <igarashi@...>
2001/03/05
いがらしです。
[#12361] Re: Quote Symbol
— matz@... (Yukihiro Matsumoto)
2001/03/05
まつもと ゆきひろです
[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>
ruby-listから移動しました。
13 messages
2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension
— matz@... (Yukihiro Matsumoto)
2001/02/28
まつもと ゆきひろです
[#12327] Re: [ruby-list:28364] class definition extension
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2001/02/28
なかだです。
[#12331] Re: [ruby-list:28364] class definition extension
— matz@... (Yukihiro Matsumoto)
2001/03/01
まつもと ゆきひろです
[#12332] Re: [ruby-list:28364] class definition extension
— gotoken@... (GOTO Kentaro)
2001/03/01
In message "[ruby-dev:12331] Re: [ruby-list:28364] class definition extension"
[ruby-dev:12231] Re: [PATCH] Dir::glob escape space
From:
matz@... (Yukihiro Matsumoto)
Date:
2001-02-13 19:03:07 UTC
List:
ruby-dev #12231
まつもと ゆきひろです
In message "[ruby-dev:12215] [PATCH] Dir::glob escape space"
on 01/02/12, "U.Nakamura" <usa@osb.att.ne.jp> writes:
|ちょっと古い話になっちゃいますが、[ruby-list:26923]の話って
|こういうのでダメですかね?
|# 手抜きですが :-P
どうせやるならメタキャラクタも含めてエスケープできるようにす
べきでしょう。というわけで、ちょっとハックしました。
[ruby-talk:10786]に触発されてglobをブロック付きで呼び出した
ときの高速化コードも含んでます。
--- dir.c~ Mon Nov 20 10:24:22 2000
+++ dir.c Wed Feb 14 03:29:05 2001
@@ -553,10 +553,28 @@
return extract_path(path, pend);
}
+static void
+remove_backslases(p)
+ char *p;
+{
+ char *pend = p + strlen(p);
+ char *t = p;
+
+ while (p < pend) {
+ if (*p == '\\') {
+ *p++;
+ if (p == pend) break;
+ }
+ *t++ = *p++;
+ }
+ *t = '\0';
+}
+
#ifndef S_ISDIR
# define S_ISDIR(m) ((m & S_IFMT) == S_IFDIR)
#endif
+
void
rb_glob_helper(path, flag, func, arg)
char *path;
@@ -568,7 +586,8 @@
char *p, *m;
if (!has_magic(path, 0)) {
- if (stat(path, &st) == 0) {
+ remove_backslases(path);
+ if (rb_sys_stat(path, &st) == 0) {
(*func)(path, arg);
}
return;
@@ -601,11 +620,22 @@
rb_glob_helper(buf, flag, func, arg);
free(buf);
}
- dirp = opendir(dir);
- if (dirp == NULL) {
- free(base);
- break;
+ if (lstat(dir, &st) < 0) {
+ free(base);
+ break;
+ }
+ if (S_ISDIR(st.st_mode)) {
+ dirp = opendir(dir);
+ if (dirp == NULL) {
+ free(base);
+ break;
+ }
+ }
+ else {
+ free(base);
+ break;
}
+
#define BASE (*base && !(*base == '/' && !base[1]))
for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
@@ -636,7 +666,7 @@
free(base);
free(magic);
while (link) {
- stat(link->path, &st); /* should success */
+ lstat(link->path, &st); /* should success */
if (S_ISDIR(st.st_mode)) {
int len = strlen(link->path);
int mlen = strlen(m);
@@ -679,7 +709,14 @@
char *path;
VALUE ary;
{
- rb_ary_push(ary, rb_tainted_str_new2(path));
+ VALUE str = rb_tainted_str_new2(path);
+
+ if (ary) {
+ rb_ary_push(ary, str);
+ }
+ else {
+ rb_yield(str);
+ }
}
static void
@@ -753,10 +790,12 @@
char buffer[MAXPATHLEN], *buf = buffer;
char *t;
int nest;
- VALUE ary;
+ VALUE ary = 0;
Check_SafeStr(str);
- ary = rb_ary_new();
+ if (!rb_block_given_p()) {
+ ary = rb_ary_new();
+ }
if (RSTRING(str)->len >= MAXPATHLEN)
buf = xmalloc(RSTRING(str)->len + 1);
@@ -770,6 +809,10 @@
while (p < pend && !isdelim(*p)) {
if (*p == '{') nest+=2;
if (*p == '}') nest+=3;
+ if (*p == '\\') {
+ *t++ = *p++;
+ if (p == pend) break;
+ }
*t++ = *p++;
}
*t = '\0';
@@ -783,14 +826,6 @@
}
if (buf != buffer)
free(buf);
- if (rb_block_given_p()) {
- long len = RARRAY(ary)->len;
- VALUE *ptr = RARRAY(ary)->ptr;
-
- while (len--) {
- rb_yield(*ptr++);
- }
- }
return ary;
}