This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Another libio patch for egcs 1.0.2


Hi,

I'd like to see this patch in egcs 1.0.2.

Thanks.


-- 
H.J. Lu (hjl@gnu.org)
--
1998-01-20  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.

--- /home/work/misc/gnu/src/egcs/libio/iostream.cc	Fri Oct  3 10:14:02 1997
+++ iostream.cc	Fri Feb  6 08:00:03 1998
@@ -333,11 +333,15 @@
 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 @@
 				      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 @@
 				  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;
--- /home/work/misc/gnu/src/egcs/libio/gen-params	Sun Feb 15 07:48:57 1998
+++ gen-params	Fri Feb  6 08:00:03 1998
@@ -277,7 +277,7 @@
 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 @@
 
 # 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 @@
 
 # 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 Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]