diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-22 18:01:59 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2011-03-22 18:01:59 -0700 |
commit | c9c49752e15c105ded153e9ab0a42743f57184e5 (patch) | |
tree | e395db95d87459082bace9fcf3a2cec0ea3d1aea /lib/strftime.c | |
parent | 9d0da923ebd2b78abb6e02f0b90cfe9d818eb301 (diff) | |
parent | b9b4b7cb4c27f9f6ad644168f0e1241e5c0d6eaa (diff) | |
download | emacs-c9c49752e15c105ded153e9ab0a42743f57184e5.tar.gz emacs-c9c49752e15c105ded153e9ab0a42743f57184e5.tar.bz2 emacs-c9c49752e15c105ded153e9ab0a42743f57184e5.zip |
Fix more problems found by GCC 4.5.2's static checks.
Diffstat (limited to 'lib/strftime.c')
-rw-r--r-- | lib/strftime.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/strftime.c b/lib/strftime.c index 0a02b507744..acebc9adfad 100644 --- a/lib/strftime.c +++ b/lib/strftime.c @@ -172,15 +172,16 @@ extern char *tzname[]; #define add(n, f) \ do \ { \ - int _n = (n); \ - int _delta = width - _n; \ - int _incr = _n + (_delta > 0 ? _delta : 0); \ - if ((size_t) _incr >= maxsize - i) \ + size_t _n = (n); \ + size_t _w = (width < 0 ? 0 : width); \ + size_t _incr = _n < _w ? _w : _n; \ + if (_incr >= maxsize - i) \ return 0; \ if (p) \ { \ - if (digits == 0 && _delta > 0) \ + if (digits == 0 && _n < _w) \ { \ + size_t _delta = width - _n; \ if (pad == L_('0')) \ memset_zero (p, _delta); \ else \ |