[#23805] net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp>

佐藤です。

26 messages 2000/07/12
[#23806] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23808] Re: net/smtp — 佐藤 大輔 <densuke@...2.so-net.ne.jp> 2000/07/12

佐藤です。

[#23809] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23811] Re: net/smtp — Minero Aoki <aamine@...> 2000/07/12

あおきです。

[#23812] Re: net/smtp — matz@... (Yukihiro Matsumoto) 2000/07/12

まつもと ゆきひろです

[#23890] Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...>

25 messages 2000/07/18
[#23895] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/18

わたなべです.

[#23896] Re: Ruby Entry Package and cygwin1.dll — Noritsugu Nakamura <nnakamur@...> 2000/07/18

[#23897] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23898] Re: Ruby Entry Package and cygwin1.dll — WATANABE Hirofumi <eban@...> 2000/07/19

わたなべです.

[#23899] Re: Ruby Entry Package and cygwin1.dll — Katsuyuki Komatsu <komatsu@...> 2000/07/19

小松です。

[#23923] Re: [ruby-dev:10353] Re: should prohibit `module_function' for class Class — Masatoshi SEKI <m_seki@...>

11 messages 2000/07/19

[#23940] String#unpack と scanf の関係 — kiwamu <kiwamu@...>

こんにちは。岡部@東京都立大学と申します。

16 messages 2000/07/20

[ruby-list:23854] Re: IO#reopen, IO#read

From: matz@... (Yukihiro Matsumoto)
Date: 2000-07-14 06:10:31 UTC
List: ruby-list #23854
まつもと ゆきひろです

In message "[ruby-list:23836] IO#reopen, IO#read"
    on 00/07/13, Ueno Katsuhiro <unnie@blue.sky.or.jp> writes:

|これって実装の都合上仕方ないんでしょうか。
|使っている Ruby のバージョンは 1.4.5 です。

--- io.c	2000/06/20 06:08:38	1.5.2.17
+++ io.c	2000/07/14 06:09:21
@@ -384,2 +384,28 @@
 
+static size_t
+io_fread(ptr, len, f)
+    char *ptr;
+    size_t len;
+    FILE *f;
+{
+    size_t n = len;
+    int c;
+
+    while (n--) {
+	if (!READ_DATA_PENDING(f)) {
+	    rb_thread_wait_fd(fileno(f));
+	}
+	TRAP_BEG;
+	c = getc(f);
+	TRAP_END;
+	if (c == EOF) {
+	    *ptr = '\0';
+	    break;
+	}
+	*ptr++ = c;
+    }
+
+    return len - n - 1;
+}
+
 #ifndef S_ISREG
@@ -423,7 +449,5 @@
     str = rb_str_new(0, siz);
+    READ_CHECK(fptr->f);
     for (;;) {
-	READ_CHECK(fptr->f);
-	TRAP_BEG;
-	n = fread(RSTRING(str)->ptr+bytes, 1, siz-bytes, fptr->f);
-	TRAP_END;
+	n = io_fread(RSTRING(str)->ptr+bytes, siz-bytes, fptr->f);
 	if (n == 0 && bytes == 0) {
@@ -444,28 +468,2 @@
 
-static size_t
-io_fread(ptr, len, f)
-    char *ptr;
-    size_t len;
-    FILE *f;
-{
-    size_t n = len;
-    int c;
-
-    while (n--) {
-	if (!READ_DATA_PENDING(f)) {
-	    rb_thread_wait_fd(fileno(f));
-	}
-	TRAP_BEG;
-	c = getc(f);
-	TRAP_END;
-	if (c == EOF) {
-	    *ptr = '\0';
-	    break;
-	}
-	*ptr++ = c;
-    }
-
-    return len - n - 1;
-}
-
 static VALUE
@@ -1729,2 +1727,3 @@
     if (fd < 3) {
+	clearerr(fptr->f);
 	/* need to keep stdio */

In This Thread

Prev Next