close 402941
forcemerge 400878 376497
thanks
On Wed, Dec 13, 2006 at 06:05:16PM +0100, Raúl Sánchez Siles wrote:
> forward 376497
> https://sourceforge.net/tracker/index.php?func=detail&aid=1614925&group_id=245&atid=100245
> clone 376497 -1
> reassign -1 aspell-es
> block 376497 -1
> thanks
>
> I think aspell-es package maintainer should be informed about this bug.
Thanks for that, I already read Debian aspell bugs
> Even this is an aspell-es bug, I don't think libaspell should crash like that
> for this reason.
This bug report seems caused by a bug in aspell "-m" option, which I already
reported upstream,
https://sourceforge.net/tracker/index.php?func=detail&aid=1565738&group_id=245&atid=100245
and is already fixed by Kevin Atkinson. Fix will go in aspell-0.60.5.
$ echo table | aspell -m -a -dspanish
@(#) International Ispell Version 3.1.20 (but really Aspell 0.60.4)
& table 26 0: tablea, tablee, tableo, tableé, tableó, tabule, tabulé, tabla,
tabalea, tabalee, tabaleo, tabaleé, tabaleó, tabelle, tablao, tabula,
tabulo, tabuló, tale, atable, talle, bable, cable, dable, hable, sable,
tablar-^L^F+e
Installing upstream patch and rebuilding aspell,
$ echo table | aspell -m -a -dspanish
@(#) International Ispell Version 3.1.20 (but really Aspell 0.60.4)
& table 26 0: tablea, tablee, tableo, tableé, tableó, tabule, tabulé, tabla,
tabalea, tabalee, tabaleo, tabaleé, tabaleó, tabelle, tablao, tabula,
tabulo, tabuló, tale, atable, talle, bable, cable, dable, hable, sable,
tablar-ar+e
as expected.
Closing this bug report and doing some other administrative work on it.
I am attaching the relevant patch.
--
Agustin
Index: prog/aspell.cpp
===================================================================
RCS file: /sources/aspell/aspell/prog/aspell.cpp,v
retrieving revision 1.103.2.2
diff -u -r1.103.2.2 aspell.cpp
--- prog/aspell.cpp 19 Jun 2005 12:00:46 -0000 1.103.2.2
+++ prog/aspell.cpp 23 Nov 2006 14:36:57 -0000
@@ -870,7 +870,8 @@
if (ci->pre_strip_len > 0)
guess.append('-').append(ci->word.str(), ci->pre_strip_len);
if (ci->suf_strip_len > 0)
- guess.append('-').append(ci->word.str() - ci->suf_strip_len, ci->suf_strip_len);
+ guess.append('-').append(ci->word.str() + ci->word.size() - ci->suf_strip_len,
+ ci->suf_strip_len);
if (ci->suf_add && ci->suf_add[0])
guess.append('+').append(ci->suf_add, ci->suf_add_len);
real_speller->lang().fix_case(casep, guess.data(), guess.data());