From c4ae288b907acd4fe25673d969a15fefa73a635f Mon Sep 17 00:00:00 2001 From: knu Date: Sat, 31 May 2008 13:37:06 +0000 Subject: Merge from ruby_1_8. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@16723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- version.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'version.c') diff --git a/version.c b/version.c index b235673001..dbc65b08a4 100644 --- a/version.c +++ b/version.c @@ -14,23 +14,44 @@ #include "version.h" #include +#define PRINT(type) puts(ruby_##type) +#define MKSTR(type) rb_obj_freeze(rb_str_new(ruby_##type, sizeof(ruby_##type)-1)) + 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; +const char *ruby_copyright; void Init_version() { - VALUE v = rb_obj_freeze(rb_str_new2(ruby_version)); - VALUE d = rb_obj_freeze(rb_str_new2(ruby_release_date)); - VALUE p = rb_obj_freeze(rb_str_new2(ruby_platform)); + static char description[128]; + static char copyright[128]; + VALUE v = MKSTR(version); + VALUE d = MKSTR(release_date); + VALUE p = MKSTR(platform); + VALUE tmp; rb_define_global_const("RUBY_VERSION", v); rb_define_global_const("RUBY_RELEASE_DATE", d); rb_define_global_const("RUBY_PLATFORM", p); rb_define_global_const("RUBY_PATCHLEVEL", INT2FIX(RUBY_PATCHLEVEL)); + snprintf(description, sizeof(description), "ruby %s (%s %s %d) [%s]", + RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_RELEASE_STR, + RUBY_RELEASE_NUM, RUBY_PLATFORM); + ruby_description = description; + tmp = rb_obj_freeze(rb_str_new2(description)); + rb_define_global_const("RUBY_DESCRIPTION", tmp); + + snprintf(copyright, sizeof(copyright), "ruby - Copyright (C) %d-%d %s", + RUBY_BIRTH_YEAR, RUBY_RELEASE_YEAR, RUBY_AUTHOR); + ruby_copyright = copyright; + tmp = rb_obj_freeze(rb_str_new2(copyright)); + rb_define_global_const("RUBY_COPYRIGHT", tmp); + /* obsolete constants */ rb_define_global_const("VERSION", v); rb_define_global_const("RELEASE_DATE", d); @@ -40,13 +61,13 @@ Init_version() void ruby_show_version() { - printf("ruby %s (%s patchlevel %d) [%s]\n", RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_PATCHLEVEL, RUBY_PLATFORM); + PRINT(description); fflush(stdout); } void ruby_show_copyright() { - printf("ruby - Copyright (C) 1993-%d Yukihiro Matsumoto\n", RUBY_RELEASE_YEAR); + PRINT(copyright); exit(0); } -- cgit v1.2.3