diff options
author | Ran Benita <ran234@gmail.com> | 2012-07-20 17:09:49 +0300 |
---|---|---|
committer | Ran Benita <ran234@gmail.com> | 2012-07-23 00:45:34 +0300 |
commit | 58f8d2c151d95bb920d346dcae3e6c429789f257 (patch) | |
tree | a139293984137a8156d776770da65d5ce0c9394c /src/utils.h | |
parent | 8b0e9f929c66a0ceaed599cd1730d0782c486353 (diff) | |
download | libxkbcommon-58f8d2c151d95bb920d346dcae3e6c429789f257.tar.gz libxkbcommon-58f8d2c151d95bb920d346dcae3e6c429789f257.tar.bz2 libxkbcommon-58f8d2c151d95bb920d346dcae3e6c429789f257.zip |
utils: remove Xfuncproto.h and use our own macros
Add XKB_EXPORT to replace _X_EXPORT, and copy the definitions of
_X_ATTRIBUTE_FOO as ATTR_FOO.
Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src/utils.h')
-rw-r--r-- | src/utils.h | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/src/utils.h b/src/utils.h index 808086c..438660d 100644 --- a/src/utils.h +++ b/src/utils.h @@ -33,8 +33,6 @@ #include <stdio.h> #include <stdlib.h> -#include <X11/Xfuncproto.h> - /* * We sometimes malloc strings and then expose them as const char*'s. This * macro is used when we free these strings in order to avoid -Wcast-qual @@ -46,40 +44,61 @@ #define uStringText(s) ((s) == NULL ? "<NullString>" : (s)) #define uStrCasePrefix(s1, s2) (strncasecmp((s1), (s2), strlen(s1)) == 0) -/***====================================================================***/ +/* Compiler Attributes */ + +#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__) +# define XKB_EXPORT __attribute__((visibility("default"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +# define XKB_EXPORT __global +#else /* not gcc >= 4 and not Sun Studio >= 8 */ +# define XKB_EXPORT +#endif + +#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203) +# define ATTR_PRINTF(x,y) __attribute__((__format__(__printf__, x, y))) +#else /* not gcc >= 2.3 */ +# define ATTR_PRINTF(x,y) +#endif + +#if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ + || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +# define ATTR_NORETURN __attribute__((__noreturn__)) +#else +# define ATTR_NORETURN +#endif /* GNUC */ extern bool uSetErrorFile(char *name); #define INFO uInformation -extern _X_ATTRIBUTE_PRINTF(1, 2) void +ATTR_PRINTF(1, 2) void uInformation(const char *s, ...); #define ACTION uAction -extern _X_ATTRIBUTE_PRINTF(1, 2) void +ATTR_PRINTF(1, 2) void uAction(const char *s, ...); #define WARN uWarning -extern _X_ATTRIBUTE_PRINTF(1, 2) void +ATTR_PRINTF(1, 2) void uWarning(const char *s, ...); #define ERROR uError -extern _X_ATTRIBUTE_PRINTF(1, 2) void +ATTR_PRINTF(1, 2) void uError(const char *s, ...); #define FATAL uFatalError -extern _X_ATTRIBUTE_PRINTF(1, 2) _X_NORETURN void +ATTR_PRINTF(1, 2) ATTR_NORETURN void uFatalError(const char *s, ...); /* WSGO stands for "Weird Stuff Going On" (wtf???) */ #define WSGO uInternalError -extern _X_ATTRIBUTE_PRINTF(1, 2) void +ATTR_PRINTF(1, 2) void uInternalError(const char *s, ...); #endif /* UTILS_H */ |