ruby-changes:15602
From: nobu <ko1@a...>
Date: Tue, 27 Apr 2010 12:53:36 +0900 (JST)
Subject: [ruby-changes:15602] Ruby:r27510 (ruby_1_8): * version.c (ruby_description, ruby_copyright): construct literals
nobu 2010-04-27 12:53:23 +0900 (Tue, 27 Apr 2010) New Revision: 27510 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27510 Log: * version.c (ruby_description, ruby_copyright): construct literals statically even if string literal concatenation is not available. Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/version.c branches/ruby_1_8/version.h Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 27509) +++ ruby_1_8/ChangeLog (revision 27510) @@ -1,3 +1,8 @@ +Tue Apr 27 12:53:20 2010 Nobuyoshi Nakada <nobu@r...> + + * version.c (ruby_description, ruby_copyright): construct literals + statically even if string literal concatenation is not available. + Sun Apr 25 22:06:25 2010 Shugo Maeda <shugo@r...> * lib/net/imap.rb (fetch_internal): do not quote message data item Index: ruby_1_8/version.c =================================================================== --- ruby_1_8/version.c (revision 27509) +++ ruby_1_8/version.c (revision 27510) @@ -11,6 +11,7 @@ **********************************************************************/ #include "ruby.h" +#define RUBY_VERSION_C 1 #include "version.h" #include <stdio.h> @@ -27,17 +28,44 @@ #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 @@ 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); Index: ruby_1_8/version.h =================================================================== --- ruby_1_8/version.h (revision 27509) +++ ruby_1_8/version.h (revision 27510) @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.8.8" -#define RUBY_RELEASE_DATE "2010-04-25" +#define RUBY_RELEASE_DATE "2010-04-27" #define RUBY_VERSION_CODE 188 -#define RUBY_RELEASE_CODE 20100425 +#define RUBY_RELEASE_CODE 20100427 #define RUBY_PATCHLEVEL -1 #define RUBY_VERSION_MAJOR 1 @@ -9,14 +9,15 @@ #define RUBY_VERSION_TEENY 8 #define RUBY_RELEASE_YEAR 2010 #define RUBY_RELEASE_MONTH 4 -#define RUBY_RELEASE_DAY 25 +#define RUBY_RELEASE_DAY 27 +#define NO_STRING_LITERAL_CONCATENATION 1 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; RUBY_EXTERN const char ruby_release_date[]; RUBY_EXTERN const char ruby_platform[]; RUBY_EXTERN const int ruby_patchlevel; -#ifndef NO_STRING_LITERAL_CONCATENATION +#if !defined(RUBY_VERSION_C) || !defined(NO_STRING_LITERAL_CONCATENATION) RUBY_EXTERN const char ruby_description[]; RUBY_EXTERN const char ruby_copyright[]; #endif -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/