Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mruby_mbed_web mirb_mbed
src/print.c@0:158c61bb030f, 2015-03-25 (annotated)
- Committer:
- mzta
- Date:
- Wed Mar 25 17:36:16 2015 +0000
- Revision:
- 0:158c61bb030f
mirb_mbed initial commit;
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| mzta | 0:158c61bb030f | 1 | /* | 
| mzta | 0:158c61bb030f | 2 | ** print.c - Kernel.#p | 
| mzta | 0:158c61bb030f | 3 | ** | 
| mzta | 0:158c61bb030f | 4 | ** See Copyright Notice in mruby.h | 
| mzta | 0:158c61bb030f | 5 | */ | 
| mzta | 0:158c61bb030f | 6 | |
| mzta | 0:158c61bb030f | 7 | #include "mruby.h" | 
| mzta | 0:158c61bb030f | 8 | #include "mruby/string.h" | 
| mzta | 0:158c61bb030f | 9 | #include "mruby/variable.h" | 
| mzta | 0:158c61bb030f | 10 | |
| mzta | 0:158c61bb030f | 11 | static void | 
| mzta | 0:158c61bb030f | 12 | printstr(mrb_state *mrb, mrb_value obj) | 
| mzta | 0:158c61bb030f | 13 | { | 
| mzta | 0:158c61bb030f | 14 | #ifdef ENABLE_STDIO | 
| mzta | 0:158c61bb030f | 15 | char *s; | 
| mzta | 0:158c61bb030f | 16 | int len; | 
| mzta | 0:158c61bb030f | 17 | |
| mzta | 0:158c61bb030f | 18 | if (mrb_string_p(obj)) { | 
| mzta | 0:158c61bb030f | 19 | s = RSTRING_PTR(obj); | 
| mzta | 0:158c61bb030f | 20 | len = RSTRING_LEN(obj); | 
| mzta | 0:158c61bb030f | 21 | fwrite(s, len, 1, stdout); | 
| mzta | 0:158c61bb030f | 22 | } | 
| mzta | 0:158c61bb030f | 23 | #endif | 
| mzta | 0:158c61bb030f | 24 | } | 
| mzta | 0:158c61bb030f | 25 | |
| mzta | 0:158c61bb030f | 26 | MRB_API void | 
| mzta | 0:158c61bb030f | 27 | mrb_p(mrb_state *mrb, mrb_value obj) | 
| mzta | 0:158c61bb030f | 28 | { | 
| mzta | 0:158c61bb030f | 29 | #ifdef ENABLE_STDIO | 
| mzta | 0:158c61bb030f | 30 | obj = mrb_funcall(mrb, obj, "inspect", 0); | 
| mzta | 0:158c61bb030f | 31 | printstr(mrb, obj); | 
| mzta | 0:158c61bb030f | 32 | putc('\n', stdout); | 
| mzta | 0:158c61bb030f | 33 | #endif | 
| mzta | 0:158c61bb030f | 34 | } | 
| mzta | 0:158c61bb030f | 35 | |
| mzta | 0:158c61bb030f | 36 | MRB_API void | 
| mzta | 0:158c61bb030f | 37 | mrb_print_error(mrb_state *mrb) | 
| mzta | 0:158c61bb030f | 38 | { | 
| mzta | 0:158c61bb030f | 39 | #ifdef ENABLE_STDIO | 
| mzta | 0:158c61bb030f | 40 | mrb_value s; | 
| mzta | 0:158c61bb030f | 41 | |
| mzta | 0:158c61bb030f | 42 | mrb_print_backtrace(mrb); | 
| mzta | 0:158c61bb030f | 43 | s = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0); | 
| mzta | 0:158c61bb030f | 44 | if (mrb_string_p(s)) { | 
| mzta | 0:158c61bb030f | 45 | fwrite(RSTRING_PTR(s), RSTRING_LEN(s), 1, stderr); | 
| mzta | 0:158c61bb030f | 46 | putc('\n', stderr); | 
| mzta | 0:158c61bb030f | 47 | } | 
| mzta | 0:158c61bb030f | 48 | #endif | 
| mzta | 0:158c61bb030f | 49 | } | 
| mzta | 0:158c61bb030f | 50 | |
| mzta | 0:158c61bb030f | 51 | MRB_API void | 
| mzta | 0:158c61bb030f | 52 | mrb_show_version(mrb_state *mrb) | 
| mzta | 0:158c61bb030f | 53 | { | 
| mzta | 0:158c61bb030f | 54 | mrb_value msg; | 
| mzta | 0:158c61bb030f | 55 | |
| mzta | 0:158c61bb030f | 56 | msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION")); | 
| mzta | 0:158c61bb030f | 57 | printstr(mrb, msg); | 
| mzta | 0:158c61bb030f | 58 | printstr(mrb, mrb_str_new_lit(mrb, "\n")); | 
| mzta | 0:158c61bb030f | 59 | } | 
| mzta | 0:158c61bb030f | 60 | |
| mzta | 0:158c61bb030f | 61 | MRB_API void | 
| mzta | 0:158c61bb030f | 62 | mrb_show_copyright(mrb_state *mrb) | 
| mzta | 0:158c61bb030f | 63 | { | 
| mzta | 0:158c61bb030f | 64 | mrb_value msg; | 
| mzta | 0:158c61bb030f | 65 | |
| mzta | 0:158c61bb030f | 66 | msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT")); | 
| mzta | 0:158c61bb030f | 67 | printstr(mrb, msg); | 
| mzta | 0:158c61bb030f | 68 | printstr(mrb, mrb_str_new_lit(mrb, "\n")); | 
| mzta | 0:158c61bb030f | 69 | } | 
| mzta | 0:158c61bb030f | 70 |