Fix bug #184
authorMelvin Hadasht <melvin.hadasht@free.fr>
Fri, 4 Jul 2003 15:23:38 +0000 (15:23 +0000)
committerMelvin Hadasht <melvin.hadasht@free.fr>
Fri, 4 Jul 2003 15:23:38 +0000 (15:23 +0000)
ChangeLog.claws
configure.ac
src/gtk/gtkaspell.c

index 236fc9caee9def07ec2a1ae9ac94e8338c39a7b5..4420aa07ca2bd665fb84b5422eec1cff1d0931bc 100644 (file)
@@ -1,3 +1,10 @@
+2003-07-04 [melvin]    0.9.0claws79
+
+       * src/gtk/gtkaspell.c
+               Fixed bug #184 "Entering non-ascii character deletes
+               previous char if spell checking enabled": this makes
+               the spell checking in multibytes (e.g. UTF-8)locales work.
+               
 2003-07-04 [christoph] 0.9.0claws78
 
        * sync with 0.9.2cvs1
index 35c52d813f201ea8fe2c7bc242f927c21984b771..17fa31391701fdd18dd3398ea9c00a6181116a4b 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws78
+EXTRA_VERSION=claws79
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index cde57ccdfd7940edf1577639ef346b1e127c66cc..fc3bbb927a7241a82ae0f506fadefd620d846ceb 100644 (file)
@@ -426,6 +426,8 @@ static void entry_insert_cb(GtkSText *gtktext,
                            guint *ppos, 
                             GtkAspell *gtkaspell) 
 {
+       size_t wlen;
+
        g_return_if_fail(gtkaspell->gtkaspeller->checker);
 
        if (!gtkaspell->check_while_typing)
@@ -437,7 +439,16 @@ static void entry_insert_cb(GtkSText *gtktext,
         */
 
        gtk_stext_freeze(gtktext);
-       gtk_stext_backward_delete(GTK_STEXT(gtktext), len);
+       if (MB_CUR_MAX > 1) {
+               gchar *str;
+               Xstrndup_a(str, newtext, len, return);
+               wlen = mbstowcs(NULL, str, 0);
+               if (wlen < 0)
+                       return;
+       } else
+               wlen = len;
+       
+       gtk_stext_backward_delete(GTK_STEXT(gtktext), wlen);
        gtk_stext_insert(GTK_STEXT(gtktext), NULL, NULL, NULL, newtext, len);
        *ppos = gtk_stext_get_point(GTK_STEXT(gtktext));