ruby-changes:32824
From: naruse <ko1@a...>
Date: Mon, 10 Feb 2014 20:45:20 +0900 (JST)
Subject: [ruby-changes:32824] naruse:r44903 (ruby_2_1): merge revision(s) 44572, 44578, 44591, 44592: [Backport #9490]
naruse 2014-02-10 20:45:14 +0900 (Mon, 10 Feb 2014) New Revision: 44903 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=44903 Log: merge revision(s) 44572,44578,44591,44592: [Backport #9490] ext: use rb_sprintf() and rb_vsprintf() with PRIsVALUE Modified directories: branches/ruby_2_1/ Modified files: branches/ruby_2_1/ext/dl/cptr.c branches/ruby_2_1/ext/fiddle/pointer.c branches/ruby_2_1/ext/openssl/ossl.c branches/ruby_2_1/ext/pty/pty.c branches/ruby_2_1/ext/strscan/strscan.c branches/ruby_2_1/ext/tk/tcltklib.c branches/ruby_2_1/ext/win32ole/win32ole.c branches/ruby_2_1/ext/zlib/zlib.c branches/ruby_2_1/version.h Index: ruby_2_1/ext/dl/cptr.c =================================================================== --- ruby_2_1/ext/dl/cptr.c (revision 44902) +++ ruby_2_1/ext/dl/cptr.c (revision 44903) @@ -391,9 +391,8 @@ rb_dlptr_inspect(VALUE self) https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/dl/cptr.c#L391 char str[1024]; TypedData_Get_Struct(self, struct ptr_data, &dlptr_data_type, data); - snprintf(str, 1023, "#<%s:%p ptr=%p size=%ld free=%p>", - rb_class2name(CLASS_OF(self)), data, data->ptr, data->size, data->free); - return rb_str_new2(str); + return rb_sprintf("#<%"PRIsVALUE":%p ptr=%p size=%ld free=%p>", + rb_obj_class(self), data, data->ptr, data->size, data->free); } /* Index: ruby_2_1/ext/zlib/zlib.c =================================================================== --- ruby_2_1/ext/zlib/zlib.c (revision 44902) +++ ruby_2_1/ext/zlib/zlib.c (revision 44903) @@ -337,11 +337,8 @@ raise_zlib_error(int err, const char *ms https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/zlib/zlib.c#L337 rb_sys_fail(msg); /* no return */ default: - { - char buf[BUFSIZ]; - snprintf(buf, BUFSIZ, "unknown zlib error %d: %s", err, msg); - exc = rb_exc_new2(cZError, buf); - } + exc = rb_exc_new_str(cZError, + rb_sprintf("unknown zlib error %d: %s", err, msg)); } rb_exc_raise(exc); Index: ruby_2_1/ext/win32ole/win32ole.c =================================================================== --- ruby_2_1/ext/win32ole/win32ole.c (revision 44902) +++ ruby_2_1/ext/win32ole/win32ole.c (revision 44903) @@ -1209,19 +1209,18 @@ static void https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/win32ole/win32ole.c#L1209 ole_raise(HRESULT hr, VALUE ecs, const char *fmt, ...) { va_list args; - char buf[BUFSIZ]; + VALUE msg; VALUE err_msg; va_init_list(args, fmt); - vsnprintf(buf, BUFSIZ, fmt, args); + msg = rb_vsprintf(fmt, args); va_end(args); err_msg = ole_hresult2msg(hr); if(err_msg != Qnil) { - rb_raise(ecs, "%s\n%s", buf, StringValuePtr(err_msg)); - } - else { - rb_raise(ecs, "%s", buf); + rb_str_cat2(msg, "\n"); + rb_str_append(msg, err_msg); } + rb_exc_raise(rb_exc_new_str(ecs, msg)); } void Index: ruby_2_1/ext/pty/pty.c =================================================================== --- ruby_2_1/ext/pty/pty.c (revision 44902) +++ ruby_2_1/ext/pty/pty.c (revision 44903) @@ -613,7 +613,7 @@ static void https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/pty/pty.c#L613 raise_from_check(rb_pid_t pid, int status) { const char *state; - char buf[1024]; + VALUE msg; VALUE exc; #if defined(WIFSTOPPED) @@ -631,8 +631,8 @@ raise_from_check(rb_pid_t pid, int statu https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/pty/pty.c#L631 else { state = "exited"; } - snprintf(buf, sizeof(buf), "pty - %s: %ld", state, (long)pid); - exc = rb_exc_new2(eChildExited, buf); + msg = rb_sprintf("pty - %s: %ld", state, (long)pid); + exc = rb_exc_new_str(eChildExited, msg); rb_iv_set(exc, "status", rb_last_status_get()); rb_exc_raise(exc); } Index: ruby_2_1/ext/tk/tcltklib.c =================================================================== --- ruby_2_1/ext/tk/tcltklib.c (revision 44902) +++ ruby_2_1/ext/tk/tcltklib.c (revision 44903) @@ -848,15 +848,14 @@ create_ip_exc(interp, exc, fmt, va_alist https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/tk/tcltklib.c#L848 #endif { va_list args; - char buf[BUFSIZ]; + VALUE msg; VALUE einfo; struct tcltkip *ptr = get_ip(interp); va_init_list(args,fmt); - vsnprintf(buf, BUFSIZ, fmt, args); - buf[BUFSIZ - 1] = '\0'; + msg = rb_vsprintf(fmt, args); va_end(args); - einfo = rb_exc_new2(exc, buf); + einfo = rb_exc_new_str(exc, msg); rb_ivar_set(einfo, ID_at_interp, interp); if (ptr) { Tcl_ResetResult(ptr->ip); Index: ruby_2_1/ext/openssl/ossl.c =================================================================== --- ruby_2_1/ext/openssl/ossl.c (revision 44902) +++ ruby_2_1/ext/openssl/ossl.c (revision 44903) @@ -293,10 +293,9 @@ ossl_to_der_if_possible(VALUE obj) https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/openssl/ossl.c#L293 static VALUE ossl_make_error(VALUE exc, const char *fmt, va_list args) { - char buf[BUFSIZ]; + VALUE str = Qnil; const char *msg; long e; - int len = 0; #ifdef HAVE_ERR_PEEK_LAST_ERROR e = ERR_peek_last_error(); @@ -304,14 +303,19 @@ ossl_make_error(VALUE exc, const char *f https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/openssl/ossl.c#L303 e = ERR_peek_error(); #endif if (fmt) { - len = vsnprintf(buf, BUFSIZ, fmt, args); + str = rb_vsprintf(fmt, args); } - if (len < BUFSIZ && e) { + if (e) { if (dOSSL == Qtrue) /* FULL INFO */ msg = ERR_error_string(e, NULL); else msg = ERR_reason_error_string(e); - len += snprintf(buf+len, BUFSIZ-len, "%s%s", (len ? ": " : ""), msg); + if (NIL_P(str)) { + str = rb_str_new_cstr(msg); + } + else { + rb_str_cat2(rb_str_cat2(str, ": "), msg); + } } if (dOSSL == Qtrue){ /* show all errors on the stack */ while ((e = ERR_get_error()) != 0){ @@ -320,8 +324,8 @@ ossl_make_error(VALUE exc, const char *f https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/openssl/ossl.c#L324 } ERR_clear_error(); - if(len > BUFSIZ) len = rb_long2int(strlen(buf)); - return rb_exc_new(exc, buf, len); + if (NIL_P(str)) str = rb_str_new(0, 0); + return rb_exc_new3(exc, str); } void Index: ruby_2_1/ext/fiddle/pointer.c =================================================================== --- ruby_2_1/ext/fiddle/pointer.c (revision 44902) +++ ruby_2_1/ext/fiddle/pointer.c (revision 44903) @@ -427,12 +427,10 @@ static VALUE https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/fiddle/pointer.c#L427 rb_fiddle_ptr_inspect(VALUE self) { struct ptr_data *data; - char str[1024]; TypedData_Get_Struct(self, struct ptr_data, &fiddle_ptr_data_type, data); - snprintf(str, 1023, "#<%s:%p ptr=%p size=%ld free=%p>", - rb_class2name(CLASS_OF(self)), data, data->ptr, data->size, data->free); - return rb_str_new2(str); + return rb_sprintf("#<%"PRIsVALUE":%p ptr=%p size=%ld free=%p>", + rb_obj_class(self), data, data->ptr, data->size, data->free); } /* Index: ruby_2_1/ext/strscan/strscan.c =================================================================== --- ruby_2_1/ext/strscan/strscan.c (revision 44902) +++ ruby_2_1/ext/strscan/strscan.c (revision 44903) @@ -1155,76 +1155,69 @@ static VALUE https://github.com/ruby/ruby/blob/trunk/ruby_2_1/ext/strscan/strscan.c#L1155 strscan_inspect(VALUE self) { struct strscanner *p; - char buf[BUFSIZE]; - long len; VALUE a, b; p = check_strscan(self); if (NIL_P(p->str)) { - len = snprintf(buf, BUFSIZE, "#<%s (uninitialized)>", - rb_class2name(CLASS_OF(self))); - return infect(rb_str_new(buf, len), p); + a = rb_sprintf("#<%"PRIsVALUE" (uninitialized)>", rb_obj_class(self)); + return infect(a, p); } if (EOS_P(p)) { - len = snprintf(buf, BUFSIZE, "#<%s fin>", - rb_class2name(CLASS_OF(self))); - return infect(rb_str_new(buf, len), p); + a = rb_sprintf("#<%"PRIsVALUE" fin>", rb_obj_class(self)); + return infect(a, p); } if (p->curr == 0) { - b = inspect2(p); - len = snprintf(buf, BUFSIZE, "#<%s %ld/%ld @ %s>", - rb_class2name(CLASS_OF(self)), - p->curr, S_LEN(p), - RSTRING_PTR(b)); - return infect(rb_str_new(buf, len), p); + b = inspect2(p); + a = rb_sprintf("#<%"PRIsVALUE" %ld/%ld @ %"PRIsVALUE">", + rb_obj_class(self), + p->curr, S_LEN(p), + b); + return infect(a, p); } a = inspect1(p); b = inspect2(p); - len = snprintf(buf, BUFSIZE, "#<%s %ld/%ld %s @ %s>", - rb_class2name(CLASS_OF(self)), - p->curr, S_LEN(p), - RSTRING_PTR(a), - RSTRING_PTR(b)); - return infect(rb_str_new(buf, len), p); + a = rb_sprintf("#<%"PRIsVALUE" %ld/%ld %"PRIsVALUE" @ %"PRIsVALUE">", + rb_obj_class(self), + p->curr, S_LEN(p), + a, b); + return infect(a, p); } static VALUE inspect1(struct strscanner *p) { - char buf[BUFSIZE]; - char *bp = buf; + VALUE str; long len; if (p->curr == 0) return rb_str_new2(""); if (p->curr > INSPECT_LENGTH) { - strcpy(bp, "..."); bp += 3; - len = INSPECT_LENGTH; + str = rb_str_new_cstr("..."); + len = INSPECT_LENGTH; } else { - len = p->curr; + str = rb_str_new(0, 0); + len = p->curr; } - memcpy(bp, CURPTR(p) - len, len); bp += len; - return rb_str_dump(rb_str_new(buf, bp - buf)); + rb_str_cat(str, CURPTR(p) - len, len); + return rb_str_dump(str); } static VALUE inspect2(struct strscanner *p) { - char buf[BUFSIZE]; - char *bp = buf; + VALUE str; long len; if (EOS_P(p)) return rb_str_new2(""); len = S_LEN(p) - p->curr; if (len > INSPECT_LENGTH) { - len = INSPECT_LENGTH; - memcpy(bp, CURPTR(p), len); bp += len; - strcpy(bp, "..."); bp += 3; + str = rb_str_new(CURPTR(p), INSPECT_LENGTH); + rb_str_cat2(str, "..."); } else { - memcpy(bp, CURPTR(p), len); bp += len; + str = rb_str_new(CURPTR(p), len); } - return rb_str_dump(rb_str_new(buf, bp - buf)); + return rb_str_dump(str); } /* ======================================================================= Index: ruby_2_1/version.h =================================================================== --- ruby_2_1/version.h (revision 44902) +++ ruby_2_1/version.h (revision 44903) @@ -1,10 +1,10 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_1/version.h#L1 #define RUBY_VERSION "2.1.1" -#define RUBY_RELEASE_DATE "2014-02-07" -#define RUBY_PATCHLEVEL 28 +#define RUBY_RELEASE_DATE "2014-02-10" +#define RUBY_PATCHLEVEL 29 #define RUBY_RELEASE_YEAR 2014 #define RUBY_RELEASE_MONTH 2 -#define RUBY_RELEASE_DAY 7 +#define RUBY_RELEASE_DAY 10 #include "ruby/version.h" Property changes on: ruby_2_1 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r44572,44578,44591-44592 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/