diff options
| author | mattn <[email protected]> | 2013-03-24 00:20:35 +0900 |
|---|---|---|
| committer | mattn <[email protected]> | 2013-03-24 00:20:35 +0900 |
| commit | b69761e28623c88f142fbff92d7b361d1129ee5f (patch) | |
| tree | a2cfe405a8931a120ada39b87a6ff36fd3b904d6 /mrbgems/mruby-print/src/print.c | |
| parent | e53fa35748284b6f0b9647dee3f970a2a9c95907 (diff) | |
| download | mruby-b69761e28623c88f142fbff92d7b361d1129ee5f.tar.gz mruby-b69761e28623c88f142fbff92d7b361d1129ee5f.zip | |
Add mruby-print
Diffstat (limited to 'mrbgems/mruby-print/src/print.c')
| -rw-r--r-- | mrbgems/mruby-print/src/print.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/mrbgems/mruby-print/src/print.c b/mrbgems/mruby-print/src/print.c new file mode 100644 index 000000000..608e3cc2d --- /dev/null +++ b/mrbgems/mruby-print/src/print.c @@ -0,0 +1,44 @@ +#include "mruby.h" +#include "mruby/string.h" +#include <stdio.h> + +static void +printstr(mrb_state *mrb, mrb_value obj) +{ + struct RString *str; + char *s; + int len; + + if (mrb_string_p(obj)) { + str = mrb_str_ptr(obj); + s = str->ptr; + len = str->len; + fwrite(s, len, 1, stdout); + } +} + +/* 15.3.1.2.9 */ +/* 15.3.1.3.34 */ +mrb_value +mrb_printstr(mrb_state *mrb, mrb_value self) +{ + mrb_value argv; + + mrb_get_args(mrb, "o", &argv); + printstr(mrb, argv); + + return argv; +} + +void +mrb_mruby_print_gem_init(mrb_state* mrb) +{ + struct RClass *krn; + krn = mrb->kernel_module; + mrb_define_method(mrb, krn, "__printstr__", mrb_printstr, ARGS_REQ(1)); +} + +void +mrb_mruby_print_gem_final(mrb_state* mrb) +{ +} |
