summaryrefslogtreecommitdiffhomepage
path: root/src/print.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/print.c b/src/print.c
index 505597935..e6805edbf 100644
--- a/src/print.c
+++ b/src/print.c
@@ -5,35 +5,31 @@
*/
#include "mruby.h"
+#ifdef ENABLE_STDIO
#include "mruby/string.h"
#include <stdio.h>
-mrb_value
+static void
printstr(mrb_state *mrb, mrb_value obj)
{
struct RString *str;
char *s;
- size_t len;
+ int len;
if (mrb_type(obj) == MRB_TT_STRING) {
str = mrb_str_ptr(obj);
- s = str->buf;
+ s = str->ptr;
len = str->len;
- while (len--) {
- putc(*s, stdout);
- s++;
- }
+ fwrite(s, len, 1, stdout);
}
- return obj;
}
-mrb_value
+void
mrb_p(mrb_state *mrb, mrb_value obj)
{
obj = mrb_funcall(mrb, obj, "inspect", 0);
printstr(mrb, obj);
putc('\n', stdout);
- return obj;
}
/* 15.3.1.2.9 */
@@ -71,3 +67,19 @@ mrb_show_copyright(mrb_state *mrb)
{
printf("mruby - Copyright (c) 2010-2012 mruby developers\n");
}
+#else
+void
+mrb_p(mrb_state *mrb, mrb_value obj)
+{
+}
+
+void
+mrb_show_version(mrb_state *mrb)
+{
+}
+
+void
+mrb_show_copyright(mrb_state *mrb)
+{
+}
+#endif