change mrb_warn to get mrb_state and %S formatter

This commit is contained in:
Yukihiro "Matz" Matsumoto
2013-05-10 22:09:02 +09:00
parent 08660c5b51
commit fad8b1cefa
5 changed files with 13 additions and 12 deletions
+2 -3
View File
@@ -255,13 +255,12 @@ mrb_define_class_under(mrb_state *mrb, struct RClass *outer, const char *name, s
if (mrb_const_defined_at(mrb, outer, id)) {
c = class_from_sym(mrb, outer, id);
if (mrb_class_real(c->super) != super) {
mrb_name_error(mrb, id, "%S is already defined", mrb_sym2str(mrb, id));
mrb_name_error(mrb, id, "%S is already defined", name);
}
return c;
}
if (!super) {
mrb_warn("no super class for `%S::%S', Object assumed",
mrb_obj_value(outer), mrb_sym2str(mrb, id));
mrb_warn(mrb, "no super class for `%S::%S', Object assumed", outer, name);
}
c = mrb_class_new(mrb, super);
setup_class(mrb, mrb_obj_value(outer), c, id);
+8 -6
View File
@@ -312,15 +312,17 @@ mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...)
}
void
mrb_warn(const char *fmt, ...)
mrb_warn(mrb_state *mrb, const char *fmt, ...)
{
#ifdef ENABLE_STDIO
va_list args;
va_list ap;
mrb_value str;
va_start(args, fmt);
printf("warning: ");
vprintf(fmt, args);
va_end(args);
va_start(ap, fmt);
str = mrb_vformat(mrb, fmt, ap);
fputs("warning: ", stderr);
fwrite(RSTRING_PTR(str), RSTRING_LEN(str), 1, stderr);
va_end(ap);
#endif
}