[#7300] resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...>

あんまり ruby-dev な話でも無いのですが、ちょっとした機能拡張の提案なので、

12 messages 1999/07/12
[#7321] Re: resolver を呼ばない UDPsocket#recvfrom — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1999/07/15

From: Toshihiko SHIMOKAWA / 下川俊彦 <toshi@csce.kyushu-u.ac.jp>

[#7313] Ruby 1.3.5 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.5 is out, check out:

59 messages 1999/07/15
[#7318] Re: Ruby 1.3.5 — WATANABE Hirofumi <watanabe@...> 1999/07/15

わたなべです.

[#7326] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/15

青山です。

[#7331] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/16

まつもと ゆきひろです

[#7340] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/16

青山です。

[#7368] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7373] Re: Ruby 1.3.5 — Shin-ichiro Hara <sinara@...> 1999/07/19

原です。

[#7374] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/19

まつもと ゆきひろです

[#7382] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/19

青山です。

[#7386] Re: Ruby 1.3.5 — matz@... (Yukihiro Matsumoto) 1999/07/21

まつもと ゆきひろです

[#7388] Re: Ruby 1.3.5 — Wakou Aoyama <wakou@...> 1999/07/21

青山です。

[#7387] [PATCH]extconf.rb, tcltklib.c, and rubytest.rb for NetBSD — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>

早坂@会津大学です。

10 messages 1999/07/21

[#7466] [PATCH] for djgpp — WATANABE Hirofumi <watanabe@...>

わたなべです.

21 messages 1999/07/29
[#7467] Re: [PATCH] for djgpp — Katsuyuki Komatsu <komatsu@...> 1999/07/29

小松です。

[ruby-dev:7427] Re: File#expand_path ignore drive letter on mswin32

From: WATANABE Hirofumi <watanabe@...>
Date: 1999-07-27 03:56:22 UTC
List: ruby-dev #7427
わたなべです.

WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

::>mswin32でFile#expand_pathはドライブ指定を相対パスと
::>みなしてしまいますが……仕様?
::
::後で調べますが、バグでしょう。
:
:すっかり忘れてました.

対応しました.
(ただし File.expand_path("C:") のようなものは除く)

--- file.c.orig	Thu Jul 15 17:29:14 1999
+++ file.c	Tue Jul 27 01:20:40 1999
@@ -1047,2 +1047,12 @@
 
+#if defined(MSDOS) || defined(_WIN32) || defined(__human68k__)
+#define DOSISH 1
+#endif
+
+#if defined DOSISH
+#define ispathsep(x) ((x) == '/' || (x) == '\\')
+#else
+#define ispathsep(x) ((x) == '/')
+#endif
+
 VALUE
@@ -1061,7 +1071,3 @@
     if (s[0] == '~') {
-	if (s[1] == '/' || 
-#if defined(MSDOS) || defined(NT) || defined(__human68k__)
-	    s[1] == '\\' || 
-#endif
-	    s[1] == '\0') {
+	if (ispathsep(s[1]) || s[1] == '\0') {
 	    char *dir = getenv("HOME");
@@ -1080,3 +1086,3 @@
 #endif
-	    while (*s && *s != '/') {
+	    while (*s && !ispathsep(*s)) {
 		*p++ = *s++;
@@ -1096,2 +1102,9 @@
     }
+#if defined DOSISH
+    else if (isalpha(s[0]) && s[1] == ':' && ispathsep(s[2])) {
+	while (*s && !ispathsep(*s)) {
+	    *p++ = *s++;
+	}
+    }
+#endif
     else if (s[0] != '/') {
@@ -1119,6 +1132,6 @@
 		  case '.':
-		    if (*(s+1) == '\0' || *(s+1) == '/') { 
+		    if (*(s+1) == '\0' || ispathsep(*(s+1))) { 
 			/* We must go back to the parent */
-			if (*p == '/' && p > buf) p--;
-			while (p > buf && *p != '/') p--;
+			if (ispathsep(*p) && p > buf) p--;
+			while (p > buf && !ispathsep(*p)) p--;
 		    }
@@ -1130,3 +1143,6 @@
 		  case '/':
-		    if (*p != '/') *++p = '/'; 
+#if defined DOSISH
+		  case '\\':
+#endif
+		    if (!ispathsep(*p)) *++p = '/'; 
 		    break;
@@ -1138,3 +1154,6 @@
 	  case '/':
-	    if (*p != '/') *++p = '/'; break;
+#if defined DOSISH
+	  case '\\':
+#endif
+	    if (!ispathsep(*p)) *++p = '/'; break;
 	  default:
@@ -1145,3 +1164,3 @@
     /* Place a \0 at end. If path ends with a "/", delete it */
-    if (p == buf || *p != '/') p++;
+    if (p == buf || !ispathsep(*p)) p++;
     *p = '\0';

In This Thread