mirror of
https://github.com/ruby/ruby.git
synced 2025-09-17 01:23:57 +02:00
merge revision(s) 44572,44578,44591,44592: [Backport #9490]
ext: use rb_sprintf() and rb_vsprintf() with PRIsVALUE git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@44903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
73fc780998
commit
565d568a45
9 changed files with 58 additions and 69 deletions
|
@ -293,10 +293,9 @@ ossl_to_der_if_possible(VALUE obj)
|
|||
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 *fmt, va_list args)
|
|||
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 *fmt, va_list args)
|
|||
}
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue