diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-09-09 11:53:19 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-09-09 11:53:19 +0000 |
commit | 6e4c40baacfd7eaf1578f707759d79b5d95d626c (patch) | |
tree | ebea3ca25b71a1f21e657b7ab8a506f640197d79 /stdio-common | |
parent | 7fd18ea2de82bb4f0e393aee1dc412cd025f3be8 (diff) | |
download | glibc-6e4c40baacfd7eaf1578f707759d79b5d95d626c.tar.gz glibc-6e4c40baacfd7eaf1578f707759d79b5d95d626c.tar.xz glibc-6e4c40baacfd7eaf1578f707759d79b5d95d626c.zip |
Update.
1998-09-09 09:32 Ulrich Drepper <drepper@cygnus.com> * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Make function inline. 1998-09-07 Paul Eggert <eggert@twinsun.com> * time/mktime.c (__EXTENSIONS__): Define if not defined. (_REENTRANT): Remove. It has undesirable consequences in Solaris 2.6 (e.g. it turns off the putc macro). Defining __EXTENSIONS__ makes localtime_r and gmtime_r visible, which is what we want. * time/strftime.c: Likewise. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-error.c: Fix spelling. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * stdlib/strfmon.c: Quiet -Wparentheses warnings. * stdio-common/_itoa.c: Likewise. * stdio-common/printf_fp.c: Likewise. * stdio-common/vfscanf.c: Likewise. * wcsmbs/wcstok.c: Likewise. * sysdeps/generic/glob.c: Likewise. * posix/getopt.c: Likewise. * sysdeps/posix/getaddrinfo.c: Likewise. * posix/wordexp.c: Likewise. * io/ftw.c: Likewise. * io/fts.c: Likewise. * misc/getpass.c: Likewise. * iconv/gconv_conf.c: Likewise. * argp/argp-fmtstream.c: Likewise. * argp/argp-help.c: Likewise. * elf/dl-load.c: Likewise. * locale/programs/stringtrans.c: Likewise. * catgets/gencat.c: Likewise. * posix/getconf.c: Likewise. * iconv/gconv_conf.c: Likewise. * iconv/iconv_prog.c: Likewise. * string/strcoll.c: Optimize a few expressions. * string/strxfrm.c: Likewise. 1998-09-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-open.c (dl_open_worker): Move decl of new_global up one level to avoid uninit variable warning. 1998-09-09 10:34 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> instead of _dl_default_scope[2] as argument to _dl_init_next. Fix compatibility problems introduced in last change.
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/_itoa.c | 47 | ||||
-rw-r--r-- | stdio-common/printf_fp.c | 64 | ||||
-rw-r--r-- | stdio-common/vfscanf.c | 12 |
3 files changed, 66 insertions, 57 deletions
diff --git a/stdio-common/_itoa.c b/stdio-common/_itoa.c index 845928903c..e3b0533476 100644 --- a/stdio-common/_itoa.c +++ b/stdio-common/_itoa.c @@ -182,29 +182,32 @@ _itoa (value, buflim, base, upper_case) mp_limb_t work_hi = value >> (64 - BITS_PER_MP_LIMB); \ \ if (BITS_PER_MP_LIMB == 32) \ - if (work_hi != 0) \ - { \ - mp_limb_t work_lo; \ - int cnt; \ + { \ + if (work_hi != 0) \ + { \ + mp_limb_t work_lo; \ + int cnt; \ \ - work_lo = value & 0xfffffffful; \ - for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt) \ - { \ - *--bp = digits[work_lo & ((1ul << BITS) - 1)]; \ - work_lo >>= BITS; \ - } \ - if (BITS_PER_MP_LIMB % BITS != 0) \ - { \ - work_lo |= ((work_hi \ - & ((1 << (BITS - BITS_PER_MP_LIMB%BITS)) \ - - 1)) \ - << BITS_PER_MP_LIMB % BITS); \ - *--bp = digits[work_lo]; \ - work_hi >>= BITS - BITS_PER_MP_LIMB % BITS; \ - } \ - } \ - else \ - work_hi = value & 0xfffffffful; \ + work_lo = value & 0xfffffffful; \ + for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt) \ + { \ + *--bp = digits[work_lo & ((1ul << BITS) - 1)]; \ + work_lo >>= BITS; \ + } \ + if (BITS_PER_MP_LIMB % BITS != 0) \ + { \ + work_lo \ + |= ((work_hi \ + & ((1 << (BITS - BITS_PER_MP_LIMB%BITS)) \ + - 1)) \ + << BITS_PER_MP_LIMB % BITS); \ + *--bp = digits[work_lo]; \ + work_hi >>= BITS - BITS_PER_MP_LIMB % BITS; \ + } \ + } \ + else \ + work_hi = value & 0xfffffffful; \ + } \ do \ { \ *--bp = digits[work_hi & ((1 << BITS) - 1)]; \ diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c index e54fac0a57..e5e3026bce 100644 --- a/stdio-common/printf_fp.c +++ b/stdio-common/printf_fp.c @@ -574,19 +574,21 @@ __printf_fp (FILE *fp, for overflow. This is done by comparing with 10 shifted to the right position. */ if (incr == exponent + 3) - if (cnt_h <= BITS_PER_MP_LIMB - 4) - { - topval[0] = 0; - topval[1] - = ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4 - cnt_h); - } - else - { - topval[0] = ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4); - topval[1] = 0; - (void) __mpn_lshift (topval, topval, 2, - BITS_PER_MP_LIMB - cnt_h); - } + { + if (cnt_h <= BITS_PER_MP_LIMB - 4) + { + topval[0] = 0; + topval[1] + = ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4 - cnt_h); + } + else + { + topval[0] = ((mp_limb_t) 10) << (BITS_PER_MP_LIMB - 4); + topval[1] = 0; + (void) __mpn_lshift (topval, topval, 2, + BITS_PER_MP_LIMB - cnt_h); + } + } /* We have to be careful when multiplying the last factor. If the result is greater than 1.0 be have to test it @@ -816,23 +818,25 @@ __printf_fp (FILE *fp, char *tp = cp; if (digit == '5' && (*(cp - 1) & 1) == 0) - /* This is the critical case. */ - if (fracsize == 1 && frac[0] == 0) - /* Rest of the number is zero -> round to even. - (IEEE 754-1985 4.1 says this is the default rounding.) */ - goto do_expo; - else if (scalesize == 0) - { - /* Here we have to see whether all limbs are zero since no - normalization happened. */ - size_t lcnt = fracsize; - while (lcnt >= 1 && frac[lcnt - 1] == 0) - --lcnt; - if (lcnt == 0) - /* Rest of the number is zero -> round to even. - (IEEE 754-1985 4.1 says this is the default rounding.) */ - goto do_expo; - } + { + /* This is the critical case. */ + if (fracsize == 1 && frac[0] == 0) + /* Rest of the number is zero -> round to even. + (IEEE 754-1985 4.1 says this is the default rounding.) */ + goto do_expo; + else if (scalesize == 0) + { + /* Here we have to see whether all limbs are zero since no + normalization happened. */ + size_t lcnt = fracsize; + while (lcnt >= 1 && frac[lcnt - 1] == 0) + --lcnt; + if (lcnt == 0) + /* Rest of the number is zero -> round to even. + (IEEE 754-1985 4.1 says this is the default rounding.) */ + goto do_expo; + } + } if (fracdig_no > 0) { diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c index 116b19b442..f9bbb6929e 100644 --- a/stdio-common/vfscanf.c +++ b/stdio-common/vfscanf.c @@ -602,11 +602,13 @@ __vfscanf (FILE *s, const char *format, va_list argptr) #define NEXT_WIDE_CHAR(First) \ c = inchar (); \ if (c == EOF) \ - /* EOF is only an error for the first character. */ \ - if (First) \ - input_error (); \ - else \ - break; \ + { \ + /* EOF is only an error for the first character. */ \ + if (First) \ + input_error (); \ + else \ + break; \ + } \ val = c; \ if (val >= 0x80) \ { \ |