diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-27 03:53:23 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-04-27 03:53:23 +0000 |
commit | c17052a0f0768935c063e28c649bf1614f8b5c76 (patch) | |
tree | 05d547be358422ca173b3e85a509e235dcfd0a21 /version.c | |
parent | 39d4e7596902af0236449e0ae402278bbbadce43 (diff) |
* version.c (ruby_description, ruby_copyright): construct literals
statically even if string literal concatenation is not available.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@27510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'version.c')
-rw-r--r-- | version.c | 56 |
1 files changed, 35 insertions, 21 deletions
@@ -11,6 +11,7 @@ **********************************************************************/ #include "ruby.h" +#define RUBY_VERSION_C 1 #include "version.h" #include <stdio.h> @@ -27,17 +28,44 @@ 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]; +const struct { + char ruby[sizeof("ruby ")-1]; + char version[sizeof(RUBY_VERSION)-1]; + char patchlevel[sizeof(RUBY_PATCHLEVEL_STR)-1]; + char pad1[2]; + char release_date[sizeof(RUBY_RELEASE_DATE)-1]; + char revision[sizeof(RUBY_REVISION_STR)-1]; + char pad2[3]; + char platform[sizeof(RUBY_PLATFORM)-1]; + char pad3[2]; +} ruby_description[1] = { + { + "ruby ", RUBY_VERSION, RUBY_PATCHLEVEL_STR, + " (", RUBY_RELEASE_DATE, RUBY_REVISION_STR, ") [", + RUBY_PLATFORM, "]" + } +}; +#define ruby_description ((const char *)ruby_description) #endif + #ifdef RUBY_COPYRIGHT const char ruby_copyright[] = RUBY_COPYRIGHT; #else -char ruby_copyright[ - sizeof("ruby - Copyright (C) - ") + 20 + sizeof(RUBY_AUTHOR)-1]; +const struct { + char ruby[21]; + char birth[4]; + char pad1[1]; + char release[sizeof(STRINGIZE(RUBY_RELEASE_YEAR))-1]; + char pad2[1]; + char author[sizeof(RUBY_AUTHOR)]; +} ruby_copyright[1] = { + { + "ruby - Copyright (C) ", + STRINGIZE(RUBY_BIRTH_YEAR), "-", STRINGIZE(RUBY_RELEASE_YEAR), + " ", RUBY_AUTHOR + } +}; +#define ruby_copyright ((const char *)ruby_copyright) #endif const struct ruby_initial_loadpath { @@ -97,20 +125,6 @@ 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); |