- patchlevel 293

This commit is contained in:
Karsten Hopp 2008-04-11 09:17:31 +00:00
parent cb1bb0d760
commit 872b3b0001
2 changed files with 120 additions and 0 deletions

118
7.1.293 Normal file
View File

@ -0,0 +1,118 @@
To: vim-dev@vim.org
Subject: Patch 7.1.293
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.1.293
Problem: Spell checking considers super- and subscript characters as word
characters.
Solution: Recognize the Unicode super and subscript characters.
Files: src/spell.c
*** ../vim-7.1.292/src/spell.c Tue Apr 1 17:13:54 2008
--- src/spell.c Wed Apr 9 15:47:06 2008
***************
*** 753,758 ****
--- 753,759 ----
static int spell_iswordp __ARGS((char_u *p, buf_T *buf));
static int spell_iswordp_nmw __ARGS((char_u *p));
#ifdef FEAT_MBYTE
+ static int spell_mb_isword_class __ARGS((int cl));
static int spell_iswordp_w __ARGS((int *p, buf_T *buf));
#endif
static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap));
***************
*** 9789,9795 ****
c = mb_ptr2char(s);
if (c > 255)
! return mb_get_class(s) >= 2;
return spelltab.st_isw[c];
}
#endif
--- 9790,9796 ----
c = mb_ptr2char(s);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(s));
return spelltab.st_isw[c];
}
#endif
***************
*** 9812,9818 ****
{
c = mb_ptr2char(p);
if (c > 255)
! return mb_get_class(p) >= 2;
return spelltab.st_isw[c];
}
#endif
--- 9813,9819 ----
{
c = mb_ptr2char(p);
if (c > 255)
! return spell_mb_isword_class(mb_get_class(p));
return spelltab.st_isw[c];
}
#endif
***************
*** 9821,9826 ****
--- 9822,9839 ----
#ifdef FEAT_MBYTE
/*
+ * Return TRUE if word class indicates a word character.
+ * Only for characters above 255.
+ * Unicode subscript and superscript are not considered word characters.
+ */
+ static int
+ spell_mb_isword_class(cl)
+ int cl;
+ {
+ return cl >= 2 && cl != 0x2070 && cl != 0x2080;
+ }
+
+ /*
* Return TRUE if "p" points to a word character.
* Wide version of spell_iswordp().
*/
***************
*** 9841,9847 ****
if (*s > 255)
{
if (enc_utf8)
! return utf_class(*s) >= 2;
if (enc_dbcs)
return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
return 0;
--- 9854,9860 ----
if (*s > 255)
{
if (enc_utf8)
! return spell_mb_isword_class(utf_class(*s));
if (enc_dbcs)
return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2;
return 0;
*** ../vim-7.1.292/src/version.c Wed Apr 9 12:14:44 2008
--- src/version.c Wed Apr 9 15:45:10 2008
***************
*** 668,669 ****
--- 673,676 ----
{ /* Add new patch number below this line */
+ /**/
+ 293,
/**/
--
hundred-and-one symptoms of being an internet addict:
268. You get up in the morning and go online before getting your coffee.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

View File

@ -323,3 +323,5 @@ Individual patches for Vim 7.1:
1979 7.1.289 when EXITFREE is defined and 'acd' is set freed memory is used 1979 7.1.289 when EXITFREE is defined and 'acd' is set freed memory is used
2146 7.1.290 reading unwritten bytes when spell checking with large indent 2146 7.1.290 reading unwritten bytes when spell checking with large indent
1940 7.1.291 compiler warning for int-long conversion 1940 7.1.291 compiler warning for int-long conversion
6698 7.1.292 when using a pattern with "\@<=" the submatches can be wrong
3087 7.1.293 spell checking considers super/subscript chars as word chars