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

ruby-changes:7133

From: nobu <ko1@a...>
Date: Sat, 16 Aug 2008 08:53:25 +0900 (JST)
Subject: [ruby-changes:7133] Ruby:r18651 (trunk): * include/ruby/ruby.h (SSIZET2NUM, NUM2SSIZET, SSIZE_MAX, SSIZE_MIN):

nobu	2008-08-16 08:53:07 +0900 (Sat, 16 Aug 2008)

  New Revision: 18651

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

  Log:
    * include/ruby/ruby.h (SSIZET2NUM, NUM2SSIZET, SSIZE_MAX, SSIZE_MIN):
      macros for ssize_t.

  Modified files:
    trunk/ChangeLog
    trunk/include/ruby/ruby.h

Index: include/ruby/ruby.h
===================================================================
--- include/ruby/ruby.h	(revision 18650)
+++ include/ruby/ruby.h	(revision 18651)
@@ -210,12 +210,30 @@
 
 #if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
 # define SIZET2NUM(v) ULL2NUM(v)
+# define SSIZET2NUM(v) LL2NUM(v)
 #elif SIZEOF_SIZE_T == SIZEOF_LONG
 # define SIZET2NUM(v) ULONG2NUM(v)
+# define SSIZET2NUM(v) LONG2NUM(v)
 #else
 # define SIZET2NUM(v) UINT2NUM(v)
+# define SSIZET2NUM(v) INT2NUM(v)
 #endif
 
+#ifndef SSIZE_MAX
+# if SIZEOF_SIZE_T > SIZEOF_LONG && defined(HAVE_LONG_LONG)
+#   define SSIZE_MAX LLONG_MAX
+#   define SSIZE_MIN LLONG_MIN
+# elif SIZEOF_SIZE_T == SIZEOF_LONG
+#   define SSIZE_MAX LONG_MAX
+#   define SSIZE_MIN LONG_MIN
+# elif SIZEOF_SIZE_T == SIZEOF_INT
+#   define SSIZE_MAX INT_MAX
+#   define SSIZE_MIN INT_MIN
+# else
+#   define SSIZE_MAX SHRT_MAX
+#   define SSIZE_MIN SHRT_MIN
+#endif
+
 #ifndef PIDT2NUM
 #define PIDT2NUM(v) LONG2NUM(v)
 #endif
@@ -411,8 +429,10 @@
 
 #if defined(HAVE_LONG_LONG) && SIZEOF_SIZE_T > SIZEOF_LONG
 # define NUM2SIZET(x) ((size_t)NUM2ULL(x))
+# define NUM2SSIZET(x) ((size_t)NUM2LL(x))
 #else
 # define NUM2SIZET(x) NUM2ULONG(x)
+# define NUM2SSIZET(x) NUM2LONG(x)
 #endif
 
 double rb_num2dbl(VALUE);
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18650)
+++ ChangeLog	(revision 18651)
@@ -1,3 +1,8 @@
+Sat Aug 16 08:52:55 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* include/ruby/ruby.h (SSIZET2NUM, NUM2SSIZET, SSIZE_MAX, SSIZE_MIN):
+	  macros for ssize_t.
+
 Sat Aug 16 08:11:04 2008  Tanaka Akira  <akr@f...>
 
 	* transcode_data.h (rb_transcoder_stateful_type_t): defined.

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

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