Your message dated Sat, 30 Jan 2016 18:16:42 +0000
with message-id <[email protected]>
and subject line Bug#811007: Removed package(s) from unstable
has caused the Debian Bug report #811008,
regarding xchat: Add GUI option to select spell check language (libsexy)
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
811008: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811008
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: xchat
Version: 2.8.8-7.3+b2
Severity: wishlist

This patch adds a dropdown menu that lists all available libsexy
dictionaries and lets the user select which one to be used.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.3.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=es_AR.utf8, LC_CTYPE=es_AR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages xchat depends on:
ii  libatk1.0-0          2.18.0-1
ii  libc6                2.21-6
ii  libcairo2            1.14.4-1
ii  libdbus-1-3          1.10.6-1
ii  libdbus-glib-1-2     0.102-1
ii  libfontconfig1       2.11.0-6.3
ii  libfreetype6         2.6.1-0.1
ii  libgdk-pixbuf2.0-0   2.32.3-1
ii  libglib2.0-0         2.46.2-3
ii  libgtk2.0-0          2.24.29-1
ii  libpango-1.0-0       1.38.1-1
ii  libpangocairo-1.0-0  1.38.1-1
ii  libpangoft2-1.0-0    1.38.1-1
ii  libperl5.22          5.22.1-3
ii  libsexy2             0.1.11-2.1
ii  libssl1.0.2          1.0.2e-1
ii  libx11-6             2:1.6.3-1
ii  xchat-common         2.8.8-7.3

Versions of packages xchat recommends:
ii  alsa-utils     1.0.29-1+b1
ii  libnotify-bin  0.7.6-2
ii  libnotify4     0.7.6-2
ii  libpython2.7   2.7.11-2
ii  libtcl8.6      8.6.4+dfsg-2
ii  xdg-utils      1.1.1-1
ii  zlib1g         1:1.2.8.dfsg-2+b1

xchat suggests no packages.

-- no debconf information
--- a/src/common/cfgfiles.c
+++ b/src/common/cfgfiles.c
@@ -428,6 +428,7 @@
        {"gui_dialog_width", P_OFFINT (dialog_width), TYPE_INT},
        {"gui_hide_menu", P_OFFINT (hidemenu), TYPE_BOOL},
        {"gui_input_spell", P_OFFINT (gui_input_spell), TYPE_BOOL},
+       {"gui_input_spell_dict", P_OFFSET (gui_input_spell_dict), TYPE_STR},
        {"gui_input_style", P_OFFINT (style_inputbox), TYPE_BOOL},
        {"gui_join_dialog", P_OFFINT (gui_join_dialog), TYPE_BOOL},
        {"gui_lagometer", P_OFFINT (lagometer), TYPE_INT},
--- a/src/common/xchat.h
+++ b/src/common/xchat.h
@@ -276,6 +276,7 @@
        unsigned int auto_indent;
        unsigned int wordwrap;
        unsigned int gui_input_spell;
+       char gui_input_spell_dict[6];   /* Dicts. are at most "xx_XX". */
        unsigned int gui_tray;
        unsigned int gui_tray_flags;
        unsigned int gui_tweaks;
--- a/src/fe-gtk/maingui.c
+++ b/src/fe-gtk/maingui.c
@@ -2863,6 +2863,20 @@
 #else
 #ifdef USE_LIBSEXY
        gui->input_box = entry = sexy_spell_entry_new ();
+       /* By default, the language set on the environment is enabled.
+       We want to try and select the one in the settings, so we disable it. */
+       sexy_spell_entry_deactivate_language((SexySpellEntry *)entry, NULL);
+
+       gboolean valid_dict = sexy_spell_entry_activate_language 
((SexySpellEntry *)entry,
+                                                                               
        (gchar *)prefs.gui_input_spell_dict, NULL);
+
+       /* If there is no dictionary selected in the settings, or if it is not
+       valid, we fall back to the default. */
+       if (valid_dict == FALSE) {
+               printf("Setting default because option failed. \n");
+               sexy_spell_entry_activate_default_languages((SexySpellEntry 
*)entry);
+       }
+
        sexy_spell_entry_set_checked ((SexySpellEntry *)entry, 
prefs.gui_input_spell);
 #else
        gui->input_box = entry = gtk_entry_new ();
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -85,7 +85,8 @@
        ST_HSCALE,
        ST_HEADER,
        ST_LABEL,
-       ST_ALERTHEAD
+       ST_ALERTHEAD,
+       ST_DICT_MENU
 };
 
 typedef struct
@@ -125,7 +126,12 @@
        {ST_END, 0, 0, 0, 0, 0}
 };
 
-static const char *const tabcompmenu[] = 
+static const char* const dict_empty_list[] =
+{
+       NULL
+};
+
+static const char *const tabcompmenu[] =
 {
        N_("A-Z"),
        N_("Last-spoke order"),
@@ -139,6 +145,9 @@
 #if defined(USE_GTKSPELL) || defined(USE_LIBSEXY)
        {ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(gui_input_spell),0,0,0},
 #endif
+#ifdef USE_LIBSEXY
+       {ST_DICT_MENU, "Dictionary:", P_OFFSETNL(gui_input_spell_dict), 0, 
dict_empty_list, 0},
+#endif
 
        {ST_HEADER, N_("Nick Completion"),0,0,0},
        {ST_TOGGLE, N_("Automatic nick completion (without TAB key)"), 
P_OFFINTNL(nickcompletion),
@@ -155,7 +164,7 @@
        {ST_END, 0, 0, 0, 0, 0}
 };
 
-/*static const char *const lagmenutext[] = 
+/*static const char *const lagmenutext[] =
 {
        N_("Off"),
        N_("Graph"),
@@ -164,7 +173,7 @@
        NULL
 };*/
 
-static const char *const ulmenutext[] = 
+static const char *const ulmenutext[] =
 {
        N_("A-Z, Ops first"),
        N_("A-Z"),
@@ -288,11 +297,11 @@
        {ST_ENTRY,      N_("DCC IP address:"), P_OFFSETNL(dcc_ip_str),
                                        N_("Claim you are at this address when 
offering files."), 0, sizeof prefs.dcc_ip_str},
        {ST_NUMBER,     N_("First DCC send port:"), 
P_OFFINTNL(first_dcc_send_port), 0, 0, 65535},
-       {ST_NUMBER,     N_("Last DCC send port:"), 
P_OFFINTNL(last_dcc_send_port), 0, 
+       {ST_NUMBER,     N_("Last DCC send port:"), 
P_OFFINTNL(last_dcc_send_port), 0,
                (const char **)N_("!Leave ports at zero for full range."), 
65535},
 
        {ST_HEADER, N_("Maximum File Transfer Speeds (bytes per second)"), 0, 
0, 0},
-       {ST_NUMBER,     N_("One upload:"), P_OFFINTNL(dcc_max_send_cps), 
+       {ST_NUMBER,     N_("One upload:"), P_OFFINTNL(dcc_max_send_cps),
                                        N_("Maximum speed for one transfer"), 
0, 1000000},
        {ST_NUMBER,     N_("One download:"), P_OFFINTNL(dcc_max_get_cps),
                                        N_("Maximum speed for one transfer"), 
0, 1000000},
@@ -443,7 +452,7 @@
 
 #define setup_get_str(pr,set) (((char *)pr)+set->offset)
 #define setup_get_int(pr,set) *(((int *)pr)+set->offset)
-#define setup_get_int3(pr,off) *(((int *)pr)+off) 
+#define setup_get_int3(pr,off) *(((int *)pr)+off)
 
 #define setup_set_int(pr,set,num) *((int *)pr+set->offset)=num
 #define setup_set_str(pr,set,str) strcpy(((char *)pr)+set->offset,str)
@@ -854,6 +863,63 @@
                                                        GTK_EXPAND | GTK_FILL, 
GTK_SHRINK | GTK_FILL, 0, 0);
 }
 
+#ifdef USE_LIBSEXY
+static void
+spell_dictionary_changed (GtkComboBox *cbox, const setting *set)
+{
+       if (gtk_combo_box_get_active(cbox) == 0)
+       {
+               /* The first item is the default (determine from the 
environment). */
+               setup_set_str(&setup_prefs, set, "");
+       }
+       else
+       {
+               gchar *option = gtk_combo_box_get_active_text (cbox);
+               setup_set_str(&setup_prefs, set, option);
+               g_free(option);
+       }
+}
+
+static void setup_create_dict_menu (GtkWidget *table, int row, const setting 
*set)
+{
+       GtkWidget *cbox, *box;
+
+       cbox = gtk_combo_box_new_text ();
+
+       /* Get all available dictionaries. */
+       SexySpellEntry *entry = (SexySpellEntry *)current_sess->gui->input_box;
+       GSList* langs = sexy_spell_entry_get_languages((const SexySpellEntry 
*)entry);
+       /* Get selected dictionary from the settings. */
+       const char* const selected_option = setup_get_str (&setup_prefs, set);
+       /* Default option: no dictionary selected. */
+       gtk_combo_box_append_text(GTK_COMBO_BOX(cbox), "-");
+       unsigned int default_index = 0;
+
+       /* Populating the menu with the available dictionaries... */
+       unsigned int dict_index = 1;
+       for (GSList* l = langs; l; l = g_slist_next(l)) {
+               gtk_combo_box_append_text(GTK_COMBO_BOX(cbox), _(l->data));
+
+               if (strcmp(_(l->data), selected_option) == 0) {
+                       /* Set the focus on the one selected in the settings. */
+                       default_index = dict_index;
+               }
+               dict_index++;
+       }
+
+       gtk_combo_box_set_active (GTK_COMBO_BOX (cbox), default_index);
+       g_signal_connect (G_OBJECT (cbox), "changed",
+                                               G_CALLBACK 
(spell_dictionary_changed), (gpointer)set);
+
+       box = gtk_hbox_new (0, 0);
+       gtk_box_pack_start (GTK_BOX (box), cbox, 0, 0, 0);
+       gtk_table_attach (GTK_TABLE (table), box, 2, 3, row, row + 1,
+                                                       GTK_EXPAND | GTK_FILL, 
GTK_SHRINK | GTK_FILL, LABEL_INDENT, 0);
+
+       g_slist_free_full (langs, g_free);
+}
+#endif
+
 static void
 setup_filereq_cb (GtkWidget *entry, char *file)
 {
@@ -996,7 +1062,7 @@
        if (set->offset == P_OFFSETNL(proxy_user))
                proxy_user = wid;
        if (set->offset == P_OFFSETNL(proxy_pass))
-               proxy_pass = wid; 
+               proxy_pass = wid;
 
        /* only http and Socks5 can auth */
        if ( (set->offset == P_OFFSETNL(proxy_pass) ||
@@ -1128,6 +1194,11 @@
                        break;
                case ST_ALERTHEAD:
                        setup_create_alert_header (tab, row, &set[i]);
+                       break;
+#ifdef USE_LIBSEXY
+               case ST_DICT_MENU:
+                       setup_create_dict_menu(tab, row, &set[i]);
+#endif
                }
 
                /* will this toggle disable the "next" widget? */
@@ -1149,9 +1220,9 @@
 #if 0
        if (set == general_settings)
        {
-               setup_create_id_menu (tab, _("Mark identified users with:"),    
+               setup_create_id_menu (tab, _("Mark identified users with:"),
                                                                         row, 
setup_prefs.irc_id_ytext);
-               setup_create_id_menu (tab, _("Mark not-identified users 
with:"),        
+               setup_create_id_menu (tab, _("Mark not-identified users with:"),
                                                                         row + 
1, setup_prefs.irc_id_ntext);
        }
 #endif
@@ -1891,7 +1962,15 @@
 #endif
 
 #ifdef USE_LIBSEXY
-       sexy_spell_entry_set_checked ((SexySpellEntry *)gui->input_box, 
prefs.gui_input_spell);
+       SexySpellEntry *entry = (SexySpellEntry *)gui->input_box;
+       sexy_spell_entry_deactivate_language(entry, NULL);
+
+       if (prefs.gui_input_spell_dict[0] != '\0')
+               sexy_spell_entry_activate_language(entry,(gchar 
*)prefs.gui_input_spell_dict, NULL);
+       else
+               sexy_spell_entry_activate_default_languages(entry);
+
+       sexy_spell_entry_set_checked (entry, prefs.gui_input_spell);
 #endif
 }
 

--- End Message ---
--- Begin Message ---
Version: 2.8.8-7.3+rm

Dear submitter,

as the package xchat has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/811007

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
[email protected].

Debian distribution maintenance software
pp.
Scott Kitterman (the ftpmaster behind the curtain)

--- End Message ---

Reply via email to