Mercurial > emacs
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;