OSDN Git Service

Redo the filters based on assumptions discussed in mingw-dvlpr list.
authorEarnie Boyd <earnie@users.sourceforge.net>
Fri, 7 Sep 2012 19:56:01 +0000 (15:56 -0400)
committerEarnie Boyd <earnie@users.sourceforge.net>
Fri, 7 Sep 2012 19:56:01 +0000 (15:56 -0400)
* include/_mingw.h (__AW): New macro.
(__AW__): Ditto.
* include/accctrl.h: Include _mingw.h.
Move #if _WIN32_WINNT filters to the end.
Rework the UNICODE definition mappings to the non-specific types.

ChangeLog
include/_mingw.h
include/accctrl.h

index 897a399..50ea711 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * include/windef.h: Remove definitions for _cdecl, __cdecl, _stdcall,
        __stdcall, _fastcall, __fastcall, WIN32, _WIN32 since they will always
        be defined.
+       * include/_mingw.h (__AW): New macro.
+       (__AW__): Ditto.
+       * include/accctrl.h: Include _mingw.h.
+       Move #if _WIN32_WINNT filters to the end.
+       Rework the UNICODE definition mappings to the non-specific types.
 
 2012-09-07  Earnie Boyd  <earnie@users.sourceforge.net>
 
index 5b36d85..dbde59e 100644 (file)
@@ -193,4 +193,15 @@ typedef struct localeinfo_struct {
   pthreadmbcinfo mbcinfo;
 } _locale_tstruct, *_locale_t;
 
+/* The __AW() definition will be used for mapping UNICODE versus ASCII versions
+ * to the non represented names.  This is accomplished by macro expansion of
+ * the symbol passed and concantenating either A or W to the symbol.
+ */
+#define __AW__(AW, AW_) AW ## AW_
+#if (defined(UNICODE) || defined(_UNICODE))
+#define __AW(AW) __AW__(AW, W)
+#else
+#define __AW(AW) __AW__(AW, A)
+#endif
+
 #endif /* __MINGW_H */
index 0ee788b..9780093 100644 (file)
@@ -24,6 +24,7 @@
 #ifndef _ACCCTRL_H
 #define _ACCCTRL_H
 #pragma GCC system_header
+#include <_mingw.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -297,6 +298,21 @@ typedef struct _OBJECTS_AND_NAME_W {
        LPWSTR   InheritedObjectTypeName;
        LPWSTR   ptstrName;
 } OBJECTS_AND_NAME_W, *POBJECTS_AND_NAME_W;
+
+#define ACCCTRL_DEFAULT_PROVIDER __AW(ACCCTRL_DEFAULT_PROVIDER)
+typedef __AW(TRUSTEE_) TRUSTEE_, *PTRUSTEE_;
+typedef __AW(TRUSTEE) TRUSTEE, *PTRUSTEE;
+typedef __AW(ACTRL_ACCESS) ACTRL_ACCESS, *PACTRL_ACCESS;
+typedef __AW(ACTRL_ACCESS_ENTRY_LIST) ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
+typedef __AW(ACTRL_ACCESS_INFO) ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
+typedef __AW(ACTRL_ACCESS_ENTRY) ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
+typedef __AW(ACTRL_AUDIT) ACTRL_AUDIT, *PACTRL_AUDIT;
+typedef __AW(ACTRL_CONTROL_INFO) ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
+typedef __AW(EXPLICIT_ACCESS_) EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
+typedef __AW(EXPLICIT_ACCESS) EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
+typedef __AW(TRUSTEE_ACCESS) TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
+typedef __AW(OBJECTS_AND_NAME_) OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
+
 #if (_WIN32_WINNT >= 0x0501)
 typedef struct {
        LONG     GenerationGap;
@@ -306,43 +322,9 @@ typedef struct {
        LONG     GenerationGap;
        LPWSTR   AncestorName;
 } INHERITED_FROMW, *PINHERITED_FROMW;
-#endif /* (_WIN32_WINNT >= 0x0501) */
 
-#ifdef UNICODE
-#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
-typedef TRUSTEE_W TRUSTEE_, *PTRUSTEE_;
-typedef TRUSTEEW TRUSTEE, *PTRUSTEE;
-typedef ACTRL_ACCESSW ACTRL_ACCESS, *PACTRL_ACCESS;
-typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
-typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
-typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
-typedef ACTRL_AUDITW ACTRL_AUDIT, *PACTRL_AUDIT;
-typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
-typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
-typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
-typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
-typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
-#if (_WIN32_WINNT >= 0x0501)
-typedef INHERITED_FROMW INHERITED_FROM, *PINHERITED_FROM;
-#endif
-#else
-#define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
-typedef TRUSTEE_A TRUSTEE_, *PTRUSTEE_;
-typedef TRUSTEEA TRUSTEE, *PTRUSTEE;
-typedef ACTRL_ACCESSA ACTRL_ACCESS, *PACTRL_ACCESS;
-typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST, *PACTRL_ACCESS_ENTRY_LIST;
-typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO, *PACTRL_ACCESS_INFO;
-typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY, *PACTRL_ACCESS_ENTRY;
-typedef ACTRL_AUDITA ACTRL_AUDIT, *PACTRL_AUDIT;
-typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO, *PACTRL_CONTROL_INFO;
-typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_, *PEXPLICIT_ACCESS_;
-typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS, *PEXPLICIT_ACCESS;
-typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS, *PTRUSTEE_ACCESS;
-typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_, *POBJECTS_AND_NAME_;
-#if (_WIN32_WINNT >= 0x0501)
-typedef INHERITED_FROMA INHERITED_FROM, *PINHERITED_FROM;
-#endif
-#endif /* UNICODE */
+typedef __AW(INHERITED_FROM) INHERITED_FROM, *PINHERITED_FROM;
+#endif /* (_WIN32_WINNT >= 0x0501) */
 
 #ifdef __cplusplus
 }