diff options
Diffstat (limited to 'src/plugins/aspell')
-rw-r--r-- | src/plugins/aspell/weechat-aspell.c | 580 | ||||
-rw-r--r-- | src/plugins/aspell/weechat-aspell.h | 22 |
2 files changed, 325 insertions, 277 deletions
diff --git a/src/plugins/aspell/weechat-aspell.c b/src/plugins/aspell/weechat-aspell.c index 663970751..4a2c5f6b9 100644 --- a/src/plugins/aspell/weechat-aspell.c +++ b/src/plugins/aspell/weechat-aspell.c @@ -28,23 +28,24 @@ #include "../weechat-plugin.h" #include "weechat-aspell.h" -speller_t *plugin_speller = NULL; -config_t *plugin_config = NULL; -options_t plugin_options; +aspell_speller_t *aspell_plugin_speller = NULL; +aspell_config_t *aspell_plugin_config = NULL; +aspell_options_t aspell_plugin_options; -t_weechat_plugin *plugin = NULL; +t_weechat_plugin *weechat_aspell_plugin = NULL; /* - * new_speller : create a new speller cell + * weechat_aspell_new_speller : create a new speller cell */ -speller_t *new_speller (void) +aspell_speller_t * +weechat_aspell_new_speller (void) { - speller_t *s; + aspell_speller_t *s; - s = (speller_t *) malloc (sizeof (speller_t)); + s = (aspell_speller_t *) malloc (sizeof (aspell_speller_t)); if (!s) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ERROR] : unable to alloc memory.", _PLUGIN_NAME); return NULL; } @@ -59,9 +60,10 @@ speller_t *new_speller (void) } /* - * free_speller : free a speller cell + * weechat_aspell_free_speller : free a speller cell */ -void free_speller (speller_t *s) +void +weechat_aspell_free_speller (aspell_speller_t *s) { if (s) { @@ -77,13 +79,14 @@ void free_speller (speller_t *s) } /* - * speller_list_search : search a speller cell + * weechat_aspell_speller_list_search : search a speller cell */ -speller_t *speller_list_search (char *lang) +aspell_speller_t * +weechat_aspell_speller_list_search (char *lang) { - speller_t *p, *r = NULL; + aspell_speller_t *p, *r = NULL; - for(p = plugin_speller; p; p = p->next_speller) + for(p = aspell_plugin_speller; p; p = p->next_speller) { if (strcmp(p->lang, lang) == 0) { @@ -96,11 +99,12 @@ speller_t *speller_list_search (char *lang) } /* - * speller_list_add : create and add a new speller instance + * weechat_aspell_speller_list_add : create and add a new speller instance */ -int speller_list_add (char *lang) +int +weechat_aspell_speller_list_add (char *lang) { - speller_t *s; + aspell_speller_t *s; AspellConfig *config; AspellCanHaveError *ret; @@ -112,7 +116,7 @@ int speller_list_add (char *lang) if (aspell_error (ret) != 0) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ERROR] : %s", _PLUGIN_NAME, aspell_error_message (ret)); delete_aspell_config (config); @@ -121,14 +125,14 @@ int speller_list_add (char *lang) } /* create and add a new speller cell */ - s = new_speller(); + s = weechat_aspell_new_speller(); if (!s) return 0; - s->next_speller = plugin_speller; - if (plugin_speller) - plugin_speller->prev_speller = s; - plugin_speller = s; + s->next_speller = aspell_plugin_speller; + if (aspell_plugin_speller) + aspell_plugin_speller->prev_speller = s; + aspell_plugin_speller = s; s->lang = strdup (lang); s->refs = 1; @@ -140,37 +144,38 @@ int speller_list_add (char *lang) } /* - * speller_list_remove : remove a speller instance + * weechat_aspell_speller_list_remove : remove a speller instance */ -int speller_list_remove(char *lang) +int +weechat_aspell_speller_list_remove(char *lang) { - speller_t *p; + aspell_speller_t *p; int r = 0; - if (!plugin_speller || !lang) + if (!aspell_plugin_speller || !lang) return 0; - if (!plugin_speller->prev_speller - && !plugin_speller->next_speller) + if (!aspell_plugin_speller->prev_speller + && !aspell_plugin_speller->next_speller) { - free_speller (plugin_speller); - plugin_speller = NULL; + weechat_aspell_free_speller (aspell_plugin_speller); + aspell_plugin_speller = NULL; return 1; } - for(p = plugin_speller; p; p = p->next_speller) + for(p = aspell_plugin_speller; p; p = p->next_speller) { if (strcmp(p->lang, lang) == 0) { if (p->prev_speller) p->prev_speller->next_speller = p->next_speller; else - plugin_speller = p->next_speller; + aspell_plugin_speller = p->next_speller; if (p->next_speller) p->next_speller->prev_speller = p->prev_speller; - free_speller (p); + weechat_aspell_free_speller (p); r = 1; break; } @@ -180,16 +185,17 @@ int speller_list_remove(char *lang) } /* - * new_config : create a new config cell + * weechat_aspell_new_config : create a new config cell */ -config_t *new_config (void) +aspell_config_t * +weechat_aspell_new_config (void) { - config_t *c; + aspell_config_t *c; - c = (config_t *) malloc (sizeof (config_t)); + c = (aspell_config_t *) malloc (sizeof (aspell_config_t)); if (!c) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ERROR] : unable to alloc memory.", _PLUGIN_NAME); return NULL; } @@ -204,9 +210,10 @@ config_t *new_config (void) } /* - * free_config : free a config cell + * weechat_aspell_free_config : free a config cell */ -void free_config (config_t *c) +void +weechat_aspell_free_config (aspell_config_t *c) { if (c) { @@ -220,16 +227,17 @@ void free_config (config_t *c) } /* - * config_list_search : search a config cell + * weechat_aspell_config_list_search : search a config cell */ -config_t *config_list_search (char *server, char *channel) +aspell_config_t * +weechat_aspell_config_list_search (char *server, char *channel) { - config_t *p, *r = NULL; + aspell_config_t *p, *r = NULL; if (!server || !channel) return NULL; - for(p = plugin_config; p; p = p->next_config) + for(p = aspell_plugin_config; p; p = p->next_config) { if (strcmp(p->server, server) == 0 && strcmp(p->channel, channel) == 0) @@ -243,47 +251,49 @@ config_t *config_list_search (char *server, char *channel) } /* - * config_list_add : create and add a new config + * weechat_aspell_config_list_add : create and add a new config */ -int config_list_add (char *server, char *channel) +int +weechat_aspell_config_list_add (char *server, char *channel) { - config_t *c; + aspell_config_t *c; - c = new_config(); + c = weechat_aspell_new_config(); if (!c) return 0; c->channel = strdup (channel); c->server = strdup (server); - c->next_config = plugin_config; - if (plugin_config) - plugin_config->prev_config = c; - plugin_config = c; + c->next_config = aspell_plugin_config; + if (aspell_plugin_config) + aspell_plugin_config->prev_config = c; + aspell_plugin_config = c; return 1; } /* - * config_list_remove : remove a speller config + * weechat_aspell_config_list_remove : remove a speller config */ -int config_list_remove(char *server, char *channel) +int +weechat_aspell_config_list_remove(char *server, char *channel) { - config_t *p; + aspell_config_t *p; int r = 0; - if (!plugin_config || !server || !channel) + if (!aspell_plugin_config || !server || !channel) return 0; - if (!plugin_config->prev_config - && !plugin_config) + if (!aspell_plugin_config->prev_config + && !aspell_plugin_config) { - free_config (plugin_config); - plugin_config = NULL; + weechat_aspell_free_config (aspell_plugin_config); + aspell_plugin_config = NULL; return 1; } - for(p = plugin_config; p; p = p->next_config) + for(p = aspell_plugin_config; p; p = p->next_config) { if (strcmp(p->server, server) == 0 && strcmp(p->channel, channel) == 0) @@ -291,11 +301,11 @@ int config_list_remove(char *server, char *channel) if (p->prev_config) p->prev_config->next_config = p->next_config; else - plugin_config = p->next_config; + aspell_plugin_config = p->next_config; if (p->next_config) p->next_config->prev_config = p->prev_config; - free_config (p); + weechat_aspell_free_config (p); r = 1; break; } @@ -305,11 +315,13 @@ int config_list_remove(char *server, char *channel) } /* - * iso_to_lang : convert an aspell iso lang code + * weechat_aspell_iso_to_lang : + * convert an aspell iso lang code * in its english full name * */ -char *iso_to_lang (char *code) +char * +weechat_aspell_iso_to_lang (char *code) { iso_langs_t *p; char *l; @@ -333,10 +345,12 @@ char *iso_to_lang (char *code) /* - * iso_to_country : convert an aspell iso country + * weechat_aspell_iso_to_country : + * convert an aspell iso country * code in its english full name */ -char *iso_to_country (char *code) +char * +weechat_aspell_iso_to_country (char *code) { iso_countries_t *p; char *c; @@ -359,10 +373,12 @@ char *iso_to_country (char *code) } /* - * speller_exists : return 1 if an aspell dict exists + * weechat_aspell_speller_exists : + * return 1 if an aspell dict exists * for a lang, 0 otherwise */ -int speller_exists (char *lang) +int +weechat_aspell_speller_exists (char *lang) { struct AspellConfig *config; AspellDictInfoList *l; @@ -392,9 +408,11 @@ int speller_exists (char *lang) } /* - * speller_list_dicts : list all aspell dict installed on system and display them + * weechat_aspell_speller_list_dicts : + * list all aspell dict installed on system and display them */ -void speller_list_dicts (void) +void +weechat_aspell_speller_list_dicts (void) { char *country, *lang, *p; char buffer[192]; @@ -408,7 +426,7 @@ void speller_list_dicts (void) el = aspell_dict_info_list_elements (l); di = NULL; - plugin->print (plugin, NULL, NULL, "[%s] *** dictionnaries list :", _PLUGIN_NAME); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] *** dictionnaries list :", _PLUGIN_NAME); while (( di = aspell_dict_info_enumeration_next (el))) { @@ -418,12 +436,12 @@ void speller_list_dicts (void) if (p) { *p = '\0'; - lang = iso_to_lang ((char*) di->code); + lang = weechat_aspell_iso_to_lang ((char*) di->code); *p = '_'; - country = iso_to_country (p+1); + country = weechat_aspell_iso_to_country (p+1); } else - lang = iso_to_lang ((char*) di->code); + lang = weechat_aspell_iso_to_lang ((char*) di->code); if (strlen (di->jargon) == 0) { @@ -440,7 +458,7 @@ void speller_list_dicts (void) snprintf (buffer, sizeof(buffer), "%-22s %s (%s)", di->name, lang, di->jargon); } - plugin->print (plugin, NULL, NULL, "[%s] - %s", _PLUGIN_NAME, buffer); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] - %s", _PLUGIN_NAME, buffer); if (lang) free (lang); @@ -453,36 +471,37 @@ void speller_list_dicts (void) } /* - * config_show : display plugin settings + * weechat_aspell_config_show : display plugin settings */ -void config_show (void) +void +weechat_aspell_config_show (void) { - config_t *p; + aspell_config_t *p; - if (!plugin_config) - plugin->print (plugin, NULL, NULL, + if (!aspell_plugin_config) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] *** No buffers with spellchecking enable", _PLUGIN_NAME); else - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] *** Spellchecking is active on the following buffers :", _PLUGIN_NAME); - for(p = plugin_config; p; p = p->next_config) - plugin->print (plugin, NULL, NULL, + for(p = aspell_plugin_config; p; p = p->next_config) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] -> %s@%s with lang '%s'", _PLUGIN_NAME, p->channel, p->server, p->speller->lang); - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] *** plugin options :", _PLUGIN_NAME); - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] -> word-size = %d", - _PLUGIN_NAME, plugin_options.word_size); - plugin->print (plugin, NULL, NULL, + _PLUGIN_NAME, aspell_plugin_options.word_size); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SHOW] -> color = %s", - _PLUGIN_NAME, plugin_options.color_name); - plugin->print (plugin, NULL, NULL, - plugin_options.check_sync == 1 + _PLUGIN_NAME, aspell_plugin_options.color_name); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, + aspell_plugin_options.check_sync == 1 ? "[%s] [SHOW] -> realtime spellchecking is enable" : "[%s] [SHOW] -> asynchronous spellchecking is enable" , @@ -490,22 +509,23 @@ void config_show (void) } /* - * config_addword : adding a word in personnal dictionaries + * weechat_aspell_config_addword : adding a word in personnal dictionaries */ -int config_addword(char *word) +int +weechat_aspell_config_addword(char *word) { char *server, *channel; - config_t *c; + aspell_config_t *c; int ret; ret = 0; - channel = plugin->get_info (plugin, "channel", NULL); - server = plugin->get_info (plugin, "server", NULL); + channel = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "channel", NULL); + server = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "server", NULL); if (!server || !channel) return 0; - c = config_list_search (server, channel); + c = weechat_aspell_config_list_search (server, channel); if (c) { if (aspell_speller_add_to_personal ( c->speller->speller, (const char *) word, strlen(word)) == 1) @@ -513,11 +533,11 @@ int config_addword(char *word) } if (ret) - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ADD-WORD] word '%s' successfully added in your personnal dictionnary", _PLUGIN_NAME, word); else - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ADD-WORD] an error occured while adding word '%s' in your personnal dict", _PLUGIN_NAME, word); @@ -530,101 +550,105 @@ int config_addword(char *word) } /* - * config_dump : display debug infos + * weechat_aspell_config_dump : display debug infos */ -void config_dump (void) +void +weechat_aspell_config_dump (void) { - config_t *p; - speller_t *s; + aspell_config_t *p; + aspell_speller_t *s; - if (!plugin_config) - plugin->print (plugin, NULL, NULL, + if (!aspell_plugin_config) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [DEBUG] [CONFIG] no config", _PLUGIN_NAME); - for(p = plugin_config; p; p = p->next_config) - plugin->print (plugin, NULL, NULL, + for(p = aspell_plugin_config; p; p = p->next_config) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [DEBUG] [CONFIG] @%p server='%s' channel='%s' @speller=%p lang='%s' @p=%p @n=%p", _PLUGIN_NAME, p, p->server, p->channel, p->speller, p->speller->lang, p->prev_config, p->next_config); - if (!plugin_speller) - plugin->print (plugin, NULL, NULL, + if (!aspell_plugin_speller) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [DEBUG] [SPELLER] no speller", _PLUGIN_NAME); - for(s = plugin_speller; s; s = s->next_speller) - plugin->print (plugin, NULL, NULL, + for(s = aspell_plugin_speller; s; s = s->next_speller) + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [DEBUG] [SPELLER] @%p lang='%s' refs=%d @engine=%p @p=%p @n=%p", _PLUGIN_NAME, s, s->lang, s->refs, s->speller, s->prev_speller, s->next_speller); } /* - * config_enable_for : internal subroutine + * weechat_aspell_config_enable_for : internal subroutine */ -void config_enable_for (char *server, char *channel, char *lang) +void +weechat_aspell_config_enable_for (char *server, char *channel, char *lang) { - config_t *c; - speller_t *s; + aspell_config_t *c; + aspell_speller_t *s; - if (!speller_exists (lang)) + if (!weechat_aspell_speller_exists (lang)) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [WARN] '%s' dictionary doesn't seems to be available on your system", _PLUGIN_NAME, lang); return; } - c = config_list_search (server, channel); + c = weechat_aspell_config_list_search (server, channel); if (c) { c->speller->refs--; if (c->speller->refs == 0) - speller_list_remove (c->speller->lang); - config_list_remove (server, channel); + weechat_aspell_speller_list_remove (c->speller->lang); + weechat_aspell_config_list_remove (server, channel); } - if (!config_list_add (server, channel)) + if (!weechat_aspell_config_list_add (server, channel)) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [ERROR] enabling spell checking on %s@%s failed", _PLUGIN_NAME, channel, server); return; } - s = speller_list_search (lang); + s = weechat_aspell_speller_list_search (lang); if (!s) { - speller_list_add (lang); - s = plugin_speller; + weechat_aspell_speller_list_add (lang); + s = aspell_plugin_speller; } else s->refs++; - plugin_config->speller = s; + aspell_plugin_config->speller = s; } /* - * config_enable : enabling given lang spell checking on current server/channel + * weechat_aspell_config_enable : + * enabling given lang spell checking on current server/channel */ -void config_enable (char *lang) +void +weechat_aspell_config_enable (char *lang) { char *channel, *server; - channel = plugin->get_info (plugin, "channel", NULL); - server = plugin->get_info (plugin, "server", NULL); + channel = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "channel", NULL); + server = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "server", NULL); if (!server || !channel) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [WARN] you are not in a channel", _PLUGIN_NAME); return; } - config_enable_for (server, channel, lang); + weechat_aspell_config_enable_for (server, channel, lang); - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] spell checking '%s' is now active on %s@%s", _PLUGIN_NAME, lang, channel, server); @@ -635,28 +659,30 @@ void config_enable (char *lang) } /* - * config_disable : disabling spell checking on current server/channel + * weechat_aspell_config_disable : + * disabling spell checking on current server/channel */ -void config_disable (void) +void +weechat_aspell_config_disable (void) { - config_t *c; + aspell_config_t *c; char *channel, *server; - channel = plugin->get_info (plugin, "channel", NULL); - server = plugin->get_info (plugin, "server", NULL); + channel = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "channel", NULL); + server = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "server", NULL); if (!server || !channel) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [WARN] you are not in a channel", _PLUGIN_NAME, NULL, NULL); return; } - c = config_list_search (server, channel); + c = weechat_aspell_config_list_search (server, channel); if (!c) { - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [WARN] spell checking is not active on %s@%s", _PLUGIN_NAME, channel, server); if (channel) @@ -668,11 +694,11 @@ void config_disable (void) c->speller->refs--; if (c->speller->refs == 0) - speller_list_remove (c->speller->lang); + weechat_aspell_speller_list_remove (c->speller->lang); - config_list_remove (server, channel); + weechat_aspell_config_list_remove (server, channel); - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] spell checking is now inactive on %s@%s", _PLUGIN_NAME, channel, server); @@ -683,46 +709,47 @@ void config_disable (void) } /* - * config_set : setting options values + * weechat_aspell_config_set : setting options values */ -int config_set(char *option, char *value) +int +weechat_aspell_config_set(char *option, char *value) { int c; if (strcmp (option, "word-size") == 0) { - plugin_options.word_size = atoi ((value == NULL) ? "" : value); - plugin->print (plugin, NULL, NULL, + aspell_plugin_options.word_size = atoi ((value == NULL) ? "" : value); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SET] setting %s = %d", - _PLUGIN_NAME, option, plugin_options.word_size); + _PLUGIN_NAME, option, aspell_plugin_options.word_size); } else if (strcmp (option, "toggle-check-mode") == 0) { - plugin_options.check_sync = plugin_options.check_sync == 1 ? 0 : 1; - plugin->print (plugin, NULL, NULL, - plugin_options.check_sync == 1 + aspell_plugin_options.check_sync = aspell_plugin_options.check_sync == 1 ? 0 : 1; + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, + aspell_plugin_options.check_sync == 1 ? "[%s] [SET] spellchecking is now set in realtime mode" : "[%s] [SET] spellchecking is now set in asynchronous mode", _PLUGIN_NAME, option); } else if (strcmp (option, "color") == 0) { - c = plugin->get_irc_color (plugin, (value == NULL) ? "" : value); + c = weechat_aspell_plugin->get_irc_color (weechat_aspell_plugin, (value == NULL) ? "" : value); if (c == -1) - plugin->print (plugin, NULL, NULL, + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SET] setting %s = %s failed : color '%s' is unknown", _PLUGIN_NAME, option, (value == NULL) ? "" : value, (value == NULL) ? "" : value); else { - plugin_options.color = c; - if (plugin_options.color_name) - free (plugin_options.color_name); - plugin_options.color_name = strdup (value); - plugin->print (plugin, NULL, NULL, + aspell_plugin_options.color = c; + if (aspell_plugin_options.color_name) + free (aspell_plugin_options.color_name); + aspell_plugin_options.color_name = strdup (value); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SET] setting %s = %s", - _PLUGIN_NAME, option, plugin_options.color_name); + _PLUGIN_NAME, option, aspell_plugin_options.color_name); } } else @@ -732,27 +759,28 @@ int config_set(char *option, char *value) } /* - * config_save : saving plugin config + * weechat_aspell_config_save : saving plugin config */ -int config_save (void) +int +weechat_aspell_config_save (void) { - config_t *p, *q; + aspell_config_t *p, *q; char *servers, *channels, *option; int n; servers = NULL; - plugin->set_plugin_config (plugin, "servers", ""); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "servers", ""); - for(p = plugin_config; p; p = p->next_config) + for(p = aspell_plugin_config; p; p = p->next_config) { - servers = plugin->get_plugin_config (plugin, "servers"); + servers = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, "servers"); if (!servers) - plugin->set_plugin_config (plugin, "servers", p->server); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "servers", p->server); else if (strlen (servers) == 0) { - plugin->set_plugin_config (plugin, "servers", p->server); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "servers", p->server); free (servers); } else @@ -763,13 +791,13 @@ int config_save (void) servers = (char *) realloc (servers, n * sizeof (char)); strcat (servers, " "); strcat (servers, p->server); - plugin->set_plugin_config (plugin, "servers", servers); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "servers", servers); } free (servers); } channels = NULL; - for(q = plugin_config; q; q = q->next_config) + for(q = aspell_plugin_config; q; q = q->next_config) { if (strcmp (p->server, q->server) == 0) { @@ -789,7 +817,7 @@ int config_save (void) n = 7 + strlen (p->server) + strlen (q->channel); option = (char *) malloc ( n * sizeof (char)); snprintf (option, n, "lang_%s_%s", p->server, q->channel); - plugin->set_plugin_config (plugin, option, q->speller->lang); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, option, q->speller->lang); free (option); } } @@ -799,31 +827,32 @@ int config_save (void) n = 10 + strlen (p->server); option = (char *) malloc ( n * sizeof (char)); snprintf (option, n, "channels_%s", p->server); - plugin->set_plugin_config (plugin, option, channels); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, option, channels); free (option); free (channels); } } - plugin->print (plugin, NULL, NULL, "[%s] [SAVE] configuration saved", _PLUGIN_NAME); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SAVE] configuration saved", _PLUGIN_NAME); return 1; } /* - * config_load : loading plugin config + * weechat_aspell_config_load : loading plugin config */ -int config_load(void) +int +weechat_aspell_config_load(void) { char *servers, *channels, *lang; char *option_s, *option_l; char **servers_list, **channels_list; int i, j, s, c, n; - servers = plugin->get_plugin_config (plugin, "servers"); + servers = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, "servers"); if (!servers) return 0; - servers_list = plugin->explode_string (plugin, servers, " ", 0, &s); + servers_list = weechat_aspell_plugin->explode_string (weechat_aspell_plugin, servers, " ", 0, &s); if (servers_list) { @@ -833,10 +862,10 @@ int config_load(void) option_s = (char *) malloc (n * sizeof (char)); snprintf (option_s, n, "channels_%s", servers_list[i]); - channels = plugin->get_plugin_config (plugin, option_s); + channels = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, option_s); if (channels) { - channels_list = plugin->explode_string (plugin, channels, " ", 0, &c); + channels_list = weechat_aspell_plugin->explode_string (weechat_aspell_plugin, channels, " ", 0, &c); if (channels_list) { for (j=0; j<c; j++) @@ -845,108 +874,111 @@ int config_load(void) option_l = (char *) malloc (n * sizeof (char)); snprintf (option_l, n, "lang_%s_%s", servers_list[i], channels_list[j]); - lang = plugin->get_plugin_config (plugin, option_l); + lang = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, option_l); if (lang) { - config_enable_for (servers_list[i], channels_list[j], lang); + weechat_aspell_config_enable_for (servers_list[i], channels_list[j], lang); free (lang); } free (option_l); } - plugin->free_exploded_string (plugin, channels_list); + weechat_aspell_plugin->free_exploded_string (weechat_aspell_plugin, channels_list); } free (channels); } free (option_s); } - plugin->free_exploded_string (plugin, servers_list); + weechat_aspell_plugin->free_exploded_string (weechat_aspell_plugin, servers_list); } - plugin->print (plugin, NULL, NULL, "[%s] [LOAD] configuration loaded", _PLUGIN_NAME); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [LOAD] configuration loaded", _PLUGIN_NAME); return 1; } /* - * options_save : saving plugin options + * weechat_aspell_options_save : saving plugin options */ -int options_save(void) +int +weechat_aspell_options_save(void) { char buf[8]; - snprintf (buf, sizeof(buf), "%d", plugin_options.word_size); - plugin->set_plugin_config (plugin, "word-size", buf); + snprintf (buf, sizeof(buf), "%d", aspell_plugin_options.word_size); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "word-size", buf); - snprintf (buf, sizeof(buf), "%d", plugin_options.check_sync); - plugin->set_plugin_config (plugin, "check-sync", buf); + snprintf (buf, sizeof(buf), "%d", aspell_plugin_options.check_sync); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "check-sync", buf); - plugin->set_plugin_config (plugin, "color", plugin_options.color_name); + weechat_aspell_plugin->set_plugin_config (weechat_aspell_plugin, "color", aspell_plugin_options.color_name); - plugin->print (plugin, NULL, NULL, "[%s] [SAVE] options saved", _PLUGIN_NAME); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [SAVE] options saved", _PLUGIN_NAME); return 1; } /* - * options_load : loading plugin options + * weechat_aspell_options_load : loading plugin options */ -int options_load(void) +int +weechat_aspell_options_load(void) { char *buffer; int n; - buffer = plugin->get_plugin_config (plugin, "word-size"); + buffer = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, "word-size"); if (buffer) { - plugin_options.word_size = atoi (buffer); + aspell_plugin_options.word_size = atoi (buffer); free (buffer); } else - plugin_options.word_size = _PLUGIN_OPTION_WORD_SIZE; + aspell_plugin_options.word_size = _PLUGIN_OPTION_WORD_SIZE; - buffer = plugin->get_plugin_config (plugin, "check-sync"); + buffer = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, "check-sync"); if (buffer) { - plugin_options.check_sync = atoi (buffer); - if (plugin_options.check_sync != 0 && plugin_options.check_sync != 1) - plugin_options.check_sync = _PLUGIN_OPTION_CHECK_SYNC; + aspell_plugin_options.check_sync = atoi (buffer); + if (aspell_plugin_options.check_sync != 0 && aspell_plugin_options.check_sync != 1) + aspell_plugin_options.check_sync = _PLUGIN_OPTION_CHECK_SYNC; free (buffer); } else - plugin_options.check_sync = _PLUGIN_OPTION_CHECK_SYNC; + aspell_plugin_options.check_sync = _PLUGIN_OPTION_CHECK_SYNC; - buffer = plugin->get_plugin_config (plugin, "color"); + buffer = weechat_aspell_plugin->get_plugin_config (weechat_aspell_plugin, "color"); if (buffer) { - n = plugin->get_irc_color (plugin, buffer); + n = weechat_aspell_plugin->get_irc_color (weechat_aspell_plugin, buffer); if (n == -1) { - plugin_options.color = plugin->get_irc_color (plugin, _PLUGIN_OPTION_COLOR); - plugin_options.color_name = strdup (_PLUGIN_OPTION_COLOR); + aspell_plugin_options.color = weechat_aspell_plugin->get_irc_color (weechat_aspell_plugin, _PLUGIN_OPTION_COLOR); + aspell_plugin_options.color_name = strdup (_PLUGIN_OPTION_COLOR); } else { - plugin_options.color = n; - plugin_options.color_name = strdup (buffer); + aspell_plugin_options.color = n; + aspell_plugin_options.color_name = strdup (buffer); } free (buffer); } else { - plugin_options.color = plugin->get_irc_color (plugin, _PLUGIN_OPTION_COLOR); - plugin_options.color_name = strdup (_PLUGIN_OPTION_COLOR); + aspell_plugin_options.color = weechat_aspell_plugin->get_irc_color (weechat_aspell_plugin, _PLUGIN_OPTION_COLOR); + aspell_plugin_options.color_name = strdup (_PLUGIN_OPTION_COLOR); } - plugin->print (plugin, NULL, NULL, "[%s] [LOAD] options loaded", _PLUGIN_NAME); + weechat_aspell_plugin->print (weechat_aspell_plugin, NULL, NULL, "[%s] [LOAD] options loaded", _PLUGIN_NAME); return 1; } /* - * speller_command : manage "/aspell" uses + * weechat_aspell_speller_command : manage "/aspell" uses */ -int speller_command (t_weechat_plugin *p, - int argc, char **argv, - char *handler_args, - void *handler_pointer) +int +weechat_aspell_speller_command (t_weechat_plugin *p, + int argc, char **argv, + char *handler_args, + void *handler_pointer) { char helpcmd[32]; char **args; @@ -962,61 +994,76 @@ int speller_command (t_weechat_plugin *p, if ((argc == 3) && argv[1] && argv[2]) { - args = plugin->explode_string (plugin, argv[2], " ", 0, &c); + args = weechat_aspell_plugin->explode_string (weechat_aspell_plugin, argv[2], " ", 0, &c); if (args) { if (c >= 1) { if (strcmp (args[0], "dictlist") == 0) { - speller_list_dicts (); r = 1; + weechat_aspell_speller_list_dicts (); + r = 1; } else if (strcmp (args[0], "show") == 0) { - config_show (); r = 1; + weechat_aspell_config_show (); + r = 1; } else if (strcmp (args[0], "save") == 0) { - config_save (); options_save(); r = 1; + weechat_aspell_config_save (); + weechat_aspell_options_save(); + r = 1; } else if (strcmp (args[0], "dump") == 0) { - config_dump (); r = 1; + weechat_aspell_config_dump (); + r = 1; } else if (strcmp (args[0], "enable") == 0) { - if (c >= 2) { config_enable (args[1]); r = 1; } + if (c >= 2) + { + weechat_aspell_config_enable (args[1]); + r = 1; + } } else if (strcmp (args[0], "disable") == 0) - config_disable (); + weechat_aspell_config_disable (); else if (strcmp (args[0], "set") == 0) { - if (c >= 2) { r = config_set (args[1], args[2]); } + if (c >= 2) + { + r = weechat_aspell_config_set (args[1], args[2]); + } } else if (strcmp (args[0], "add-word") == 0) { - if (c >= 2) { config_addword (args[1]); r = 1; } + if (c >= 2) + { + weechat_aspell_config_addword (args[1]); r = 1; + } } } - plugin->free_exploded_string (plugin, args); + weechat_aspell_plugin->free_exploded_string (weechat_aspell_plugin, args); } } if (r == 0) - plugin->exec_command (plugin, NULL, NULL, helpcmd); + weechat_aspell_plugin->exec_command (weechat_aspell_plugin, NULL, NULL, helpcmd); return PLUGIN_RC_OK; } /* - * keyb_check : handler to check spelling on input line + * weechat_aspell_keyb_check : handler to check spelling on input line */ -int keyb_check (t_weechat_plugin *p, int argc, char **argv, - char *handler_args, void *handler_pointer) +int weechat_aspell_keyb_check (t_weechat_plugin *p, int argc, char **argv, + char *handler_args, void *handler_pointer) { char *server, *channel; - config_t *c; + aspell_config_t *c; char *input, *ptr_input, *pos_space; int count; @@ -1025,17 +1072,17 @@ int keyb_check (t_weechat_plugin *p, int argc, char **argv, (void) handler_args; (void) handler_pointer; - channel = plugin->get_info (plugin, "channel", NULL); - server = plugin->get_info (plugin, "server", NULL); + channel = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "channel", NULL); + server = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "server", NULL); if (!server || !channel) return PLUGIN_RC_OK; - c = config_list_search (server, channel); + c = weechat_aspell_config_list_search (server, channel); if (!c) return PLUGIN_RC_OK; - if (plugin_options.check_sync == 0 && argv[0] && argv[0][0]) + if (aspell_plugin_options.check_sync == 0 && argv[0] && argv[0][0]) { /* FIXME : using isalpha(), can make problem with UTF-8 encodings */ if (argv[0][0] == '*' && isalpha (argv[0][1])) @@ -1048,7 +1095,7 @@ int keyb_check (t_weechat_plugin *p, int argc, char **argv, if (strcmp (argv[1], argv[2]) == 0) return PLUGIN_RC_OK; - input = plugin->get_info (plugin, "input", NULL); + input = weechat_aspell_plugin->get_info (weechat_aspell_plugin, "input", NULL); if (!input) return PLUGIN_RC_OK; @@ -1060,20 +1107,20 @@ int keyb_check (t_weechat_plugin *p, int argc, char **argv, count = 0; ptr_input = input; - plugin->input_color (plugin, 0, 0, 0); + weechat_aspell_plugin->input_color (weechat_aspell_plugin, 0, 0, 0); while (ptr_input && ptr_input[0]) { pos_space = strchr (ptr_input, ' '); if (pos_space) pos_space[0] = '\0'; - if ( (int) strlen (ptr_input) >= plugin_options.word_size) + if ( (int) strlen (ptr_input) >= aspell_plugin_options.word_size) { if (aspell_speller_check (c->speller->speller, ptr_input, -1) != 1) { if (count == 0) - plugin->input_color (plugin, 0, 0, 0); - plugin->input_color (plugin, plugin_options.color, + weechat_aspell_plugin->input_color (weechat_aspell_plugin, 0, 0, 0); + weechat_aspell_plugin->input_color (weechat_aspell_plugin, aspell_plugin_options.color, ptr_input - input, strlen (ptr_input)); count++; } @@ -1089,7 +1136,7 @@ int keyb_check (t_weechat_plugin *p, int argc, char **argv, else ptr_input = NULL; } - plugin->input_color (plugin, -1, 0, 0); + weechat_aspell_plugin->input_color (weechat_aspell_plugin, -1, 0, 0); free (input); @@ -1099,12 +1146,12 @@ int keyb_check (t_weechat_plugin *p, int argc, char **argv, /* * weechat_plugin_init : init function, called when plugin is loaded */ -int weechat_plugin_init (t_weechat_plugin *p) +int weechat_plugin_init (t_weechat_plugin *plugin) { char help[1024]; - plugin_speller = NULL; - plugin_config = NULL; - plugin = p; + aspell_plugin_speller = NULL; + aspell_plugin_config = NULL; + weechat_aspell_plugin = plugin; snprintf (help, sizeof(help), " show : show plugin configuration\n" @@ -1123,17 +1170,18 @@ int weechat_plugin_init (t_weechat_plugin *p) " *NB : input line beginning with a '/' is not checked\n", _PLUGIN_OPTION_WORD_SIZE); - plugin->cmd_handler_add (plugin, "aspell", - "Aspell Plugin configuration", - "{ show | save | dictlist | set [OPTION [VALUE]] | add-word WORD | enable LANG | disable | dump }", - help, - "show|dictlist|save|enable|disable|set|add-word|dump word-size|toggle-check-mode|color", - &speller_command, NULL, NULL); + weechat_aspell_plugin->cmd_handler_add (weechat_aspell_plugin, "aspell", + "Aspell Plugin configuration", + "{ show | save | dictlist | set [OPTION [VALUE]] | add-word WORD | enable LANG | disable | dump }", + help, + "show|dictlist|save|enable|disable|set|add-word|dump word-size|toggle-check-mode|color", + &weechat_aspell_speller_command, NULL, NULL); - plugin->keyboard_handler_add (plugin, &keyb_check, NULL, NULL); + weechat_aspell_plugin->keyboard_handler_add ( + weechat_aspell_plugin, &weechat_aspell_keyb_check, NULL, NULL); - options_load (); - config_load (); + weechat_aspell_options_load (); + weechat_aspell_config_load (); return PLUGIN_RC_OK; } @@ -1143,36 +1191,36 @@ int weechat_plugin_init (t_weechat_plugin *p) */ void weechat_plugin_end (t_weechat_plugin *p) { - speller_t *s, *t; - config_t *c, *d; + aspell_speller_t *s, *t; + aspell_config_t *c, *d; /* make gcc happy */ (void) p; - options_save (); - config_save (); + weechat_aspell_options_save (); + weechat_aspell_config_save (); /* freeing memory */ /* options */ - if (plugin_options.color_name) - free (plugin_options.color_name); + if (aspell_plugin_options.color_name) + free (aspell_plugin_options.color_name); /* spellers */ - s = plugin_speller; + s = aspell_plugin_speller; while ( s != NULL) { t = s; s = s->next_speller; - free_speller (t); + weechat_aspell_free_speller (t); } /* config */ - c = plugin_config; + c = aspell_plugin_config; while ( c != NULL) { d = c; c = c->next_config; - free_config (c); + weechat_aspell_free_config (c); } } diff --git a/src/plugins/aspell/weechat-aspell.h b/src/plugins/aspell/weechat-aspell.h index e50983fb7..99193b0f2 100644 --- a/src/plugins/aspell/weechat-aspell.h +++ b/src/plugins/aspell/weechat-aspell.h @@ -38,33 +38,33 @@ char plugin_command[] = _PLUGIN_COMMAND; #define _PLUGIN_OPTION_CHECK_SYNC 0 #define _PLUGIN_OPTION_COLOR "red" -typedef struct speller_t +typedef struct aspell_speller_t { AspellSpeller *speller; char *lang; int refs; - struct speller_t *prev_speller; - struct speller_t *next_speller; -} speller_t; + struct aspell_speller_t *prev_speller; + struct aspell_speller_t *next_speller; +} aspell_speller_t; -typedef struct config_t +typedef struct aspell_config_t { char *server; char *channel; - speller_t *speller; + aspell_speller_t *speller; - struct config_t *prev_config; - struct config_t *next_config; -} config_t; + struct aspell_config_t *prev_config; + struct aspell_config_t *next_config; +} aspell_config_t; -typedef struct options_t +typedef struct aspell_options_t { int word_size; int check_sync; int color; char *color_name; -} options_t; +} aspell_options_t; typedef struct iso_langs_t { |