[#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:26587] Re: SystemCallError.new("abc") => #<SystemCallError: unknown error - ab>
山本です。
さらに手抜きですが、vsnprintf が C99 準拠であれば、こんな方法もあるようです。
http://ktarn.www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html
によると SUSv2 では「size に 0 を指定すると必要サイズが得られる」機能は
ないらしいのですが、Borland 純正の vsnprintf は C99 に準拠している
ようでこれで動きました。ruby の使ってる vsnprintf は -1 を返すので
SUSv2 準拠のようですね。
# 二度 vsnprintf を呼ぶのがいかにも遅そうですが、realloc が必要ない分、
# あるいは・・・
Index: error.c
===================================================================
RCS file: /src/ruby/error.c,v
retrieving revision 1.114
diff -u -w -b -p -r1.114 error.c
--- error.c 20 Jul 2005 01:08:13 -0000 1.114
+++ error.c 20 Jul 2005 13:03:52 -0000
@@ -956,14 +956,9 @@ syserr_initialize(argc, argv, self)
else err = "unknown error";
if (!NIL_P(mesg)) {
VALUE str = mesg;
- size_t len;
-
StringValue(str);
- len = strlen(err)+RSTRING(str)->len+3;
- mesg = rb_str_new(0, len);
- snprintf(RSTRING(mesg)->ptr, len+1, "%s - %.*s", err,
+ mesg = rb_sprintf("%s - %.*s", err,
(int)RSTRING(str)->len, RSTRING(str)->ptr);
- RSTRING(mesg)->len = 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 20 Jul 2005 12:45:40 -0000
@@ -490,6 +490,7 @@ void rb_str_associate _((VALUE, VALUE));
VALUE rb_str_associated _((VALUE));
void rb_str_setter _((VALUE, ID, VALUE*));
VALUE rb_str_intern _((VALUE));
+VALUE rb_sprintf __((const char*, ...));
/* struct.c */
VALUE rb_struct_new __((VALUE, ...));
VALUE rb_struct_define __((const char*, ...));
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 20 Jul 2005 13:11:22 -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
@@ -462,6 +470,31 @@ rb_str_format(str, arg)
return rb_f_sprintf(2, argv);
}
+#undef vsnprintf /* use platform vsnprintf */
+
+VALUE
+#ifdef HAVE_STDARG_PROTOTYPES
+rb_sprintf(const char *fmt, ...)
+#else
+rb_sprintf(format, va_alist)
+ const char *fmt;
+ va_dcl
+#endif
+{
+ VALUE str;
+ int len;
+ va_list args;
+
+ va_init_list(args, fmt);
+ len = vsnprintf(NULL, 0, fmt, args);
+ str = rb_str_new(0, len);
+ vsnprintf(RSTRING(str)->ptr, len+1, fmt, args);
+ RSTRING(str)->len = strlen(RSTRING(str)->ptr);
+ va_end(args);
+
+ return str;
+}
+
static int
str_independent(str)
VALUE str;