mirror of
https://github.com/moparisthebest/hexchat
synced 2024-11-27 03:32:15 -05:00
recognize all installed dictionaries and select the required ones via spell_langs
This commit is contained in:
parent
d8cac3bcfe
commit
69aedf51ce
@ -568,6 +568,7 @@ const struct prefs vars[] = {
|
|||||||
{"text_replay", P_OFFINT (text_replay), TYPE_BOOL},
|
{"text_replay", P_OFFINT (text_replay), TYPE_BOOL},
|
||||||
{"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL},
|
{"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL},
|
||||||
{"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL},
|
{"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL},
|
||||||
|
{"text_spell_langs", P_OFFSET (spell_langs), TYPE_STR},
|
||||||
{"text_stripcolor", P_OFFINT (stripcolor), TYPE_BOOL},
|
{"text_stripcolor", P_OFFINT (stripcolor), TYPE_BOOL},
|
||||||
{"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL},
|
{"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL},
|
||||||
{"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
{"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
||||||
@ -698,6 +699,7 @@ load_config (void)
|
|||||||
prefs.identd = 1;
|
prefs.identd = 1;
|
||||||
#endif
|
#endif
|
||||||
strcpy (prefs.gui_license, "");
|
strcpy (prefs.gui_license, "");
|
||||||
|
strcpy (prefs.spell_langs, g_getenv ("LC_ALL") ? g_getenv ("LC_ALL") : "en_US");
|
||||||
strcpy (prefs.stamp_format, "[%H:%M] ");
|
strcpy (prefs.stamp_format, "[%H:%M] ");
|
||||||
strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S ");
|
strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S ");
|
||||||
strcpy (prefs.logmask, "%n-%c.log");
|
strcpy (prefs.logmask, "%n-%c.log");
|
||||||
|
@ -122,6 +122,7 @@ struct xchatprefs
|
|||||||
char font_normal[FONTNAMELEN + 1];
|
char font_normal[FONTNAMELEN + 1];
|
||||||
char doubleclickuser[256];
|
char doubleclickuser[256];
|
||||||
char gui_license[64];
|
char gui_license[64];
|
||||||
|
char spell_langs[64];
|
||||||
char sounddir[PATHLEN + 1];
|
char sounddir[PATHLEN + 1];
|
||||||
char soundcmd[PATHLEN + 1];
|
char soundcmd[PATHLEN + 1];
|
||||||
char background[PATHLEN + 1];
|
char background[PATHLEN + 1];
|
||||||
|
@ -151,6 +151,8 @@ static const setting inputbox_settings[] =
|
|||||||
{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(style_inputbox),0,0,0},
|
{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(style_inputbox),0,0,0},
|
||||||
#if defined(USE_GTKSPELL) || defined(USE_LIBSEXY)
|
#if defined(USE_GTKSPELL) || defined(USE_LIBSEXY)
|
||||||
{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(gui_input_spell),0,0,0},
|
{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(gui_input_spell),0,0,0},
|
||||||
|
{ST_ENTRY, N_("Dictionaries to use:"), P_OFFSETNL(spell_langs),0,0,sizeof prefs.spell_langs},
|
||||||
|
{ST_LABEL, N_("Use language codes (as in \"share\\locale\"). Separate multiple entries with commas.\nUsing too many dictionaries may cause performance problems.")},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{ST_HEADER, N_("Nick Completion"),0,0,0},
|
{ST_HEADER, N_("Nick Completion"),0,0,0},
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "typedef.h"
|
#include "typedef.h"
|
||||||
|
|
||||||
#include "../common/cfgfiles.h"
|
#include "../common/cfgfiles.h"
|
||||||
|
#include "../common/xchatc.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Bunch of poop to make enchant into a runtime dependency rather than a
|
* Bunch of poop to make enchant into a runtime dependency rather than a
|
||||||
@ -944,10 +945,10 @@ void
|
|||||||
sexy_spell_entry_activate_default_languages(SexySpellEntry *entry)
|
sexy_spell_entry_activate_default_languages(SexySpellEntry *entry)
|
||||||
{
|
{
|
||||||
#if GLIB_CHECK_VERSION (2, 6, 0)
|
#if GLIB_CHECK_VERSION (2, 6, 0)
|
||||||
const gchar* const *langs;
|
/*const gchar* const *langs;
|
||||||
int i;
|
int i;
|
||||||
gchar *lastprefix = NULL;
|
gchar *lastprefix = NULL;*/
|
||||||
GSList *enchant_langs;
|
GSList *enchant_langs, *i;
|
||||||
|
|
||||||
if (!have_enchant)
|
if (!have_enchant)
|
||||||
return;
|
return;
|
||||||
@ -956,14 +957,14 @@ sexy_spell_entry_activate_default_languages(SexySpellEntry *entry)
|
|||||||
entry->priv->broker = enchant_broker_init();
|
entry->priv->broker = enchant_broker_init();
|
||||||
|
|
||||||
|
|
||||||
langs = g_get_language_names ();
|
/*langs = g_get_language_names ();
|
||||||
|
|
||||||
if (langs == NULL)
|
if (langs == NULL)
|
||||||
return;
|
return;*/
|
||||||
|
|
||||||
enchant_langs = sexy_spell_entry_get_languages(entry);
|
enchant_langs = sexy_spell_entry_get_languages(entry);
|
||||||
|
|
||||||
for (i = 0; langs[i]; i++) {
|
/*for (i = 0; langs[i]; i++) {
|
||||||
if ((g_strncasecmp(langs[i], "C", 1) != 0) &&
|
if ((g_strncasecmp(langs[i], "C", 1) != 0) &&
|
||||||
(strlen(langs[i]) >= 2) &&
|
(strlen(langs[i]) >= 2) &&
|
||||||
enchant_has_lang(langs[i], enchant_langs)) {
|
enchant_has_lang(langs[i], enchant_langs)) {
|
||||||
@ -975,10 +976,19 @@ sexy_spell_entry_activate_default_languages(SexySpellEntry *entry)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (lastprefix != NULL)
|
if (lastprefix != NULL)
|
||||||
g_free(lastprefix);
|
g_free(lastprefix);*/
|
||||||
|
|
||||||
|
for (i = enchant_langs; i; i = g_slist_next (i))
|
||||||
|
{
|
||||||
|
if (strstr (prefs.spell_langs, i->data) != NULL)
|
||||||
|
{
|
||||||
|
sexy_spell_entry_activate_language_internal (entry, i->data, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
g_slist_foreach(enchant_langs, (GFunc) g_free, NULL);
|
g_slist_foreach(enchant_langs, (GFunc) g_free, NULL);
|
||||||
g_slist_free(enchant_langs);
|
g_slist_free(enchant_langs);
|
||||||
|
g_slist_free (i);
|
||||||
|
|
||||||
/* If we don't have any languages activated, use "en" */
|
/* If we don't have any languages activated, use "en" */
|
||||||
if (entry->priv->dict_list == NULL)
|
if (entry->priv->dict_list == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user