From 58f8d2c151d95bb920d346dcae3e6c429789f257 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Fri, 20 Jul 2012 17:09:49 +0300 Subject: [PATCH] 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 --- src/context.c | 18 +++++++++--------- src/keymap-dump.c | 2 +- src/keysym-utf.c | 4 ++-- src/keysym.c | 4 ++-- src/map.c | 24 ++++++++++++------------ src/state.c | 32 ++++++++++++++++---------------- src/utils.h | 37 ++++++++++++++++++++++++++++--------- src/xkbcomp/xkbcomp.c | 10 +++++----- 8 files changed, 75 insertions(+), 56 deletions(-) diff --git a/src/context.c b/src/context.c index 957d716..a0bb9a9 100644 --- a/src/context.c +++ b/src/context.c @@ -45,7 +45,7 @@ struct xkb_context { /** * Append one directory to the context's include path. */ -_X_EXPORT int +XKB_EXPORT int xkb_context_include_path_append(struct xkb_context *ctx, const char *path) { struct stat stat_buf; @@ -77,7 +77,7 @@ xkb_context_include_path_append(struct xkb_context *ctx, const char *path) /** * Append the default include directories to the context. */ -_X_EXPORT int +XKB_EXPORT int xkb_context_include_path_append_default(struct xkb_context *ctx) { const char *home; @@ -101,7 +101,7 @@ xkb_context_include_path_append_default(struct xkb_context *ctx) /** * Remove all entries in the context's include path. */ -_X_EXPORT void +XKB_EXPORT void xkb_context_include_path_clear(struct xkb_context *ctx) { char **path; @@ -115,7 +115,7 @@ xkb_context_include_path_clear(struct xkb_context *ctx) /** * xkb_context_include_path_clear() + xkb_context_include_path_append_default() */ -_X_EXPORT int +XKB_EXPORT int xkb_context_include_path_reset_defaults(struct xkb_context *ctx) { xkb_context_include_path_clear(ctx); @@ -125,7 +125,7 @@ xkb_context_include_path_reset_defaults(struct xkb_context *ctx) /** * Returns the number of entries in the context's include path. */ -_X_EXPORT unsigned int +XKB_EXPORT unsigned int xkb_context_num_include_paths(struct xkb_context *ctx) { return darray_size(ctx->includes); @@ -135,7 +135,7 @@ xkb_context_num_include_paths(struct xkb_context *ctx) * Returns the given entry in the context's include path, or NULL if an * invalid index is passed. */ -_X_EXPORT const char * +XKB_EXPORT const char * xkb_context_include_path_get(struct xkb_context *ctx, unsigned int idx) { if (idx >= xkb_context_num_include_paths(ctx)) @@ -153,7 +153,7 @@ xkb_context_take_file_id(struct xkb_context *ctx) /** * Take a new reference on the context. */ -_X_EXPORT struct xkb_context * +XKB_EXPORT struct xkb_context * xkb_context_ref(struct xkb_context *ctx) { ctx->refcnt++; @@ -164,7 +164,7 @@ xkb_context_ref(struct xkb_context *ctx) * Drop an existing reference on the context, and free it if the refcnt is * now 0. */ -_X_EXPORT void +XKB_EXPORT void xkb_context_unref(struct xkb_context *ctx) { if (--ctx->refcnt > 0) @@ -178,7 +178,7 @@ xkb_context_unref(struct xkb_context *ctx) /** * Create a new context. */ -_X_EXPORT struct xkb_context * +XKB_EXPORT struct xkb_context * xkb_context_new(enum xkb_context_flags flags) { struct xkb_context *ctx = calloc(1, sizeof(*ctx)); diff --git a/src/keymap-dump.c b/src/keymap-dump.c index 46f2139..263afad 100644 --- a/src/keymap-dump.c +++ b/src/keymap-dump.c @@ -934,7 +934,7 @@ write_symbols(struct xkb_keymap *keymap, char **buf, size_t *size, return true; } -_X_EXPORT char * +XKB_EXPORT char * xkb_map_get_as_string(struct xkb_keymap *keymap) { char *ret = NULL; diff --git a/src/keysym-utf.c b/src/keysym-utf.c index 99cbfcd..6da5cd4 100644 --- a/src/keysym-utf.c +++ b/src/keysym-utf.c @@ -843,7 +843,7 @@ struct codepair { { 0xffbd, 0x003d }, /* KP_Equal = EQUAL SIGN */ }; -_X_EXPORT uint32_t +XKB_EXPORT uint32_t xkb_keysym_to_utf32(xkb_keysym_t keysym) { int min = 0; @@ -943,7 +943,7 @@ utf32_to_utf8(uint32_t unichar, char *buffer) return length + 1; } -_X_EXPORT int +XKB_EXPORT int xkb_keysym_to_utf8(xkb_keysym_t keysym, char *buffer, size_t size) { uint32_t codepoint; diff --git a/src/keysym.c b/src/keysym.c index 5451dc8..6faaa25 100644 --- a/src/keysym.c +++ b/src/keysym.c @@ -32,7 +32,7 @@ #include "xkb-priv.h" #include "ks_tables.h" -_X_EXPORT void +XKB_EXPORT void xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size) { int i, n, h, idx; @@ -80,7 +80,7 @@ xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size) snprintf(buffer, size, "0x%08x", ks); } -_X_EXPORT xkb_keysym_t +XKB_EXPORT xkb_keysym_t xkb_keysym_from_name(const char *s) { int i, n, h, c, idx; diff --git a/src/map.c b/src/map.c index b9c9874..941914e 100644 --- a/src/map.c +++ b/src/map.c @@ -54,7 +54,7 @@ /** * Returns the total number of modifiers active in the keymap. */ -_X_EXPORT xkb_mod_index_t +XKB_EXPORT xkb_mod_index_t xkb_map_num_mods(struct xkb_keymap *keymap) { xkb_mod_index_t i; @@ -71,7 +71,7 @@ xkb_map_num_mods(struct xkb_keymap *keymap) /** * Return the name for a given modifier. */ -_X_EXPORT const char * +XKB_EXPORT const char * xkb_map_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx) { if (idx >= xkb_map_num_mods(keymap)) @@ -106,7 +106,7 @@ xkb_map_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx) /** * Returns the index for a named modifier. */ -_X_EXPORT xkb_mod_index_t +XKB_EXPORT xkb_mod_index_t xkb_map_mod_get_index(struct xkb_keymap *keymap, const char *name) { xkb_mod_index_t i; @@ -139,7 +139,7 @@ xkb_map_mod_get_index(struct xkb_keymap *keymap, const char *name) /** * Return the total number of active groups in the keymap. */ -_X_EXPORT xkb_group_index_t +XKB_EXPORT xkb_group_index_t xkb_map_num_groups(struct xkb_keymap *keymap) { xkb_group_index_t ret = 0; @@ -155,7 +155,7 @@ xkb_map_num_groups(struct xkb_keymap *keymap) /** * Returns the name for a given group. */ -_X_EXPORT const char * +XKB_EXPORT const char * xkb_map_group_get_name(struct xkb_keymap *keymap, xkb_group_index_t idx) { if (idx >= xkb_map_num_groups(keymap)) @@ -167,7 +167,7 @@ xkb_map_group_get_name(struct xkb_keymap *keymap, xkb_group_index_t idx) /** * Returns the index for a named group. */ -_X_EXPORT xkb_group_index_t +XKB_EXPORT xkb_group_index_t xkb_map_group_get_index(struct xkb_keymap *keymap, const char *name) { xkb_group_index_t num_groups = xkb_map_num_groups(keymap); @@ -184,7 +184,7 @@ xkb_map_group_get_index(struct xkb_keymap *keymap, const char *name) /** * Returns the number of groups active for a particular key. */ -_X_EXPORT xkb_group_index_t +XKB_EXPORT xkb_group_index_t xkb_key_num_groups(struct xkb_keymap *keymap, xkb_keycode_t kc) { if (XkbKeycodeInRange(keymap, kc)) @@ -195,7 +195,7 @@ xkb_key_num_groups(struct xkb_keymap *keymap, xkb_keycode_t kc) /** * Return the total number of active LEDs in the keymap. */ -_X_EXPORT xkb_led_index_t +XKB_EXPORT xkb_led_index_t xkb_map_num_leds(struct xkb_keymap *keymap) { xkb_led_index_t ret = 0; @@ -213,7 +213,7 @@ xkb_map_num_leds(struct xkb_keymap *keymap) /** * Returns the name for a given group. */ -_X_EXPORT const char * +XKB_EXPORT const char * xkb_map_led_get_name(struct xkb_keymap *keymap, xkb_led_index_t idx) { if (idx >= xkb_map_num_leds(keymap)) @@ -225,7 +225,7 @@ xkb_map_led_get_name(struct xkb_keymap *keymap, xkb_led_index_t idx) /** * Returns the index for a named group. */ -_X_EXPORT xkb_group_index_t +XKB_EXPORT xkb_group_index_t xkb_map_led_get_index(struct xkb_keymap *keymap, const char *name) { xkb_led_index_t num_leds = xkb_map_num_leds(keymap); @@ -336,7 +336,7 @@ err: * Provides the symbols to use for the given key and state. Returns the * number of symbols pointed to in syms_out. */ -_X_EXPORT int +XKB_EXPORT int xkb_key_get_syms(struct xkb_state *state, xkb_keycode_t kc, const xkb_keysym_t **syms_out) { @@ -368,7 +368,7 @@ err: /** * Simple boolean specifying whether or not the key should repeat. */ -_X_EXPORT int +XKB_EXPORT int xkb_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc) { if (!XkbKeycodeInRange(keymap, kc)) diff --git a/src/state.c b/src/state.c index 6b0dae3..f527c90 100644 --- a/src/state.c +++ b/src/state.c @@ -479,7 +479,7 @@ xkb_filter_apply_all(struct xkb_state *state, xkb_keycode_t kc, return; } -_X_EXPORT struct xkb_state * +XKB_EXPORT struct xkb_state * xkb_state_new(struct xkb_keymap *keymap) { struct xkb_state *ret; @@ -497,14 +497,14 @@ xkb_state_new(struct xkb_keymap *keymap) return ret; } -_X_EXPORT struct xkb_state * +XKB_EXPORT struct xkb_state * xkb_state_ref(struct xkb_state *state) { state->refcnt++; return state; } -_X_EXPORT void +XKB_EXPORT void xkb_state_unref(struct xkb_state *state) { state->refcnt--; @@ -517,7 +517,7 @@ xkb_state_unref(struct xkb_state *state) free(state); } -_X_EXPORT struct xkb_keymap * +XKB_EXPORT struct xkb_keymap * xkb_state_get_map(struct xkb_state *state) { return state->keymap; @@ -593,7 +593,7 @@ xkb_state_update_derived(struct xkb_state *state) * Given a particular key event, updates the state structure to reflect the * new modifiers. */ -_X_EXPORT void +XKB_EXPORT void xkb_state_update_key(struct xkb_state *state, xkb_keycode_t kc, enum xkb_key_direction direction) { @@ -634,7 +634,7 @@ xkb_state_update_key(struct xkb_state *state, xkb_keycode_t kc, * lossy, and should only be used to update a slave state mirroring the * master, e.g. in a client/server window system. */ -_X_EXPORT void +XKB_EXPORT void xkb_state_update_mask(struct xkb_state *state, xkb_mod_mask_t base_mods, xkb_mod_mask_t latched_mods, @@ -669,7 +669,7 @@ xkb_state_update_mask(struct xkb_state *state, * Serialises the requested modifier state into an xkb_mod_mask_t, with all * the same disclaimers as in xkb_state_update_mask. */ -_X_EXPORT xkb_mod_mask_t +XKB_EXPORT xkb_mod_mask_t xkb_state_serialize_mods(struct xkb_state *state, enum xkb_state_component type) { @@ -692,7 +692,7 @@ xkb_state_serialize_mods(struct xkb_state *state, * Serialises the requested group state, with all the same disclaimers as * in xkb_state_update_mask. */ -_X_EXPORT xkb_group_index_t +XKB_EXPORT xkb_group_index_t xkb_state_serialize_group(struct xkb_state *state, enum xkb_state_component type) { @@ -715,7 +715,7 @@ xkb_state_serialize_group(struct xkb_state *state, * Returns 1 if the given modifier is active with the specified type(s), 0 if * not, or -1 if the modifier is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_mod_index_is_active(struct xkb_state *state, xkb_mod_index_t idx, enum xkb_state_component type) @@ -760,7 +760,7 @@ match_mod_masks(struct xkb_state *state, enum xkb_state_match match, * Returns 1 if the modifiers are active with the specified type(s), 0 if * not, or -1 if any of the modifiers are invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_mod_indices_are_active(struct xkb_state *state, enum xkb_state_component type, enum xkb_state_match match, @@ -793,7 +793,7 @@ xkb_state_mod_indices_are_active(struct xkb_state *state, * Returns 1 if the given modifier is active with the specified type(s), 0 if * not, or -1 if the modifier is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_mod_name_is_active(struct xkb_state *state, const char *name, enum xkb_state_component type) { @@ -809,7 +809,7 @@ xkb_state_mod_name_is_active(struct xkb_state *state, const char *name, * Returns 1 if the modifiers are active with the specified type(s), 0 if * not, or -1 if any of the modifiers are invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_mod_names_are_active(struct xkb_state *state, enum xkb_state_component type, enum xkb_state_match match, @@ -845,7 +845,7 @@ xkb_state_mod_names_are_active(struct xkb_state *state, * Returns 1 if the given group is active with the specified type(s), 0 if * not, or -1 if the group is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_group_index_is_active(struct xkb_state *state, xkb_group_index_t idx, enum xkb_state_component type) @@ -869,7 +869,7 @@ xkb_state_group_index_is_active(struct xkb_state *state, * Returns 1 if the given modifier is active with the specified type(s), 0 if * not, or -1 if the modifier is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_group_name_is_active(struct xkb_state *state, const char *name, enum xkb_state_component type) { @@ -884,7 +884,7 @@ xkb_state_group_name_is_active(struct xkb_state *state, const char *name, /** * Returns 1 if the given LED is active, 0 if not, or -1 if the LED is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_led_index_is_active(struct xkb_state *state, xkb_led_index_t idx) { if (idx >= xkb_map_num_leds(state->keymap)) @@ -896,7 +896,7 @@ xkb_state_led_index_is_active(struct xkb_state *state, xkb_led_index_t idx) /** * Returns 1 if the given LED is active, 0 if not, or -1 if the LED is invalid. */ -_X_EXPORT int +XKB_EXPORT int xkb_state_led_name_is_active(struct xkb_state *state, const char *name) { xkb_led_index_t idx = xkb_map_led_get_index(state->keymap, name); 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 #include -#include - /* * 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 ? "" : (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 */ diff --git a/src/xkbcomp/xkbcomp.c b/src/xkbcomp/xkbcomp.c index 56839a5..32eab6d 100644 --- a/src/xkbcomp/xkbcomp.c +++ b/src/xkbcomp/xkbcomp.c @@ -231,7 +231,7 @@ xkb_map_new_from_kccgst(struct xkb_context *ctx, return keymap; } -_X_EXPORT struct xkb_keymap * +XKB_EXPORT struct xkb_keymap * xkb_map_new_from_names(struct xkb_context *ctx, const struct xkb_rule_names *rmlvo, enum xkb_map_compile_flags flags) @@ -262,7 +262,7 @@ xkb_map_new_from_names(struct xkb_context *ctx, return keymap; } -_X_EXPORT struct xkb_keymap * +XKB_EXPORT struct xkb_keymap * xkb_map_new_from_string(struct xkb_context *ctx, const char *string, enum xkb_keymap_format format, @@ -293,7 +293,7 @@ xkb_map_new_from_string(struct xkb_context *ctx, return keymap; } -_X_EXPORT struct xkb_keymap * +XKB_EXPORT struct xkb_keymap * xkb_map_new_from_file(struct xkb_context *ctx, FILE *file, enum xkb_keymap_format format, @@ -324,14 +324,14 @@ xkb_map_new_from_file(struct xkb_context *ctx, return keymap; } -_X_EXPORT struct xkb_keymap * +XKB_EXPORT struct xkb_keymap * xkb_map_ref(struct xkb_keymap *keymap) { keymap->refcnt++; return keymap; } -_X_EXPORT void +XKB_EXPORT void xkb_map_unref(struct xkb_keymap *keymap) { if (!keymap || --keymap->refcnt > 0) -- 2.7.4