static void sig_func(const void *p1, const void *p2, const void *p3, const void *p4, const void *p5, const void *p6) { PERL_SIGNAL_REC *rec; const void *args[6]; args[0] = p1; args[1] = p2; args[2] = p3; args[3] = p4; args[4] = p5; args[5] = p6; rec = signal_get_user_data(); perl_call_signal(rec->script, rec->func, signal_get_emitted_id(), args); }
static void statusbar_update_item(void) { GSList *items; items = g_hash_table_lookup(sbar_signal_items, GINT_TO_POINTER(signal_get_emitted_id())); while (items != NULL) { SBAR_ITEM_REC *item = items->data; statusbar_item_redraw(item); items = items->next; } }
static void statusbar_update_window(WINDOW_REC *window) { WINDOW_REC *item_window; GSList *items; items = g_hash_table_lookup(sbar_signal_items, GINT_TO_POINTER(signal_get_emitted_id())); while (items != NULL) { SBAR_ITEM_REC *item = items->data; item_window = item->bar->parent_window != NULL ? item->bar->parent_window->active : active_win; if (item_window == window) statusbar_item_redraw(item); items = items->next; } }
static void statusbar_update_server(SERVER_REC *server) { SERVER_REC *item_server; GSList *items; items = g_hash_table_lookup(sbar_signal_items, GINT_TO_POINTER(signal_get_emitted_id())); while (items != NULL) { SBAR_ITEM_REC *item = items->data; item_server = item->bar->parent_window != NULL ? item->bar->parent_window->active->active_server : active_win->active_server; if (item_server == server) statusbar_item_redraw(item); items = items->next; } }