diff options
| author | cremno <[email protected]> | 2015-06-23 12:44:28 +0200 |
|---|---|---|
| committer | cremno <[email protected]> | 2015-06-23 12:44:28 +0200 |
| commit | 6ed64e23678620f99e836eb07a58903760cf657c (patch) | |
| tree | 7ae75e958e052c89a546bd8f7e3d5a23fae8dfa7 /src | |
| parent | 1001be2e99720f6745159295aa73c649e08adec8 (diff) | |
| download | mruby-6ed64e23678620f99e836eb07a58903760cf657c.tar.gz mruby-6ed64e23678620f99e836eb07a58903760cf657c.zip | |
rewrite printstr() to get rid of code duplication
Diffstat (limited to 'src')
| -rw-r--r-- | src/print.c | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/src/print.c b/src/print.c index c7c1ccd39..077fa4f06 100644 --- a/src/print.c +++ b/src/print.c @@ -8,45 +8,35 @@ #include "mruby/string.h" #include "mruby/variable.h" +#ifdef ENABLE_STDIO static void -printstr(mrb_state *mrb, mrb_value obj) +printstr(mrb_value obj, FILE *stream) { -#ifdef ENABLE_STDIO - char *s; - int len; - if (mrb_string_p(obj)) { - s = RSTRING_PTR(obj); - len = RSTRING_LEN(obj); - fwrite(s, len, 1, stdout); + fwrite(RSTRING_PTR(obj), RSTRING_LEN(obj), 1, stream); + putc('\n', stream); } -#endif } +#else +# define printstr(obj, stream) (void)0 +#endif MRB_API void mrb_p(mrb_state *mrb, mrb_value obj) { -#ifdef ENABLE_STDIO mrb_value val = mrb_inspect(mrb, obj); - printstr(mrb, val); - putc('\n', stdout); -#endif + printstr(val, stdout); } MRB_API void mrb_print_error(mrb_state *mrb) { -#ifdef ENABLE_STDIO mrb_value s; mrb_print_backtrace(mrb); s = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0); - if (mrb_string_p(s)) { - fwrite(RSTRING_PTR(s), RSTRING_LEN(s), 1, stderr); - putc('\n', stderr); - } -#endif + printstr(s, stderr); } MRB_API void @@ -55,8 +45,7 @@ mrb_show_version(mrb_state *mrb) mrb_value msg; msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION")); - printstr(mrb, msg); - printstr(mrb, mrb_str_new_lit(mrb, "\n")); + printstr(msg, stdout); } MRB_API void @@ -65,6 +54,5 @@ mrb_show_copyright(mrb_state *mrb) mrb_value msg; msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT")); - printstr(mrb, msg); - printstr(mrb, mrb_str_new_lit(mrb, "\n")); + printstr(msg, stdout); } |
