const char * weechat_aspell_get_dict (struct t_gui_buffer *buffer) { char *name, *option_name, *ptr_end; struct t_config_option *ptr_option; name = weechat_aspell_build_option_name (buffer); if (!name) return NULL; option_name = strdup (name); if (option_name) { ptr_end = option_name + strlen (option_name); while (ptr_end >= option_name) { ptr_option = weechat_aspell_config_get_dict (option_name); if (ptr_option) { free (option_name); free (name); return weechat_config_string (ptr_option); } ptr_end--; while ((ptr_end >= option_name) && (ptr_end[0] != '.')) { ptr_end--; } if ((ptr_end >= option_name) && (ptr_end[0] == '.')) ptr_end[0] = '\0'; } ptr_option = weechat_aspell_config_get_dict (option_name); free (option_name); free (name); if (ptr_option) return weechat_config_string (ptr_option); } else free (name); /* nothing found => return default dictionary (if set) */ if (weechat_config_string (weechat_aspell_config_check_default_dict) && weechat_config_string (weechat_aspell_config_check_default_dict)[0]) return weechat_config_string (weechat_aspell_config_check_default_dict); /* no default dictionary set */ return NULL; }
const char * weechat_aspell_get_dict (struct t_gui_buffer *buffer) { char *name; const char *dict; name = weechat_aspell_build_option_name (buffer); if (!name) return NULL; dict = weechat_aspell_get_dict_with_buffer_name (name); free (name); return dict; }
void weechat_aspell_command_set_dict (struct t_gui_buffer *buffer, const char *value) { char *name; name = weechat_aspell_build_option_name (buffer); if (!name) return; if (weechat_aspell_config_set_dict (name, value) > 0) { if (value && value[0]) weechat_printf (NULL, "%s: \"%s\" => %s", ASPELL_PLUGIN_NAME, name, value); else weechat_printf (NULL, _("%s: \"%s\" removed"), ASPELL_PLUGIN_NAME, name); } free (name); }