Package: kword
Version: 1:1.6.1-2
Severity: important

The choosing of language for spelling checking seems quite broken.
Especially in kword, which doesn't choose from the installed languages
and can easily be made to crash.  Details below.

Severity seems "Important" at least.  It would be sad if etch were released
with kedit/word in this state.  I think it would be bad for debian.

One of the strengths of debian and kde is support for multiple languages.  For
many users, it is *important* to be able to switch rapidly between languages,
even within the same document.  (Suppose you are developing materials for
foreign language teaching.  Or writing essays with long quotations in other
languages.  Or writing business emails to foreign customers.  Or...)

For this reason, I don't agree at all with bug #404683.  It isn't
possible to have a per-document language setting in the cases above.

kwrite does the right thing, kudos! (step 4 below)

Moreover, it looks as if the intention is to integrate this feature across
kde: to kmail, kedit, ... and maybe kword (I can't tell, it's so broken).
That would be wonderful.

Alas, the feature is bugged in kedit (step 5 below).  And badly broken
in kword (step 6 below).

Details:

0. Start with desktop system recently upgraded from sarge to etch.  Install
   several dictionaries, including in my case "ibritish", "ingerman".
   This test example will use those two languages.

1. Create a new user account with no settings at all (to try and eliminate the
   possibility of bad settings left behind from before upgrade to etch).
   From kdm, start a KDE session for this new user.  Click through the
   new desktop wizard, accepting (in my case) default country "United Kingdom",
   default language "British English".

2. control centre -> KDE components -> spell checker
   The drop-down tab says "ispell default".
   Change this to "Unknown [ngerman]", encoding 8859-1.
   Apply. Quit.

   (BUG: the name should be better than this.  End-users will not be
   impressed that they have to pick "unknown" dictionaries.)

3. k -> utilities -> editors -> kwrite
   Save a file "test" containing some text in the two languages:

       An English sentence.
       Und ein deutscher, möglichst mit Umlaut.

4. On the kwrite menu bar, click tools -> spelling.  The tab correctly shows
   "Unknown [ngerman]", respecting the setting made at step 2.  The program
   correctly offers to change "English" into "Englisch".
   
   Click on the language tab and change to "English [british]".
   Click "okay" (You have to restart the dialogue for changes to take effect)

   On the kwrite menu bar, again click tools -> spelling.  The tab respects
   the change of language; the program offers to change "Und" (to "Fund").

   This is correct behaviour, very good.  It makes it highly practical
   to check spelling for documents in more than one language. (Moreover,
   control centre will respect the change of default language - this is good
   integration.)  Quit kwrite.

5. k -> utilities -> editors -> kedit
   Open file "test" saved at step 3.
   On the kedit menu bar, click tools -> spelling.  The tab shows british, the
   program objects to "Und".  Correct so far.

   Click on the language tab and change to "Unknown [ngerman]".
   Click "okay" (You have to restart the dialogue for changes to take effect)
   On the kedit menu bar, again click tools -> spelling.

   BUG: The tab shows the changed language (ngerman), but the program is still
   using the previous value (british).

   TWO WORKAROUNDS:
   -- quit and restart kedit
   -- click settings -> configure kedit -> spelling -> okay

   Both are too clumsy for serious work in production environments.
   (As for quit-and-restart in kmail-composer... a hopeless approach).

It gets worse.

6. k -> office -> kword
   import file "test" (filter locale [8859-1])

   click on spellcheck button (or click tools -> spellcheck -> spelling...)   

   BUG: The languages shown in the language tab are not related to the
   installed languages.  ingerman does not show up at all.

   I have a list of about 29 entries matching regexp en.* (en_GB and so on)
   and at the end an entry "he" (for Hebrew, which I've never installed).

   It isn't at all clear whether kword is trying to integrate with the
   rest of kde or not.  Personally, I think it should behave like kwrite.

   click "he", then "ignore" to advance the checking to the next word...
   BUG: kword crashes with signal 6 (SIGABRT)

   I attach a backtrace, in case it helps, but the bug seems perfectly
   reproducible.  I also notice a snippet (similar to the attached) at the end
   of ~./xsession-errors

[Perhaps this should be split into several bugs?  Or assigned to some kde
metapackage? But kword is the worst affected.]

-- System Information:
Debian Release: 4.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-3-k7
Locale: LANG=en_GB, LC_CTYPE=en_GB (charmap=ISO-8859-1)

Versions of packages kword depends on:
ii  kdelibs4c2a            4:3.5.5a.dfsg.1-5 core libraries and binaries for al
ii  koffice-libs           1:1.6.1-2         common libraries and binaries for 
ii  kspread                1:1.6.1-2         a spreadsheet for the KDE Office S
ii  kword-data             1:1.6.1-2         data files for KWord word processo
ii  libc6                  2.3.6.ds1-8       GNU C Library: Shared libraries
ii  libgcc1                1:4.1.1-21        GCC support library
ii  libpaper1              1.1.21            Library for handling paper charact
ii  libstdc++6             4.1.1-21          The GNU Standard C++ Library v3
ii  libwpd8c2a             0.8.7-4           Library for handling WordPerfect d
ii  libwv2-1c2             0.2.3-1           a library for accessing Microsoft 

Versions of packages kword recommends:
ii  libkscan1                     4:3.5.5-2  scanner library for KDE

-- no debconf information
An English sentence.
Und ein deutscher, möglichst mit Umlaut.
(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1232471840 (LWP 10852)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#9  0xb7f42410 in ?? ()
#10 0xbf85a3dc in ?? ()
#11 0x00000006 in ?? ()
#12 0x00002a64 in ?? ()
#13 0xb7ccb811 in raise () from /lib/tls/i686/cmov/libc.so.6
#14 0xb7cccfb9 in abort () from /lib/tls/i686/cmov/libc.so.6
#15 0xb7d00c8a in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#16 0xb7d0851f in mallopt () from /lib/tls/i686/cmov/libc.so.6
#17 0xb7d085c2 in free () from /lib/tls/i686/cmov/libc.so.6
#18 0xb6489463 in delete_dict_radix () from /usr/lib/kde3/kspell_hspell.so
#19 0xb6486b8d in hspell_uninit () from /usr/lib/kde3/kspell_hspell.so
#20 0xb64854b0 in HSpellDict::~HSpellDict ()
   from /usr/lib/kde3/kspell_hspell.so
#21 0xb5d504b0 in KSpell2::BackgroundEngine::~BackgroundEngine ()
   from /usr/lib/libkspell2.so.1
#22 0xb7259b65 in QObject::~QObject () from /usr/lib/libqt-mt.so.3
#23 0xb5d529ab in KSpell2::BackgroundChecker::~BackgroundChecker ()
   from /usr/lib/libkspell2.so.1
#24 0xb5ebed18 in KoSpell::~KoSpell () from /usr/lib/libkotext.so.3
#25 0xb61da769 in KWView::clearSpellChecker ()
   from /usr/lib/libkwordprivate.so.4
#26 0xb61da861 in KWView::spellCheckerDone ()
   from /usr/lib/libkwordprivate.so.4
#27 0xb62d3d75 in KWView::qt_invoke () from /usr/lib/libkwordprivate.so.4
#28 0xb7255d4f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#29 0xb725627c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#30 0xb5d467e0 in KSpell2::Dialog::done () from /usr/lib/libkspell2.so.1
#31 0xb5d473f4 in KSpell2::Dialog::slotFinished ()
   from /usr/lib/libkspell2.so.1
#32 0xb5d47592 in KSpell2::Dialog::qt_invoke () from /usr/lib/libkspell2.so.1
#33 0xb7255d4f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#34 0xb72567e0 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#35 0xb6c7fdbc in KDialogBase::user1Clicked () from /usr/lib/libkdeui.so.4
#36 0xb6c7fded in KDialogBase::slotUser1 () from /usr/lib/libkdeui.so.4
#37 0xb6d60dcf in KDialogBase::qt_invoke () from /usr/lib/libkdeui.so.4
#38 0xb5d47513 in KSpell2::Dialog::qt_invoke () from /usr/lib/libkspell2.so.1
#39 0xb7255d4f in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#40 0xb72567e0 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#41 0xb75e7de7 in QButton::clicked () from /usr/lib/libqt-mt.so.3
#42 0xb72f2cf6 in QButton::mouseReleaseEvent () from /usr/lib/libqt-mt.so.3
#43 0xb728c6f0 in QWidget::event () from /usr/lib/libqt-mt.so.3
#44 0xb71edc26 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#45 0xb71efdc9 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#46 0xb78e3e0e in KApplication::notify () from /usr/lib/libkdecore.so.4
#47 0xb7181495 in QApplication::sendSpontaneousEvent ()
   from /usr/lib/libqt-mt.so.3
#48 0xb718012f in QETWidget::translateMouseEvent ()
   from /usr/lib/libqt-mt.so.3
#49 0xb717e6b0 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#50 0xb7194d02 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#51 0xb7208179 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#52 0xb7207f9a in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#53 0xb71ef7bf in QApplication::exec () from /usr/lib/libqt-mt.so.3
#54 0xb6804fd7 in kdemain () from /usr/lib/libkdeinit_kword.so
#55 0xb7f34524 in kdeinitmain () from /usr/lib/kde3/kword.so
#56 0x0804e457 in ?? ()
#57 0x00000001 in ?? ()
#58 0x08076390 in ?? ()
#59 0x00000001 in ?? ()
#60 0x00000000 in ?? ()
$ tail -16 .xsession-errors

X Error: BadWindow (invalid Window parameter) 3
  Major opcode:  20
  Minor opcode:  0
  Resource id:  0x800013
Hspell: can't open /usr/share/hspell/hebrew.wgz.sizes.
*** glibc detected *** double free or corruption (!prev): 0x08177c00 ***
KCrash: Application 'kword' crashing...
X Error: BadWindow (invalid Window parameter) 3
  Major opcode:  19
  Minor opcode:  0
  Resource id:  0x800e80
startkde: Shutting down...
klauncher: Exiting on signal 1
KWrited - Listening on Device /dev/pts/2
startkde: Running shutdown scripts...
startkde: Done.

Reply via email to