]> git.sur5r.net Git - i3/i3/blobdiff - i3bar/src/ipc.c
Merge branch 'next' into master
[i3/i3] / i3bar / src / ipc.c
index cc3563ec0ad0039cc4867f79759c55e16a03e504..df5a12cfc73cb0929c68a4b2cd1ae62cf7d66fef 100644 (file)
@@ -34,7 +34,7 @@ typedef void (*handler_t)(char *);
  * Since i3 does not give us much feedback on commands, we do not much
  *
  */
-void got_command_reply(char *reply) {
+static void got_command_reply(char *reply) {
     /* TODO: Error handling for command replies */
 }
 
@@ -42,7 +42,7 @@ void got_command_reply(char *reply) {
  * Called, when we get a reply with workspaces data
  *
  */
-void got_workspace_reply(char *reply) {
+static void got_workspace_reply(char *reply) {
     DLOG("Got workspace data!\n");
     parse_workspaces_json(reply);
     draw_bars(false);
@@ -53,7 +53,7 @@ void got_workspace_reply(char *reply) {
  * Since i3 does not give us much feedback on commands, we do not much
  *
  */
-void got_subscribe_reply(char *reply) {
+static void got_subscribe_reply(char *reply) {
     DLOG("Got subscribe reply: %s\n", reply);
     /* TODO: Error handling for subscribe commands */
 }
@@ -62,7 +62,7 @@ void got_subscribe_reply(char *reply) {
  * Called, when we get a reply with outputs data
  *
  */
-void got_output_reply(char *reply) {
+static void got_output_reply(char *reply) {
     DLOG("Clearing old output configuration...\n");
     free_outputs();
 
@@ -87,7 +87,7 @@ void got_output_reply(char *reply) {
  * Called when we get the configuration for our bar instance
  *
  */
-void got_bar_config(char *reply) {
+static void got_bar_config(char *reply) {
     DLOG("Received bar config \"%s\"\n", reply);
     /* We initiate the main function by requesting infos about the outputs and
      * workspaces. Everything else (creating the bars, showing the right workspace-
@@ -114,20 +114,25 @@ void got_bar_config(char *reply) {
 
 /* Data structure to easily call the reply handlers later */
 handler_t reply_handlers[] = {
-    &got_command_reply,
-    &got_workspace_reply,
-    &got_subscribe_reply,
-    &got_output_reply,
-    NULL,
-    NULL,
-    &got_bar_config,
+    &got_command_reply,   /* I3_IPC_REPLY_TYPE_COMMAND */
+    &got_workspace_reply, /* I3_IPC_REPLY_TYPE_WORKSPACES */
+    &got_subscribe_reply, /* I3_IPC_REPLY_TYPE_SUBSCRIBE */
+    &got_output_reply,    /* I3_IPC_REPLY_TYPE_OUTPUTS */
+    NULL,                 /* I3_IPC_REPLY_TYPE_TREE */
+    NULL,                 /* I3_IPC_REPLY_TYPE_MARKS */
+    &got_bar_config,      /* I3_IPC_REPLY_TYPE_BAR_CONFIG */
+    NULL,                 /* I3_IPC_REPLY_TYPE_VERSION */
+    NULL,                 /* I3_IPC_REPLY_TYPE_BINDING_MODES */
+    NULL,                 /* I3_IPC_REPLY_TYPE_CONFIG */
+    NULL,                 /* I3_IPC_REPLY_TYPE_TICK */
+    NULL,                 /* I3_IPC_REPLY_TYPE_SYNC */
 };
 
 /*
  * Called, when a workspace event arrives (i.e. the user changed the workspace)
  *
  */
-void got_workspace_event(char *event) {
+static void got_workspace_event(char *event) {
     DLOG("Got workspace event!\n");
     i3_send_msg(I3_IPC_MESSAGE_TYPE_GET_WORKSPACES, NULL);
 }
@@ -136,7 +141,7 @@ void got_workspace_event(char *event) {
  * Called, when an output event arrives (i.e. the screen configuration changed)
  *
  */
-void got_output_event(char *event) {
+static void got_output_event(char *event) {
     DLOG("Got output event!\n");
     i3_send_msg(I3_IPC_MESSAGE_TYPE_GET_OUTPUTS, NULL);
     if (!config.disable_ws) {
@@ -148,7 +153,7 @@ void got_output_event(char *event) {
  * Called, when a mode event arrives (i3 changed binding mode).
  *
  */
-void got_mode_event(char *event) {
+static void got_mode_event(char *event) {
     DLOG("Got mode event!\n");
     parse_mode_json(event);
     draw_bars(false);
@@ -158,7 +163,7 @@ void got_mode_event(char *event) {
  * Called, when a barconfig_update event arrives (i.e. i3 changed the bar hidden_state or mode)
  *
  */
-void got_bar_config_update(char *event) {
+static void got_bar_config_update(char *event) {
     /* check whether this affect this bar instance by checking the bar_id */
     char *expected_id;
     sasprintf(&expected_id, "\"id\":\"%s\"", config.bar_id);
@@ -208,7 +213,7 @@ handler_t event_handlers[] = {
  * Called, when we get a message from i3
  *
  */
-void got_data(struct ev_loop *loop, ev_io *watcher, int events) {
+static void got_data(struct ev_loop *loop, ev_io *watcher, int events) {
     DLOG("Got data!\n");
     int fd = watcher->fd;
 
@@ -273,8 +278,8 @@ void got_data(struct ev_loop *loop, ev_io *watcher, int events) {
     buffer[size] = '\0';
 
     /* And call the callback (indexed by the type) */
-    if (type & (1 << 31)) {
-        type ^= 1 << 31;
+    if (type & (1UL << 31)) {
+        type ^= 1UL << 31;
         event_handlers[type](buffer);
     } else {
         if (reply_handlers[type])
@@ -304,7 +309,7 @@ int i3_send_msg(uint32_t type, const char *payload) {
     char *buffer = smalloc(to_write);
     char *walk = buffer;
 
-    strncpy(buffer, I3_IPC_MAGIC, strlen(I3_IPC_MAGIC));
+    memcpy(buffer, I3_IPC_MAGIC, strlen(I3_IPC_MAGIC));
     walk += strlen(I3_IPC_MAGIC);
     memcpy(walk, &len, sizeof(uint32_t));
     walk += sizeof(uint32_t);