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

ruby-changes:28075

From: akr <ko1@a...>
Date: Fri, 5 Apr 2013 20:46:24 +0900 (JST)
Subject: [ruby-changes:28075] akr:r40127 (trunk): * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish

akr	2013-04-05 20:44:56 +0900 (Fri, 05 Apr 2013)

  New Revision: 40127

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=40127

  Log:
    * include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish
      availability of long long and availability of 64bit integer type.
    
    * pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support.

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/defines.h
    trunk/pack.c

Index: include/ruby/defines.h
===================================================================
--- include/ruby/defines.h	(revision 40126)
+++ include/ruby/defines.h	(revision 40127)
@@ -114,6 +114,10 @@ void xfree(void*); https://github.com/ruby/ruby/blob/trunk/include/ruby/defines.h#L114
 #define STRINGIZE0(expr) #expr
 #endif
 
+#ifdef HAVE_LONG_LONG 1
+# define HAVE_TRUE_LONG_LONG 1
+#endif
+
 #if SIZEOF_LONG_LONG > 0
 # define LONG_LONG long long
 #elif SIZEOF___INT64 > 0
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 40126)
+++ ChangeLog	(revision 40127)
@@ -1,6 +1,13 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Fri Apr  5 20:41:49 2013  Tanaka Akira  <akr@f...>
+
+	* include/ruby/defines.h (HAVE_TRUE_LONG_LONG): Defined to distinguish
+	  availability of long long and availability of 64bit integer type.
+
+	* pack.c: Use HAVE_TRUE_LONG_LONG to distinguish q! and Q! support.
+
 Fri Apr  5 20:19:42 2013  Tanaka Akira  <akr@f...>
 
-	* addr2line.c: include ruby/missing.h to fix compile error on Debian.
+	* addr2line.c: Include ruby/missing.h to fix compile error on Debian.
 
 Fri Apr  5 19:39:52 2013  Nobuyoshi Nakada  <nobu@r...>
 
Index: pack.c
===================================================================
--- pack.c	(revision 40126)
+++ pack.c	(revision 40127)
@@ -22,21 +22,21 @@ https://github.com/ruby/ruby/blob/trunk/pack.c#L22
     (__GNUC__ == (major) && __GNUC_MINOR__ == (minor) && __GNUC_PATCHLEVEL__ >= (patchlevel))))
 
 /*
- * It is intentional that the condition for natstr is HAVE_LONG_LONG
- * instead of LONG_LONG.
+ * It is intentional that the condition for natstr is HAVE_TRUE_LONG_LONG
+ * instead of HAVE_LONG_LONG or LONG_LONG.
  * This means q! and Q! means always the standard long long type and
  * causes ArgumentError for platforms which has no long long type,
  * even if the platform has an implementation specific 64bit type.
  * This behavior is consistent with the document of pack/unpack.
  */
-#ifdef HAVE_LONG_LONG
+#ifdef HAVE_TRUE_LONG_LONG
 static const char natstr[] = "sSiIlLqQ";
 #else
 static const char natstr[] = "sSiIlL";
 #endif
 static const char endstr[] = "sSiIlLqQ";
 
-#if SIZEOF_SHORT != 2 || SIZEOF_LONG != 4 || (defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG != 8)
+#if SIZEOF_SHORT != 2 || SIZEOF_LONG != 4 || (defined(HAVE_TRUE_LONG_LONG) && SIZEOF_LONG_LONG != 8)
 # define NATINT_PACK
 #endif
 
@@ -68,8 +68,8 @@ static const char endstr[] = "sSiIlLqQ"; https://github.com/ruby/ruby/blob/trunk/pack.c#L68
 # define NATINT_LEN(type,len) ((int)sizeof(type))
 #endif
 
-#ifdef HAVE_LONG_LONG
-# define NATINT_LEN_Q NATINT_LEN(LONG_LONG, 8)
+#ifdef HAVE_TRUE_LONG_LONG
+# define NATINT_LEN_Q NATINT_LEN(long long, 8)
 #else
 # define NATINT_LEN_Q 8
 #endif

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

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