diff options
Diffstat (limited to 'version.c')
| -rw-r--r-- | version.c | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -14,15 +14,31 @@ #include "version.h" #include <stdio.h> -#define PRINT(type) puts(ruby_##type) -#define MKSTR(type) rb_obj_freeze(rb_str_new(ruby_##type, sizeof(ruby_##type)-1)) +#define PRINT(type) puts(TOKEN_PASTE(ruby_,type)) +#ifndef rb_str_new_cstr +#define rb_str_new_cstr(str) rb_str_new(str, strlen(str)) +#endif +#define MKSTR(type) rb_obj_freeze(rb_str_new_cstr(TOKEN_PASTE(ruby_,type))) 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; +#ifdef RUBY_DESCRIPTION const char ruby_description[] = RUBY_DESCRIPTION; +#else +char ruby_description[ + sizeof("ruby () []") + + sizeof(RUBY_VERSION)-1 + sizeof(RUBY_PATCHLEVEL_STR)-1 + + sizeof(RUBY_RELEASE_DATE)-1 + sizeof(RUBY_REVISION_STR)-1 + + sizeof(RUBY_PLATFORM)-1]; +#endif +#ifdef RUBY_COPYRIGHT const char ruby_copyright[] = RUBY_COPYRIGHT; +#else +char ruby_copyright[ + sizeof("ruby - Copyright (C) - ") + 20 + sizeof(RUBY_AUTHOR)-1]; +#endif void Init_version() @@ -31,6 +47,20 @@ Init_version() VALUE d = MKSTR(release_date); VALUE p = MKSTR(platform); +#ifndef RUBY_DESCRIPTION + snprintf(ruby_description, sizeof(ruby_description), + "ruby %s%s (%s%s) [%s]", + RUBY_VERSION, RUBY_PATCHLEVEL_STR, + RUBY_RELEASE_DATE, RUBY_REVISION_STR, + RUBY_PLATFORM); +#endif +#ifndef RUBY_COPYRIGHT + snprintf(ruby_copyright, sizeof(ruby_copyright), + "ruby - Copyright (C) %d-%d %s", + RUBY_BIRTH_YEAR, RUBY_RELEASE_YEAR, + RUBY_AUTHOR); +#endif + rb_define_global_const("RUBY_VERSION", v); rb_define_global_const("RUBY_RELEASE_DATE", d); rb_define_global_const("RUBY_PLATFORM", p); |
