X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=ChangeLog;h=e34ad1dbf0213b849c5c3ad6c6acf8b5fdea34ba;hb=d980ee6cad701892539801d9c15b7bcc3027afe5;hp=3a00f5a31585df500001eb525731b001f3215dfb;hpb=3682048da43f32682c4846de46b955638fcc5a52;p=gnulib.git diff --git a/ChangeLog b/ChangeLog index 3a00f5a31..e34ad1dbf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,115 @@ +2011-02-04 Bruno Haible + + mbsrtowcs: Prepare for new module mbsrtowwcs. + * lib/mbsrtowcs-impl.h: New file, extracted from lib/mbsrtowcs.c. + * lib/mbsrtowcs.c: Include it. + * modules/mbsrtowcs (Files): Add lib/mbsrtowcs-impl.h. + +2011-02-04 Bruno Haible + + vasnprintf: Reduce use of malloc for small format strings. + * lib/printf-args.h (N_DIRECT_ALLOC_ARGUMENTS): New macro. + (arguments): Add room for the first 7 arguments. + * lib/printf-parse.h (N_DIRECT_ALLOC_DIRECTIVES): New macro. + (char_directives, u8_directives, u16_directives, u32_directives): Add + room for the first 7 directives. + * lib/printf-parse.c: Include . + (PRINTF_PARSE): Change memory handling code so that it uses the first + 7 preallocated elements in an 'arguments' or 'DIRECTIVES' struct. + * lib/vasnprintf.c (VASNPRINTF): Update memory handling code. + Reported by Pádraig Brady . + +2011-01-31 Eric Blake + + dup2: work around Haiku bug + * m4/dup2.m4 (gl_FUNC_DUP2): Test for bug. + * lib/dup2.c (rpl_dup2) [!WIN32]: Add workaround. + * doc/posix-functions/dup2.texi (dup2): Document the bug. + * tests/test-dup2.c (main): Enhance test. + +2011-01-31 Simon Josefsson + + doc: off_t is not available in eglibc 2.11.2 stdio.h. + * doc/posix-headers/stdio.texi (stdio.h): Mention that off_t isn't + declared by eglibc 2.11.2. + * lib/stdio.in.h: Likewise. + +2011-01-31 Eric Blake + + ignore-value: add missing test dependency + * tests/test-ignore-value.c: Revert previous change; stdio.h + provides off_t. + * modules/ignore-value-tests (Depends-on): Add missing dependency. + +2011-01-30 Paul Eggert + + mktime: clarify long_int width checking + * lib/mktime.c (long_int_is_wide_enough): Move this assertion to + the top level, to make it clearer that the assumption about + long_int width is being checked. See + . + +2011-01-30 Simon Josefsson + + ignore-value: Fix self-test. + * tests/test-ignore-value.c: Include sys/types.h for off_t. + +2011-01-29 Paul Eggert + + TYPE_MAXIMUM: avoid theoretically undefined behavior + * lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a + negative number, which the C Standard says has undefined behavior. + In practice this is not a problem, but might as well do it by the book. + Reported by Rich Felker and Eric Blake; see + . + * lib/strtol.c (TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. + * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise. + * m4/nanosleep.m4 (gl_FUNC_NANOSLEEP): Likewise. + * m4/parse-datetime.m4 (gl_PARSE_DATETIME): Likewise. + * m4/stdint.m4 (gl_STDINT_H): Likewise. + * lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others. + + mktime: #undef mktime before #defining it + * lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it. + + mktime: systematically normalize tm_isdst comparisons + * lib/mktime.c (isdst_differ): New function. + (__mktime_internal): Use it systematically for all isdst comparisons. + This completes the fix for libc BZ #6723, and removes the need for + normalizing tm_isdst. See + + (not_equal_tm) [DEBUG]: Use isdst_differ here, too. + + mktime: fix some integer overflow issues and sidestep the rest + + This was prompted by a bug report by Benjamin Lindner for MinGW + . + His bug is due to signed integer overflow (0 - INT_MIN), and I + I scanned through mktime.c looking for other integer overflow + problems, fixing all the bugs I found. + + Although the C Standard says the resulting code is still not safe + in the presence of integer overflow, in practice it should be good + enough for all real-world two's-complement implementations, except + for debugging environments that deliberately trap on integer + overflow (e.g., gcc -ftrapv). + + * lib/mktime.c (WRAPV): New macro. + (SHR): Also check that long_int and time_t shift right in the + usual way, before using the fast-but-unportable method. + (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer + used. The code already assumed two's complement, so there's + no need to test for alternatives. All uses removed. + (TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by + the C standard. Problem reported by Rich Felker in + . + (twos_complement_arithmetic): Also check long_int and time_t. + (time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions. + (guess_time_tm, ranged_convert, __mktime_internal): Use them. + (__mktime_internal): Avoid integer overflow with unary subtraction + in two instances where -1 - X is an adequate replacement for -X, + since the calculations are approximate. + 2011-01-29 Eric Blake mktime: avoid infinite loop