static uint8_t xkb_base_event;
static uint8_t xkb_base_error;
-static void finish();
+static void finish(void);
#include "GENERATED_config_enums.h"
static void clear_stack(void) {
for (int c = 0; c < 10; c++) {
- if (stack[c].type == STACK_STR && stack[c].val.str != NULL)
+ if (stack[c].type == STACK_STR)
free(stack[c].val.str);
stack[c].identifier = NULL;
stack[c].val.str = NULL;
* Handles expose events, that is, draws the window contents.
*
*/
-static int handle_expose() {
+static int handle_expose(void) {
const color_t black = draw_util_hex_to_color("#000000");
const color_t white = draw_util_hex_to_color("#FFFFFF");
const color_t green = draw_util_hex_to_color("#00FF00");
* Creates the config file and tells i3 to reload.
*
*/
-static void finish() {
+static void finish(void) {
printf("creating \"%s\"...\n", config_path);
struct xkb_context *xkb_context;
int screen;
if ((conn = xcb_connect(NULL, &screen)) == NULL ||
xcb_connection_has_error(conn))
- errx(1, "Cannot open display\n");
+ errx(1, "Cannot open display");
if (xkb_x11_setup_xkb_extension(conn,
XKB_X11_MIN_MAJOR_XKB_VERSION,
/* Init startup notification. */
SnDisplay *sndisplay = sn_xcb_display_new(conn, NULL, NULL);
SnLauncheeContext *sncontext = sn_launchee_context_new_from_environment(sndisplay, screen);
+ sn_display_unref(sndisplay);
root_screen = xcb_aux_get_screen(conn, screen);
root = root_screen->root;
if (!(modmap_reply = xcb_get_modifier_mapping_reply(conn, modmap_cookie, NULL)))
- errx(EXIT_FAILURE, "Could not get modifier mapping\n");
+ errx(EXIT_FAILURE, "Could not get modifier mapping");
xcb_numlock_mask = get_mod_mask_for(XCB_NUM_LOCK, symbols, modmap_reply);
0, /* back pixel: black */
XCB_EVENT_MASK_EXPOSURE |
XCB_EVENT_MASK_BUTTON_PRESS});
- sn_launchee_context_setup_window(sncontext, win);
+ if (sncontext) {
+ sn_launchee_context_setup_window(sncontext, win);
+ }
/* Map the window (make it visible) */
xcb_map_window(conn, win);
do { \
xcb_intern_atom_reply_t *reply = xcb_intern_atom_reply(conn, name##_cookie, NULL); \
if (!reply) \
- errx(EXIT_FAILURE, "Could not get atom " #name "\n"); \
+ errx(EXIT_FAILURE, "Could not get atom " #name); \
\
A_##name = reply->atom; \
free(reply); \
}
/* Startup complete. */
- sn_launchee_context_complete(sncontext);
- sn_launchee_context_unref(sncontext);
- sn_display_unref(sndisplay);
+ if (sncontext) {
+ sn_launchee_context_complete(sncontext);
+ sn_launchee_context_unref(sncontext);
+ }
xcb_flush(conn);