merge revision(s) r41598,r45181:

* eval_error.c (warn_printf): use rb_vsprintf instead so ruby specific
	  extensions like PRIsVALUE can be used in format strings

	* eval_error.c (error_print): use warn_print_str (alias for
	  rb_write_error_str) to print a string value instead of using
	  RSTRING_PTR and RSTRING_LEN manually

	* eval.c (setup_exception): use PRIsVALUE instead of %s and RSTRING_PTR

	* eval.c (setup_exception): preserve exception class name encoding
	  in debug mode messages.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@45253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2014-03-02 16:53:02 +00:00
parent 6df2fbf0f6
commit c6816d074b
5 changed files with 41 additions and 17 deletions

15
eval.c
View file

@ -474,19 +474,16 @@ setup_exception(rb_thread_t *th, int tag, volatile VALUE mesg)
e = rb_obj_as_string(mesg);
th->errinfo = mesg;
if (file && line) {
warn_printf("Exception `%s' at %s:%d - %s\n",
rb_obj_classname(th->errinfo),
file, line, RSTRING_PTR(e));
warn_printf("Exception `%"PRIsVALUE"' at %s:%d - %"PRIsVALUE"\n",
rb_obj_class(mesg), file, line, e);
}
else if (file) {
warn_printf("Exception `%s' at %s - %s\n",
rb_obj_classname(th->errinfo),
file, RSTRING_PTR(e));
warn_printf("Exception `%"PRIsVALUE"' at %s - %"PRIsVALUE"\n",
rb_obj_class(mesg), file, e);
}
else {
warn_printf("Exception `%s' - %s\n",
rb_obj_classname(th->errinfo),
RSTRING_PTR(e));
warn_printf("Exception `%"PRIsVALUE"' - %"PRIsVALUE"\n",
rb_obj_class(mesg), e);
}
}
POP_TAG();