[#22195] IO::for_io and TCPServer#bind — GOTOU Yuuzou <gotoyuzo@...>

test_drb が IPv4 射影アドレスが有効な環境でないと動かないこ

16 messages 2003/12/09
[#22198] Re: IO::for_io and TCPServer#bind — matz@... (Yukihiro Matsumoto) 2003/12/09

まつもと ゆきひろです

[#22205] yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org>

StringIO の

24 messages 2003/12/10
[#22206] Re: yet another inconsistency about EOF between StringIO and IO — nobu.nakada@... 2003/12/10

なかだです。

[#22214] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/10

In article <200312100725.hBA7P8Ac011112@sharui.nakada.kanuma.tochigi.jp>,

[#22222] Re: yet another inconsistency about EOF between StringIO and IO — nobu.nakada@... 2003/12/10

なかだです。

[#22234] Re: yet another inconsistency about EOF between StringIO and IO — Masahiro Sakai (酒井政裕) <sakai@...> 2003/12/11

さかいといいます。

[#22262] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/13

In article <20031211.214041.71090239.sakai@tom.sfc.keio.ac.jp>,

[#22328] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/23

In article <87k751dzyf.fsf@serein.a02.aist.go.jp>,

[#22331] Re: yet another inconsistency about EOF between StringIO and IO — matz@... (Yukihiro Matsumoto) 2003/12/23

まつもと ゆきひろです

[#22334] Re: yet another inconsistency about EOF between StringIO and IO — Tanaka Akira <akr@...17n.org> 2003/12/23

In article <1072167374.096702.13473.nullmailer@picachu.netlab.jp>,

[#22343] Re: yet another inconsistency about EOF between StringIO and IO — matz@... (Yukihiro Matsumoto) 2003/12/23

まつもと ゆきひろです

[#22330] core dump with ungetc — Tanaka Akira <akr@...17n.org>

次のように ungetc を使うと core を吐く場合があります。

14 messages 2003/12/23
[#22332] Re: core dump with ungetc — nobu.nakada@... 2003/12/23

なかだです。

[#22366] `to_s': method `to_s' overridden (TypeError) — Tanaka Akira <akr@...17n.org>

そういえば、次の `to_s': method `to_s' overridden (TypeError) というの

12 messages 2003/12/24

[#22385] Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...>

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

19 messages 2003/12/24
[#22387] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22393] Re: Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...> 2003/12/24

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

[#22395] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22396] Re: Tk.callback_break causes seg-fault or hang-up — matz@... (Yukihiro Matsumoto) 2003/12/24

まつもと ゆきひろです

[#22397] Re: Tk.callback_break causes seg-fault or hang-up — Hidetoshi NAGAI <nagai@...> 2003/12/24

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

[#22418] ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...>

みやむこです。

29 messages 2003/12/25
[#22419] Re: ruby-1.8.1 build failed on HP-UX 11.11 — matz@... (Yukihiro Matsumoto) 2003/12/25

まつもと ゆきひろです

[#22420] Re: ruby-1.8.1 build failed on HP-UX 11.11 — matz@... (Yukihiro Matsumoto) 2003/12/25

まつもと ゆきひろです

[#22424] Re: ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...> 2003/12/25

みやむこです。

[#22491] Re: ruby-1.8.1 build failed on HP-UX 11.11 — MIYAMUKO Katsuyuki <k-miyamuko@...> 2004/01/05

みやむこです。

[ruby-dev:22270] Re: Dir.glob とShjift_JIS について

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2003-12-13 12:05:26 UTC
List: ruby-dev #22270
山本です。

remove_backslashes(p)が動いていなかったので修正しました。
あとはMBLEN("")==0に統一したので、CompareImplでその場合に対処。
find_magicが前の'/'から検索しなおしていて非効率になっていたので、
修正しました。

[ruby-dev:22263]に対する差分です。

--- dir.c-22263	Sat Dec 13 16:14:14 2003
+++ dir.c	Sat Dec 13 20:59:46 2003
@@ -80,10 +80,8 @@ char *strchr _((char*,char));
 
+/* caution: MBLEN('\0')==0 and MBLEN(other SB)==1 */
 #if defined(CharNext)
-# define Next(p) CharNext(p) /* faster */
 # define MBLEN(p) (CharNext(p)-(p))
 #elif defined(DJGPP)
-# define Next(p) ((p) + MBLEN(p))
 # define MBLEN(p) mblen(p, MB_CUR_MAX)
 #elif defined(__EMX__)
-# define Next(p) ((p) + MBLEN(p))
 static inline int
@@ -93,4 +91,3 @@ MBLEN(p)
     int n = mblen(p, INT_MAX);
-    if (n <= 0) n = 1;
-    return n;
+    return (n < 0) ? 1 : n;
 }
@@ -98,3 +95,4 @@ MBLEN(p)
 
-#ifndef Next /* single byte environment */
+/* caution: between these environments, Next(Inc) has difference in behavior for '\0' */
+#ifndef MBLEN /* single byte environment */
 # define Next(p) ((p) + 1)
@@ -103,2 +101,3 @@ MBLEN(p)
 #else /* multi byte environment */
+# define Next(p) ((p) + MBLEN(p))
 # define Inc(p) ((p) = Next(p))
@@ -114,4 +113,4 @@ CompareImpl(p1, p2, nocase)
 
-    if (len1 == 1)
-	if (len2 == 1) {
+    if (len1 <= 1)
+	if (len2 <= 1) {
 	    return compare(downcase(*p1), downcase(*p2));
@@ -123,3 +122,3 @@ CompareImpl(p1, p2, nocase)
     else
-	if (len2 == 1) {
+	if (len2 <= 1) {
 	    const int ret = compare(*p1, downcase(*p2));
@@ -615,4 +614,4 @@ dir_s_rmdir(obj, dir)
 static void
-find_magic(s, flags, pbeg, pend)
-     char *s;
+find_magic(p, flags, pbeg, pend)
+     register char *p;
      int flags;
@@ -621,3 +620,2 @@ find_magic(s, flags, pbeg, pend)
 {
-    register char *p = s;
     register char c;
@@ -626,3 +624,3 @@ find_magic(s, flags, pbeg, pend)
 
-    *pbeg = s;
+    *pbeg = p;
 
@@ -631,3 +629,3 @@ find_magic(s, flags, pbeg, pend)
 	  case '/':
-	    *pbeg = s = p;
+	    *pbeg = p;
 	    continue;
@@ -656,3 +654,3 @@ find_magic(s, flags, pbeg, pend)
   miss:
-    *pbeg = *pend = --p;
+    *pbeg = *pend = p-1;
     return;
@@ -660,5 +658,5 @@ find_magic(s, flags, pbeg, pend)
   found:
-    while (*s && *s != '/')
-	Inc(s);
-    *pend = s;
+    while (*p && *p != '/')
+	Inc(p);
+    *pend = p;
 }
@@ -686,3 +684,2 @@ remove_backslashes(p)
 {
-    char *pend = p + strlen(p);
     char *t = p;
@@ -690,18 +687,17 @@ remove_backslashes(p)
 
-    while (p < pend) {
+    while (*p) {
 	if (*p == '\\') {
-	    if (p > s) {
-		if (s > t) memcpy(t, s, p - s);
-		t += p - s;
-		s = p;
+	    if (t != s) {
+		memmove(t, s, p - s);
 	    }
-	    if (++p == pend) break;
+	    t += (p - s);
+	    s = ++p;
+	    if (!*p) break;
 	}
-	p = Next(p);
+	Inc(p);
     }
-    if (p > s) {
-	if (s > t) memcpy(t, s, p - s);
-	t += p - s;
+
+    if (t != s) {
+	memmove(t, s, p - s + 1); /* move '\0' too */
     }
-    *t = '\0';
 }


In This Thread