+2020-05-28 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.3.2 release.
+
+ * All files (wsl-5.3.2-release): Tag assigned.
+
+2020-04-30 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.3.1 release.
+
+ * All files (wsl-5.3.1-release): Tag assigned.
+
+2020-03-28 Keith Marshall <keith@users.osdn.me>
+
+ Make <winsvc.h> header effectively self-contained.
+
+ * include/winsvc.h: Tidy layout; assert copyright.
+ Include <windef.h>, so supporting stand-alone inclusion.
+ (pragma GCC system_header): Remove redundant GCC version guard.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+ (__AW_ALIAS__): Use it to selectively typedef...
+ [UNICODE vs. ! UNICODE] (LPSERVICE_MAIN_FUNCTION)
+ (SERVICE_FAILURE_ACTIONS, LPSERVICE_FAILURE_ACTIONS)
+ (ENUM_SERVICE_STATUS_PROCESS, LPENUM_SERVICE_STATUS_PROCESS)
+ (QUERY_SERVICE_LOCK_STATUS, LPQUERY_SERVICE_LOCK_STATUS)
+ (QUERY_SERVICE_CONFIG, LPQUERY_SERVICE_CONFIG)
+ (SERVICE_TABLE_ENTRY, LPSERVICE_TABLE_ENTRY)
+ (SERVICE_DESCRIPTION, LPSERVICE_DESCRIPTION)
+ (ENUM_SERVICE_STATUS, LPENUM_SERVICE_STATUS): ...these.
+ (__AW_SUFFIXED__): Likewise, use it to selectively define...
+ [UNICODE vs. ! UNICODE] (SERVICES_ACTIVE_DATABASE)
+ (SERVICES_FAILED_DATABASE, SC_GROUP_IDENTIFIER)
+ (CreateService, ChangeServiceConfig, ChangeServiceConfig2)
+ (EnumDependentServices, EnumServicesStatus, EnumServicesStatusEx)
+ (GetServiceDisplayName, GetServiceKeyName, OpenSCManager)
+ (OpenService, QueryServiceConfig, QueryServiceConfig2)
+ (QueryServiceLockStatus, RegisterServiceCtrlHandler)
+ (StartService, StartServiceCtrlDispatcher)
+ (RegisterServiceCtrlHandlerEx): ...these.
+ (__AW_STRING_W__): Use it to derive definitions for...
+ (SERVICES_ACTIVE_DATABASEW, SERVICES_FAILED_DATABASEW)
+ (SC_GROUP_IDENTIFIERW): ...each of these, from...
+ (SERVICES_ACTIVE_DATABASEA, SERVICES_FAILED_DATABASEA)
+ (SC_GROUP_IDENTIFIERA): ...these, respectively.
+
+2020-03-05 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.3 release.
+
+ * All files (wsl-5.3-release): Tag assigned.
+
+2020-01-20 Keith Marshall <keith@users.osdn.me>
+
+ Implement <wspiapi.h> sockets fall-back API.
+
+ * tests/headers.at: Add...
+ * include/wspiapi.h: ...this new file; it implements...
+ (WspiapiGetAddrInfo, WspiapiGetNameInfo, WspiapiFreeAddrInfo):
+ ...these inline fall-back replacement implementations for...
+ (getaddrinfo, getnameinfo, freeaddrinfo): ...these IETF RFC 3493
+ functions, respectively, per hints in Microsoft online docs.
+
+ * include/ws2tcpip.h: Tidy layout; assert copyright.
+ (pragma GCC system_header): Remove redundant GCC version guard.
+ (EAI_SYSTEM, EAI_OVERFLOW): New symbolic error codes; define them.
+ (socklen_t): Correct typedef; was signed but negative is meaningless.
+ (getnameinfo): Adjust prototype declaration to conform to RFC 3493.
+ (__AW_SUFFIXED__): Use it to selectively map definitions for...
+ [UNICODE vs. ! UNICODE] (gai_strerror): ...this function.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2020-01-17 Keith Marshall <keith@users.osdn.me>
+
+ Preserve order of tests for integrity of header files.
+
+ * tests/Makefile.in: Explicitly sort $wildcard output, within...
+ (list_headers): ...this new function-style macro.
+ (enum_headers, enum_header_subdirs): Use it.
+
+ * tests/headers.at: Adjust to recent GNU make $sort order.
+
+2020-01-15 Keith Marshall <keith@users.osdn.me>
+
+ Incorporate <winnls.h> updates for Vista and Windows-7.
+
+ * include/winnls.h: Reorganize into logical definition groups.
+ [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (LOCALE_CUSTOM_DEFAULT)
+ (LOCALE_CUSTOM_UI_DEFAULT, LOCALE_CUSTOM_UNSPECIFIED, LOCALE_SNAME)
+ (LOCALE_SDURATION, LOCALE_SKEYBOARDSTOINSTALL, LOCALE_SSCRIPTS)
+ (LOCALE_SNAN, LOCALE_SPOSINFINITY, LOCALE_SNEGINFINITY)
+ (LOCALE_SISO3166CTRYNAME2, LOCALE_SISO639LANGNAME2)
+ (LOCALE_SSHORTESTDAYNAME1, LOCALE_SSHORTESTDAYNAME2)
+ (LOCALE_SSHORTESTDAYNAME3, LOCALE_SSHORTESTDAYNAME4)
+ (LOCALE_SSHORTESTDAYNAME5, LOCALE_SSHORTESTDAYNAME6)
+ (LOCALE_SSHORTESTDAYNAME7, CAL_SSHORTESTDAYNAME1)
+ (CAL_SSHORTESTDAYNAME2, CAL_SSHORTESTDAYNAME3, CAL_SSHORTESTDAYNAME4)
+ (CAL_SSHORTESTDAYNAME5, CAL_SSHORTESTDAYNAME6, CAL_SSHORTESTDAYNAME7)
+ (CAL_UMALQURA, C3_HIGHSURROGATE, C3_LOWSURROGATE): New symbolic
+ constants; define each as a manifest constant macro.
+ [_WIN32_WINNT >= _WIN32_WINNT_WIN7] (CAL_SMONTHDAY)
+ (CAL_SABBREVERASTRING): Likewise.
+ [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (GetCalendarInfoEx): New
+ function; declare its prototype.
+
+2020-01-14 Keith Marshall <keith@users.osdn.me>
+
+ Make <winnls.h> header effectively self-contained.
+
+ * include/winnls.h: Tidy layout; assert copyright.
+ Include <winbase.h>, so supporting stand-alone inclusion.
+ (pragma GCC system_header): Remove redundant GCC version guard.
+ (WINVER, _WIN32_WINNT): Always use symbolic version comparisons.
+ (__AW_ALIAS__): Use it to selectively typedef...
+ [UNICODE vs. ! UNICODE] (CPINFOEX, LPCPINFOEX, CURRENCYFMT)
+ (LPCURRENCYFMT, NUMBERFMT, LPNUMBERFMT): ...each of these generic data
+ types; delete redundant UNICODE vs. non-UNICODE variants.
+ (__AW_SUFFIXED__): Likewise, use it to selectively define...
+ [UNICODE vs. ! UNICODE] (CALINFO_ENUMPROC, CALINFO_ENUMPROCEX)
+ (LANGUAGEGROUP_ENUMPROC, LANGGROUPLOCALE_ENUMPROC, LOCALE_ENUMPROC)
+ (CODEPAGE_ENUMPROC, DATEFMT_ENUMPROC, DATEFMT_ENUMPROCEX)
+ (TIMEFMT_ENUMPROC, UILANGUAGE_ENUMPROC, CompareString)
+ (EnumCalendarInfo, EnumDateFormats, EnumSystemCodePages)
+ (EnumSystemLocales, EnumTimeFormats, FoldString, GetCalendarInfo)
+ (GetCPInfoEx, GetCurrencyFormat, GetDateFormat, GetGeoInfo)
+ (GetLocaleInfo, GetNumberFormat, GetStringTypeEx, GetTimeFormat)
+ (LCMapString, SetCalendarInfo, SetLocaleInfo, EnumCalendarInfoEx)
+ (EnumDateFormatsEx, EnumSystemLanguageGroups, EnumLanguageGroupLocales)
+ (EnumUILanguages): ...these generic names; delete redundant variants.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2019-07-06 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.2.2 release.
+
+ * All files (wsl-5.2.2-release): Tag assigned.
+
+2019-06-07 Keith Marshall <keith@users.osdn.me>
+
+ Add missing definitions; fix MinGW-Bug #39129
+
+ * include/winnt.h (PAGE_TARGETS_INVALID): Define it.
+ (PAGE_TARGETS_NO_UPDATE): Likewise.
+
+2019-05-03 Keith Marshall <keith@users.osdn.me>
+
+ Correct a typographic error; fix MinGW-Bug #39193
+
+ * include/commctrl.h (ListView_SubItemHitTest): Balance parentheses;
+ add a missing closing parenthesis.
+
+2019-04-08 Keith Marshall <keith@users.osdn.me>
+
+ Correct a typographic error; fix MinGW-Bug #39117
+
+ * include/commctrl.h (STATUSCUASSNAME): Correct misspelling...
+ (STATUSCLASSNAME): ...to this.
+
+2019-02-03 Keith Marshall <keith@users.osdn.me>
+
+ Clean up winsock default version selection stratagem.
+
+ * include/winsock.h [_WINSOCK_H]: Defer definition until within new
+ internal recursion breaking retest block; following evaluation of...
+ [__USE_MINGW_WINSOCK_DEFAULT]: ...this, whence <winsock2.h> may be
+ included, reproducing the original version selection logic from...
+ * include/_winsock.h: ...here; file is now obsolete; delete it.
+
+ * include/winsock2.h (__USE_MINGW_WINSOCK_DEFAULT): Undefine it,
+ before including <winsock.h>
+
+ * include/windows.h include/nspapi.h include/wsnetbs.h: Define...
+ (__USE_MINGW_WINSOCK_DEFAULT): ...this, and then include <winsock.h>
+ instead of deleted file <_winsock.h>
+
+ * tests/headers.at: Regenerated.
+
+2019-01-22 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.2.1 release.
+
+ * All files (wsl-5.2.1-release): Tag assigned.
+
+2019-01-22 Keith Marshall <keith@users.osdn.me>
+
+ Incorporate user-customized <features.h> configuration.
+
+ * tests/Makefile.in (install-mingwrt-headers): Create <features.h>
+ stub; this is an empty file, yielding the default configuration.
+
+2018-12-23 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.2 release.
+
+ * All files (wsl-5.2-release): Tag assigned.
+
+2018-12-18 Keith Marshall <keith@users.osdn.me>
+
+ Make <winver.h> header effectively self-contained.
+
+ * include/winver.h: Include <windef.h>
+
+2018-11-23 Keith Marshall <keith@users.osdn.me>
+
+ Fix MinGW-Bug #2248 (SF ticket).
+
+ * include/commctrl.h (NMPGSCROLL): Set packing to 1-byte alignment.
+ (NMPGSCROLL.fwKeys): Change type from BOOL to WORD.
+
+2018-11-23 Keith Marshall <keith@users.osdn.me>
+
+ Apply some more cosmetic layout adjustments.
+
+ * include/commctrl.h: Keep 'typedef' and 'struct' on a single line,
+ for each untagged aggregate type definition.
+
+2018-11-18 Jelle Geerts <heisenbug@users.osdn.me>
+
+ Fix MinGW-Bug #38736 (OSDN ticket).
+
+ * include/commctrl.h (DTM_SETFORMATW): Correct definition; was 0x1050,
+ but should be equivalent to 0x1000 + 50, which is actually 0x1032.
+
+2018-11-18 Keith Marshall <keith@users.osdn.me>
+
+ Make <commctrl.h> header effectively self-contained.
+
+ * include/commctrl.h: Tidy layout; assert copyright.
+ Include <winbase.h> and <prsht.h>; both are required to resolve
+ inter-header dependencies, so achieving effective self-containment.
+ Correctly parenthesize argument references in macro definitions.
+ (pragma GCC system_header): Remove redundant GCC version guard.
+ (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+ (SNDMSG): Remove definition; it is inherited from <prsht.h> anyway.
+ (__AW_ALIAS__, __AW_SUFFIXED__, __AW_STRING_A__, __AW_STRING_W__):
+ Use them; they facilitate maintenance of robust definitions for...
+ [UNICODE vs. ! UNICODE]: ...generic symbols and strings.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2018-11-16 Keith Marshall <keith@users.osdn.me>
+
+ Make <prsht.h> header effectively self-contained.
+
+ * include/prsht.h: Tidy layout; assert copyright.
+ Include <winuser.h> to resolve inter-header dependencies.
+ Correctly parenthesize argument references in macro definitions.
+ (pragma GCC system_header): Remove redundant GCC version guard.
+ (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+ (SNDMSG, POSTMSG) [ifndef]: Remove guard condition; it prevents GCC
+ from checking consistency of alternative definition sources.
+ (__AW_SUFFIXED__): Use it; it improves robustness of...
+ [UNICODE vs. ! UNICODE]: ...generic definitions.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
+2018-10-29 Keith Marshall <keith@users.osdn.me>
+
+ Clean up <wincon.h>; consolidate its version dependencies.
+
+ * include/wincon.h: Tidy layout; assert copyright.
+ [_WIN32_WINNT]: Always compare it symbolically, with respect to...
+ [_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA]: ...each
+ of these; group and consolidate respective version dependencies.
+ (FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED)
+ (FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN)
+ (BACKGROUND_RED, BACKGROUND_INTENSITY, COMMON_LVB_LEADING_BYTE)
+ (COMMON_LVB_TRAILING_BYTE, COMMON_LVB_GRID_HORIZONTAL)
+ (COMMON_LVB_GRID_LVERTICAL, COMMON_LVB_GRID_RVERTICAL)
+ (COMMON_LVB_REVERSE_VIDEO, COMMON_LVB_UNDERSCORE, CTRL_C_EVENT)
+ (CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT)
+ (CTRL_SHUTDOWN_EVENT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT)
+ (ENABLE_PROCESSED_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT)
+ (ENABLE_INSERT_MODE, ENABLE_QUICK_EDIT_MODE, ENABLE_EXTENDED_FLAGS)
+ (ENABLE_AUTO_POSITION, ENABLE_VIRTUAL_TERMINAL_INPUT)
+ (ENABLE_PROCESSED_OUTPUT, ENABLE_WRAP_AT_EOL_OUTPUT)
+ (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+ (ENABLE_LVB_GRID_WORLDWIDE, KEY_EVENT, MOUSE_EVENT)
+ (WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT, CAPSLOCK_ON)
+ (ENHANCED_KEY, RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED)
+ (RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED, SHIFT_PRESSED, NUMLOCK_ON)
+ (SCROLLLOCK_ON, FROM_LEFT_1ST_BUTTON_PRESSED)
+ (FROM_LEFT_2ND_BUTTON_PRESSED, FROM_LEFT_3RD_BUTTON_PRESSED)
+ (FROM_LEFT_4TH_BUTTON_PRESSED, RIGHTMOST_BUTTON_PRESSED, MOUSE_MOVED)
+ (DOUBLE_CLICK, MOUSE_WHEELED, MOUSE_HWHEELED, CONSOLE_FULLSCREEN)
+ (CONSOLE_FULLSCREEN_HARDWARE, CONSOLE_FULLSCREEN_MODE)
+ (CONSOLE_WINDOWED_MODE, CONSOLE_NO_SELECTION)
+ (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_SELECTION_NOT_EMPTY)
+ (CONSOLE_MOUSE_SELECTION, CONSOLE_MOUSE_DOWN, HISTORY_NO_DUP_FLAG):
+ Redefine, expressing all values in hexadecimal rather than decimal;
+ this is consistent with Microsoft documentation, and it is also more
+ logical, since all represent bit-flags, bit-fields, or bit-masks.
+
+2018-10-24 Keith Marshall <keith@users.osdn.me>
+
+ Make <wincon.h> header effectively self-contained.
+
+ * include/wincon.h [_WIN32_WINNT < 0x0600]: Include <windef.h>...
+ [_WIN32_WINNT >= 0x0600]: ...but, Vista and later need <wingdi.h>
+ [__GNUC__ >= 3]: Remove condition; used only in association with...
+ (#pragma GCC system_header): ...this, it is redundant in this context.
+ [_BEGIN_C_DECLS, _END_C_DECLS]: Use them as appropriate.
+
+2018-10-24 David Gressett <texasgaidheal@users.osdn.me>
+
+ Improve WinXP/Vista console I/O support.
+
+ * include/wincon.h (AddConsoleAlias, GetConsoleAlias)
+ (GetConsoleAliases, GetConsoleAliasExes, GetConsoleAliasesLength)
+ (GetConsoleAliasExesLength, GetConsoleOriginalTitle): New function
+ name aliases; define them, mapping them conditionally to represent...
+ [UNICODE]: ...their corresponding UTF-16LE function names, else...
+ [!UNICODE]: ...their corresponding ASCII/DBCS function names.
+ (COMMON_LVB_LEADING_BYTE, COMMON_LVB_TRAILING_BYTE
+ (COMMON_LVB_GRID_HORIZONTAL, COMMON_LVB_GRID_LVERTICAL)
+ (COMMON_LVB_GRID_RVERTICAL, COMMON_LVB_REVERSE_VIDEO)
+ (COMMON_LVB_UNDERSCORE, ENABLE_VIRTUAL_TERMINAL_INPUT)
+ (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+ (ENABLE_LVB_GRID_WORLDWIDE,(MOUSE_HWHEELED): Define them.
+ (GetConsoleAliasA, GetConsoleAliasW, HandlerRoutine): Declare.
+ (CONSOLE_FULLSCREEN, CONSOLE_FULLSCREEN_HARDWARE): Define when...
+ [_WIN32_WINNT >= 0x0500]: ...this prevails; additionally...
+ (GetConsoleFontSize): ...declare function.
+ (CONSOLE_NO_SELECTION, CONSOLE_SELECTION_NOT_EMPTY)
+ (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_MOUSE_SELECTION)
+ (CONSOLE_MOUSE_DOWN): Define them; make them visible only when...
+ [_WIN32_WINNT >= 0x0501]: ...this prevails.
+ (struct _CONSOLE_FONT_INFO): Make it visible, only when...
+ [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+ (CONSOLE_FONT_INFO, PCONSOLE_FONT_INFO): ...these typedefs.
+ (struct _CONSOLE_SELECTION_INFO): Declare it; visible only when...
+ [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+ (CONSOLE_SELECTION_INFO, PCONSOLE_SELECTION_INFO): ...these typedefs.
+ [_WIN32_WINNT >= 0x0501] (AddConsoleAliasA, AddConsoleAliasW)
+ (GetConsoleAliasesA, GetConsoleAliasesW, GetConsoleAliasExesA)
+ (GetConsoleAliasExesW, GetConsoleAliasesLengthA)
+ (GetConsoleAliasesLengthW, GetConsoleAliasExesLengthA)
+ (GetConsoleAliasExesLengthW, GetConsoleSelectionInfo)
+ (GetCurrentConsoleFont): Declare functions.
+ [_WIN32_WINNT >= 0x0600] (HISTORY_NO_DUP_FLAG): Define it.
+ (struct _CONSOLE_FONT_INFOEX): New structure; declare it only when...
+ [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+ (CONSOLE_FONT_INFOEX, PCONSOLE_FONT_INFOEX): ...these typedefs.
+ (CONSOLE_HISTORY_INFO, PCONSOLE_HISTORY_INFO): New typedefs; they
+ map to an anonymous structure, and are visible only when...
+ [_WIN32_WINNT >= 0x0600]: ...this prevails.
+ (struct _CONSOLE_READCONSOLE_CONTROL): New structure; declare when...
+ [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+ (CONSOLE_READCONSOLE_CONTROL, PCONSOLE_READCONSOLE_CONTROL): ...these.
+ (struct _CONSOLE_SCREEN_BUFFER_INFOEX): New structure; declare when...
+ [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+ (CONSOLE_SCREEN_BUFFER_INFOEX, PCONSOLE_SCREEN_BUFFER_INFOEX):
+ ...these typedefs.
+ [_WIN32_WINNT >= 0x0600] (GetConsoleHistoryInfo)
+ (GetConsoleOriginalTitleA, GetConsoleOriginalTitleW)
+ (GetConsoleScreenBufferInfoEx, GetCurrentConsoleFontEx)
+ (SetConsoleHistoryInfo, SetConsoleScreenBufferInfoEx)
+ (SetCurrentConsoleFontEx): Declare functions.
+
+2018-09-03 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.1.1 release.
+
+ * All files (wsl-5.1.1-release): Tag assigned.
+
+2018-07-29 Keith Marshall <keith@users.osdn.me>
+
+ Don't restrict <winerror.h> exposure when including <winsock.h>
+
+ * include/winerror.h [__WINSOCK_H_SOURCED__]: Remove filters.
+ (__WINSOCK_V1_ERRORS__, __WINSOCK_V2_ERRORS__): Do not define; delete
+ all dependent filter references.
+
+2018-07-11 Keith Marshall <keith@users.osdn.me>
+
+ Make <wincrypt.h> header effectively self-contained.
+
+ * include/wincrypt.h: Include <winbase.h>
+
+2018-07-11 Keith Marshall <keith@users.osdn.me>
+
+ Correct <wincrypt.h> typographic errors; fix issue [#38391]
+
+ * include/wincrypt.h (CALG_TLS1PRF): Delete symbolic reference to...
+ (ALG_CLASS_DHASH): ...this; there is no such symbol; replace it with...
+ (ALG_CLASS_HASH): ...this, which represents the correct reference.
+ (struct _CRYPTOAPI_BLOB): Delete extraneous "typedef" keyword; this
+ struct definition is not directly associated with any type name.
+ (struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA): Likewise.
+
+2018-02-26 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.1 release.
+
+ * All files (wsl-5.1-release): Tag assigned.
+
+2018-02-24 Keith Marshall <keith@users.osdn.me>
+
+ Make <iptypes.h> header effectively self-contained.
+
+ * include/iptypes.h: Assert copyright; tidy layout.
+ Include <windef.h>; it is required for self-containment.
+ (__need_time_t): Define for selective inclusion of <sys/types.h>
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them as appropriate.
+ (_WIN32_WINNT): Always compare it symbolically.
+ (__dhcp_time_t): New temporary data type macro; define it...
+ [_WIN64]: ...as equivalent to __time64_t, otherwise...
+ [!_WIN64]: ...equivalent to __time32_t, and then...
+ (struct _IP_ADAPTER_INFO): ...use it as the data type for...
+ (LeaseObtained, LeaseExpires): ...these fields.
+
+2017-12-20 Keith Marshall <keith@users.osdn.me>
+
+ Make <winreg.h> header effectively self-contained.
+
+ * include/winreg.h: Include <winbase.h>, thus achieving effective
+ self-containment; since this also indirectly includes <_mingw.h>,
+ there is no longer any need to include it directly.
+
+2017-12-20 Keith Marshall <keith@users.osdn.me>
+
+ Clean up, following issue [#2262] patch application.
+
+ * include/winreg.h: Tidy layout; correct copyright assertion.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them, as appropriate.
+ [UNICODE] (__AW): Do not use deleted macro; replace it with...
+ [UNICODE] (__AW_ALIAS__): ...this, for conditional typedef mapping...
+ [UNICODE] (VALENT, PVALENT): ...of these; similarly replace with...
+ [UNICODE] (__AW_SUFFIXED__): ...this, to define function mappings...
+ [UNICODE] (AbortSystemShutdown, InitiateSystemShutdown)
+ (RegConnectRegistry, RegCreateKey, RegCreateKeyEx, RegDeleteKey)
+ (RegDeleteValue, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegLoadKey)
+ (RegOpenKey, RegOpenKeyEx, RegQueryInfoKey, RegQueryMultipleValues)
+ (RegQueryValue, RegQueryValueEx, RegReplaceKey, RegRestoreKey)
+ (RegSaveKey, RegSetValue, RegSetValueEx, RegUnLoadKey, RegSaveKeyEx)
+ (RegDeleteKeyTransacted, RegDeleteKeyValue, RegDeleteTree, RegGetValue)
+ (RegLoadMUIString, RegOpenKeyTransacted, RegSetKeyValue)
+ (RegDeleteKeyEx, RegCopyTree, RegCreateKeyTransacted): ...for these.
+ (RegDeleteKeyEx, RegDeleteKeyExA, RegDeleteKeyExW): Fix regression;
+ all "4.x" branches specified these incorrectly, dependent on...
+ [_WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this condition, whereas the
+ "legacy" branch, whence the "5.x" branches are propagated, correctly
+ required an alternative condition which is the equivalent of...
+ [_WIN32_WINNT >= _WIN32_WINNT_WS03]: ...this; revert it.
+
+2017-12-20 Sebastián Puebla <spuebla@users.sourceforge.net>
+
+ Update registry management API, per issue [#2262].
+
+ * include/winreg.h: Merge changes from 4.1-dev branch.
+ (REG_LATEST_FORMAT, REG_NO_COMPRESSION, REG_OPTION_BACKUP_RESTORE)
+ (REG_STANDARD_FORMAT, RRF_RT_ANY, RRF_RT_DWORD, RRF_RT_QWORD)
+ (RRF_RT_REG_BINARY, RRF_RT_REG_DWORD, RRF_RT_REG_EXPAND_SZ)
+ (RRF_RT_REG_MULTI_SZ, RRF_RT_REG_NONE, RRF_RT_REG_QWORD, RRF_RT_REG_SZ)
+ (RRF_NOEXPAND, RRF_SUBKEY_WOW6464KEY, RRF_SUBKEY_WOW6432KEY)
+ (RRF_ZEROONFAILURE): New manifest constants; define them.
+ (RegDisablePredefinedCache, RegOpenCurrentUser, RegOpenUserClassesRoot)
+ (RegOverridePredefKey): Add previously omitted function prototypes.
+ [_WIN32_WINNT >= _WIN32_WINNT_WINXP] (RegSaveKeyEx): Define...
+ [!defined UNICODE] (__AW): ...mapping it for SBCS/MBCS case, or...
+ [defined UNICODE] (__AW): ...for UTF-16LE case to either one of...
+ (RegSaveKeyExA, RegSaveKeyExW): ...these, respectively, and...
+ [_WIN32_WINNT >= _WIN32_WINNT_WINXP]: ...declare function prototypes.
+ [_WIN32_WINNT >= _WIN32_WINNT_WS03] (RegDisableReflectionKey)
+ (RegEnableReflectionKey, RegQueryReflectionKey): Declare prototypes.
+ [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTreeA, RegCopyTreeW)
+ (RegCreateKeyTransactedA, RegCreateKeyTransactedW)
+ (RegDeleteKeyTransactedA, RegDeleteKeyTransactedW)
+ (RegDeleteKeyValueA, RegDeleteKeyValueW)
+ (RegDeleteTreeA, RegDeleteTreeW, RegDisablePredefinedCacheEx)
+ (RegGetValueA, RegGetValueW, RegLoadMUIStringA, RegLoadMUIStringW)
+ (RegOpenKeyTransactedA, RegOpenKeyTransactedW)
+ (RegSetKeyValueA, RegSetKeyValueW): Declare prototypes.
+ [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTree)
+ (RegCreateKeyTransacted, RegDeleteKeyTransacted, RegDeleteKeyValue)
+ (RegDeleteTree, RegGetValue, RegLoadMUIString, RegOpenKeyTransacted)
+ (RegSetKeyValue): Define, mapping each to its respective function...
+ [!defined UNICODE] (__AW): ...for the SBCS/MBCS case, or...
+ [defined UNICODE] (__AW): ...for the UTF-16LE case.
+
+ * lib/kernel32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
+ (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
+ (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
+ (RegSaveKeyExW@16): Remove them; relocate them to...
+ * lib/advapi32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
+ (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
+ (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
+ (RegSaveKeyExW@16): ...their correct location, here.
+ (RegCopyTreeA@12, RegCopyTreeW@12, RegQueryReflectionKey@8)
+ (RegCreateKeyTransactedA@44, RegCreateKeyTransactedW@44)
+ (RegDeleteKeyTransactedA@24, RegDeleteKeyTransactedW@24)
+ (RegDeleteKeyValueA@12, RegDeleteKeyValueW@12)
+ (RegDisableReflectionKey@4, RegEnableReflectionKey@4)
+ (RegOpenKeyTransactedA@28, RegOpenKeyTransactedW@28)
+ (RegSetKeyValueA@24, RegSetKeyValueW@24): Add these.
+
+2017-12-16 Keith Marshall <keith@users.osdn.me>
+
+ Provide default definition for _WIN32_IE feature test macro.
+
+ * include/sdkddkver.h [!defined _WIN32_IE]: Define it, with...
+ (_WIN32_IE_IE50): ...this default value.
+
+ * include/commctrl.h (_WIN32_IE): Delete definition hint; it offered
+ a conflicting proposal for the default value.
+
+2017-12-06 Keith Marshall <keith@users.osdn.me>
+
+ Prepare and publish MinGW.org WSL-5.0.2 release.
+
+ * All files (wsl-5.0.2-release): Tag assigned.
+
+2017-11-28 Keith Marshall <keith@users.osdn.me>
+
+ Make <wsnetbs.h> header effectively self-contained.
+
+ * include/wsnetbs.h: Assert copyright; tidy layout; include
+ "_winsock.h", so making this header effectively self-contained, and
+ thus relieving the user of a responsibility for ensuring that some
+ other appropriate WinSock header has been included first.
+
+2017-11-28 Keith Marshall <keith@users.osdn.me>
+
+ Factor <winsock.h> duplicate content out of <winsock2.h>
+
+ * include/winsock2.h: Remove all declarations and definitions which
+ are identically specified in <winsock.h>, but keep them in scope by...
+ [! defined _WINSOCK_H]: ...including <winsock.h> itself; override any
+ declarations and definitions therefrom, which introduce conflicts.
+ [defined _WINSOCK_H]: Diagnose misuse; suppress all further
+ definitions and declarations.
+
+ * include/winsock.h (SOMAXCONN): Add comment; note disparity between
+ WinSock v1.1 and WinSock v2, the latter of which will override when
+ correctly included by <winsock2.h>
+
+2017-11-24 Keith Marshall <keith@users.osdn.me>
+
+ Make <winsock.h> and <winsock2.h> duplicate code congruent.
+
+ * include/winsock.h (SOMAXCONN): Move definition into...
+ [!__INSIDE_MSYS__]: ...this guarded scope.
+
+ * include/winsock2.h: Rearrange as necessary.
+ [_BEGIN_C_DECLS, _END_C_DECLS]: Keep them balanced.
+ (_USE_SYS_TYPES_FD_SET): Define and use, as in <winsock.h>
+ [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): Declare function, not type.
+ [!_WINSOCK_ANOMALOUS_TYPEDEFS] (PFD_SET, LPFD_SET): Suppress typedefs.
+ (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Reimplement, as in <winsock.h>
+ (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT)
+ (FD_CONNECT_BIT, FD_CLOSE_BIT, FD_QOS_BIT, FD_GROUP_QOS_BIT)
+ (FD_ROUTING_INTERFACE_CHANGE_BIT, FD_ADDRESS_LIST_CHANGE_BIT)
+ (FD_MAX_EVENTS): Enumerate them, as in <winsock.h>
+ [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+ [!defined __INSIDE_MSYS__]: ...as this, throughout.
+ (gethostname): Update function prototype, adding...
+ (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+
+ * include/ws2spi.h: Tidy layout; assert copyright.
+ [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+ (LPFD_SET): Delete all type references; use...
+ (fd_set *): ...this instead.
+
+2017-11-14 Keith Marshall <keith@users.osdn.me>
+
+ Establish default selection for WinSock API declaration.
+
+ * include/windows.h include/nspapi.h: Include...
+ * include/_winsock.h: ...this new system private header; it selects...
+ [_WIN32_WINNT >= _WIN32_WINNT_NT4]: ...WinSock v2 API declarations, as
+ provided by conditional inclusion of <winsock2.h>, otherwise...
+ [_WIN32_WINNT < _WIN32_WINNT_NT4]: ...WinSock v1.1 API declarations,
+ as provided by inclusion of <winsock.h>
+
+ * tests/headers.at <_winsock.h>: Add reference.
+
+2017-11-14 Keith Marshall <keith@users.osdn.me>
+
+ Update gethostname() declaration; drop Cygwin specificity.
+
+ * include/winsock.h (gethostname): Declare unconditionally; add...
+ (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+ [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+ [!defined __INSIDE_MSYS__]: ...as this, throughout.
+
+2017-11-09 Keith Marshall <keith@users.osdn.me>
+
+ Normalize fd_set event macros for <winsock2.h> compatibility.
+
+ * include/winsock.h (FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_CONNECT)
+ (FD_CLOSE): Redefine them, deriving respective values as shifts by...
+ (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT, FD_CONNECT_BIT)
+ (FD_CLOSE_BIT): ...this new enumerated count sequence, applying each
+ count to a bit flag with value of 1, in each case respectively.
+ [_WINSOCK2_H]: Extend shift count enumeration, to include...
+ (FD_QOS_BIT, FD_GROUP_QOS_BIT, FD_ROUTING_INTERFACE_CHANGE_BIT)
+ (FD_ADDRESS_LIST_CHANGE_BIT): ...these additional counts; hence...
+ [_WINSOCK2_H] (FD_QOS, FD_GROUP_QOS, FD_ROUTING_INTERFACE_CHANGE)
+ [_WINSOCK2_H] (FD_ADDRESS_LIST_CHANGE): ...define each of these.
+ (FD_MAX_EVENTS): Define unconditionally; it represents a shift count
+ of 1 greater than the offset of the last defined flag; hence...
+ (FD_ALL_EVENTS): ...derive this mask for all event flags.
+
+2017-11-09 Keith Marshall <keith@users.osdn.me>
+
+ Filter potential WinSock v2 conflicts out of <winsock.h>
+
+ * include/winsock.h [_WINSOCK2_H] <mswsock.h>: Do not include it.
+ [_WINSOCK2_H] (IP_MULTICAST_IF, IP_MULTICAST_TTL, IP_MULTICAST_LOOP)
+ (IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_DEFAULT_MULTICAST_TTL)
+ (IP_DEFAULT_MULTICAST_LOOP, IP_MAX_MEMBERSHIPS, struct ip_mreq): Do
+ not define any of these; they are not compatible with WinSock v2.
+ [_WINSOCK2_H] (SOMAXCONN): Do not define it; it will be defined
+ appropiately in <winsock2.h>
+
+2017-11-09 Keith Marshall <keith@users.osdn.me>
+
+ Filter out <winsock.h> typedef anomalies.
+
+ * include/winsock.h (FD_SET, PFD_SET, LPFD_SET): If user defines...
+ [_WINSOCK_ANOMALOUS_TYPEDEFS]: ...this new feature test macro, expose
+ them as type definitions, but warn of potential conflict with...
+ [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): ...this POSIX.1 mandated
+ function; declare its prototype.
+
+2017-11-08 Keith Marshall <keith@users.osdn.me>
+
+ Overhaul WinSock fd_set content management macros.
+
+ * include/winsock.h (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Replace the
+ original implementations of each of these macros, redirecting to...
+ (__FD_SET, __FD_ISSET, __FD_CLR, __FD_ZERO): ...these new, equivalent
+ inline functions, respectively; these are more robust, and correct a
+ defect in the original FD_SET macro implementation, whereby duplicate
+ descriptors could be added to an fd_set array, but would not then be
+ removed by the corresponding FD_CLR macro.
+
+ * tests/winsock.at (MINGW_AT_CHECK_WINSOCK): Ensure that all test
+ programs are linked with -lwsock32 or -lws2_32, as appropriate; the
+ __FD_SET and __FD_ISSET functions are dependent on the __WSAFDIsSet()
+ function, which is implemented in each of these libraries.
+
+2017-11-07 Keith Marshall <keith@users.osdn.me>
+
+ Identify features which have been deprecated in WinSock v2.
+
+ * include/winsock.h (__WINSOCK2_DEPRECATED): Define as nothing.
+ * include/winsock2.h (__WINSOCK2_DEPRECATED): Define as equivalent...
+ (__MINGW_ATTRIB_DEPRECATED): ...to this.
+
+ * include/winsock.h include/winsock2.h: Qualify...
+ (WSAIsBlocking, WSAUnhookBlockingHook, WSASetBlockingHook)
+ (WSACancelBlockingCall): ...each of these function prototypes, with...
+ (__WINSOCK2_DEPRECATED): ...this attribute.
+
+2017-11-07 Keith Marshall <keith@users.osdn.me>
+
+ Adopt system naming convention for USE_SYS_TYPES_FD_SET macro.
+
+ * include/winsock.h (USE_SYS_TYPES_FD_SET): Deprecate it; use...
+ (_USE_SYS_TYPES_FD_SET): ...this alternative; it is named to conform
+ with preferred convention for system feature test macros.
+
+2017-11-06 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Use WINSOCK_API_LINKAGE consistently in WinSock headers.
+
+ * include/winsock.h (WINSOCK_API_LINKAGE): Define, and prefix to...
+ (accept, bind, closesocket, connect, ioctlsocket, inet_addr, inet_ntoa)
+ (getpeername, getsockname, getsockopt, listen, recv, recvfrom, send)
+ (sendto, setsockopt, shutdown, socket, gethostbyaddr, gethostbyname)
+ (getservbyport, getservbyname, getprotobynumber, getprotobyname)
+ (WSAStartup, WSACleanup, WSASetLastError, WSAGetLastError)
+ (WSAIsBlocking, WSAUnhookBlockingHook, WSASetBlockingHook)
+ (WSACancelBlockingCall, WSAAsyncGetServByName, WSAAsyncGetServByPort)
+ (WSAAsyncGetProtoByName, WSAAsyncGetProtoByNumber, WSAAsyncSelect)
+ (WSAAsyncGetHostByName, WSAAsyncGetHostByAddr, WSACancelAsyncRequest)
+ (htonl, ntohl, htons, ntohs, select): ...these function prototypes.
+
+ * include/winsock2.h (WINSOCK_API_LINKAGE): Remove it from...
+ (LPFN_WSASTARTUP): ...this typedef; it is inappropriate.
+
+2017-10-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Refactor <wtypes.h> vs. <nspapi.h> and WinSock headers.
+
+ * include/wtypes.h: Tidy layout; assert copyright.
+ [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+ [__NSPAPI_H_SOURCED__]: Restrict exposure of declared content to...
+ [!__BLOB_DATA_TYPE_DEFINED] (BLOB, PBLOB, LPBLOB): ...these; define...
+ (__BLOB_DATA_TYPE_DEFINED__): ...this internal guard; it renames...
+ (__BLOB_T_DEFINED): ...this; do not define...
+ (_WTYPES_H): ...this external guard.
+
+ * include/nspapi.h: Tidy layout; assert copyright.
+ [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+ (__CSADDR_T_DEFINED): Do not define; it is no longer required.
+ [__WINSOCK2_H_SOURCED__]: Restrict exposure of declared content to...
+ (struct _CSADDR_INFO): ...this, as an incomplete type, along with...
+ (CSADDR_INFO, PCSADDR_INFO, LPCSADDR_INFO): ...these typedefs; also...
+ (SOCKET_ADDRESS, PSOCKET_ADDRESS, LPSOCKET_ADDRESS): ...define fully.
+ [__WINSOCK2_H_SOURCED__] (_NSPAPI_H): Do not define external guard.
+ [!__WINSOCK2_H_SOURCED__] (struct _CSADDR_INFO): Define fully.
+ (__BLOB_T_DEFINED, BLOB, PBLOB, LPBLOB): Do not define; instead...
+ (__NSPAPI_H_SOURCED__): ...define this, temporarily; include wtypes.h
+ [!__WINSOCK2_H_SOURCED__ && _WIN32_WINNT >= WIN2K]: Include winsock2.h
+ [!__WINSOCK2_H_SOURCED__ && _WIN32_WINNT < WIN2K]: Include winsock.h
+ [UNICODE vs. !UNICODE]: Discriminate generic symbol names, using...
+ (__AW_SUFFIXED__): ...this, to facilitate definition of each of...
+ (SetService, GetAddressByName, _SERVICE_INFO): ...these, and...
+ (__AW_ALIAS__): ...this, for definition of each of...
+ (SERVICE_INFO, LPSERVICE_INFO): ...these.
+
+ * include/winsock2.h (__WINSOCK2_H_SOURCED__): Define it temporarily.
+ (__CSADDR_T_DEFINED, struct _CSADDR_INFO, CSADDR_INFO, PCSADDR_INFO)
+ (LPCSADDR_INFO, __BLOB_T_DEFINED, BLOB, PBLOB, LPBLOB): Do not define;
+ include nspapi.h selectively, to acquire them.
+
+2017-09-23 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Factor <winerror.h> duplicate content out of winsock headers.
+
+ * include/winsock.h include/winsock2.h [!defined WSABASEERR]: Delete
+ conditional block, and all of its content; selectively include...
+ * include/winerror.h [__WINSOCK_H_SOURCED__]: ...this instead.
+ [__WINSOCK_H_SOURCED__] (_WINERROR_H): Do not define it.
+ (__WINSOCK_V1_ERRORS__, __WINSOCK_V2_ERRORS__): New temporary macros;
+ define them, to segregate WSA error messages applicable to WinSock v2
+ only, from those applicable to both WinSock v1.1 and WinSock v2.
+ (__WSA_ERRNO): New macro; use it to redefine all WSA specific error
+ codes, except WSABASEERR, relative to WSABASEERR itself.
+
+2017-09-15 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Factor <sys/time.h> duplicate content out of winsock headers.
+
+ * include/winsock.h include/winsock2.h [_TIMEVAL_DEFINED]: Delete
+ conditional block, and all its content; include <sys/time.h> instead.
+ (__WINSOCK_H_SOURCED__): New macro; define it temporarily, only while
+ processing this header, such that only selected content from other
+ internally referenced headers is exposed.
+
+2017-09-09 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Source BSD non-standard type definitions from mingwrt header.
+
+ * include/winsock.h include/winsock2.h [_BSDTYPES_DEFINED]: Delete
+ conditional block, and its entire type definition content; include...
+ * include/sys/bsdtypes.h: ...this common file instead; it defines...
+ (u_char, u_int, u_long, u_short): ...these non-standard data types.
+
+2017-09-07 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Correct misuse of __INSIDE_MSYS__ feature test.
+
+ * include/winsock2.h [!__INSIDE_MSYS__]: One of several instances
+ omits "defined" operator; it should be expressed consistently as...
+ [! defined __INSIDE_MSYS__]: ...this; correct it.
+
+2017-09-07 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Prepare for <winsock.h> vs. <winsock2.h> refactoring.
+
+ * include/winsock.h: Tidy layout; assert copyright.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them to avoid C++ name mangling.
+
+ * include/winsock2.h: Assert copyright; tidy layout, ensuring that all
+ sections, which are common with <winsock.h>, are laid out congruently.
+ (_BEGIN_C_DECLS, _END_C_DECLS): Use them to avoid C++ name mangling.
+ (SD_RECEIVE, SD_SEND, SD_BOTH): Delete duplicate constant definitions.
+ (SO_DONTLINGER, MSG_MAXIOVLEN): Likewise, delete duplicate definitions.
+ (__AW_ALIAS__, __AW_SUFFIXED__): Use them, to avoid reproduction of...
+ [UNICODE]: ...alternative typedefs, and function name aliases...
+ [!UNICODE]: ...versus this case.
+
+2017-08-28 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Resolve secondary issue arising from MinGW-Bug [#2350]
+
+ * include/winuser.h (GetTitleBarInfo)
+ [_WIN32_WINDOWS >= _WIN32_WINDOWS_98]: Remove exposure restriction;
+ it conflicted with current MSDN documentation, so now falls within...
+ [_WIN32_WINNT >= Win2K || _WIN32_WINDOWS >= Win98]: ...this.
+
+2017-08-28 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Resolve MinGW-Bug [#2350]
+
+ * include/winuser.h (GetTitleBarInfo): Move prototype after...
+ (PTITLEBARINFO): ...this type definition; it is used as a function
+ argument type, so must be defined beforehand.
+
+2017-08-21 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Extend testsuite to cover winsock fd_set macro operations.
+
+ * tests/winsock.at: New file; it implements appropriate tests, and
+ enables use of "-k winsock", "-k winsock2", and "-k fd_set" autotest
+ keywords to invoke them, (e.g. make check TESTSUITEFLAGS='-k fd_set').
+
+ * tests/testsuite.at.in (winsock.at): Integrate it.
+ (MINGW_AT_CHECK_RUN): Accept a variant list of libraries when linking.
+ (MINGW_AT_LINK_LIBS_DEFAULT): New macro; it establishes the initial
+ default list of libraries, or resets the list to this initial default.
+ (MINGW_AT_LINK_LIBS): New macro; it establishes an augmented list of
+ library specifications, to be used until subsequently reset.
+
+2017-07-30 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Prepare and tag for release of MinGW.org WSL-5.0.1
+
+ * All files (wsl-5.0.1-release): Tag assigned.
+
+2017-07-12 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Automate testsuite dependency generation.
+
+ * tests/Makefile.in (testsuite) [$srcdir/*.at]: Automatically
+ enumerate all such wildcard matches as prerequisites, instead of...
+ (headers.at): ...this sole explicit dependency.
+
+2017-06-20 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Make <winnt.h> header effectively self-contained.
+
+ * include/winnt.h (_WINNT_H): Defer definition unless included via...
+ (windef.h): ...this; include it, to enforce inclusion order, then...
+ [_WINNT_H]: ...re-evaluate it, to avoid recursive inclusion loop.
+
+2017-06-12 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Consolidate <winuser.h> version specific conditionals.
+
+ * include/winuser.h: Reorganize file content; group manifest constant
+ definitions into one nested collection of conditional blocks, with one
+ block per Windows version evolution; do likewise for type definitions
+ and function prototypes which are always exposed, and separately...
+ [! defined NOGDI]: ...for those which may be suppressed, when GDI
+ support is not required.
+