[#37041] [ANN] Exerb/Exerb-CC 2.6.0 — Yuya Kato <yuya-ml@4th.to>
未踏ユース終了まで1ヶ月を切って、焦り気味のYuyaです。
27 messages
2003/02/02
[#37074] Re: [ANN] Exerb/Exerb-CC 2.6.0
— Satoshi Osabe <s-osabe@...>
2003/02/09
長部と申します。
[#37096] Re: [ANN] Exerb/Exerb-CC 2.6.0
— Satoshi Osabe <s-osabe@...>
2003/02/11
長部です。
[#37202] Re: [ANN] Exerb/Exerb-CC 2.6.0
— "TOYOFUKU Chikanobu" <toyofuku@...>
2003/03/02
豊福です。
[#37206] Re: [ANN] Exerb/Exerb-CC 2.6.0
— Yuya Kato <yuya-ml@4th.to>
2003/03/04
Yuyaです。
[#37208] Re: [ANN] Exerb/Exerb-CC 2.6.0
— Satoshi Osabe <osabe@...>
2003/03/04
長部と申します。
[#37209] Re: [ANN] Exerb/Exerb-CC 2.6.0
— nobu.nakada@...
2003/03/04
なかだです。
[#37211] Re: [ANN] Exerb/Exerb-CC 2.6.0
— "U.Nakamura" <usa@...>
2003/03/04
こんにちは、なかむら(う)です。
[#37047] String#each_byte — Take_tk <ggb03124@...>
たけ(tk)です
12 messages
2003/02/04
[#37050] Re: String#each_byte
— Tietew <tietew-ml-ruby-list@...>
2003/02/04
[#37052] 改行が認識されない? — 金光雅夫 (KANEMITSU Masao) <masao-k@...>
金光です。どもっ。
6 messages
2003/02/04
[#37058] Re: Local variables & blocks — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
27 messages
2003/02/05
[#37059] Re: Local variables & blocks
— ichimal@...
2003/02/06
皆様、初めまして鈴木です。
[#37063] Re: Local variables & blocks
— matz@... (Yukihiro Matsumoto)
2003/02/07
まつもと ゆきひろです
[#37110] Re: Local variables & blocks
— ichimal@...
2003/02/16
鈴木です。
[#37115] Re: Local variables & blocks
— Tanaka Akira <akr@...17n.org>
2003/02/17
In article <200302161629.h1GGTvJ5008901@fenix.ne.jp>,
[#37123] 私はこれにハマリました。
— Shin-ichiro HARA <sinara@...>
2003/02/18
原です。
[#37065] UDPから受信出来ない。 — Toru MITANI <toru@...>
6 messages
2003/02/07
[#37081] setup.rb: Patch to ignore CVS,*~,... — "Shirai,Kaoru" <shirai@...>
白井です。
13 messages
2003/02/10
[#37082] Re: setup.rb: Patch to ignore CVS,*~,...
— Minero Aoki <aamine@...>
2003/02/10
あおきです。
[#37083] Re: setup.rb: Patch to ignore CVS,*~,...
— "Shirai,Kaoru" <shirai@...>
2003/02/10
白井です。
[#37084] Re: setup.rb: Patch to ignore CVS,*~,...
— Minero Aoki <aamine@...>
2003/02/10
あおきです。
[#37085] Re: setup.rb: Patch to ignore CVS,*~,...
— "Shirai,Kaoru" <shirai@...>
2003/02/10
白井です。
[#37114] 配列とべき集合 — Masahiro Sato <msato@...>
7 messages
2003/02/17
[#37135] TMailと..なFrom行 — ICHIKAWA Manabu <ichikawa@...>
市川ともうします。
5 messages
2003/02/19
[#37153] rubyからJavaScriptの関数を起動する方法は? — "Masakazu Fujimoto" <masakazu@...>
8 messages
2003/02/23
[#37162] Rubyの10年 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
9 messages
2003/02/24
[#37171] setup.rb 3.1.4 — Minero Aoki <aamine@...>
あおきです。
7 messages
2003/02/25
[#37179] — "松尾尚典" <matsuo.hisanori@...>
松尾です。こんばんは。
10 messages
2003/02/25
[ruby-list:37071] Re: UDPから受信出来ない。
From:
Takaaki Tateishi <ttate@...>
Date:
2003-02-08 13:25:15 UTC
List:
ruby-list #37071
At Sat, 8 Feb 2003 14:05:03 +0900,
> どういう意味でしょうか。独立したファイルなどとしてどこかのサー
> バに置いてないかとか? という意味であれば、たぶんないと思います。
> すでに手元には残っていませんし、ログだけが唯一の保管場所です。
僕の手元にメールがありますのでパッチ部分だけ流します.
--
Takaaki Tateishi <ttate@kt.jaist.ac.jp>
Index: io.c
===================================================================
RCS file: /cvs/ruby/src/ruby/io.c,v
retrieving revision 1.69.2.35
diff -u -2 -p -r1.69.2.35 io.c
--- io.c 13 Jan 2003 16:24:30 -0000 1.69.2.35
+++ io.c 27 Jan 2003 00:54:25 -0000
@@ -1043,18 +1043,35 @@ rb_io_isatty(io)
static void
-fptr_finalize(fptr)
+fptr_finalize(fptr, fin)
OpenFile *fptr;
{
+ int n1 = 0, n2 = 0, e = 0, f1, f2 = -1;
+
+ if (fptr->f2) {
+ f2 = fileno(fptr->f2);
+ n2 = fclose(fptr->f2);
+ fptr->f2 = 0;
+ if (n2 < 0) e = errno;
+ }
if (fptr->f) {
- fclose(fptr->f);
+ f1 = fileno(fptr->f);
+ n1 = fclose(fptr->f);
+ fptr->f = 0;
+ if (n1 < 0 && errno == EBADF) {
+ if (f1 == f2 || !(fptr->mode & FMODE_WBUF)) {
+ n1 = 0;
+ }
+ }
}
- if (fptr->f2) {
- fclose(fptr->f2);
+ if (!fin && (n1 < 0 || n2 < 0)) {
+ if (n1 == 0) errno = e;
+ rb_sys_fail(fptr->path);
}
}
static void
-rb_io_fptr_cleanup(fptr)
+rb_io_fptr_cleanup(fptr, fin)
OpenFile *fptr;
+ int fin;
{
if (fptr->finalize) {
@@ -1062,7 +1079,6 @@ rb_io_fptr_cleanup(fptr)
}
else {
- fptr_finalize(fptr);
+ fptr_finalize(fptr, fin);
}
- fptr->f = fptr->f2 = 0;
if (fptr->path) {
@@ -1080,29 +1096,22 @@ rb_io_fptr_finalize(fptr)
if (fileno(fptr->f) < 3) return;
- rb_io_fptr_cleanup(fptr);
+ rb_io_fptr_cleanup(fptr, Qtrue);
}
-static void
-rb_io_fptr_close(fptr)
- OpenFile *fptr;
+VALUE
+rb_io_close(io)
+ VALUE io;
{
+ OpenFile *fptr;
int fd;
+ fptr = RFILE(io)->fptr;
if (!fptr) return;
if (!fptr->f && !fptr->f2) return;
fd = fileno(fptr->f);
- rb_io_fptr_cleanup(fptr);
+ rb_io_fptr_cleanup(fptr, Qfalse);
rb_thread_fd_close(fd);
-}
-VALUE
-rb_io_close(io)
- VALUE io;
-{
- OpenFile *fptr;
-
- fptr = RFILE(io)->fptr;
- rb_io_fptr_close(fptr);
if (fptr->pid) {
rb_syswait(fptr->pid);
@@ -2020,5 +2029,7 @@ rb_io_clone(io)
fptr->f = rb_fdopen(fd, mode);
if (orig->f2) {
- fd = rb_dup(fileno(orig->f2));
+ if (fileno(orig->f) != fileno(orig->f2)) {
+ fd = rb_dup(fileno(orig->f2));
+ }
fptr->f2 = rb_fdopen(fd, "w");
}
@@ -2923,5 +2934,6 @@ rb_io_ctl(io, req, arg, io_p)
}
- if (fptr->f2) { /* call on f2 too; ignore result */
+ if (fptr->f2 && fileno(fptr->f) != fileno(fptr->f2)) {
+ /* call on f2 too; ignore result */
io_cntl(fileno(fptr->f2), cmd, narg, io_p);
}
Index: ext/socket/socket.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/socket/socket.c,v
retrieving revision 1.35.2.19
diff -u -2 -p -r1.35.2.19 socket.c
--- ext/socket/socket.c 31 Dec 2002 17:23:30 -0000 1.35.2.19
+++ ext/socket/socket.c 27 Jan 2003 00:54:25 -0000
@@ -171,5 +171,4 @@ sock_new(class, fd)
MakeOpenFile(sock, fp);
fp->f = rb_fdopen(fd, "r");
- fd = dup(fd);
fp->f2 = rb_fdopen(fd, "w");
fp->mode = FMODE_READWRITE;