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());

 	  	 

Reply via email to