[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]