]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
iostream.cc (istream::operator>>(long double&)): Scan value into separate variable...
authorAndreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Tue, 17 Feb 1998 21:07:42 +0000 (21:07 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 17 Feb 1998 21:07:42 +0000 (14:07 -0700)
        * iostream.cc (istream::operator>>(long double&))
        [!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in
        case long double is bigger than double.
        (ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of
        initializers of struct printf_info to match declaration order,
        to work around g++ bug.
        (ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise.
        * gen-params: Add missing quotes.  Avoid useless use of command
        substitution.

From-SVN: r18043

libio/ChangeLog
libio/gen-params
libio/iostream.cc

index 0e429191f68f778aeea975ee8bd551608ce86d07..ac8c2229048503f0a3fb521d2c58d532fab92930 100644 (file)
@@ -1,3 +1,16 @@
+1998-02-17  Andreas Schwab  (schwab@issan.informatik.uni-dortmund.de)
+
+       * iostream.cc (istream::operator>>(long double&))
+       [!_G_HAVE_LONG_DOUBLE_IO]: Scan value into separate variable, in
+       case long double is bigger than double.
+       (ostream::operator<<(double)) [_G_HAVE_PRINTF_FP]: Fix order of
+       initializers of struct printf_info to match declaration order,
+       to work around g++ bug.
+       (ostream::operator<<(long double)) [_G_HAVE_PRINTF_FP]: Likewise.
+
+       * gen-params: Add missing quotes.  Avoid useless use of command
+       substitution.
+
 Tue Feb 17 21:52:44 1998  H.J. Lu  (hjl@gnu.org)
 
        * config/linux.mt (IO_OBJECTS): Add iogetline.o.
index bd652b68da5e8f536a50499d82ddd825a7938c99..37ee742e21c38925b4534579a82a57801080b0b9 100755 (executable)
@@ -277,7 +277,7 @@ fi
 tr '   ' ' ' <TMP >dummy.out
 
 for TYPE in dev_t clock_t fpos_t gid_t ino_t mode_t nlink_t off_t pid_t ptrdiff_t sigset_t size_t ssize_t time_t uid_t va_list wchar_t wint_t int16_t uint16_t int32_t uint_32_t u_int16_t u_int32_t; do
-    IMPORTED=`eval 'echo $'"$TYPE"`
+    eval IMPORTED=\$$TYPE
     if [ -n "${IMPORTED}" ] ; then
        eval "$TYPE='$IMPORTED'"
     else
@@ -318,9 +318,9 @@ done
 
 # Look for some standard macros.
 for NAME in BUFSIZ FOPEN_MAX FILENAME_MAX NULL; do
-    IMPORTED=`eval 'echo $'"$NAME"`
+    eval IMPORTED=\$$NAME
     if [ -n "${IMPORTED}" ] ; then
-       eval "$NAME='$IMPORTED /* specified */"
+       eval "$NAME='$IMPORTED /* specified */'"
     else
        rm -f TMP
        ${SED} -n -e 's| *;|;|g' -e "s|long X${NAME}= *\(.*\);|\1|w TMP" \
@@ -334,9 +334,9 @@ done
 
 # These macros must be numerical constants; strip any trailing 'L's.
 for NAME in SHRT_MAX INT_MAX LONG_MAX LONG_LONG_MAX; do
-    IMPORTED=`eval 'echo $'"$NAME"`
+    eval IMPORTED=\$$NAME
     if [ -n "${IMPORTED}" ] ; then
-       eval "$NAME='$IMPORTED /* specified */"
+       eval "$NAME='$IMPORTED /* specified */'"
     else
        rm -f TMP
        ${SED} -n -e 's| *;|;|g' -e "s|long X${NAME}= *\([0-9]*\)L* *;|\1|w TMP" \
index f4b1e167ddede93337f72f3592c4c54f327e19de..96ebd6ee57a85fd0e475dfc647c6a4779ca8cf38 100644 (file)
@@ -333,11 +333,15 @@ READ_INT(bool)
 istream& istream::operator>>(long double& x)
 {
     if (ipfx0())
+      {
 #if _G_HAVE_LONG_DOUBLE_IO
        scan("%Lg", &x);
 #else
-       scan("%lg", &x);
+       double y;
+       scan("%lg", &y);
+       x = y;
 #endif
+      }
     return *this;
 }
 
@@ -628,10 +632,10 @@ ostream& ostream::operator<<(double n)
                                      left: (flags() & ios::left) != 0,
                                      showsign: (flags() & ios::showpos) != 0,
                                      group: 0,
-                                     pad: fill()
 #if defined __GLIBC__ && __GLIBC__ >= 2
-                                     , extra: 0
+                                     extra: 0,
 #endif
+                                     pad: fill()
          };
          const void *ptr = (const void *) &n;
          if (__printf_fp (rdbuf(), &info, &ptr) < 0)
@@ -731,10 +735,10 @@ ostream& ostream::operator<<(long double n)
                                  left: (flags() & ios::left) != 0,
                                  showsign: (flags() & ios::showpos) != 0,
                                  group: 0,
-                                 pad: fill()
 #if defined __GLIBC__ && __GLIBC__ >= 2
-                                 , extra: 0
+                                 extra: 0,
 #endif
+                                 pad: fill()
       };
 
       const void *ptr = (const void *) &n;