changeset 11798:7646040d7383

(float_to_string): Fix type mismatch and simplify.
author Karl Heuer <kwzh@gnu.org>
date Fri, 12 May 1995 00:44:17 +0000
parents 562d7cdc38e3
children 4a04c7799790
files src/print.c
diffstat 1 files changed, 11 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/print.c	Fri May 12 00:19:09 1995 +0000
+++ b/src/print.c	Fri May 12 00:44:17 1995 +0000
@@ -668,19 +668,21 @@
       /* Check the width specification.  */
       width = -1;
       if ('0' <= *cp && *cp <= '9')
-	for (width = 0; (*cp >= '0' && *cp <= '9'); cp++)
-	  width = (width * 10) + (*cp - '0');
+	{
+	  width = 0;
+	  do
+	    width = (width * 10) + (*cp++ - '0');
+	  while (*cp >= '0' && *cp <= '9');
+
+	  /* A precision of zero is valid only for %f.  */
+	  if (width > DBL_DIG
+	      || (width == 0 && *cp != 'f'))
+	    goto lose;
+	}
 
       if (*cp != 'e' && *cp != 'f' && *cp != 'g')
 	goto lose;
 
-      /* A precision of zero is valid for %f; everything else requires
-	 at least one.  Width may be omitted anywhere.  */
-      if (width != -1
-	  && (width < (*cp != 'f')
-	      || width > DBL_DIG))
-	goto lose;
-
       if (cp[1] != 0)
 	goto lose;