[#19011] open-uri - very easy net access library — Tanaka Akira <akr@...17n.org>

HTTP, FTP に簡単にアクセスするための open-uri というライブラリを作って

19 messages 2002/12/06

[#19066] ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

41 messages 2002/12/13
[#19079] Re: ruby 1.6.9 preview4 予告 — "Akinori MUSHA" <knu@...> 2002/12/16

At Fri, 13 Dec 2002 15:28:47 +0900,

[#19086] Re: ruby 1.6.9 preview4 予告 — UENO Katsuhiro <unnie@...> 2002/12/17

うえのです。

[#19087] Re: ruby 1.6.9 preview4 予告 — matz@... (Yukihiro Matsumoto) 2002/12/17

まつもと ゆきひろです

[#19083] Re: [ruby-cvs] ruby: * file.c (utimbuf): need to define for VC++. — WATANABE Hirofumi <eban@...>

わたなべです。

11 messages 2002/12/16

[#19127] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — nobu.nakada@...

なかだです。

16 messages 2002/12/19
[#19129] Re: 1.6.8-preview4 build failed (on Vine Linux 2.1.5) (PR#373) — WATANABE Hirofumi <eban@...> 2002/12/19

わたなべです。

[#19198] ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@...

38 messages 2002/12/25
[#19209] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19218] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — m_seki@... 2002/12/27

[#19219] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2002/12/27

まつもと ゆきひろです

[#19264] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19266] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

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

[#19271] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19272] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

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

[#19276] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — matz@... (Yukihiro Matsumoto) 2003/01/01

まつもと ゆきひろです

[#19278] Re: ruby-1.8.0 / yield(nil)とyield()のちがい — Tanaka Akira <akr@...17n.org> 2003/01/01

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

[ruby-dev:19137] [PATCH] Marshal.dump to non-blocking IO & error check

From: nobu.nakada@...
Date: 2002-12-20 08:09:31 UTC
List: ruby-dev #19137
なかだです。

[ruby-core:00569]でJos Backusに指摘されたMarshal.dumpがnon-
blocking IOに対応していないのと、エラーチェックしてない件のパッ
チです。


Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.172
diff -u -2 -p -r1.172 io.c
--- io.c	19 Dec 2002 09:20:20 -0000	1.172
+++ io.c	20 Dec 2002 08:05:13 -0000
@@ -352,4 +352,34 @@ rb_io_wait_writable(f)
 
 /* writing functions */
+long
+rb_io_fwrite(ptr, len, f)
+    const char *ptr;
+    long len;
+    FILE *f;
+{
+    long n, r;
+
+    if ((n = len) <= 0) return n;
+#ifdef __human68k__
+    do {
+	if (fputc(*ptr++, f) == EOF) {
+	    if (ferror(f)) return -1L;
+	    break;
+	}
+    } while (--n > 0);
+#else
+    while (ptr += (r = fwrite(ptr, 1, n, f)), (n -= r) > 0) {
+	if (ferror(f)) {
+	    if (rb_io_wait_writable(fileno(f))) {
+		clearerr(f);
+		continue;
+	    }
+	    return -1L;
+	}
+    }
+#endif
+    return len - n;
+}
+
 static VALUE
 io_write(io, str)
@@ -358,6 +388,5 @@ io_write(io, str)
     OpenFile *fptr;
     FILE *f;
-    long n, r;
-    register char *ptr;
+    long n;
 
     rb_secure(4);
@@ -375,25 +404,6 @@ io_write(io, str)
     f = GetWriteFile(fptr);
 
-    ptr = RSTRING(str)->ptr;
-    n = RSTRING(str)->len;
-#ifdef __human68k__
-    do {
-	if (fputc(*ptr++, f) == EOF) {
-	    if (ferror(f)) rb_sys_fail(fptr->path);
-	    break;
-	}
-    } while (--n > 0);
-#else
-    while (ptr += (r = fwrite(ptr, 1, n, f)), (n -= r) > 0) {
-	if (ferror(f)) {
-	    if (rb_io_wait_writable(fileno(f))) {
-		clearerr(f);
-		continue;
-	    }
-	    rb_sys_fail(fptr->path);
-	}
-    }
-#endif
-    n = ptr - RSTRING(str)->ptr;
+    n = rb_io_fwrite(RSTRING(str)->ptr, RSTRING(str)->len, f);
+    if (n == -1L) rb_sys_fail(fptr->path);
     if (fptr->mode & FMODE_SYNC) {
 	io_fflush(f, fptr);
Index: marshal.c
===================================================================
RCS file: /cvs/ruby/src/ruby/marshal.c,v
retrieving revision 1.75
diff -u -2 -p -r1.75 marshal.c
--- marshal.c	19 Dec 2002 09:20:20 -0000	1.75
+++ marshal.c	19 Dec 2002 10:37:31 -0000
@@ -103,5 +103,6 @@ w_byten(s, n, arg)
 {
     if (arg->fp) {
-	fwrite(s, 1, n, arg->fp);
+	if (rb_io_fwrite(s, n, arg->fp) < 0)
+	    rb_sys_fail(0);
     }
     else {
Index: rubyio.h
===================================================================
RCS file: /cvs/ruby/src/ruby/rubyio.h,v
retrieving revision 1.20
diff -u -2 -p -r1.20 rubyio.h
--- rubyio.h	2 Oct 2002 14:59:25 -0000	1.20
+++ rubyio.h	8 Nov 2002 01:31:21 -0000
@@ -60,4 +60,5 @@ FILE *rb_fdopen _((int, const char*));
 int rb_getc _((FILE*));
 long rb_io_fread _((char *, long, FILE *));
+long rb_io_fwrite _((const char *, long, FILE *));
 int  rb_io_mode_flags _((const char*));
 void rb_io_check_writable _((OpenFile*));


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next