From db3825c05121caa63a8cde9b1d59aa6d79815734 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 15 Jan 2004 04:03:15 +0000 Subject: * io.c (argf_read): do not append EOF. (ruby-bugs-ja:PR#585) * io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio weird behavior. [ruby-dev:22424] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@5467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ io.c | 7 +++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 01209d45b..8079bce85 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Jan 15 13:03:10 2004 Nobuyoshi Nakada + + * io.c (argf_read): do not append EOF. (ruby-bugs-ja:PR#585) + + * io.c (rb_io_fwrite): ad-hockery hack to get rid of HP-UX stdio + weird behavior. [ruby-dev:22424] + Wed Jan 14 13:31:06 2004 Nobuyoshi Nakada * ext/iconv/extconf.rb: wrapper iconv.rb is dependent on platform. diff --git a/io.c b/io.c index edce093cd..7313677a8 100644 --- a/io.c +++ b/io.c @@ -393,8 +393,11 @@ rb_io_fwrite(ptr, len, f) } } while (--n > 0); #else - while (ptr += (r = fwrite(ptr, 1, n, f)), (n -= r) > 0) { + while (errno = 0, ptr += (r = fwrite(ptr, 1, n, f)), (n -= r) > 0) { if (ferror(f)) { +#ifdef __hpux + if (!errno) errno = EAGAIN; +#endif if (rb_io_wait_writable(fileno(f))) { clearerr(f); continue; @@ -4938,7 +4941,7 @@ argf_read(argc, argv) tmp = io_read(argc, argv, current_file); } if (NIL_P(str)) str = tmp; - else rb_str_append(str, tmp); + else if (!NIL_P(tmp)) rb_str_append(str, tmp); if (NIL_P(tmp) || NIL_P(length)) { if (next_p != -1) { argf_close(current_file); -- cgit