[#26430] compile error of missing/*.c — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#26443] cvs [diff aborted]: cannot open file .cvsignore for comparing: No such file or directory — Tanaka Akira <akr@...17n.org>
最近、cvs diff に -k option を付けると、エラーになる (ことがある) ので
[#26463] String#each_byte and String#each_char — "NARUSE, Yui" <naruse@...>
成瀬です。
[#26468] $SAFE=1 の open-uri で redirect 時にエラー — Kazuhiko <kazuhiko@...>
かずひこです。
In article <m3zmsylimn.wl%kazuhiko@fdiary.net>,
まつもと ゆきひろです
In article <1120754832.716261.15867.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1120762886.189058.18880.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
In article <1120810939.815280.27104.nullmailer@x31.priv.netlab.jp>,
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
In article <42CF1918.5000603@ruby-lang.org>,
前田です。
In article <42D7C230.7030509@ruby-lang.org>,
In article <42DDBA82.7030307@ruby-lang.org>,
[#26493] can't handle \c\ — KIMURA Koichi <kbk@...>
木村です。
卜部でございます。
木村です。
[#26508] rmdir(2) on windows doesn't set ENOTDIR — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
まつもと ゆきひろです
山本です。
山本です。
[#26530] removing static variables in parse.y — nobuyoshi nakada <nobuyoshi.nakada@...>
なかだです。
[#26566] cannot compile io.c on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
[#26574] SystemCallError.new("abc") => #<SystemCallError: unknown error - ab> — Tanaka Akira <akr@...17n.org>
次のように、メッセージの最後が切れます。
まつもと ゆきひろです
なかだです。
山本です。
まつもと ゆきひろです
なかだです。
山本です。
なかだです。
山本です。
なかだです。
なかだです。
まつもと ゆきひろです
山本です。
この変更があってからだと思うのですが、リンカが以下のように警告を発するよ
卜部です。自己レス
At Sat, 30 Jul 2005 02:32:38 +0900,
[#26594] test_s_open_lock failed on Solaris — Tanaka Akira <akr@...17n.org>
次のように、Solaris で test_s_open_lock が失敗します。
[#26618] Re: [ruby-cvs] ruby/ext/socket, ruby, ruby: * ext/socket/socket.c (ruby_connect): break immediately if a — Tanaka Akira <akr@...17n.org>
In article <20050728015209.0F30DC6734@lithium.ruby-lang.org>,
In article <1122518643.429222.1408.nullmailer@x31.priv.netlab.jp>,
[#26623] Ruby2.0BlockParameterNotation — SASADA Koichi <ko1@...>
ささだです。
まつもと ゆきひろです
[#26628] show information of '--enable-pthread' — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
わたなべです。
こんにちは、なかむら(う)です。
永井@知能.九工大です.
永井@知能.九工大です.
In message <20050731.094203.74726476.nagai@ai.kyutech.ac.jp>
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
なかだです。
永井@知能.九工大です.
永井@知能.九工大です.
こんにちは、なかむら(う)です。
永井@知能.九工大です.
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#26639] SEGV at zsuper with anonymous rest args. — nobu@...
なかだです。
まつもと ゆきひろです
山本です。
なかだです。
[ruby-dev:26579] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab>
山本です。
error.c は、StringValue する前に RSTRING(str)->len しているのでまずいと
思います。ところで、こんな感じのものを作って使いまわすのはどうでしょうか。
size_t len が必要なくなるのが嬉しい気がします。
# バッファの長さが足りないときにも vsnprintf が必ず '\0' で終端
# してくれるのかよく知らないのですが・・・
Index: error.c
===================================================================
RCS file: /src/ruby/error.c,v
retrieving revision 1.113
diff -u -w -b -p -r1.113 error.c
--- error.c 19 Jul 2005 14:57:47 -0000 1.113
+++ error.c 19 Jul 2005 15:26:05 -0000
@@ -956,12 +956,9 @@ syserr_initialize(argc, argv, self)
else err = "unknown error";
if (!NIL_P(mesg)) {
VALUE str = mesg;
- size_t len = strlen(err)+RSTRING(str)->len+3;
StringValue(str);
- mesg = rb_str_new(0, len);
- snprintf(RSTRING(mesg)->ptr, len+1, "%s - %.*s", err,
+ mesg = rb_snprintf(strlen(err)+RSTRING(str)->len+3, "%s - %.*s", err,
(int)RSTRING(str)->len, RSTRING(str)->ptr);
- rb_str_resize(mesg, strlen(RSTRING(mesg)->ptr));
}
else {
mesg = rb_str_new2(err);
Index: intern.h
===================================================================
RCS file: /src/ruby/intern.h,v
retrieving revision 1.172
diff -u -w -b -p -r1.172 intern.h
--- intern.h 14 Jul 2005 15:11:52 -0000 1.172
+++ intern.h 19 Jul 2005 15:28:36 -0000
@@ -456,6 +456,7 @@ VALUE rb_str_new2 _((const char*));
VALUE rb_str_new3 _((VALUE));
VALUE rb_str_new4 _((VALUE));
VALUE rb_str_new5 _((VALUE, const char*, long));
+VALUE rb_snprintf __((size_t, const char*, ...));
VALUE rb_tainted_str_new _((const char*, long));
VALUE rb_tainted_str_new2 _((const char*));
VALUE rb_str_buf_new _((long));
Index: string.c
===================================================================
RCS file: /src/ruby/string.c,v
retrieving revision 1.230
diff -u -w -b -p -r1.230 string.c
--- string.c 4 Mar 2005 06:47:41 -0000 1.230
+++ string.c 19 Jul 2005 13:58:48 -0000
@@ -25,6 +25,14 @@
#include <unistd.h>
#endif
+#ifdef HAVE_STDARG_PROTOTYPES
+#include <stdarg.h>
+#define va_init_list(a,b) va_start(a,b)
+#else
+#include <varargs.h>
+#define va_init_list(a,b) va_start(a)
+#endif
+
VALUE rb_cString;
#define STR_TMPLOCK FL_USER1
@@ -215,6 +223,27 @@ rb_str_new5(obj, ptr, len)
return str_new(rb_obj_class(obj), ptr, len);
}
+VALUE
+#ifdef HAVE_STDARG_PROTOTYPES
+rb_snprintf(size_t size, const char *fmt, ...)
+#else
+rb_snprintf(size, fmt)
+ size_t size;
+ const char *fmt;
+ va_dcl
+#endif
+{
+ va_list args;
+ VALUE str = rb_str_new(0, size);
+
+ va_init_list(args, fmt);
+ vsnprintf(RSTRING(str)->ptr, size+1, fmt, args);
+ va_end(args);
+
+ RSTRING(str)->len = strlen(RSTRING(str)->ptr);
+ return str;
+}
+
#define STR_BUF_MIN_SIZE 128
VALUE