diff options
author | Eduardo Chappa <chappa@washington.edu> | 2015-01-25 18:52:13 -0700 |
---|---|---|
committer | Eduardo Chappa <chappa@washington.edu> | 2015-01-25 18:52:13 -0700 |
commit | 4db5ba9a511564e4a3cb3d2b67bce4bb171eae4f (patch) | |
tree | 8ff91f6581acb023e7a3d989414cc925927b49b3 /pico/osdep/mswin_spell.c | |
parent | 2ea73d14866f5eb39bc6a9aab36312abd6fa525c (diff) | |
download | alpine-4db5ba9a511564e4a3cb3d2b67bce4bb171eae4f.tar.xz |
* new version 2.20.1
* Ignore message from smtp server after a successful authentication
challenge.
* Alpine would not set include and lib paths for OpenSSL if this was
installed in /usr/local/ssl.
* If the .pinerc file is a symbolic link, Alpine might not write its
contents when saving its configuration.
* The _INIT_ token does not skip over non-alpha numeric characters in
the name. Reported by Andreas Fehr.
* If SSLDIR is defined somehow, do not disable S/MIME if the
SSLCERTSDIR is not found.
* Mismatch in size of UCS and CELL caused a corruption in the
content of a pointer, which made the speller in PC-Alpine get
the content of a word incorrectly.
* Update splash screen to version 2.20 in main repository.
* Skip testing openssl compatibility version when cross-compilation is
detected. Fix contributed by Antti Seppälä.
Diffstat (limited to 'pico/osdep/mswin_spell.c')
-rw-r--r-- | pico/osdep/mswin_spell.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/pico/osdep/mswin_spell.c b/pico/osdep/mswin_spell.c index e921cfcd..ac899421 100644 --- a/pico/osdep/mswin_spell.c +++ b/pico/osdep/mswin_spell.c @@ -437,6 +437,9 @@ spell_dlg_proc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) static int get_next_word(WORD_INFO *word_info) { + UCS *ucst; + int i, hibit; + // Skip quoted lines while(lgetc(curwp->w_dotp, 0).c == '>') { @@ -479,9 +482,19 @@ get_next_word(WORD_INFO *word_info) break; } - word_info->word_utf8 = ucs4_to_utf8_cpystr_n( - (UCS *)&word_info->word_dotp->l_text[word_info->word_doto], - word_info->word_size); + ucst = (UCS *)&word_info->word_dotp->l_text[word_info->word_doto]; + for(i = 0, hibit = 0; i < word_info->word_size; i++) + if(ucst[i] & 0xff000000) + hibit++; + + if(hibit > 0){ + ucst = ucs4_cpystr(ucst); + for(i = 0; i < word_info->word_size; i++) + ucst[i] &= 0xffffff; + } + word_info->word_utf8 = ucs4_to_utf8_cpystr_n(ucst, word_info->word_size); + if(hibit > 0) + fs_give((void **)&ucst); return 1; } |