[#26468] $SAFE=1 の open-uri で redirect 時にエラー — Kazuhiko <kazuhiko@...>

かずひこです。

40 messages 2005/07/07
[#26469] Re: $SAFE=1 の open-uri で redirect 時にエラー — Tanaka Akira <akr@...17n.org> 2005/07/07

In article <m3zmsylimn.wl%kazuhiko@fdiary.net>,

[#26470] Re: $SAFE=1 の open-uri で redirect 時にエラー — Yukihiro Matsumoto <matz@...> 2005/07/07

まつもと ゆきひろです

[#26471] Re: $SAFE=1 の open-uri で redirect 時にエラー — Tanaka Akira <akr@...17n.org> 2005/07/07

In article <1120754832.716261.15867.nullmailer@x31.priv.netlab.jp>,

[#26472] Re: $SAFE=1 の open-uri で redirect 時にエラー — Yukihiro Matsumoto <matz@...> 2005/07/07

まつもと ゆきひろです

[#26475] Re: $SAFE=1 の open-uri で redirect 時にエラー — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <1120762886.189058.18880.nullmailer@x31.priv.netlab.jp>,

[#26476] Re: $SAFE=1 の open-uri で redirect 時にエラー — Yukihiro Matsumoto <matz@...> 2005/07/08

まつもと ゆきひろです

[#26479] Re: $SAFE=1 の open-uri で redirect 時にエラー — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <1120810939.815280.27104.nullmailer@x31.priv.netlab.jp>,

[#26483] Re: $SAFE=1 の open-uri で redirect 時にエラー — Yukihiro Matsumoto <matz@...> 2005/07/08

まつもと ゆきひろです

[#26485] Re: $SAFE=1 の open-uri で redirect 時にエラー — Shugo Maeda <shugo@...> 2005/07/08

前田です。

[#26486] Re: $SAFE=1 の open-uri で redirect 時にエラー — Yukihiro Matsumoto <matz@...> 2005/07/08

まつもと ゆきひろです

[#26525] Re: $SAFE=1 の open-uri で redirect 時にエラー — Tanaka Akira <akr@...17n.org> 2005/07/12

In article <42CF1918.5000603@ruby-lang.org>,

[#26493] can't handle \c\ — KIMURA Koichi <kbk@...>

木村です。

18 messages 2005/07/09
[#26496] Re: can't handle \c\ — "URABE Shyouhei aka. mput" <root@...> 2005/07/10

卜部でございます。

[#26574] SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — Tanaka Akira <akr@...17n.org>

次のように、メッセージの最後が切れます。

28 messages 2005/07/19
[#26576] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — Yukihiro Matsumoto <matz@...> 2005/07/19

まつもと ゆきひろです

[#26578] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — nobu@... 2005/07/19

なかだです。

[#26579] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/07/19

山本です。

[#26580] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — Yukihiro Matsumoto <matz@...> 2005/07/19

まつもと ゆきひろです

[#26586] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/07/20

なかだです。

[#26587] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/07/20

山本です。

[#26589] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — nobu@... 2005/07/20

なかだです。

[#26597] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/07/21

山本です。

[#26599] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/07/22

なかだです。

[#26628] show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

37 messages 2005/07/28
[#26632] Re: show information of '--enable-pthread' — Yukihiro Matsumoto <matz@...> 2005/07/28

まつもと ゆきひろです

[#26634] Re: show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...> 2005/07/28

永井@知能.九工大です.

[#26635] Re: show information of '--enable-pthread' — WATANABE Hirofumi <eban@...> 2005/07/28

わたなべです。

[#26645] Re: show information of '--enable-pthread' — "U.Nakamura" <usa@...> 2005/07/29

こんにちは、なかむら(う)です。

[#26646] Re: show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...> 2005/07/29

永井@知能.九工大です.

[#26658] Re: show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...> 2005/07/31

永井@知能.九工大です.

[#26659] Re: show information of '--enable-pthread' — Takahiro Kambe <taca@...> 2005/07/31

In message <20050731.094203.74726476.nagai@ai.kyutech.ac.jp>

[#26662] Re: show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...> 2005/07/31

永井@知能.九工大です.

[#26663] Re: show information of '--enable-pthread' — "U.Nakamura" <usa@...> 2005/07/31

こんにちは、なかむら(う)です。

[#26669] Re: show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...> 2005/08/01

永井@知能.九工大です.

[ruby-dev:26508] rmdir(2) on windows doesn't set ENOTDIR

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-07-11 00:13:19 UTC
List: ruby-dev #26508
山本です。

http://cia.navi.cx/stats/project/ruby/.message/5954100 の変更ですが、
今 Windows は Dir.rmdir が Errno::ENOTDIR を出さないので動かない
と思います。そこで、下のような変更をするのはどうでしょうか。

RTL の mkdir と rmdir を API の CreateDirectory と RemoveDirectory
に置き換えることになりますが、bcc32 では元々そういう挙動(+errno のセット)
なので、問題ありません。

win32 の方は・・・ソースを見れないので確証はありませんが、単純な関数だし、
たぶん大丈夫じゃないかと思います。ビルドが通ることは確認しました。

Index: win32.c
===================================================================
RCS file: /src/ruby/win32/win32.c,v
retrieving revision 1.103.2.28
diff -u -w -b -p -r1.103.2.28 win32.c
--- win32.c	20 Jun 2005 07:53:22 -0000	1.103.2.28
+++ win32.c	10 Jul 2005 23:06:23 -0000
@@ -157,6 +157,7 @@ static struct {
     {	ERROR_NEGATIVE_SEEK,		EINVAL		},
     {	ERROR_SEEK_ON_DEVICE,		EACCES		},
     {	ERROR_DIR_NOT_EMPTY,		ENOTEMPTY	},
+    {	ERROR_DIRECTORY,		ENOTDIR		},
     {	ERROR_NOT_LOCKED,		EACCES		},
     {	ERROR_BAD_PATHNAME,		ENOENT		},
     {	ERROR_MAX_THRDS_REACHED,	EAGAIN		},
@@ -3394,19 +3395,17 @@ rb_w32_snprintf(char *buf, size_t size, 
     return ret;
 }
 
-#undef mkdir
-#undef rmdir
 int
 rb_w32_mkdir(const char *path, int mode)
 {
     int ret = -1;
     RUBY_CRITICAL(do {
-	if (mkdir(path) == -1)
+	if (CreateDirectory(path, NULL) == FALSE) {
+	    errno = map_errno(GetLastError());
 	    break;
+	}
 	if (chmod(path, mode) == -1) {
-	    int save_errno = errno;
-	    rmdir(path);
-	    errno = save_errno;
+	    RemoveDirectory(path);
 	    break;
 	}
 	ret = 0;
@@ -3418,18 +3417,22 @@ int
 rb_w32_rmdir(const char *path)
 {
     DWORD attr;
-    int ret;
-    RUBY_CRITICAL({
+    int ret = -1;
+    RUBY_CRITICAL(do {
 	attr = GetFileAttributes(path);
 	if (attr != (DWORD)-1 && (attr & FILE_ATTRIBUTE_READONLY)) {
 	    attr &= ~FILE_ATTRIBUTE_READONLY;
 	    SetFileAttributes(path, attr);
 	}
-	ret = rmdir(path);
-	if (ret < 0 && attr != (DWORD)-1) {
+	if (RemoveDirectory(path) == FALSE) {
+	    errno = map_errno(GetLastError());
+	    if (attr != (DWORD)-1) {
 	    SetFileAttributes(path, attr);
 	}
-    });
+	    break;
+	}
+	ret = 0;
+    } while (0));
     return ret;
 }

//////////////////////////////////////////////////////////
// パッチ適用前

E:\ruby-cvs\win32_1_8>miniruby -ve "Dir.rmdir('makefile')"
ruby 1.8.3 (2005-07-05) [i386-mswin32]
-e:1:in `rmdir': Invalid argument - makefile (Errno::EINVAL)
        from -e:1

E:\ruby-cvs\bcc32_1_8>miniruby -ve "Dir.rmdir('makefile')"
ruby 1.8.3 (2005-07-05) [i386-bccwin32]
-e:1:in `rmdir': Invalid argument (Errno::EINVAL)
 - makefile     from -e:1

E:\ruby-cvs\bcc32_1_8>miniruby -ve "Dir.mkdir('makefile')"
ruby 1.8.3 (2005-07-05) [i386-bccwin32]
-e:1:in `mkdir': Permission denied (Errno::EACCES)
 - makefile     from -e:1

//////////////////////////////////////////////////////////
// パッチ適用後

E:\ruby-cvs\win32_1_8>miniruby -e "Dir.rmdir('makefile')"
-e:1:in `rmdir': Not a directory - makefile (Errno::ENOTDIR)
        from -e:1

E:\ruby-cvs\bcc32_1_8>miniruby -e "Dir.rmdir('makefile')"
-e:1:in `rmdir': Not a directory (Errno::ENOTDIR)
 - makefile     from -e:1

E:\ruby-cvs\bcc32_1_8>miniruby -e "Dir.mkdir('makefile')"
-e:1:in `mkdir': File already exists (Errno::EEXIST)
 - makefile     from -e:1



In This Thread

Prev Next