OSDN Git Service

Clean up <limits.h> header file.
[mingw/mingw-org-wsl.git] / mingwrt / ChangeLog
index 751d0c0..19d884c 100644 (file)
@@ -1,3 +1,223 @@
+2017-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Clean up <limits.h> header file.
+
+       * include/limits.h: Tidy layout; assert copyright.
+       (#pragma GCC system_header): Declare it as being such.
+       (_LIMITS_H_): Rename this multiple inclusion guard macro...
+       (_LIMITS_H): ...to adopt this preferred form.
+       [__STDC_VERSION__ >= 199901L]: Infer it...
+       [_ISOC99_SOURCE]: ...from this.
+
+2017-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Expose C99 features required by C++11; fix issue [#2335]
+
+       * include/_mingw.h.in (_ISOC99_SOURCE): Ensure it is defined for...
+       [__cplusplus >= 201103L]: ...this conformance level, in addition to...
+       [__STDC_VERSION__>= 199901L || _POSIX_C_SOURCE >= 200112L]: ...these.
+       [_GLIBCXX_USE_C99]: Force it for -std=c++11, subject to...
+       [__GNUC__ < 6]: ...this.
+
+       * include/ctype.h (isblank): Declare it only if...
+       [_ISOC99_SOURCE]: ...this, thus simplifying declarative condition.
+       * include/wctype.h (iswblank) [_ISOC99_SOURCE]: Likewise.
+       * include/inttypes.h (SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8)
+       (SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNx8, SCNxLEAST8, SCNxFAST8)
+       (SCNu8, SCNuLEAST8, SCNuFAST8) [_ISOC99_SOURCE]: Likewise.
+
+2017-01-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make strnlen() and wcsnlen() declaratively consistent.
+
+       * include/string.h (strnlen): Do not expose its declaration, unless...
+       [_POSIX_C_SOURCE >= 200809L]: ...this feature test is enabled.
+
+2017-01-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement wcsnlen() API per feature request [#2332].
+
+       * mingwex/strnlen.s: Rename it as...
+       * mingwex/strnlen.sx: ...this; use C preprocessor logic to adapt...
+       (__mingw_strnlen): ...this existing function implementation for use...
+       [_UNICODE] (__mingw_wcsnlen): ...as this.
+
+       * include/wchar.h [_POSIX_C_SOURCE >= 200809L] (wcsnlen): Declare...
+       [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...using MS DLL implementation...
+       [!__MSVCRT_VERSION__>=__MSVCR80_DLL] (__mingw_wcsnlen): ...otherwise,
+       declare this, with inline __JMPSTUB__ implementation, providing...
+       (wcsnlen): ...this.
+
+       * Makefile.in (wcsnlen.$OBJEXT): New build rule.
+       (libmingwex.a): Add wcsnlen.$OBJEXT as new prerequisite.
+       (libmoldname.a, libmoldnamed.a): Add __JMPSTUB__ wrappers.
+       (libmoldname70.a, libmoldname70d.a): Likewise.
+       (libmoldname71.a, libmoldname71d.a): Likewise.
+
+       for all other MSVC non-free associated oldname import libraries.
+       (vpath): Add $srcdir/mingwex for %.sx; hence mapping for...
+       (jmpstub.sx): ...this becomes redundant; delete it.
+
+2017-01-26  Jason Hood  <jadoxa@yahoo.com.au>
+
+       Honour GLOB_CASEMATCH for globbing sets; cf. issue [#2327].
+
+       * include/glob.h (GLOB_CASEMATCH): Update comment.
+       * mingwex/glob.c (glob_case_match): Move before, and use it in...
+       (glob_in_set): ...this function, to test characters in the set.
+
+2017-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid snprintf() overhead in directory stream functions.
+
+       * mingwex/dirent.c (dirent_update): Do not use either snprintf() or
+       snwprintf() functions when updating dd->d_name and dd->d_namlen data;
+       emulate them instead, using a lightweight inline char-by-char counted
+       copy loop, operating on char or wchar_t data as appropriate.
+       (DIRENT_ASSIGN_NAME): Macro no longer required; delete it.
+       (NUL): New manifest constant; define it.
+
+2017-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Avoid #include_next misbehaviour; cf. MinGW-Bug [#2330]
+
+       * include/ctype.h (wctype.h): Use "..." form of #include, rather than
+       the <...> form; we must include our own corresponding mingwrt version
+       of this subsidiary header, and avoid any bogus alternative which may
+       have been insinuated earlier in the system header path.
+
+       * include/string.h (wchar.h): Likewise.
+
+2017-01-25  Jason Hood  <jadoxa@yahoo.com.au>
+
+       Correct quoted backslash handling, per bug [#2328].
+
+       * setargv.c (__mingw32_setargv): Within single quotes, backslashes
+       should be interpreted literally; copy them as-is.
+
+2017-01-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Use C99 blanks as default argv separators, per issue [#2329].
+
+       * setargv.c [_ISOC99_SOURCE]: Require it.
+       (__mingw32_setargv): Separate command line arguments based on...
+       [(quoted == 0) && isblank( c )]: ...this condition, instead of on...
+       [(quoted == 0) && isspace( c )]: ...this, so that only blanks, rather
+       than any whitespace characters, serve as default argument separators.
+
+2017-01-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct <strings.h> preprocessor logic; fix bug [#2322]
+
+       * include/strings.h (_stricmp, _strnicmp): Always declare, unless...
+       [__STRICT_ANSI__ && __NO_INLINE__]: ...both of these are defined.
+
+2016-11-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement POSIX.1 compatible setenv() and unsetenv() functions.
+
+       * mingwex/setenv.c: New file; it implements...
+       (__mingw_setenv): ...this function, providing common code for...
+       * include/stdlib.h [_POSIX_C_SOURCE >= 200112L] (setenv, unsetenv):
+       ...these user visible functions, implemented as __CRT_ALIAS inlines;
+       qualify them as __JMPSTUB__ and __LIBIMPL__ respectively, so ensuring
+       that their corresponding external representations are automatically
+       added to libmingwex.a
+
+       * Makefile.in (libmingwex.a): Add setenv.$OBJEXT
+
+2016-11-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Work around another C++11 compliance issue; fix bug [#2321].
+
+       * include/excpt.h (__try1_setup, __except1_teardown): Add spaces to
+       separate each use of '__wsize' and '__ts' macros from all surrounding
+       string literals, to ensure that C++ parses them as distinct tokens.
+
+2016-11-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Replace defective powf() and powl() function implementations.
+
+       * mingwex/math/powf.c mingwex/math/powl.c: Delete; replaced by...
+       * mingwex/math/pow_generic.sx: ...this new file; it implements...
+       (__x87pow): ...this generic power function back-end, serving...
+       (pow, powf, powl): ...each of these front-end entry points.
+
+       * Makefile.in (libmingwex.a): Add x87pow.$OBJEXT
+
+       * include/math.h (powf): Remove inline implementation; it no longer
+       offers any inline advantage.
+
+2016-11-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement unit tests for power functions.
+
+       * tests/testsuite.at.in: m4_include...
+       * tests/Makefile.in (testsuite): ...and add dependency on...
+       * tests/powerfunc.at: ...this new file; it specifies unit tests to
+       check POSIX.1-2008 compliance of results and errno assignment from...
+       (pow, powf, powl): ...each of these functions.
+
+2016-11-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add POSIX compliant errno assignments to log functions.
+
+       * include/errno.h: Make it assembly language compatible.
+       [__ASSEMBLER__]: Omit <_mingw.h>; do not declare prototype for...
+       (_errno): ...this accessor function; the declaration is syntactically
+       invalid, in assembly language code.
+
+       * mingwex/math/errno.sx: New file; when included by other assembly
+       language files, it provides bindings for assignement of any constant
+       defined in <errno.h> to the global errno variable, facilitated by...
+       (errno): ...this new GAS macro.
+
+       * mingwex/math/log_generic.sx: New file; it provides a generic back
+       end implementation for multiple logarithmic functions, accessed via...
+       (___x87log, ___x87log_chk): ...this pair of entry points, serving...
+       (log, logf, log): ...each of these primary functions; it replaces...
+       * mingwex/math/logf.s mingwex/math/logl.s: ...these; delete them.
+
+       * mingwex/math/log1p_generic.sx mingwex/math/log10_generic.sx
+       * mingwex/math/log2_generic.sx: New files; each acts as a wrapper for
+       log_generic.sx, providing the front end entry stubs for each of...
+       (log1p, log1pf, log1pl, log10, log10f, log10l, log2, log2f, log2l):
+       ...these functions; thus, they provide complete replacements for...
+       * mingwex/math/log1p.s mingwex/math/log1pf.s mingwex/math/log1pl.s
+       * mingwex/math/log10f.s mingwex/math/log10l.s mingwex/math/log2.s
+       * mingwex/math/log2f.s mingwex/math/log2l.s: ...these; delete them.
+
+       * mingwex/math/x87cvt_generic.sx: New file; it implements...
+       (___x87cvt, ___x87cvtf): ...this pair of return value conversion
+       routines, for conversion from the FPU's internal REAL10 data format,
+       to REAL8 and REAL4, for double and float functions respectively.
+
+       * Makefile.in (libmingwex.a): Add dependencies on...
+       (x87cvt.$OBJEXT), x87cvtf.$OBJEXT), x87log.$OBJEXT), x87logf.$OBJEXT):
+       ...these object modules; implement pattern rule to build them from...
+       (x87cvt_generic.sx, log_generic.sx): ...these generic sources; also
+       provide for building the respective log function entry stubs from
+       their respective generic sources.
+
+2016-11-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement unit tests for logarithmic functions.
+
+       * tests/testsuite.at.in: m4_include...
+       * tests/Makefile.in (testsuite): ...and add dependency on...
+       * tests/logarithms.at: ...this new file; it specifies unit tests to
+       check POSIX.1-2008 compliance of results and errno assignment from...
+       (log, logf, logl, log1p, log1pf, log1pl, log10, log10f, log10l, log2)
+       (log2f, log2l): ...each of these functions.
+
+2016-11-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement unit tests for ANSI printf() functions.
+
+       * tests/Makefile.in (testsuite): Add dependency for...
+       * tests/ansiprintf.at: ...this new file, and...
+       * tests/testsuite.at.in: ...m4_include it.
+
 2016-11-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Fix another printf() hex-float formatting bug.