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

ruby-changes:6089

From: nobu <ko1@a...>
Date: Fri, 27 Jun 2008 15:05:24 +0900 (JST)
Subject: [ruby-changes:6089] Ruby:r17601 (ruby_1_8): * common.mk (-IF-NO-STRING-LITERAL-CONCATENATION-): make description

nobu	2008-06-27 15:05:11 +0900 (Fri, 27 Jun 2008)

  New Revision: 17601

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/common.mk
    branches/ruby_1_8/configure.in
    branches/ruby_1_8/error.c
    branches/ruby_1_8/version.c
    branches/ruby_1_8/version.h

  Log:
    * common.mk (-IF-NO-STRING-LITERAL-CONCATENATION-): make description
      and copyright literals.
    
    * configure.in: enable to make description and copyright literals if
      string literal concatenation is not available.
    
    * version.c (ruby_description, ruby_copyright): now always constant.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/error.c?r1=17601&r2=17600&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/common.mk?r1=17601&r2=17600&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.c?r1=17601&r2=17600&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/configure.in?r1=17601&r2=17600&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=17601&r2=17600&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/version.h?r1=17601&r2=17600&diff_format=u

Index: ruby_1_8/error.c
===================================================================
--- ruby_1_8/error.c	(revision 17600)
+++ ruby_1_8/error.c	(revision 17601)
@@ -29,7 +29,7 @@
 #define EXIT_SUCCESS 0
 #endif
 
-extern const char *ruby_description;
+extern const char ruby_description[];
 
 int ruby_nerrs;
 
Index: ruby_1_8/configure.in
===================================================================
--- ruby_1_8/configure.in	(revision 17600)
+++ ruby_1_8/configure.in	(revision 17601)
@@ -1849,7 +1849,10 @@
 	sed '/^MISSING/s/\$U\././g' Makefile
 	echo; test x"$EXEEXT" = x || echo 'miniruby: miniruby$(EXEEXT)'
 	test "$RUBY_INSTALL_NAME$EXEEXT" = ruby || echo 'ruby: $(PROGRAM);'
-	sed ['s/{\$([^(){}]*)[^{}]*}//g'] ${srcdir}/common.mk
+	if_no_string_literal_concatenation=""
+	test "$rb_cv_string_literal_concatenation" = yes ||
+	    if_no_string_literal_concatenation=';/^-IF-NO-STRING-LITERAL-CONCATENATION-:/d'
+	sed ['s/{\$([^(){}]*)[^{}]*}//g'"$if_no_string_literal_concatenation"] ${srcdir}/common.mk
       } >> confmk$$.tmp && mv -f confmk$$.tmp Makefile],
 [RUBY_INSTALL_NAME=$RUBY_INSTALL_NAME EXEEXT=$EXEEXT])
 AC_OUTPUT
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 17600)
+++ ruby_1_8/ChangeLog	(revision 17601)
@@ -1,3 +1,13 @@
+Fri Jun 27 15:05:06 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* common.mk (-IF-NO-STRING-LITERAL-CONCATENATION-): make description
+	  and copyright literals.
+
+	* configure.in: enable to make description and copyright literals if
+	  string literal concatenation is not available.
+
+	* version.c (ruby_description, ruby_copyright): now always constant.
+
 Fri Jun 27 12:28:57 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* lib/un.rb (mkmf): new command to create makefile.
Index: ruby_1_8/version.c
===================================================================
--- ruby_1_8/version.c	(revision 17600)
+++ ruby_1_8/version.c	(revision 17601)
@@ -21,13 +21,8 @@
 const char ruby_release_date[] = RUBY_RELEASE_DATE;
 const char ruby_platform[] = RUBY_PLATFORM;
 const int ruby_patchlevel = RUBY_PATCHLEVEL;
-#if !NO_STRING_LITERAL_CONCATENATION
 const char ruby_description[] = RUBY_DESCRIPTION;
 const char ruby_copyright[] = RUBY_COPYRIGHT;
-#else
-char ruby_description[128];
-char ruby_copyright[128];
-#endif
 
 void
 Init_version()
@@ -35,9 +30,6 @@
     VALUE v = MKSTR(version);
     VALUE d = MKSTR(release_date);
     VALUE p = MKSTR(platform);
-#if NO_STRING_LITERAL_CONCATENATION
-    VALUE tmp;
-#endif
 
     rb_define_global_const("RUBY_VERSION", v);
     rb_define_global_const("RUBY_RELEASE_DATE", d);
@@ -47,19 +39,6 @@
     rb_define_global_const("RUBY_DESCRIPTION", MKSTR(description));
     rb_define_global_const("RUBY_COPYRIGHT", MKSTR(copyright));
 
-#if NO_STRING_LITERAL_CONCATENATION
-    snprintf(ruby_description, sizeof(ruby_description), "ruby %s (%s %s %d) [%s]",
-             RUBY_VERSION, RUBY_RELEASE_DATE, RUBY_RELEASE_STR,
-             RUBY_RELEASE_NUM, RUBY_PLATFORM);
-    tmp = rb_obj_freeze(rb_str_new2(ruby_description));
-    rb_define_global_const("RUBY_DESCRIPTION", tmp);
-
-    snprintf(ruby_copyright, sizeof(ruby_copyright), "ruby - Copyright (C) %d-%d %s",
-             RUBY_BIRTH_YEAR, RUBY_RELEASE_YEAR, RUBY_AUTHOR);
-    tmp = rb_obj_freeze(rb_str_new2(ruby_copyright));
-    rb_define_global_const("RUBY_COPYRIGHT", tmp);
-#endif
-
     /* obsolete constants */
     rb_define_global_const("VERSION", v);
     rb_define_global_const("RELEASE_DATE", d);
Index: ruby_1_8/version.h
===================================================================
--- ruby_1_8/version.h	(revision 17600)
+++ ruby_1_8/version.h	(revision 17601)
@@ -16,14 +16,9 @@
 RUBY_EXTERN const char ruby_release_date[];
 RUBY_EXTERN const char ruby_platform[];
 RUBY_EXTERN const int ruby_patchlevel;
-#if !NO_STRING_LITERAL_CONCATENATION
 RUBY_EXTERN const char ruby_description[];
 RUBY_EXTERN const char ruby_copyright[];
-#else
-RUBY_EXTERN char ruby_description[];
-RUBY_EXTERN char ruby_copyright[];
 #endif
-#endif
 
 #define RUBY_AUTHOR "Yukihiro Matsumoto"
 #define RUBY_BIRTH_YEAR 1993
@@ -49,14 +44,18 @@
 #define RUBY_RELEASE_NUM RUBY_REVISION
 #endif
 
+#ifndef RUBY_DESCRIPTION
 # define RUBY_DESCRIPTION	    \
     "ruby "RUBY_VERSION		    \
     " ("RUBY_RELEASE_DATE" "	    \
     RUBY_RELEASE_STR" "		    \
     STRINGIZE(RUBY_RELEASE_NUM)") " \
     "["RUBY_PLATFORM"]"
+#endif
+#ifndef RUBY_COPYRIGHT
 # define RUBY_COPYRIGHT 	    \
     "ruby - Copyright (C) "	    \
     STRINGIZE(RUBY_BIRTH_YEAR)"-"   \
     STRINGIZE(RUBY_RELEASE_YEAR)" " \
     RUBY_AUTHOR
+#endif
Index: ruby_1_8/common.mk
===================================================================
--- ruby_1_8/common.mk	(revision 17600)
+++ ruby_1_8/common.mk	(revision 17601)
@@ -484,3 +484,12 @@
 	@set LC_MESSAGES=C
 	-@$(SET_LC_MESSAGES) $(VCS) info "$(srcdir)" | \
 	sed -n "s/.*Rev:/#define RUBY_REVISION/p" > "$@"
+-IF-NO-STRING-LITERAL-CONCATENATION-::
+	@{ \
+	echo '#include "$@"'; \
+	echo '#include "ruby.h"'; \
+	echo '#include "version.h"'; \
+	echo '%define_RUBY_DESCRIPTION RUBY_DESCRIPTION'; \
+	echo '%define_RUBY_COPYRIGHT RUBY_COPYRIGHT'; \
+	} | $(CPP) -I. -I$(srcdir) - | \
+	sed '/^%/!d;s//#/;s/_/ /;s/" *"//g' >> "$@"

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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