diff options
author | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-16 18:49:26 +0900 |
---|---|---|
committer | Jari Vetoniemi <jari.vetoniemi@indooratlas.com> | 2020-03-30 00:39:06 +0900 |
commit | fcbf63e62c627deae76c1b8cb8c0876c536ed811 (patch) | |
tree | 64cb17de3f41a2b6fef2368028fbd00349946994 /jni/ruby/version.c |
Fresh start
Diffstat (limited to 'jni/ruby/version.c')
-rw-r--r-- | jni/ruby/version.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/jni/ruby/version.c b/jni/ruby/version.c new file mode 100644 index 0000000..a57a6f0 --- /dev/null +++ b/jni/ruby/version.c @@ -0,0 +1,95 @@ +/********************************************************************** + + version.c - + + $Author: nobu $ + created at: Thu Sep 30 20:08:01 JST 1993 + + Copyright (C) 1993-2007 Yukihiro Matsumoto + +**********************************************************************/ + +#include "ruby/ruby.h" +#include "version.h" +#include <stdio.h> + +#ifndef EXIT_SUCCESS +#define EXIT_SUCCESS 0 +#endif + +#define PRINT(type) puts(ruby_##type) +#define MKSTR(type) rb_obj_freeze(rb_usascii_str_new(ruby_##type, sizeof(ruby_##type)-1)) + +const int ruby_api_version[] = { + RUBY_API_VERSION_MAJOR, + RUBY_API_VERSION_MINOR, + RUBY_API_VERSION_TEENY, +}; +const char ruby_version[] = RUBY_VERSION; +const char ruby_release_date[] = RUBY_RELEASE_DATE; +const char ruby_platform[] = RUBY_PLATFORM; +const int ruby_patchlevel = RUBY_PATCHLEVEL; +const char ruby_description[] = RUBY_DESCRIPTION; +const char ruby_copyright[] = RUBY_COPYRIGHT; +const char ruby_engine[] = "ruby"; +VALUE ruby_engine_name = Qnil; + +/*! Defines platform-depended Ruby-level constants */ +void +Init_version(void) +{ + /* + * The running version of ruby + */ + rb_define_global_const("RUBY_VERSION", MKSTR(version)); + /* + * The date this ruby was released + */ + rb_define_global_const("RUBY_RELEASE_DATE", MKSTR(release_date)); + /* + * The platform for this ruby + */ + rb_define_global_const("RUBY_PLATFORM", MKSTR(platform)); + /* + * The patchlevel for this ruby. If this is a development build of ruby + * the patchlevel will be -1 + */ + rb_define_global_const("RUBY_PATCHLEVEL", INT2FIX(RUBY_PATCHLEVEL)); + /* + * The SVN revision for this ruby. + */ + rb_define_global_const("RUBY_REVISION", INT2FIX(RUBY_REVISION)); + /* + * The full ruby version string, like <tt>ruby -v</tt> prints' + */ + rb_define_global_const("RUBY_DESCRIPTION", MKSTR(description)); + /* + * The copyright string for ruby + */ + rb_define_global_const("RUBY_COPYRIGHT", MKSTR(copyright)); + /* + * The engine or interpreter this ruby uses. + */ + rb_define_global_const("RUBY_ENGINE", ruby_engine_name = MKSTR(engine)); +} + +/*! Prints the version information of the CRuby interpreter to stdout. */ +void +ruby_show_version(void) +{ + PRINT(description); +#ifdef HAVE_MALLOC_CONF + if (malloc_conf) printf("malloc_conf=%s\n", malloc_conf); +#endif + fflush(stdout); +} + +/*! Prints the copyright notice of the CRuby interpreter to stdout and \em exits + * this process successfully. + */ +void +ruby_show_copyright(void) +{ + PRINT(copyright); + exit(EXIT_SUCCESS); +} |