OSDN Git Service

Factor out <ctype.h> vs. <wctype.h> duplicate elements.
[mingw/mingw-org-wsl.git] / mingwrt / ChangeLog
index d3b49eb..84588ad 100644 (file)
@@ -1,3 +1,725 @@
+2016-07-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <ctype.h> vs. <wctype.h> duplicate elements.
+
+       * include/ctype.h: Assert copyright; tidy layout.
+       [!_CTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+       [!_CTYPE_H]: ...this preferred multiple inclusion guard macro name.
+       (__CTYPE_H_SOURCED__): New macro; define it, and include <wctype.h>,
+       so requesting partial inclusion, to retrieve definitions for...
+       (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+       (_UPPER, WEOF): ...these macros; hence, do not define them locally.
+       (wint_t, wchar_t, wctype_t): Likewise these type definitions...
+       (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+       (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+       (iswupper, iswxdigit, towlower, towupper, is_wctype): ...these function
+       prototypes, and corresponding inline alternative implementations.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+       [__MSVCRT_VERSION__<=__MSVCR70_DLL]: Likewise.
+
+       * include/wctype.h: Assert copyright; tidy layout.
+       [!_WCTYPE_H_]: Do not evaluate; rename macro to be tested, as...
+       [!_WCTYPE_H]: ...this preferred multiple inclusion guard macro name;
+       do not define it when partial inclusion only is selected, by...
+       [__CTYPE_H_SOURCED__]: ...this; thence define only...
+       (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
+       (_UPPER): ...these character characterisation macros...
+       (wint_t, wchar_t, wctype_t): ...these type definitions...
+       (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
+       (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
+       (iswupper, iswxdigit, towlower, towupper): ...these function
+       prototypes, with corresponding inline alternative implementations...
+       (is_wctype): ...this further prototype, qualified as deprecated...
+       (WEOF): ...and this status reporting macro.
+       (_ctype, _pctype, _pctype_dll, _imp___ctype, _imp___pctype): Delete
+       declarations, and associated definitions; they do not belong here.
+       (isleadbyte): Likewise, this Microsoft specific function prototype...
+       (_LEADBYTE): ...and this associated character classification macro.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
+
+2016-07-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Do not pass MAKEFLAGS explicitly, when invoking recursive make.
+
+       * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
+       references from $(MAKE) command lines; make passes them implicitly.
+
+2016-07-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rework tsearch and friends; resolve issues [#1512] and [#1576].
+
+       * include/search.h: Assert copyright; tidy layout.
+       (_SEARCH_H_): Rename this multiple inclusion guard macro...
+       (_SEARCH_H): ...to conform to this preferred standard convention.
+       (__search_comparator): New function prototype typedef; it provides a
+       convenient shorthand notation for argument declarations in functions
+       which require a comparator function pointer; use it where appropriate.
+       (tsearch, tfind, tdelete) [__MINGW_ATTRIB_NONNULL]: Apply to arguments
+       #2 and #3; was previously incorrectly applied to arguments #1 and #3.
+       (twalk) [__MINGW_ATTRIB_NONNULL]: Apply to both arguments #1 and #2.
+       [_SEARCH_PRIVATE] (__MINGW_ATTRIB_NONNULL): Suppress its effect, to
+       ensure that GCC does not optimize away checks within implementation.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+
+       * mingwex/tdelete.c: Tidy layout.
+       (tdelete): Reimplement it as a thin wrapper around...
+       (__tdelete): ...this; it encapsulates the original implementation as a
+       __CRT_ALIAS (inline) function, to simplify void ** --> node_t ** casts.
+       Remove unnecessary non-null assertions for arguments #1 and #3; prefer
+       to validate arguments #2 and #3 internally, and simply return NULL if
+       necessary; hence, do not include <assert.h>
+
+       * mingwex/tfind.c: Tidy layout.
+       (tfind): Similarly reimplement it as a thin wrapper around...
+       (__tfind): ...this __CRT_ALIAS (inline) encapsulation of the original.
+       Add non-null validation for argument #3; do not include <assert.h>
+
+       * mingwex/tsearch.c: Tidy layout.
+       (tsearch): Once again, reimplement it as a thin wrapper around...
+       (__tsearch): ...this __CRT_ALIAS variant.  Add non-null validation for
+       argument #3; do not include <assert.h>
+
+       * mingwex/twalk.c: Tidy layout; do not include <assert.h>
+
+2016-06-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rework __try1/__except1 to resolve issue [#1328].
+
+       * include/excpt.h: Assert copyright; tidy layout.
+       (_EXCPT_H_): Multiple inclusion guard macro renamed to...
+       (_EXCPT_H): ...this; update all references as appropriate.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
+       (__typecast_alloca): New macro; define it, casting return type of...
+       (__builtin_alloca): ...this to a specified data type; use it in...
+       (__try1_setup, __except1_teardown): ...these new macros; define them
+       as parameterized templates, providing both -masm-att and -masm-intel
+       syntax implementations, with host specific word size and register
+       assignment parameter substitutions; use them to redefine...
+       (__try1, __except1): ...each of these, using __builtin_alloca to avoid
+       direct stack pushes when registering exception handlers; assign the
+       template parameters as appropriate to support implementation for...
+       [_WIN64, _WIN32]: ...either of these, as the host requires.
+
+2016-06-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Merge Cygwin CVS updates to legacy branch.
+
+       * include/stdio.h: Merge 2011-11-30 and 2012-08-02 commits.
+       (getc, getchar, putc, putchar): Declare function prototypes.
+       (fopen64, ftello64): Likewise; change implementation classification
+       from __CRT_INLINE to __CRT_ALIAS, to avoid C++ emitted code bloat.
+       (_lock_file, _unlock_file): Add prototypes; modify merge to...
+       [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...require this.
+
+       * include/stdint.h: Merge 2012-07-30 commit; include <_mingw.h>
+
+       * include/excpt.h: Merge 2012-08-01 commit.
+       (__try1, __except1) [_WIN64]: Add alternative implementations.
+
+       * include/stdlib.h: Merge 2012-08-02 commit.
+       [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
+       (_strtoi64, _strtoui64, _wcstoi64, _wcstoui64): Declare prototypes.
+       [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
+       (_strtoi64_l, _strtoui64_l, _wcstoi64_l, _wcstoui64_l): Likewise...
+       [!__have_typedef_locale_t] (__need_locale_t): ...and define to get...
+       (locale_t): ...this, by selective inclusion of <locale.h>
+       [__WCHAR_H_SOURCED] (_wcstoi64, _wcstoui64, _wcstoi64_l)
+       (_wcstoui64_l): Make these function prototypes available for selective
+       inclusion by...
+       * include/wchar.h: ...this; merge 2012-08-02 commit.
+       [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
+       (_wcstoi64, _wcstoui64): Note availability of function prototypes via
+       selective inclusion of their actual declarations from <stdlib.h>
+       [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
+       (_wcstoi64_l, _wcstoui64_l): Likewise.
+
+       * include/limits.h: Merge 2012-08-02 commit.
+       [__STRICT_ANSI__] (PATH_MAX): Suppress definition.
+
+       * include/sys/param.h: Merge 2012-08-02 commit.
+       [PATH_MAX not defined] (MAXPATHLEN): Define it explicitly.
+       [PATH_MAX defined] (MAXPATHLEN): Define it as an alias.
+
+2016-06-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add typedef and access support for opaque locale_t objects.
+
+       * include/locale.h (locale_t, _locale_t): Define opaque types.
+       [__need_locale_t]: Make them selectively accessible; define...
+       (__have_typedef_locale_t): ...this, when they are available.
+       [_LOCALE_H] (_create_locale, _get_current_locale, _free_locale):
+       Declare function prototypes, on direct <locale.h> inclusion only.
+       [_LOCALE_H || _WCHAR_H] (_wcreate_locale): Likewise; this is to be
+       visible on direct inclusion, or when including <wchar.h>
+
+       * include/stdio.h [!(_STDIO_H && _WCHAR_T)]: Correct expression of...
+       [__MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this subsidiary condition;
+       for all cases when this is true, (including when [_STDIO_H] alone)...
+       [!__have_typedef_locale_t] (__need_locale_t): ...define this, and
+       include <locale.h>, for selective definition of...
+       (locale_t): ...this.
+
+2016-05-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Occlude unsupported _S_IFBLK feature; resolve issue [#1146].
+
+       * include/sys/stat.h (_MINGW_S_IFBLK_KLUDGE): New feature test macro;
+       do not define it, and strongly recommend that it remains undefined.
+       [!_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Do not define them.
+       [!_MINGW_S_IFBLK_KLUDGE] (_S_ISBLK, S_ISBLK): Poison them.
+       [_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Adjust definitions; use a
+       modified value, which is guaranteed to be impossible to match in...
+       [_S_ISBLK, S_ISBLK]: ...these, thus enforcing false test results.
+
+2016-05-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Fix a typo in a <sys/stat.h> inline function definition.
+
+       * include/sys/stat.h [__MSVCRT_VERSION__ >= __MSVCR80_DLL]
+       (stat): First argument declared as 'int'; should be 'const char *';
+       correct it.
+
+2016-05-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve some strnlen() implementation issues.
+
+       * mingwex/strnlen.s (__mingw_strnlen) [!NUL]: Correct termination
+       logic; should have used jnz, not jz, to skip endpoint adjustment on
+       scanning past a terminal NUL character code.
+
+       * include/string.h [_POSIX_C_SOURCE >= 200809L] (strnlen): Do not
+       #define it, as this breaks GCC compilation; use __CRT_ALIAS instead,
+       with __JMPSTUB__ referencing via "oldname" libraries.
+
+       * Makefile.in (jmpstub_awk_script, libimpl_awk_script): Adapt to
+       facilitate assignment of __JMPSTUB__ and __LIBIMPL__ references to
+       libraries other than libmingwex.a
+       (strnlen.jmpstub.$OBJEXT): Assign it to all "moldname" libraries prior
+       to libmoldname80.a, in addition to libcoldname.a, as specified by the
+       __JMPSTUB__ assignment within <string.h>
+
+2016-05-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Enforce consistent specification of package version.
+
+       * include/_mingw.h: Rename as...
+       * include/_mingw.h.in: ...this build-time template file.
+       (__MINGW32_VERSION): Redefine it, in terms of...
+       (%PACKAGE_VERSION_LONG%): ...this substitution template.
+       (__MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION)
+       (__MINGW32_PATCHLEVEL): Likewise, redefine them in terms of...
+       (%PACKAGE_VERSION_MAJOR%, %PACKAGE_VERSION_MINOR%)
+       (%PACKAGE_VERSION_PATCH%): ...these.
+
+       * configure.ac (AC_CONFIG_SRCDIR): Adjust for renamed file.
+       (MINGW_AC_CONFIG_EXTRA_SRCDIR): Likewise, for similarly renamed
+       w32api/include/w32api.h.in file.
+
+       * Makefile.in (all-mingwrt-stage-1-only): Add dependency on...
+       (_mingw.h, w32api.h): ...these; add rule to generate them, using...
+       (PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): ...these new macros;
+       they apply appropriate substitutions to the renamed template files.
+       (install-mingwrt-headers): Explicitly add _mingwrt.h
+
+2016-04-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make strnlen() available for all MSVCRT.DLL versions.
+
+       * msvcrt-xref/msvcrt.def.in (strnlen): Mark it as...
+       (__MINGW_DLSYM): ...this, excluding its exposure in libmsvcrt.dll, and
+       thus requiring a dlsym() lookup for versions which provide it.
+
+       * include/string.h [__MSVCRT_VERSION__>=__MSVCR80_DLL] (strnlen):
+       Declare prototype, for use from these non-free DLLs, otherwise...
+       [_POSIX_C_SOURCE >= 200809L] (strnlen): Define it as an alias for...
+       (__mingw_strnlen): ...this new libmingwex.a function.
+
+       * mingwex/strnlen.s: New file; it implements...
+       (__mingw_strnlen, __mingw_strnlen_s): ...these new functions.
+
+       * Makefile.in (libmingwex.a): Add requirement for...
+       (strnlen.$OBJEXT): ...this; add vpath specification for its source.
+
+2016-04-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Use correct paths for partially included header files.
+
+       * include/io.h include/process.h: Use 'iquote' #include "stdint.h", to
+       ensure that we get stdint.h from the same include directory.
+       * include/stdio.h: Likewise for #include "stdarg.h", and "sys/types.h"
+       * include/wchar.h: Likewise for all of #include "stdio.h", "stdlib.h",
+       "direct.h", "sys/stat.h", "io.h", "time.h", "locale.h", and "process.h"
+       * include/dir.h include/dos.h: Likewise for #include "io.h"
+       * include/direct.h: Likewise for #include "dos.h"
+
+2016-04-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Generalize procedure for installing manpages.
+
+       * man/dirname.man: Rename it as...
+       * man/dirname.3.man: ...this, with inherent MANSECT specification.
+       (TH): Use %PAGEREF% substitution for NAME, MANSECT, and DATE.
+       (MS-Windows): Do not append \[tm]; it doesn't render well in Windows
+       console. Further, correct typos; some syntactic adjustments.
+
+       * Makefile.in (%:%.man): New rule; define it.
+       (%.mancopy, %.mancopy-recursive): New rules; define and use with...
+       (reference_manpage): ...this new macro, defining it to map...
+       (dirname.3.man): ...this as the reference source file for both of...
+       (basename.3, dirname.3): ...these installed manpages.
+       (format_manpage): Add MANSECT and DATE to expansion of...
+       (%PAGEREF%): ...this sed substitution pattern.
+
+2016-04-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Update several incorrectly attributed header files.
+
+       * include/direct.h include/io.h include/locale.h include/math.h
+       * include/process.h include/stdio.h include/stdlib.h include/string.h
+       * include/sys/stat.h include/sys/types.h include/time.h: Identify the
+       original author as Colin Peters; Rob Savoye merely imported them into
+       the original CVS repository, when he created it.
+
+       * include/wchar.h: Likewise, imported by Rob Savoye, but the original
+       source file is unattributed.
+
+2016-04-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Eliminate all references to non-standard __NO_ISOCEXT macro.
+
+       * include/math.h: Tidy layout.
+       [!defined __NO_ISOCEXT]: Do not use this ugly double negative; in any
+       case, we do not want to encourage users to define such implementation
+       private macros; instead, prefer to make use of...
+       [defined _ISOC99_SOURCE]: ...this glibc compatible feature test.
+       [__STDC_VERSION__ >= 199901L]: Do not require this; it is implied, by
+       definition, in _ISOC99_SOURCE.
+       * include/stdio.h [!defined __NO_ISOCEXT]: Likewise; replace with...
+       [defined _ISOC99_SOURCE]: ...this, throughout.
+
+2016-04-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Make resetting of __need_typedef requests more robust.
+
+       * include/sys/types.h [__need_off_t, __need___off64_t]
+       [__need_ssize_t, __need_time_t]: Move corresponding #undef out of, and
+       after the respective conditional blocks, which provide each associated
+       typedef, so ensuring that any repeat request is properly reset.
+       
+       * include/time.h [__need_time_t]: Always delegate to <sys/types.h> for
+       typedef, and reset of request, even in cases where...
+       [_TIME_H]: ...this is already defined.
+
+2016-04-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add a missing comment terminator.
+
+       * include/io.h [!(defined _IO_H && defined _WCHAR_H)]: Properly
+       terminate the comment annotating the closing #endif statement.
+
+2016-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Declare <dir.h> as formally deprecated.
+
+       * include/dir.h: Assert copyright.
+       (pragma GCC system_header): Declare it.
+       (_DIR_H): Define as multiple inclusion macro.
+       [!_DIR_H]: Emit "obsolete header" warning message.
+
+2016-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <wchar.h> vs. <io.h> duplicate declarations.
+
+       * include/io.h: Assert copyright; tidy layout.
+       (_IO_H_): Rename this multiple inclusion guard macro...
+       (_IO_H): ...to this preferred form; do not define it when...
+       [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare...
+       (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp)
+       (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64)
+       (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32)
+       (_wfindnext64i32, _wfindfirst32, _wfindnext32, _findclose): ...only
+       these function prototypes, common to <wchar.h>, together with...
+       (_fsize_t, struct _wfinddata_t, struct _wfinddatai64_t)
+       (struct __wfinddata64_t, struct _wfinddata64i32_t)
+       (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these
+       requisite data type definitions.
+       (pragma GCC system_header): Declare it.
+       (__need_intptr_t): Define, and include <stdint.h> to get...
+       (intptr_t): ...this typedef; neither define it locally, nor define...
+       (_INTPTR_T_DEFINED): ...this; delete all references.
+       (_FSIZE_T_DEFINED): Do not define it; delete all references; rather...
+       [!(defined _IO_H && defined _WCHAR)] (_fsize_t): Define it.
+       (FILENAME_MAX): Define it unconditionally.
+       (__struct_finddata_t): New temporary macro; define and use it to...
+       (struct _finddata_t, struct _wfinddata_t, struct _finddatai64_t)
+       (struct _wfinddatai64_t, struct __finddata64_t, struct __wfinddata64_t)
+       (struct _finddata64i32_t, struct _wfinddata64i32_t)
+       (struct _finddata32i64_t, struct _wfinddata32i64_t)
+       (struct __finddata32_t, struct __wfinddata32_t): ...define these.
+
+       * include/wchar.h (_WFINDDATA_T_DEFINED): Do not define it; delete all
+       references; filter out associated data type definitions, namely...
+       (struct _wfinddata_t, struct _wfinddatai64_t): ...these, and also...
+       (struct __wfinddata64_t, struct _wfinddata64i32_t): ...these, and...
+       (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these.
+       (_WIO_DEFINED): Likewise, do not define it; delete all references;
+       filter out associated function prototype declarations for all of...
+       (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp)
+       (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64)
+       (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32)
+       (_wfindnext64i32, _wfindfirst32, _wfindnext32): ...these; reproduce
+       them by selective inclusion of <io.h>.
+
+2016-04-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <wchar.h> vs. <process.h> duplicate declarations.
+
+       * include/process.h: Assert copyright; tidy layout.
+       (_PROCESS_H_): Rename this multiple inclusion guard macro...
+       (_PROCESS_H): ...to this preferred form; do not define it when...
+       [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare...
+       (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp)
+       (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv)
+       (_wspawnve, _wspawnvp, _wspawnvpe): ...only these functions.
+       [!__WCHAR_H_SOURCED__] (_PROCESS_H): Define it; declare all functions
+       normally specified herein, including those listed above, as required.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
+       (__need_intptr_t): Define it prior to including <stdint.h>.
+       (pragma GCC system_header): Declare it.
+
+       * include/wchar.h (_WPROCESS_DEFINED): Delete it; filter out...
+       (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp)
+       (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv)
+       (_wspawnve, _wspawnvp, _wspawnvpe): ...these function prototypes;
+       reproduce them, by selective inclusion of <process.h>.
+
+2016-04-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Enable selective retrieval of intptr typedefs from <stdint.h>.
+
+       * include/stdint.h: Assert copyright; tidy layout.
+       [__need_intptr_t || __need_uintptr_t] (_STDINT_H): Do not define it;
+       conceal all normally defined data types, except either or both of...
+       [__need_intptr_t] (intptr_t): ...this, and/or...
+       [__need_uintptr_t] (uintptr_t): ...this.
+       (pragma GCC system_header): Declare it.
+
+2016-03-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <wchar.h> vs. <sys/stat.h> duplicate declarations.
+
+       * include/sys/stat.h: Assert copyright; tidy layout.
+       (pragma GCC system_header): Declare it.
+       (_STAT_H_): Rename multiple inclusion guard macro; adopt...
+       (_SYS_STAT_H): ...this preferred naming convention; however, when...
+       [__WCHAR_H_SOURCED__] (_SYS_STAT_H): ...do not define it; declare...
+       (_wstat, _wstati64, _wstat64, _wstat32): ...these functions, and...
+       (_wstat32i64, _wstat64i32): ...these, as appropriate to user specified
+       __MSVCRT_VERSION__ and _WIN32_WINNT macro definitions, namely...
+       [__MSVCRT_VERSION__ >= 0x601]: ...this, updated to become...
+       [__MSVCRT_VERSION__ >= __MSVCR61_DLL]: ...this; augment it with...
+       [|| _WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this complement; also...
+       [__MSVCRT_VERSION__ < 0x800]: this, updated to become...
+       [__MSVCRT_VERSION__ < __MSVCR80_DLL]: ...this; likewise...
+       [__MSVCRT_VERSION__ >= 0x800]: ...this, which becomes...
+       [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: ...this.
+       (__struct_stat_defined): New macro; define, and use it to define...
+       (struct stat, struct _stat, struct _stati64, struct __stat64)
+       (struct __stat32, struct _stat32i64, struct _stat64i32): ...these.
+       [!__WCHAR_H_SOURCED__] (_SYS_STAT_H): Define it; also include
+       <sys/types.h>, delegating to it the inclusion of <_mingw.h>, and
+       definition of types size_t and wchar_t; declare all header content,
+       including that declared when __WCHAR_H_SOURCED__ is defined, unless
+       already declared as a result of selective inclusion by <wchar.h>
+       (__need_size_t, __need_wchar_t): Do not define them; consequently,
+       there is no need to include <stddef.h>; do not do so.
+
+       * include/wchar.h (_wstat, _wstati64, _wstat64): Factor out.
+       (_wstat32, _wstat32i64, _wstat64i32, struct stat, struct _stat)
+       (struct _stati64, struct __stat64, struct __stat32, struct _stat32i64)
+       (struct _stat64i32): Likewise; reproduce them by selective inclusion
+       of <sys/stat.h>
+
+2016-03-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <wchar.h> vs. <direct.h> duplicate declarations.
+
+       * include/direct.h: Conditionally partition it, such that...
+       [__WCHAR_H_SOURCED__] (_DIRECT_H): Do not define it; declare only...
+       (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): ...these, otherwise...
+       [!__WCHAR_H_SOURCED__] (_DIRECT_H): Define it; expose all content.
+       (_WDIRECT_DEFINED): Never define it; delete all references.
+
+       * include/wchar.h (_WDIRECT_DEFINED): Delete all references.
+       (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): Delete prototypes;
+       selectively #include <direct.h> to reproduce them.
+
+2016-03-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <direct.h> vs. <dos.h> duplicate declarations.
+
+       * include/dos.h: Assert copyright; tidy layout.
+       (pragma GCC system_header): Declare it.
+       (_DOS_H_): Rename multiple inclusion guard macro, to adopt...
+       (_DOS_H): ...this preferred convention; do not define it when...
+       [__DIRECT_H_SOURCED__]: ...this applies; restrict declarations to...
+       (struct _diskfree_t): ...this aggregate data type, together with...
+       [_NO_OLDNAMES] (diskfree_t): ...this alternative name for it, and...
+       (_getdiskfree): ...this associated function.
+       [!__DIRECT_H_SOURCED__] (_DOS_H): Define it; expose all content, but
+       emit a warning that this header is obsolete, and should not be used.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
+       (_DISKFREE_T_DEFINED): Do not define it; delete all references.
+       (__need_wchar_t): Do not define it; it isn't needed here, and hence,
+       neither is it necessary to #include <stddef.h>; do not do so.  Also,
+       do not #include <_mingw.h> explicitly, but always #include <io.h>,
+       which will implicitly #include <_mingw.h> anyway.
+
+       * include/direct.h: Assert copyright; tidy layout.
+       (pragma GCC system_header): Declare it.
+       (_DIRECT_H_): Rename this multiple inclusion guard macro...
+       (_DIRECT_H): ...to adopt this preferred naming convention.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
+       (_DISKFREE_T_DEFINED, diskfree_t, struct _diskfree_t): Do not define.
+       (_getdiskfree): Likewise, do not declare prototype; instead...
+       (__DIRECT_H_SOURCED__): ...define this, and #include <dos.h>; also
+       delegate indirect inclusion of <_mingw.h> and <io.h> to this, rather
+       than include them directly; undefine __DIRECT_H_SOURCED__ when done.
+       (__need_wchar_t): Do not define it, and do not #include <stddef.h>;
+       although needed, we may inherit it indirectly from <sys/types.h>,
+       included by <io.h> via <dos.h>.
+
+2016-03-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Evade CPP mismatched apostrophe warnings in windres comments.
+
+       * msvcrt-xref/msvcrt.def.in (; pexports): 1,Gs/doesn't/does not/g
+
+2016-03-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <locale.h> vs. <wchar.h> duplicate declarations.
+
+       * include/locale.h: Assert copyright; tidy layout.
+       (_LOCALE_H_): Rename multiple inclusion guard macro, to...
+       (_LOCALE_H): ...this; do not define it when...
+       [__WCHAR_H_SOURCED__]: ...this applies; restrict declarations to...
+       (_wsetlocale): ...just this one visible function prototype.
+       [!__WCHAR_H_SOURCED__] (_LOCALE_H): Define it; expose all content.
+       (_WLOCALE_DEFINED): Do not define it; delete all references.
+       (pragma GCC system_header): Declare it.
+
+       * include/wchar.h (_wsetlocale): Delete prototype; maintain its
+       visibility by selective inclusion of <locale.h> instead.
+       (_WLOCALE_DEFINED): Delete all references.
+
+2016-03-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Resolve some "implicit function declaration" warnings.
+
+       * setargv.c (isspace): Include <ctype.h> for declaration.
+       * cpu_features.h (__cpu_features_init): Declare function prototype.
+       * crt1.c (_setargv): Likewise; (this isn't needed elsewhere).
+
+2016-03-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Factor out <stdlib.h> vs. <wchar.h> duplicate declarations.
+
+       * include/stdlib.h [__WCHAR_H_SOURCED__]
+       (_STDLIB_H): Do not define it; restrict visible declarations to...
+       (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem)
+       (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...this subset
+       of regular <stdlib.h> content; full content is declared only when...
+       [!__WCHAR_H_SOURCED__] (_STDLIB_H): ...this applies; define it.
+       (_WSTDLIB_DEFINED): Do not define it; delete all references.
+       (pragma GCC system_header): Declare it; tidy layout.
+
+       * include/wchar.h: Delete duplicated declarations for...
+       (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem)
+       (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...these;
+       include <stdlib.h> selectively, to maintain their visibility.
+       (_WSTDLIB_DEFINED): Delete all references.
+
+2016-03-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Relocate misplaced umask() function prototypes.
+
+       * include/sys/stat.h (umask, _umask): Declare prototypes; duplicate...
+       * include/io.h (umask, _umask): ...these; POSIX doesn't expect them
+       here, but leave them for backward, or Microsoft, compatibility.
+
+2016-03-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct another _BEGIN_C_DECLS imbalance error.
+
+       * include/wchar.h (_BEGIN_C_DECLS): One misplaced, superfluous, and
+       unbalanced instance deleted; one correctly balanced instance remains.
+
+2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Support installation of headers with empty parts directory.
+
+       * Makefile.in (SUB_HEADERS_PRESENT): New macro; define it, and...
+       (install-mingwrt-headers): ...invoke it; if false, do not perform...
+       (INSTALL_SUB_HEADERS): ...this.
+
+2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Reinstate typedef for non-standard off64_t.
+
+       * include/sys/types.h [!__STRICT_ANSI__] (off64_t): Define it as...
+       (__off64_t): ...typedef derived from this; although non-standard, it
+       is gratuitously required when building GCC's libgfortran.a
+
+2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct conditional compilation block nesting errors.
+
+       * include/stdio.h include/time.h (_BEGIN_C_DECLS, _END_C_DECLS): Keep
+       them balanced within, and around, conditional compilation blocks.
+
+2016-03-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Feature test _MINGW32_EXTENDED_SOURCE renamed.
+
+       * include/_mingw.h (_MINGW32_EXTENDED_SOURCE): Rename to...
+       (_MINGW32_SOURCE_EXTENDED): ...this, to improve naming consistency...
+       (_XOPEN_SOURCE_EXTENDED): ...with this POSIX-XSI feature test.
+       (__USE_MINGW_ANSI_STDIO): Note that it is intended for internal use;
+       users should enable any conventional feature test which implies it.
+
+       * include/time.h (_MINGW32_EXTENDED_SOURCE): Update references...
+       (_MINGW32_SOURCE_EXTENDED): ...i.e. to refer to this.
+
+2016-02-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Correct atexit() and _onexit() export declaration regression.
+
+       * msvcrt-xref/msvcrt.def.in (atexit, _onexit): These must be exported
+       as DATA; declare them accordingly.
+
+2016-02-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor to make <parts/time.h> and <parts/wchar.h> redundant.
+
+       * include/string.h: Tidy layout.
+       (__STRING_H_SOURCED__): New macro; define it at start; delete at end.
+       (_stricmp, _strnicmp): Include their prototypes, selectively from...
+       * include/strings.h [__STRING_H_SOURCED__]: ...here, reproduce them...
+       * include/parts/strings.h: ...from here; file is obsolete; delete it.
+
+       * include/string.h (_wcscmpi): Define alias.
+       (wcscat, wcschr, wcscmp, wcscoll, wcscpy, wcscspn, wcslen, wcsncat)
+       (wcsncmp, wcsncpy, wcspbrk, wcsrchr, wcsspn, wcsstr, wcstok, wcsxfrm)
+       (_wcsdup, _wcsicmp, _wcsicoll, _wcslwr, _wcsnicmp, _wcsnset, _wcsrev)
+       (_wcsset, _wcsupr, _wcsncoll, _wcsnicoll, _wcserror, __wcserror)
+       (wcscmpi, wcscmpi, wcsdup, wcsicmp, wcsicoll, wcslwr, wcsnicmp)
+       (wcsnset, wcsrev, wcsset, wcsupr): Selectively include prototypes...
+       * include/wchar.h [__STRING_H_SOURCED__]: ...from here; reproduce...
+       * include/parts/wchar.h: ...from here; file is obsolete; delete it.
+
+       * include/strings.h (_STRINGS_H): Do not define it, when...
+       [__STRING_H_SOURCED__]: ...selectively included by <string.h>.
+       * include/wchar.h (_WCHAR_H) [__STRING_H_SOURCED__]: Likewise.
+
+2016-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor to make <parts/time.h> redundant.
+
+       * include/sys/types.h (time_t, __time32_t, __time32_t)
+       [__need_time_t && !__have_typedef_time_t]: Reproduce definitions...
+       * include/parts/time.h: ...from here; preserve selective exposure.
+
+       * include/time.h (time_t, __time32_t, __time32_t): Get them...
+       * include/sys/types.h: ...from here, by selective inclusion.
+
+       * include/time.h (struct timespec, struct __mingw_extended_timespec)
+       [__need_struct_timespec && !__struct_timespec_defined]: Reproduce...
+       * include/parts/time.h: ...from here; preserve selective exposure.
+
+       * include/parts/time.h: Delete file; it is no longer required.
+
+2016-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Declare the nanosleep() function where POSIX expects it.
+
+       * include/time.h (__mingw_sleep): Declare function prototype.
+       (nanosleep): Declare prototype, and provide in-line implementation;
+       this is a reproduction of the original implementation, relocated...
+       * include/unistd.h (nanosleep): ...from here; remove it; hence...
+       (struct timespec): ...this need not be declared here, and there is
+       no need to include <parts/time.h>; remove reference.
+
+2016-02-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Refactor <time.h> vs. <wchar.h> to avoid duplication.
+
+       * include/wchar.h (__WCHAR_H_SOURCED__): New macro; define it...
+       [_WCHAR_H]: ...at start of processing in this scope; delete at end.
+       (struct tm): Delete definition; delegate it, together with each of...
+       (_wctime, _wasctime, _wstrdate, _wstrtime, _wctime64, _wctime32)
+       (wcsftime): ...these function prototypes; delete them, but note in
+       comments, that they remain declared, via delegation to...
+       * include/time.h: ...this; include it selectively, subject to...
+       [defined __WCHAR_H_SOURCED__](__need_wchar_decls): ...this; define it.
+       [defined __WCHAR_H_SOURCED__](_TIME_H): Suppress its definition.
+       [_TIME_H]: Process all definitions and declarations; otherwise...
+       [__need_wchar_decls]: ...process only <wchar.h> shared content, but...
+       [_TIME_H && _WCHAR_H]: ...not on second, or later, time of processing.
+       (_WTIME_DEFINED): Obsolete macro; delete all references.
+
+2016-02-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Implement support for POSIX "%n$*m$" printf() format control.
+
+       * mingwex/stdio/pformat.c (NL_ARGMAX): New macro; nominally, it should
+       be defined in <limits.h>, but MinGW may not do so; provide a fallback.
+       (__pformat_inline__): New macro; define, and use it where appropriate.
+       (PFORMAT_CONVERSION_TYPE, PFORMAT_LENGTH_MODIFIER)
+       (PFORMAT_TYPE_DOUBLE, PFORMAT_TYPE_INTEGER, PFORMAT_TYPE_POINTER)
+       (PFORMAT_LENGTH_DEFAULT): New enumerated values; define them.
+       (PFORMAT_ARGMAP_ENTRIES): New enumerated value tally; use it in...
+       (__pformat_argmap_t): ...this new union data type; define it.
+       (__pformat_indexed_argc, __pformat_sizeof_argument, __pformat_argmap)
+       (__pformat_imul10plus, __pformat_arg_index, __pformat_read_arg_index)
+       (__pformat_read_arg_index_after, __pformat_look_ahead_beyond_flags)
+       (__pformat_look_ahead, __pformat_ignore_flags, __pformat_is_ldouble)
+       (__pformat_is_conversion_type, __pformat_is_alt_ldouble_modifier)
+       (__pformat_length_modifier, __pformat_check_length_modifier): New
+       locally defined static and/or inline functions; implement, and...
+       (__pformat): ...use them.
+
+2016-02-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Add prototypes for Microsoft's _printf_p() family of functions.
+
+       * include/stdio.h [>=__MSVCR80_DLL || >=_WIN32_WINNT_VISTA]
+       (_printf_p, _printf_p_l, _vprintf_p, _vprintf_p_l, _fprintf_p)
+       (_fprintf_p_l, _vfprintf_p, _vfprintf_p_l, _sprintf_p, _sprintf_p_l)
+       (_vsprintf_p, _vsprintf_p_l): Add function prototypes; they require
+       either a non-free MSVC runtime, or MSVCRT.DLL from Vista onward.
+       (_wprintf_p, _wprintf_p_l, _vwprintf_p, _vwprintf_p_l, _fwprintf_p)
+       (_fwprintf_p_l, _vfwprintf_p, _vfwprintf_p_l, _swprintf_p)
+       (_swprintf_p_l, _vswprintf_p, _vswprintf_p_l): Likewise; make them
+       available for selective inclusion by both <stdio.h> and <wchar.h>...
+       [_STDIO_H || __WCHAR_H_SOURCED__]: ...when either of these defined.
+
+2016-02-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Adapt msvcrt-xref to become msvcrt.def.in provider.
+
+       * Makefile.in (msvcrt_version_script) [__MSVCRT_VERSION__]: Adjust
+       filter value assignment; scale it upwards, by a factor of 0x10000.
+       (%.def.in) [vpath]: Make it refer to msvcrt-xref directory.
+       (%.def) [msvcr*]: Do not preserve comments; define...
+       (__DLLNAME__): ...this preprocessor symbol.
+
+       * msvcrt.def.in: Content is obsolete; delete file and replace with...
+       * msvcrt-xref/msvcrt.def.in: ...this updated alternative.
+       (__MINGW_DLSYM): New preprocessor macro; define it conditionally...
+       [__MSVCRT_VERSION__ != 0]: ...to emit in-scope symbols it declares...
+       [__MSVCRT_VERSION__ == 0]: ...to hide symbols it declares, followed by
+       redefinition of __MSVCRT_VERSION__ itself, to a value of 0x10000.
+
 2016-02-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Import msvcrt-xref documentation resources.
        indirectly, by selective inclusion from <stdio.h>; hence include it.
 
        * include/stdio.h: Assert copyright; tidy layout.
-       [__WCHAR_H_SOURCED__]: Selectively define and declare only those
+       (_STDIO_H_): Multiple inclusion guard macro, renamed as...
+       (_STDIO_H): ...this, but defined conditionally, subject to...
+       [__WCHAR_H_SOURCED__]: ...selectively define and declare only those
        entities which are required by <wchar.h>; do not define...
        [__WCHAR_H_SOURCED__] (_STDIO_H): ...this; define it only if...
        [!__WCHAR_H_SOURCED__]: ...this; define and declare ALL entities which
        * pseudo-reloc.c: Some minor layout adjustments.
        (WIN32_LEAN_AND_MEAN): Define it; we don't need the windows baggage.
        [typedef ptrdiff_t]: Do not assume this is gratuitously defined;
-       include <stdint.h> to guarantee it.
+       include <stddef.h> to guarantee it.
 
 2016-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        * include/io.h (lseek64): Use '__off64_t', instead of 'off64_t', as
        return type, and type of offset argument, in both prototype and inline
        implementation; note that this addresses the issue of pollution in the
-       user namespace, while avoiding the issue of MinGW-Bug [#].
+       user namespace, while avoiding the issue of MinGW-Bug [#2024].
 
        * include/stdio.h (fseeko64, __mingw_fseeko64): Use '__off64_t'
        instead of 'off64_t', as offset argument type in function prototypes.
        * jamfile: Delete it; it hasn't been updated in ages, is likely no
        longer relevant, and I have no desire to maintain it.
 
+2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Add another more rigorous __STRICT_ANSI__ filter.
+
+       * include/limits.h [__STRICT_ANSI__] (PATH_MAX): Suppress definition.
+       * include/sys/param.h [PATH_MAX defined] (MAXPATHLEN): Alias it.
+       [PATH_MAX not defined] (MAXPATHLEN): Define it directly.
+
+2012-08-02  Ivan Maidanski  <ivmai@users.sourceforge.net>
+
+       Add missing function prototypes per issue [#1305].
+
+       * include/process.h [#ifndef _WPROCESS_DEFINED]
+       (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve)
+       (_wexecvp, _wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe)
+       (_wspawnv, _wspawnve, _wspawnvp, _wspawnvpe): Declare them.
+
+2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Add function prototype declarations per issue [#1293].
+
+       * include/stdio.h (_lock_file, _unlock_file): Declare them.
+
+2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Apply some more rigorous __STRICT_ANSI__ filtering.
+
+       * include/stdio.h (_getws, _putws, _wfdopen, _wfopen)
+       (_wfreopen, _wfsopen, _wtmpnam, _wtempnam, _wrename, _wremove)
+       (_wperror, _wpopen): Do not declare these functions unless...
+       [#ifndef __STRICT_ANSI__]: ...this is satisfied.
+
+2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Add string to 64-bit integer conversion function prototypes.
+
+       * include/stdlib.h (_strtoi64, _strtoi64_l, _strtoui64, _strtoui64_l)
+       (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l): Declare them.
+       * include/wchar.h (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l):
+       Likewise; these are duplicates of the <stdlib.h> declarations.
+
+2012-08-01  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Update for _WIN64 exception handler readiness.
+
+       * include/excpt.h [_WIN64] (__try1, __except1): Add alternative inline
+       assembly code implementation, based on X86-64 architecture.
+
+2012-07-30  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Correct missing inclusion of <_mingw.h>.
+
+       * include/stdint.h: Add omitted #include; all mingwrt headers are
+       expected to include this; it is required to define __int64.
+
+2011-11-30  Ozkan Sezer  <sezero@users.sourceforge.net>
+
+       Correct prototypes for _wfindfirst()/_wfindnext() function family.
+
+       * include/io.h (_wfindfirst, _wfindfirst32, _wfindfirsti64)
+       (_wfindfirst32i64, _wfindfirst64i32): Return type changed to intptr_t.
+       (_wfindnext, _wfindnext32, _wfindnexti64, _wfindnext32i64)
+       (_wfindnext64i32, _wfindnext64): Type of parameter #1 must match.
+
+2011-11-30  Earnie Boyd  <earnie@users.sourceforge.net>
+
+       Avoid potential GCC "missing function prototype" warnings.
+
+       * include/stdio.h (getc, putc, getchar, putchar, fopen64)
+       (ftello64): Provide a function prototype declaration for each of
+       these, prior to the corresponding inline implementation.
+
 2011-08-23  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
 
        * include/_mingw.h: Increment version to 3.20.
 
        * include/wchar.h (WCHAR_MAX): Define as 0xffff, so preprocessor
        #if (WCHAR_MAX <= WCHAR_MIN) is false.
-       * include/stdint.h (WCHAR_MAX): Likwise.
+       * include/stdint.h (WCHAR_MAX): Likewise.
        (WINT_MAX): Likewise.
 
 2005-05-03  Danny Smith  <dannysmith@users.sourceforge.net>
 2005-02-07  Danny Smith  <dannysmith@users.sourceforge.net>
 
        * include/sys/stat.h (struct stat): Guard with _NO_OLDNAMES.
-       * include/wchar.h (struct stat): Likwwise.
+       * include/wchar.h (struct stat): Likewise.
        Bug reported to Debian by Anand Kumria <wildfire@progsoc.org>
 
        * include/sys/stat.h: Remove empty __STRICT_ANSI__ guard.
        * include/sys/stat.h (__stat64): Add struct definition.
        (_fstat64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
        (_stat64): Likewise.
-       (_wstat64): Likwise.
+       (_wstat64): Likewise.
        * include/sys/types.h (__time64_t): Add typedef.
        * include/wchar.h (__wfinddata64_t): Add structure definition.
        (__stat64): Likewise.
        (_wfindfirst64): Likewise.
        (_wfindnext64): Likewise.
        (_wutime64): Likewise.
-       (_wstat64): Likwise.
+       (_wstat64): Likewise.
        * include/malloc.h (_aligned_free): Add prototype for
        __MSVCRT_VERSION__ >= 0x0700.
        (_aligned_malloc): Likewise.
 
 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
 
-       * include/stdint.h Fix __STDC_CONSTANT_MACROS for 8 and 16 bit
+       * include/stdint.h [__STDC_CONSTANT_MACROS]: Fix for 8 and 16 bit
        types. (Thanks to John Maddock for report.)
 
 2004-01-14  Greg Chicares  <chicares@users.sourceforge.net>
 
 2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
 
-       * include/stdint.h: Include stddef.h to get
-       wchar_t and wint_t.
+       * include/stdint.h: Include <stddef.h> to get wchar_t and wint_t.
        (WINT_MAX): Define to ((wint_t)-1).
 
 2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>