Hi

On Di, 01 Mai 2012, Axel wrote:

> When using the spell correction feature ("set spelllang=de_de spell") a word 
> containing a german "ß" (0xDF) is displayed incorrectly if it is found to be 
> misspelled:
> 
> Wir wohnen nicht in der >>>Georgenkirchstraße<<<, sondern in der 
> >>>Hauptstraße<<<.
> 
> In this sample "Georgenkirchstraße" is flagged as misspelled (as opposed to 
> "Hauptstraße") - which would be ok - but the "ß" in the flagged word is not 
> considered as a valid word character; hence the word cannot be directly added 
> (w/o creating a selection) to the exception list with e.g. "zg".
> 

While I can't say anything about it, I noticed that this crashes my vim 
with a slight variation of the above sentence:

gdb --args ./vim -u NONE -U NONE -N -c ":put ='Wir wohnen nicht in der 
>>>Georgenkirch straße<<<, sondern in der >>>Hauptstraße<<<'" -c 'set spell 
spelllang=de

[Vim starts and puts that sentence in the buffer]
:norm! fsz=

 SIGSEGV, Segmentation fault.
0x0000000000549908 in spell_soundfold_wsal (slang=0x8908b0, 
    inword=0x7fffffffbe10 "strafst", res=0x7fffffffc180 "ztre")                
    at spell.c:14545                                                           
14545               for (; ((ws = smp[n].sm_lead_w)[0] & 0xff) == (c & 0xff)   
(gdb) list                                                                     
14540       if (n >= 0)                                                    
14541       {                                                              
14542           /* Check all rules for the same index byte.                
14543            * If c is 0x300 need extra check for the end of the array, as
14544            * (c & 0xff) is NUL. */                                   
14545           for (; ((ws = smp[n].sm_lead_w)[0] & 0xff) == (c & 0xff)   
14546                                && ws[0] != NUL; ++n)
14547           {                                                          
14548           /* Quickly skip entries that don't match the word.  Most
14549            * entries are less then three chars, optimize for that. */

smp seems invalid:
(gdb) p *smp
Cannot access memory at address 0x7a

(gdb) bt                                                                       
#0  0x0000000000549908 in spell_soundfold_wsal (slang=0x8908b0,                
inword=0x7fffffffbe10 "strafst", res=0x7fffffffc180 "ztre")
    at spell.c:14545
#1  0x0000000000547e72 in spell_soundfold (slang=0x8908b0, 
    inword=0x12cb060 "strafst", folded=0, res=0x7fffffffc180 "ztre")
    at spell.c:14106
#2  0x0000000000545fd3 in stp_sal_score (stp=0x14bd5e8, su=0x7fffffffd640, 
    slang=0x8908b0, badsound=0x7fffffffd884 "ztra") at spell.c:13189
#3  0x0000000000547a9c in rescore_one (su=0x7fffffffd640, stp=0x14bd5e8)
    at spell.c:13969
#4  0x0000000000547991 in rescore_suggestions (su=0x7fffffffd640)
    at spell.c:13942
#5  0x000000000053fc13 in spell_suggest_intern (su=0x7fffffffd640, 
    interactive=1) at spell.c:10840
#6  0x000000000053f7da in spell_find_suggest (
    badptr=0x8595f8 "straße<<<, sondern in der >>>Hauptstraße<<<", 
    badlen=0, su=0x7fffffffd640, maxcount=20, banbadword=1, need_cap=0, 
    interactive=1) at spell.c:10690
#7  0x000000000053e2ae in spell_suggest (count=0) at spell.c:10224
#8  0x00000000004d8aff in nv_zet (cap=0x7fffffffdc60) at normal.c:5216
#9  0x00000000004d9916 in normal_cmd (oap=0x7fffffffdd00, toplevel=1)
---Type <return> to continue, or q <return> to quit---
    at normal.c:1193
#10 0x00000000005915ed in main_loop (cmdwin=0, noexmode=0) at main.c:1294
#11 0x0000000000410dba in main (argc=<optimized out>, argv=<optimized out>)
    at main.c:998


This is a Big build of Vim 7.3.513 on linux.

Sorry, I don't know the part of the code and don't have time to 
investigate the problem now, so I am just reporting the crash.

regards,
Christian

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui