void weechat_shutdown (int return_code, int crash) { gui_chat_print_lines_waiting_buffer (stderr); log_close (); network_end (); debug_end (); if (weechat_argv0) free (weechat_argv0); if (weechat_home) free (weechat_home); if (weechat_local_charset) free (weechat_local_charset); if (weechat_force_plugin_autoload) free (weechat_force_plugin_autoload); if (weechat_startup_commands) weelist_free (weechat_startup_commands); if (crash) abort (); else if (return_code >= 0) exit (return_code); }
void gui_completion_free_data (struct t_gui_completion *completion) { if (completion->base_command) free (completion->base_command); completion->base_command = NULL; if (completion->base_word) free (completion->base_word); completion->base_word = NULL; if (completion->args) free (completion->args); completion->args = NULL; if (completion->completion_list) { weelist_free (completion->completion_list); completion->completion_list = NULL; } if (completion->word_found) free (completion->word_found); completion->word_found = NULL; gui_completion_partial_list_free_all (completion); }
void gui_color_palette_free_structs () { if (gui_color_hash_palette_color) hashtable_free (gui_color_hash_palette_color); if (gui_color_hash_palette_alias) hashtable_free (gui_color_hash_palette_alias); if (gui_color_list_with_alias) weelist_free (gui_color_list_with_alias); }
void debug_hdata_map_cb (void *data, struct t_hashtable *hashtable, const void *key, const void *value) { struct t_hdata *ptr_hdata; struct t_hdata_var *ptr_var; struct t_weelist *list; struct t_weelist_item *ptr_item; /* make C compiler happy */ (void) data; (void) hashtable; ptr_hdata = (struct t_hdata *)value; gui_chat_printf (NULL, " hdata 0x%lx: \"%s\", %d vars, %d lists:", ptr_hdata, (const char *)key, hashtable_get_integer (ptr_hdata->hash_var, "items_count"), hashtable_get_integer (ptr_hdata->hash_list, "items_count")); /* display lists */ hashtable_map (ptr_hdata->hash_list, &debug_hdata_hash_list_map_cb, NULL); /* display vars */ list = weelist_new (); hashtable_map (ptr_hdata->hash_var, &debug_hdata_hash_var_map_cb, list); for (ptr_item = list->items; ptr_item; ptr_item = ptr_item->next_item) { ptr_var = hashtable_get (ptr_hdata->hash_var, ptr_item->user_data); if (ptr_var) { gui_chat_printf (NULL, " %04d -> %s (%s%s%s%s%s%s)", ptr_var->offset, (char *)ptr_item->user_data, hdata_type_string[(int)ptr_var->type], (ptr_var->update_allowed) ? ", R/W" : "", (ptr_var->array_size) ? ", array size: " : "", (ptr_var->array_size) ? ptr_var->array_size : "", (ptr_var->hdata_name) ? ", hdata: " : "", (ptr_var->hdata_name) ? ptr_var->hdata_name : ""); } } weelist_free (list); }