changeset 7199:cd6ceb8cbf09

[project @ 2007-11-27 03:29:57 by jwe]
author jwe
date Tue, 27 Nov 2007 03:29:57 +0000
parents 4555c116b420
children 12a12ef1f1bc
files src/ChangeLog src/oct-stream.cc
diffstat 2 files changed, 14 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Nov 27 03:06:10 2007 +0000
+++ b/src/ChangeLog	Tue Nov 27 03:29:57 2007 +0000
@@ -1,5 +1,7 @@
 2007-11-26  John W. Eaton  <jwe@octave.org>
 
+	* oct-stream.cc (DO_DOUBLE_CONV): Always use long.
+
 	* oct-stream.cc (do_write): Call float_value and double_value on
 	octave_int<T> objects instead of relying on conversion operators.
 
--- a/src/oct-stream.cc	Tue Nov 27 03:06:10 2007 +0000
+++ b/src/oct-stream.cc	Tue Nov 27 03:29:57 2007 +0000
@@ -2491,39 +2491,22 @@
 #define DO_DOUBLE_CONV(TQUAL) \
   do \
     { \
-      if (elt->modifier == 'l') \
+      if (val > std::numeric_limits<TQUAL long>::max () \
+	  || val < std::numeric_limits<TQUAL long>::min ()) \
 	{ \
-	  if (val > std::numeric_limits<TQUAL long>::max () \
-	      || val < std::numeric_limits<TQUAL long>::min ()) \
-	    { \
-	      std::string tfmt = fmt; \
+	  std::string tfmt = fmt; \
  \
-	      tfmt.replace (tfmt.rfind (elt->type), 1, ".f"); \
-	      tfmt.replace (tfmt.rfind (elt->modifier), 1, ""); \
+	  tfmt.replace (tfmt.rfind (elt->type), 1, ".f"); \
  \
-	      retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2, \
-					val, who); \
-	    } \
-	  else \
-	    retval += do_printf_conv (os, fmt, nsa, sa_1, sa_2, \
-				      static_cast<TQUAL long> (val), who); \
+	  if (elt->modifier == 'l') \
+	    tfmt.replace (tfmt.rfind (elt->modifier), 1, ""); \
+ \
+	  retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2, \
+				    val, who); \
 	} \
       else \
-	{ \
-	  if (val > std::numeric_limits<TQUAL int>::max () \
-	      || val < std::numeric_limits<TQUAL int>::min ()) \
-	    { \
-	      std::string tfmt = fmt; \
- \
-	      tfmt.replace (tfmt.rfind (elt->type), 1, ".f"); \
- \
-	      retval += do_printf_conv (os, tfmt.c_str (), nsa, sa_1, sa_2, \
-					val, who); \
-	    } \
-	  else \
-	    retval += do_printf_conv (os, fmt, nsa, sa_1, sa_2, \
-				      static_cast<TQUAL int> (val), who); \
-	} \
+	retval += do_printf_conv (os, fmt, nsa, sa_1, sa_2, \
+				  static_cast<TQUAL long> (val), who); \
     } \
   while (0)
 
@@ -2635,7 +2618,7 @@
 			  switch (type)
 			    {
 			    case 'd': case 'i': case 'c':
-			      DO_DOUBLE_CONV ( );
+			      DO_DOUBLE_CONV ();
 			      break;
 
 			    case 'o': case 'x': case 'X': case 'u':