void gui_color_palette_alloc_structs () { if (!gui_color_hash_palette_color) { gui_color_hash_palette_color = hashtable_new (32, WEECHAT_HASHTABLE_STRING, WEECHAT_HASHTABLE_POINTER, NULL, NULL); gui_color_hash_palette_color->callback_free_value = &gui_color_palette_free_value_cb; } if (!gui_color_hash_palette_alias) { gui_color_hash_palette_alias = hashtable_new (32, WEECHAT_HASHTABLE_STRING, WEECHAT_HASHTABLE_INTEGER, NULL, NULL); } if (!gui_color_list_with_alias) { gui_color_list_with_alias = weelist_new (); } }
void gui_completion_buffer_init (struct t_gui_completion *completion, struct t_gui_buffer *buffer) { completion->buffer = buffer; completion->context = GUI_COMPLETION_NULL; completion->base_command = NULL; completion->base_command_arg_index = 0; completion->base_word = NULL; completion->base_word_pos = 0; completion->position = -1; completion->args = NULL; completion->direction = 0; completion->add_space = 1; completion->force_partial_completion = 0; completion->completion_list = weelist_new (); completion->word_found = NULL; completion->word_found_is_nick = 0; completion->position_replace = 0; completion->diff_size = 0; completion->diff_length = 0; completion->partial_completion_list = NULL; completion->last_partial_completion = NULL; }
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); }
void weechat_parse_args (int argc, char *argv[]) { int i; weechat_argv0 = (argv[0]) ? strdup (argv[0]) : NULL; weechat_upgrading = 0; weechat_home = NULL; weechat_server_cmd_line = 0; weechat_force_plugin_autoload = NULL; weechat_plugin_no_dlclose = 0; for (i = 1; i < argc; i++) { if ((strcmp (argv[i], "-c") == 0) || (strcmp (argv[i], "--colors") == 0)) { gui_color_display_terminal_colors (); weechat_shutdown (EXIT_SUCCESS, 0); } else if ((strcmp (argv[i], "-d") == 0) || (strcmp (argv[i], "--dir") == 0)) { if (i + 1 < argc) { if (weechat_home) free (weechat_home); weechat_home = strdup (argv[++i]); } else { string_fprintf (stderr, _("Error: missing argument for \"%s\" option\n"), argv[i]); weechat_shutdown (EXIT_FAILURE, 0); } } else if ((strcmp (argv[i], "-h") == 0) || (strcmp (argv[i], "--help") == 0)) { weechat_display_usage (); weechat_shutdown (EXIT_SUCCESS, 0); } else if ((strcmp (argv[i], "-l") == 0) || (strcmp (argv[i], "--license") == 0)) { weechat_display_copyright (); string_fprintf (stdout, "\n"); string_fprintf (stdout, "%s%s", WEECHAT_LICENSE_TEXT); weechat_shutdown (EXIT_SUCCESS, 0); } else if (strcmp (argv[i], "--no-dlclose") == 0) { /* * Valgrind works better when dlclose() is not done after plugins * are unloaded, it can display stack for plugins,* otherwise * you'll see "???" in stack for functions of unloaded plugins. * This option disables the call to dlclose(), * it must NOT be used for other purposes! */ weechat_plugin_no_dlclose = 1; } else if (strcmp (argv[i], "--no-gnutls") == 0) { /* * Electric-fence is not working fine when gnutls loads * certificates and Valgrind reports many memory errors with * gnutls. * This option disables the init/deinit of gnutls, * it must NOT be used for other purposes! */ weechat_no_gnutls = 1; } else if (strcmp (argv[i], "--no-gcrypt") == 0) { /* * Valgrind reports many memory errors with gcrypt. * This option disables the init/deinit of gcrypt, * it must NOT be used for other purposes! */ weechat_no_gcrypt = 1; } else if ((strcmp (argv[i], "-p") == 0) || (strcmp (argv[i], "--no-plugin") == 0)) { if (weechat_force_plugin_autoload) free (weechat_force_plugin_autoload); weechat_force_plugin_autoload = strdup ("!*"); } else if ((strcmp (argv[i], "-P") == 0) || (strcmp (argv[i], "--plugins") == 0)) { if (i + 1 < argc) { if (weechat_force_plugin_autoload) free (weechat_force_plugin_autoload); weechat_force_plugin_autoload = strdup (argv[++i]); } else { string_fprintf (stderr, _("Error: missing argument for \"%s\" option\n"), argv[i]); weechat_shutdown (EXIT_FAILURE, 0); } } else if ((strcmp (argv[i], "-r") == 0) || (strcmp (argv[i], "--run-command") == 0)) { if (i + 1 < argc) { if (!weechat_startup_commands) weechat_startup_commands = weelist_new (); weelist_add (weechat_startup_commands, argv[++i], WEECHAT_LIST_POS_END, NULL); } else { string_fprintf (stderr, _("Error: missing argument for \"%s\" option\n"), argv[i]); weechat_shutdown (EXIT_FAILURE, 0); } } else if (strcmp (argv[i], "--upgrade") == 0) { weechat_upgrading = 1; } else if ((strcmp (argv[i], "-v") == 0) || (strcmp (argv[i], "--version") == 0)) { string_fprintf (stdout, version_get_version ()); fprintf (stdout, "\n"); weechat_shutdown (EXIT_SUCCESS, 0); } } }