summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--version.c56
-rw-r--r--version.h9
3 files changed, 45 insertions, 25 deletions
diff --git a/ChangeLog b/ChangeLog
index a64c2169e0..8178c3be1e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Apr 27 12:53:20 2010 Nobuyoshi Nakada <[email protected]>
+
+ * 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 <[email protected]>
* lib/net/imap.rb (fetch_internal): do not quote message data item
diff --git a/version.c b/version.c
index 5b7f167fb8..d60ca2d92b 100644
--- a/version.c
+++ b/version.c
@@ -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);
diff --git a/version.h b/version.h
index ec1aecdbfa..d356723d02 100644
--- a/version.h
+++ b/version.h
@@ -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