1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* version.c, version.h: NO_STRING_LITERAL_CONCATENATION support.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@22371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-02-17 08:02:47 +00:00
parent 8fd2e12607
commit bcc1e704a6
3 changed files with 56 additions and 14 deletions

View file

@ -1,3 +1,7 @@
Tue Feb 17 17:02:45 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* version.c, version.h: NO_STRING_LITERAL_CONCATENATION support.
Tue Feb 17 17:00:49 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (MAJOR, MINOR, TEENY): uses RUBY_VERSION_*.

View file

@ -14,15 +14,31 @@
#include "version.h"
#include <stdio.h>
#define PRINT(type) puts(ruby_##type)
#define MKSTR(type) rb_obj_freeze(rb_str_new(ruby_##type, sizeof(ruby_##type)-1))
#define PRINT(type) puts(TOKEN_PASTE(ruby_,type))
#ifndef rb_str_new_cstr
#define rb_str_new_cstr(str) rb_str_new(str, strlen(str))
#endif
#define MKSTR(type) rb_obj_freeze(rb_str_new_cstr(TOKEN_PASTE(ruby_,type)))
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;
#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];
#endif
#ifdef RUBY_COPYRIGHT
const char ruby_copyright[] = RUBY_COPYRIGHT;
#else
char ruby_copyright[
sizeof("ruby - Copyright (C) - ") + 20 + sizeof(RUBY_AUTHOR)-1];
#endif
void
Init_version()
@ -31,6 +47,20 @@ 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);

View file

@ -16,9 +16,11 @@ 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
RUBY_EXTERN const char ruby_description[];
RUBY_EXTERN const char ruby_copyright[];
#endif
#endif
#define RUBY_AUTHOR "Yukihiro Matsumoto"
#define RUBY_BIRTH_YEAR 1993
@ -32,24 +34,29 @@ RUBY_EXTERN const char ruby_copyright[];
#define RUBY_REVISION 0
#endif
#if RUBY_VERSION_TEENY > 0 && RUBY_PATCHLEVEL < 5000
#define RUBY_RELEASE_STR "patchlevel"
#define RUBY_RELEASE_NUM RUBY_PATCHLEVEL
#if RUBY_PATCHLEVEL == -1
#define RUBY_PATCHLEVEL_STR "dev"
#else
#ifdef RUBY_BRANCH_NAME
#define RUBY_RELEASE_STR RUBY_BRANCH_NAME
#else
#define RUBY_RELEASE_STR "revision"
#endif
#define RUBY_RELEASE_NUM RUBY_REVISION
#define RUBY_PATCHLEVEL_STR "p"STRINGIZE(RUBY_PATCHLEVEL)
#endif
#if RUBY_REVISION
# ifdef RUBY_BRANCH_NAME
# define RUBY_REVISION_STR " "RUBY_BRANCH_NAME" "STRINGIZE(RUBY_REVISION)
# else
# define RUBY_REVISION_STR " revision "STRINGIZE(RUBY_REVISION)
# endif
#else
# define RUBY_REVISION_STR ""
#endif
#ifndef NO_STRING_LITERAL_CONCATENATION
#ifndef RUBY_DESCRIPTION
# define RUBY_DESCRIPTION \
"ruby "RUBY_VERSION \
" ("RUBY_RELEASE_DATE" " \
RUBY_RELEASE_STR" " \
STRINGIZE(RUBY_RELEASE_NUM)") " \
RUBY_PATCHLEVEL_STR \
" ("RUBY_RELEASE_DATE \
RUBY_REVISION_STR") " \
"["RUBY_PLATFORM"]"
#endif
#ifndef RUBY_COPYRIGHT
@ -59,3 +66,4 @@ RUBY_EXTERN const char ruby_copyright[];
STRINGIZE(RUBY_RELEASE_YEAR)" " \
RUBY_AUTHOR
#endif
#endif