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

ruby-changes:17883

From: usa <ko1@a...>
Date: Wed, 24 Nov 2010 12:50:17 +0900 (JST)
Subject: [ruby-changes:17883] Ruby:r29897 (trunk): * vsnprintf (BSD_vfprintf): added VC++ compatible size specifications

usa	2010-11-24 12:50:03 +0900 (Wed, 24 Nov 2010)

  New Revision: 29897

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

  Log:
    * vsnprintf (BSD_vfprintf): added VC++ compatible size specifications
      (I, I32, I64).

  Modified files:
    trunk/ChangeLog
    trunk/vsnprintf.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29896)
+++ ChangeLog	(revision 29897)
@@ -1,3 +1,8 @@
+Wed Nov 24 12:47:16 2010  NAKAMURA Usaku  <usa@r...>
+
+	* vsnprintf (BSD_vfprintf): added VC++ compatible size specifications
+	  (I, I32, I64).
+
 Wed Nov 24 11:19:13 2010  NARUSE, Yui  <naruse@r...>
 
 	* string.c (rb_str_inspect): treat UTF-16 and UTF-32 as BE or LE.
Index: vsnprintf.c
===================================================================
--- vsnprintf.c	(revision 29896)
+++ vsnprintf.c	(revision 29897)
@@ -758,6 +758,24 @@
 			flags |= QUADINT;
 			goto rflag;
 #endif /* _HAVE_SANE_QUAD_ */
+#if _WIN32
+		case 'I':
+			if (*fmt == '3' && *(fmt + 1) == '2') {
+			    fmt += 2;
+			    flags |= LONGINT;
+			}
+			else if (*fmt == '6' && *(fmt + 1) == '4') {
+			    fmt += 2;
+			    flags |= QUADINT;
+			}
+			else
+#if SIZEOF_SIZE_T == SIZEOF_LONG_LONG
+			    flags |= QUADINT;
+#else
+			    flags |= LONGINT;
+#endif
+			goto rflag;
+#endif
 		case 'c':
 			cp = buf;
 			*buf = (char)va_arg(ap, int);

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

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