]> Dogcows Code - chaz/openbox/blobdiff - plugins/menu/timed_menu.c
prefix the Timer->ObTimer and TimeoutHandler->ObTimeoutHandler shitz
[chaz/openbox] / plugins / menu / timed_menu.c
index d304b7b0840b7f4837b13f5ec8ab8c70c3b9bbf1..e7665b5642049e49fea033090936472504c241bf 100644 (file)
@@ -26,7 +26,7 @@ typedef enum {
 
 typedef struct {
     Timed_Menu_Type type;
-    Timer *timer;
+    ObTimer *timer;
     char *command; /* for the PIPE */
     char *buf; /* buffer to hold partially read menu */
     unsigned long buflen; /* how many bytes are in the buffer */
@@ -64,13 +64,16 @@ void timed_menu_clean_up(Menu *m) {
     TIMED_MENU_DATA(m)->mtime = 0;
 }
 
-void timed_menu_read_pipe(int fd, Menu *menu)
+void timed_menu_read_pipe(int fd, void *d)
 {
+    Menu *menu = d;
     char *tmpbuf = NULL;
     unsigned long num_read;
 #ifdef DEBUG
     /* because gdb is dumb */
+#if 0
     Timed_Menu_Data *d = TIMED_MENU_DATA(menu);
+#endif
 #endif
 
     unsigned long num_realloc;
@@ -120,10 +123,9 @@ void timed_menu_read_pipe(int fd, Menu *menu)
     }
 }
 
-void timed_menu_timeout_handler(Menu *data)
+void timed_menu_timeout_handler(void *d)
 {
-    Action *a;
-
+    Menu *data = d;
     if (!data->shown && TIMED_MENU_DATA(data)->fd == -1) {
         switch (TIMED_MENU_DATA(data)->type) {
             case (TIMED_MENU_PIPE): {
@@ -131,10 +133,13 @@ void timed_menu_timeout_handler(Menu *data)
                    as menu */
 
                 /* I hate you glib in all your hideous forms */
-                char *args[] = {"/bin/sh", "-c", TIMED_MENU_DATA(data)->command,
-                                NULL};
+                char *args[4];
                 int child_stdout;
                 int child_pid;
+                args[0] = "/bin/sh";
+                args[1] = "-c";
+                args[2] = TIMED_MENU_DATA(data)->command;
+                args[3] = NULL;
                 if (g_spawn_async_with_pipes(
                         NULL,
                         args,
@@ -203,6 +208,7 @@ void *plugin_create()
 
 void plugin_destroy (void *m)
 {
+    timed_menu_clean_up(m);
     /* this will be freed by timer_* */
     timer_stop( ((Timed_Menu_Data *)TIMED_MENU(m)->plugin_data)->timer);
     
This page took 0.024323 seconds and 4 git commands to generate.