Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
print.c
Go to the documentation of this file.
1 /*
2 ** print.c - Kernel.#p
3 **
4 ** See Copyright Notice in mruby.h
5 */
6 
7 #include "mruby.h"
8 #include "mruby/string.h"
9 
10 static void
11 printstr(mrb_state *mrb, mrb_value obj)
12 {
13 #ifdef ENABLE_STDIO
14  struct RString *str;
15  char *s;
16  int len;
17 
18  if (mrb_string_p(obj)) {
19  str = mrb_str_ptr(obj);
20  s = str->ptr;
21  len = str->len;
22  fwrite(s, len, 1, stdout);
23  }
24 #endif
25 }
26 
27 void
29 {
30 #ifdef ENABLE_STDIO
31  obj = mrb_funcall(mrb, obj, "inspect", 0);
32  printstr(mrb, obj);
33  putc('\n', stdout);
34 #endif
35 }
36 
37 void
39 {
40 #ifdef ENABLE_STDIO
41  mrb_value s;
42 
44  s = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0);
45  if (mrb_string_p(s)) {
46  struct RString *str = mrb_str_ptr(s);
47  fwrite(str->ptr, str->len, 1, stderr);
48  putc('\n', stderr);
49  }
50 #endif
51 }
52 
53 void
55 {
56  static const char version_msg[] = "mruby - Embeddable Ruby Copyright (c) 2010-2013 mruby developers\n";
57  mrb_value msg;
58 
59  msg = mrb_str_new(mrb, version_msg, sizeof(version_msg) - 1);
60  printstr(mrb, msg);
61 }
62 
63 void
65 {
66  static const char copyright_msg[] = "mruby - Copyright (c) 2010-2013 mruby developers\n";
67  mrb_value msg;
68 
69  msg = mrb_str_new(mrb, copyright_msg, sizeof(copyright_msg) - 1);
70  printstr(mrb, msg);
71 }