aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xquartz/sanitizedCocoa.h
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xquartz/sanitizedCocoa.h')
-rw-r--r--xorg-server/hw/xquartz/sanitizedCocoa.h91
1 files changed, 64 insertions, 27 deletions
diff --git a/xorg-server/hw/xquartz/sanitizedCocoa.h b/xorg-server/hw/xquartz/sanitizedCocoa.h
index 58de64c1c..5112ddf5a 100644
--- a/xorg-server/hw/xquartz/sanitizedCocoa.h
+++ b/xorg-server/hw/xquartz/sanitizedCocoa.h
@@ -1,27 +1,64 @@
-/*
- * Don't #include any of the AppKit, etc stuff directly since it will
- * pollute the X11 namespace.
- */
-
-#ifndef _XQ_SANITIZED_COCOA_H_
-#define _XQ_SANITIZED_COCOA_H_
-
-// QuickDraw in ApplicationServices has the following conflicts with
-// the basic X server headers. Use QD_<name> to use the QuickDraw
-// definition of any of these symbols, or the normal name for the
-// X11 definition.
-#define Cursor QD_Cursor
-#define WindowPtr QD_WindowPtr
-#define Picture QD_Picture
-#define BOOL OSX_BOOL
-#define EventType HIT_EventType
-
-#include <Cocoa/Cocoa.h>
-
-#undef Cursor
-#undef WindowPtr
-#undef Picture
-#undef BOOL
-#undef EventType
-
-#endif /* _XQ_SANITIZED_COCOA_H_ */
+/*
+ * Don't #include any of the AppKit, etc stuff directly since it will
+ * pollute the X11 namespace.
+ */
+
+#ifndef _XQ_SANITIZED_COCOA_H_
+#define _XQ_SANITIZED_COCOA_H_
+
+// QuickDraw in ApplicationServices has the following conflicts with
+// the basic X server headers. Use QD_<name> to use the QuickDraw
+// definition of any of these symbols, or the normal name for the
+// X11 definition.
+#define Cursor QD_Cursor
+#define WindowPtr QD_WindowPtr
+#define Picture QD_Picture
+#define BOOL OSX_BOOL
+#define EventType HIT_EventType
+
+#import <Cocoa/Cocoa.h>
+#import <Foundation/Foundation.h>
+
+#undef Cursor
+#undef WindowPtr
+#undef Picture
+#undef BOOL
+#undef EventType
+
+#ifndef __has_feature
+#define __has_feature(x) 0 // Compatibility with non-clang compilers.
+#endif
+
+#ifndef NS_RETURNS_RETAINED
+#if __has_feature(attribute_ns_returns_retained)
+#define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
+#else
+#define NS_RETURNS_RETAINED
+#endif
+#endif
+
+#ifndef NS_RETURNS_NOT_RETAINED
+#if __has_feature(attribute_ns_returns_not_retained)
+#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
+#else
+#define NS_RETURNS_NOT_RETAINED
+#endif
+#endif
+
+#ifndef CF_RETURNS_RETAINED
+#if __has_feature(attribute_cf_returns_retained)
+#define CF_RETURNS_RETAINED __attribute__((cf_returns_retained))
+#else
+#define CF_RETURNS_RETAINED
+#endif
+#endif
+
+#ifndef CF_RETURNS_NOT_RETAINED
+#if __has_feature(attribute_cf_returns_not_retained)
+#define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained))
+#else
+#define CF_RETURNS_NOT_RETAINED
+#endif
+#endif
+
+#endif /* _XQ_SANITIZED_COCOA_H_ */