summaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-07-17 23:51:57 +0900
committerYukihiro Matsumoto <[email protected]>2012-07-17 23:51:57 +0900
commit42cfe5c9f39bf5b32d4b4754c170cfeb947389b4 (patch)
tree4629fc411ba057340d6001eda82c4a8e40a1cb35 /tools
parent1cffba6ae10aec7e2433e673e1bb5ab075885418 (diff)
downloadmruby-42cfe5c9f39bf5b32d4b4754c170cfeb947389b4.tar.gz
mruby-42cfe5c9f39bf5b32d4b4754c170cfeb947389b4.zip
make mruby work even when DISABLE_STDIO is set
Diffstat (limited to 'tools')
-rw-r--r--tools/mruby/mruby.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c
index abc0bdc5e..26b1e44d5 100644
--- a/tools/mruby/mruby.c
+++ b/tools/mruby/mruby.c
@@ -7,6 +7,18 @@
#include <stdio.h>
#include <string.h>
+#ifndef ENABLE_STDIO
+static void
+p(mrb_state *mrb, mrb_value obj)
+{
+ obj = mrb_funcall(mrb, obj, "inspect", 0);
+ fwrite(RSTRING_PTR(obj), RSTRING_LEN(obj), 1, stdout);
+ putc('\n', stdout);
+}
+#else
+#define p(mrb,obj) mrb_p(mrb,obj)
+#endif
+
void mrb_show_version(mrb_state *);
void mrb_show_copyright(mrb_state *);
@@ -173,7 +185,7 @@ main(int argc, char **argv)
if (!args.check_syntax) {
mrb_run(mrb, mrb_proc_new(mrb, mrb->irep[n]), mrb_top_self(mrb));
if (mrb->exc) {
- mrb_p(mrb, mrb_obj_value(mrb->exc));
+ p(mrb, mrb_obj_value(mrb->exc));
}
}
}
@@ -198,7 +210,7 @@ main(int argc, char **argv)
mrbc_context_free(mrb, c);
if (mrb->exc) {
if (!mrb_undef_p(v)) {
- mrb_p(mrb, mrb_obj_value(mrb->exc));
+ p(mrb, mrb_obj_value(mrb->exc));
}
}
else if (args.check_syntax) {