Minor readability fixes, STREQ()-like macros added

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Majic 2011-11-17 07:38:39 -08:00 committed by Julien Danjou
parent dea949a1c8
commit 0e8fc995bb
12 changed files with 110 additions and 88 deletions

View File

@ -234,6 +234,9 @@ static inline int a_strcmp(const char *a, const char *b)
return strcmp(NONULL(a), NONULL(b)); return strcmp(NONULL(a), NONULL(b));
} }
#define A_STREQ(a, b) (((a) == (b)) || a_strcmp(a, b) == 0)
#define A_STRNEQ(a, b) (!A_STREQ(a, b))
/** \brief \c NULL resistant strcasecmp. /** \brief \c NULL resistant strcasecmp.
* \param[in] a the first string. * \param[in] a the first string.
* \param[in] b the second string. * \param[in] b the second string.
@ -245,6 +248,9 @@ static inline int a_strcasecmp(const char *a, const char *b)
return strcasecmp(NONULL(a), NONULL(b)); return strcasecmp(NONULL(a), NONULL(b));
} }
#define A_STREQ_CASE(a, b) (((a) == (b)) || a_strcasecmp(a, b) == 0)
#define A_STRNEQ_CASE(a, b) (!A_STRCASEEQ(a, b))
/** \brief \c NULL resistant strncmp. /** \brief \c NULL resistant strncmp.
* \param[in] a the first string. * \param[in] a the first string.
* \param[in] b the second string. * \param[in] b the second string.
@ -257,6 +263,9 @@ static inline int a_strncmp(const char *a, const char *b, ssize_t n)
return strncmp(NONULL(a), NONULL(b), n); return strncmp(NONULL(a), NONULL(b), n);
} }
#define A_STREQ_N(a, b, n) (((a) == (b)) || (n) == ((ssize_t) 0) || a_strncmp(a, b, n) == 0)
#define A_STRNEQ_N(a, b) (!A_STREQN(a, b))
ssize_t a_strncpy(char *dst, ssize_t n, const char *src, ssize_t l) __attribute__((nonnull(1))); ssize_t a_strncpy(char *dst, ssize_t n, const char *src, ssize_t l) __attribute__((nonnull(1)));
ssize_t a_strcpy(char *dst, ssize_t n, const char *src) __attribute__((nonnull(1))); ssize_t a_strcpy(char *dst, ssize_t n, const char *src) __attribute__((nonnull(1)));

View File

@ -114,7 +114,7 @@ xcursor_font_fromstr(const char *s)
{ {
if(s) if(s)
for(int i = 0; i < countof(xcursor_font); i++) for(int i = 0; i < countof(xcursor_font); i++)
if(xcursor_font[i] && !a_strcmp(s, xcursor_font[i])) if(xcursor_font[i] && A_STREQ(s, xcursor_font[i]))
return i; return i;
return 0; return 0;
} }

View File

@ -91,23 +91,23 @@ xutil_lock_mask_get(xcb_connection_t *connection,
uint16_t uint16_t
xutil_key_mask_fromstr(const char *keyname) xutil_key_mask_fromstr(const char *keyname)
{ {
if(a_strcmp(keyname, "Shift") == 0) if (A_STREQ(keyname, "Shift"))
return XCB_MOD_MASK_SHIFT; return XCB_MOD_MASK_SHIFT;
if(a_strcmp(keyname, "Lock") == 0) if (A_STREQ(keyname, "Lock"))
return XCB_MOD_MASK_LOCK; return XCB_MOD_MASK_LOCK;
if(a_strcmp(keyname, "Ctrl") == 0 || a_strcmp(keyname, "Control") == 0) if (A_STREQ(keyname, "Ctrl") || A_STREQ(keyname, "Control"))
return XCB_MOD_MASK_CONTROL; return XCB_MOD_MASK_CONTROL;
if(a_strcmp(keyname, "Mod1") == 0) if (A_STREQ(keyname, "Mod1"))
return XCB_MOD_MASK_1; return XCB_MOD_MASK_1;
if(a_strcmp(keyname, "Mod2") == 0) if(A_STREQ(keyname, "Mod2"))
return XCB_MOD_MASK_2; return XCB_MOD_MASK_2;
if(a_strcmp(keyname, "Mod3") == 0) if(A_STREQ(keyname, "Mod3"))
return XCB_MOD_MASK_3; return XCB_MOD_MASK_3;
if(a_strcmp(keyname, "Mod4") == 0) if(A_STREQ(keyname, "Mod4"))
return XCB_MOD_MASK_4; return XCB_MOD_MASK_4;
if(a_strcmp(keyname, "Mod5") == 0) if(A_STREQ(keyname, "Mod5"))
return XCB_MOD_MASK_5; return XCB_MOD_MASK_5;
if(a_strcmp(keyname, "Any") == 0) if(A_STREQ(keyname, "Any"))
/* this is misnamed but correct */ /* this is misnamed but correct */
return XCB_BUTTON_MASK_ANY; return XCB_BUTTON_MASK_ANY;
return XCB_NO_SYMBOL; return XCB_NO_SYMBOL;

4
dbus.c
View File

@ -657,9 +657,9 @@ a_dbus_cleanup(void)
static DBusConnection * static DBusConnection *
a_dbus_bus_getbyname(const char *name) a_dbus_bus_getbyname(const char *name)
{ {
if(a_strcmp(name, "system") == 0) if(A_STREQ(name, "system"))
return dbus_connection_system; return dbus_connection_system;
if(a_strcmp(name, "session") == 0) if(A_STREQ(name, "session"))
return dbus_connection_session; return dbus_connection_session;
return NULL; return NULL;
} }

2
draw.c
View File

@ -49,7 +49,7 @@ draw_iso2utf8(const char *iso, size_t len, char **dest, ssize_t *dlen)
static int8_t dont_need_convert = -1; static int8_t dont_need_convert = -1;
if(dont_need_convert == -1) if(dont_need_convert == -1)
dont_need_convert = !a_strcmp(nl_langinfo(CODESET), "UTF-8"); dont_need_convert = A_STREQ(nl_langinfo(CODESET), "UTF-8");
if(!len || dont_need_convert) if(!len || dont_need_convert)
return false; return false;

32
luaa.c
View File

@ -390,23 +390,31 @@ luaA_awesome_index(lua_State *L)
const char *buf = luaL_checkstring(L, 2); const char *buf = luaL_checkstring(L, 2);
if(a_strcmp(buf, "conffile") == 0) if(A_STREQ(buf, "conffile"))
lua_pushstring(L, conffile); {
else if(a_strcmp(buf, "version") == 0) lua_pushstring(L, conffile);
lua_pushliteral(L, AWESOME_VERSION); return 1;
else if(a_strcmp(buf, "release") == 0) }
lua_pushliteral(L, AWESOME_RELEASE);
else if(a_strcmp(buf, "startup_errors") == 0) if(A_STREQ(buf, "version"))
{
lua_pushliteral(L, AWESOME_VERSION);
return 1;
}
if(A_STREQ(buf, "release"))
{
lua_pushliteral(L, AWESOME_RELEASE);
return 1;
}
if(A_STREQ(buf, "startup_errors") && globalconf.startup_errors.len != 0)
{ {
if (globalconf.startup_errors.len == 0)
return 0;
lua_pushstring(L, globalconf.startup_errors.s); lua_pushstring(L, globalconf.startup_errors.s);
return 1; return 1;
} }
else
return 0;
return 1; return 0;
} }
/** Add a global signal. /** Add a global signal.

50
mouse.c
View File

@ -48,6 +48,7 @@ mouse_query_pointer(xcb_window_t window, int16_t *x, int16_t *y, xcb_window_t *c
*x = query_ptr_r->win_x; *x = query_ptr_r->win_x;
*y = query_ptr_r->win_y; *y = query_ptr_r->win_y;
if(child) if(child)
*child = query_ptr_r->child; *child = query_ptr_r->child;
@ -63,16 +64,10 @@ mouse_query_pointer(xcb_window_t window, int16_t *x, int16_t *y, xcb_window_t *c
* \param mask This will be set to the current buttons state. * \param mask This will be set to the current buttons state.
* \return True on success, false if an error occurred. * \return True on success, false if an error occurred.
*/ */
static bool static inline bool
mouse_query_pointer_root(int16_t *x, int16_t *y, xcb_window_t *child) mouse_query_pointer_root(int16_t *x, int16_t *y, xcb_window_t *child)
{ {
xcb_window_t root = globalconf.screen->root; return mouse_query_pointer(globalconf.screen->root, x, y, child);
if(mouse_query_pointer(root, x, y, child))
{
return true;
}
return false;
} }
/** Set the pointer position. /** Set the pointer position.
@ -84,7 +79,7 @@ static inline void
mouse_warp_pointer(xcb_window_t window, int x, int y) mouse_warp_pointer(xcb_window_t window, int x, int y)
{ {
xcb_warp_pointer(globalconf.connection, XCB_NONE, window, xcb_warp_pointer(globalconf.connection, XCB_NONE, window,
0, 0, 0, 0, x, y ); 0, 0, 0, 0, x, y);
} }
/** Mouse library. /** Mouse library.
@ -101,17 +96,15 @@ luaA_mouse_index(lua_State *L)
int16_t mouse_x, mouse_y; int16_t mouse_x, mouse_y;
screen_t *screen; screen_t *screen;
if(a_strcmp(attr, "screen") == 0) /* attr is not "screen"?! */
{ if (A_STRNEQ(attr, "screen"))
if(!mouse_query_pointer_root(&mouse_x, &mouse_y, NULL))
return 0;
screen = screen_getbycoord(mouse_x, mouse_y);
lua_pushnumber(L, screen_array_indexof(&globalconf.screens, screen) + 1);
} else
return 0; return 0;
if (!mouse_query_pointer_root(&mouse_x, &mouse_y, NULL))
return 0;
screen = screen_getbycoord(mouse_x, mouse_y);
lua_pushnumber(L, screen_array_indexof(&globalconf.screens, screen) + 1);
return 1; return 1;
} }
@ -126,17 +119,16 @@ luaA_mouse_newindex(lua_State *L)
int x, y = 0; int x, y = 0;
int screen; int screen;
if(a_strcmp(attr, "screen") == 0) if (A_STRNEQ(attr, "screen"))
{ return 0;
screen = luaL_checknumber(L, 3) - 1;
luaA_checkscreen(screen);
x = globalconf.screens.tab[screen].geometry.x; screen = luaL_checknumber(L, 3) - 1;
y = globalconf.screens.tab[screen].geometry.y; luaA_checkscreen(screen);
mouse_warp_pointer(globalconf.screen->root, x, y); x = globalconf.screens.tab[screen].geometry.x;
} y = globalconf.screens.tab[screen].geometry.y;
mouse_warp_pointer(globalconf.screen->root, x, y);
return 0; return 0;
} }
@ -223,13 +215,11 @@ luaA_mouse_object_under_pointer(lua_State *L)
drawin_t *drawin; drawin_t *drawin;
client_t *client; client_t *client;
if((drawin = drawin_getbywin(child))) if((drawin = drawin_getbywin(child)))
{
luaA_object_push(L, drawin); luaA_object_push(L, drawin);
return 1; if((client = client_getbyframewin(child)))
}
else if((client = client_getbyframewin(child)))
return luaA_object_push(globalconf.L, client); return luaA_object_push(globalconf.L, client);
return 0; return 0;

View File

@ -1587,7 +1587,7 @@ luaA_client_module_index(lua_State *L)
{ {
const char *buf = luaL_checkstring(L, 2); const char *buf = luaL_checkstring(L, 2);
if(a_strcmp(buf, "focus") == 0) if (A_STREQ(buf, "focus"))
return luaA_object_push(globalconf.L, globalconf.focus.client); return luaA_object_push(globalconf.L, globalconf.focus.client);
return 0; return 0;
} }
@ -1602,7 +1602,7 @@ luaA_client_module_newindex(lua_State *L)
const char *buf = luaL_checkstring(L, 2); const char *buf = luaL_checkstring(L, 2);
client_t *c; client_t *c;
if(a_strcmp(buf, "focus") == 0) if (A_STREQ(buf, "focus"))
{ {
c = luaA_checkudata(L, 3, &client_class); c = luaA_checkudata(L, 3, &client_class);
client_focus(c); client_focus(c);

View File

@ -251,33 +251,33 @@ luaA_window_set_type(lua_State *L, window_t *w)
window_type_t type; window_type_t type;
const char *buf = luaL_checkstring(L, -1); const char *buf = luaL_checkstring(L, -1);
if(a_strcmp(buf, "desktop") == 0) if (A_STREQ(buf, "desktop"))
type = WINDOW_TYPE_DESKTOP; type = WINDOW_TYPE_DESKTOP;
else if(a_strcmp(buf, "dock") == 0) else if(A_STREQ(buf, "dock"))
type = WINDOW_TYPE_DOCK; type = WINDOW_TYPE_DOCK;
else if(a_strcmp(buf, "splash") == 0) else if(A_STREQ(buf, "splash"))
type = WINDOW_TYPE_SPLASH; type = WINDOW_TYPE_SPLASH;
else if(a_strcmp(buf, "dialog") == 0) else if(A_STREQ(buf, "dialog"))
type = WINDOW_TYPE_DIALOG; type = WINDOW_TYPE_DIALOG;
else if(a_strcmp(buf, "menu") == 0) else if(A_STREQ(buf, "menu"))
type = WINDOW_TYPE_MENU; type = WINDOW_TYPE_MENU;
else if(a_strcmp(buf, "toolbar") == 0) else if(A_STREQ(buf, "toolbar"))
type = WINDOW_TYPE_TOOLBAR; type = WINDOW_TYPE_TOOLBAR;
else if(a_strcmp(buf, "utility") == 0) else if(A_STREQ(buf, "utility"))
type = WINDOW_TYPE_UTILITY; type = WINDOW_TYPE_UTILITY;
else if(a_strcmp(buf, "dropdown_menu") == 0) else if(A_STREQ(buf, "dropdown_menu"))
type = WINDOW_TYPE_DROPDOWN_MENU; type = WINDOW_TYPE_DROPDOWN_MENU;
else if(a_strcmp(buf, "popup_menu") == 0) else if(A_STREQ(buf, "popup_menu"))
type = WINDOW_TYPE_POPUP_MENU; type = WINDOW_TYPE_POPUP_MENU;
else if(a_strcmp(buf, "tooltip") == 0) else if(A_STREQ(buf, "tooltip"))
type = WINDOW_TYPE_TOOLTIP; type = WINDOW_TYPE_TOOLTIP;
else if(a_strcmp(buf, "notification") == 0) else if(A_STREQ(buf, "notification"))
type = WINDOW_TYPE_NOTIFICATION; type = WINDOW_TYPE_NOTIFICATION;
else if(a_strcmp(buf, "combo") == 0) else if(A_STREQ(buf, "combo"))
type = WINDOW_TYPE_COMBO; type = WINDOW_TYPE_COMBO;
else if(a_strcmp(buf, "dnd") == 0) else if(A_STREQ(buf, "dnd"))
type = WINDOW_TYPE_DND; type = WINDOW_TYPE_DND;
else if(a_strcmp(buf, "normal") == 0) else if(A_STREQ(buf, "normal"))
type = WINDOW_TYPE_NORMAL; type = WINDOW_TYPE_NORMAL;
else else
{ {
@ -289,9 +289,10 @@ luaA_window_set_type(lua_State *L, window_t *w)
{ {
w->type = type; w->type = type;
if(w->window != XCB_WINDOW_NONE) if(w->window != XCB_WINDOW_NONE)
ewmh_update_window_type(w->window, window_translate_type(type)); ewmh_update_window_type(w->window, window_translate_type(w->type));
luaA_object_emit_signal(globalconf.L, -3, "property::type", 0); luaA_object_emit_signal(globalconf.L, -3, "property::type", 0);
} }
return 0; return 0;
} }

10
root.c
View File

@ -55,27 +55,27 @@ luaA_root_fake_input(lua_State *L)
uint8_t type, detail; uint8_t type, detail;
int x = 0, y = 0; int x = 0, y = 0;
if(a_strcmp(stype, "key_press") == 0) if (A_STREQ(stype, "key_press"))
{ {
type = XCB_KEY_PRESS; type = XCB_KEY_PRESS;
detail = luaL_checknumber(L, 2); /* keycode */ detail = luaL_checknumber(L, 2); /* keycode */
} }
else if(a_strcmp(stype, "key_release") == 0) else if(A_STREQ(stype, "key_release"))
{ {
type = XCB_KEY_RELEASE; type = XCB_KEY_RELEASE;
detail = luaL_checknumber(L, 2); /* keycode */ detail = luaL_checknumber(L, 2); /* keycode */
} }
else if(a_strcmp(stype, "button_press") == 0) else if(A_STREQ(stype, "button_press"))
{ {
type = XCB_BUTTON_PRESS; type = XCB_BUTTON_PRESS;
detail = luaL_checknumber(L, 2); /* button number */ detail = luaL_checknumber(L, 2); /* button number */
} }
else if(a_strcmp(stype, "button_release") == 0) else if(A_STREQ(stype, "button_release"))
{ {
type = XCB_BUTTON_RELEASE; type = XCB_BUTTON_RELEASE;
detail = luaL_checknumber(L, 2); /* button number */ detail = luaL_checknumber(L, 2); /* button number */
} }
else if(a_strcmp(stype, "motion_notify") == 0) else if(A_STREQ(stype, "motion_notify"))
{ {
type = XCB_MOTION_NOTIFY; type = XCB_MOTION_NOTIFY;
detail = luaA_checkboolean(L, 2); /* relative to the current position or not */ detail = luaA_checkboolean(L, 2); /* relative to the current position or not */

View File

@ -425,7 +425,7 @@ luaA_screen_module_index(lua_State *L)
if((name = lua_tostring(L, 2))) if((name = lua_tostring(L, 2)))
foreach(screen, globalconf.screens) foreach(screen, globalconf.screens)
foreach(output, screen->outputs) foreach(output, screen->outputs)
if(!a_strcmp(output->name, name)) if(A_STREQ(output->name, name))
return luaA_pushscreen(L, screen); return luaA_pushscreen(L, screen);
int screen = luaL_checknumber(L, 2) - 1; int screen = luaL_checknumber(L, 2) - 1;
@ -505,29 +505,43 @@ luaA_screen_index(lua_State *L)
ps = luaL_checkudata(L, 1, "screen"); ps = luaL_checkudata(L, 1, "screen");
s = *ps; s = *ps;
if(a_strcmp(buf, "index") == 0) if(A_STREQ(buf, "index"))
{
lua_pushinteger(L, screen_array_indexof(&globalconf.screens, s) + 1); lua_pushinteger(L, screen_array_indexof(&globalconf.screens, s) + 1);
else if(a_strcmp(buf, "geometry") == 0) return 1;
}
if(A_STREQ(buf, "geometry"))
{
luaA_pusharea(L, s->geometry); luaA_pusharea(L, s->geometry);
else if(a_strcmp(buf, "workarea") == 0) return 1;
}
if(A_STREQ(buf, "workarea"))
{
luaA_pusharea(L, screen_area_get(s, true)); luaA_pusharea(L, screen_area_get(s, true));
else if(a_strcmp(buf, "outputs") == 0) return 1;
}
if(A_STREQ(buf, "outputs"))
{ {
lua_createtable(L, 0, s->outputs.len); lua_createtable(L, 0, s->outputs.len);
foreach(output, s->outputs) foreach(output, s->outputs)
{ {
lua_createtable(L, 2, 0); lua_createtable(L, 2, 0);
lua_pushinteger(L, output->mm_width); lua_pushinteger(L, output->mm_width);
lua_setfield(L, -2, "mm_width"); lua_setfield(L, -2, "mm_width");
lua_pushinteger(L, output->mm_height); lua_pushinteger(L, output->mm_height);
lua_setfield(L, -2, "mm_height"); lua_setfield(L, -2, "mm_height");
lua_setfield(L, -2, output->name); lua_setfield(L, -2, output->name);
} }
/* The table of tables we created. */
return 1;
} }
else
return 0;
return 1; return 0;
} }
/** A screen. /** A screen.

View File

@ -210,17 +210,17 @@ spawn_start_notify(client_t *c, const char * startup_id)
bool found = false; bool found = false;
const char *seqid = sn_startup_sequence_get_id(seq); const char *seqid = sn_startup_sequence_get_id(seq);
if(!a_strcmp(seqid, startup_id)) if (A_STRNEQ(seqid, startup_id))
found = true; found = true;
else else
{ {
const char *seqclass = sn_startup_sequence_get_wmclass(seq); const char *seqclass = sn_startup_sequence_get_wmclass(seq);
if(!a_strcmp(seqclass, c->class) || !a_strcmp(seqclass, c->instance)) if (A_STREQ(seqclass, c->class) || A_STREQ(seqclass, c->instance))
found = true; found = true;
else else
{ {
const char *seqbin = sn_startup_sequence_get_binary_name(seq); const char *seqbin = sn_startup_sequence_get_binary_name(seq);
if(!a_strcasecmp(seqbin, c->class) || !a_strcasecmp(seqbin, c->instance)) if (A_STREQ_CASE(seqbin, c->class) || A_STREQ_CASE(seqbin, c->instance))
found = true; found = true;
} }
} }