Karsten Hopp 8f00d6
To: vim-dev@vim.org
Karsten Hopp 8f00d6
Subject: Patch 7.2.422
Karsten Hopp 8f00d6
Fcc: outbox
Karsten Hopp 8f00d6
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 8f00d6
Mime-Version: 1.0
Karsten Hopp 8f00d6
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 8f00d6
Content-Transfer-Encoding: 8bit
Karsten Hopp 8f00d6
------------
Karsten Hopp 8f00d6
Karsten Hopp 8f00d6
Patch 7.2.422
Karsten Hopp 8f00d6
Problem:    May get E763 when using spell dictionaries.
Karsten Hopp 8f00d6
Solution:   Avoid utf-8 case folded character to be truncated to 8 bits and
Karsten Hopp 8f00d6
	    differ from latin1. (Dominique Pelle)
Karsten Hopp 8f00d6
Files:	    src/spell.c
Karsten Hopp 8f00d6
Karsten Hopp 8f00d6
Karsten Hopp 8f00d6
*** ../vim-7.2.421/src/spell.c	2010-01-19 13:06:42.000000000 +0100
Karsten Hopp 8f00d6
--- src/spell.c	2010-05-13 17:29:28.000000000 +0200
Karsten Hopp 8f00d6
***************
Karsten Hopp 8f00d6
*** 9780,9789 ****
Karsten Hopp 8f00d6
      {
Karsten Hopp 8f00d6
  	for (i = 128; i < 256; ++i)
Karsten Hopp 8f00d6
  	{
Karsten Hopp 8f00d6
  	    spelltab.st_isu[i] = utf_isupper(i);
Karsten Hopp 8f00d6
  	    spelltab.st_isw[i] = spelltab.st_isu[i] || utf_islower(i);
Karsten Hopp 8f00d6
! 	    spelltab.st_fold[i] = utf_fold(i);
Karsten Hopp 8f00d6
! 	    spelltab.st_upper[i] = utf_toupper(i);
Karsten Hopp 8f00d6
  	}
Karsten Hopp 8f00d6
      }
Karsten Hopp 8f00d6
      else
Karsten Hopp 8f00d6
--- 9780,9795 ----
Karsten Hopp 8f00d6
      {
Karsten Hopp 8f00d6
  	for (i = 128; i < 256; ++i)
Karsten Hopp 8f00d6
  	{
Karsten Hopp 8f00d6
+ 	    int f = utf_fold(i);
Karsten Hopp 8f00d6
+ 	    int u = utf_toupper(i);
Karsten Hopp 8f00d6
+ 
Karsten Hopp 8f00d6
  	    spelltab.st_isu[i] = utf_isupper(i);
Karsten Hopp 8f00d6
  	    spelltab.st_isw[i] = spelltab.st_isu[i] || utf_islower(i);
Karsten Hopp 8f00d6
! 	    /* The folded/upper-cased value is different between latin1 and
Karsten Hopp 8f00d6
! 	     * utf8 for 0xb5, causing E763 for no good reason.  Use the latin1
Karsten Hopp 8f00d6
! 	     * value for utf-8 to avoid this. */
Karsten Hopp 8f00d6
! 	    spelltab.st_fold[i] = (f < 256) ? f : i;
Karsten Hopp 8f00d6
! 	    spelltab.st_upper[i] = (u < 256) ? u : i;
Karsten Hopp 8f00d6
  	}
Karsten Hopp 8f00d6
      }
Karsten Hopp 8f00d6
      else
Karsten Hopp 8f00d6
*** ../vim-7.2.421/src/version.c	2010-05-13 17:35:52.000000000 +0200
Karsten Hopp 8f00d6
--- src/version.c	2010-05-13 17:46:03.000000000 +0200
Karsten Hopp 8f00d6
***************
Karsten Hopp 8f00d6
*** 683,684 ****
Karsten Hopp 8f00d6
--- 683,686 ----
Karsten Hopp 8f00d6
  {   /* Add new patch number below this line */
Karsten Hopp 8f00d6
+ /**/
Karsten Hopp 8f00d6
+     422,
Karsten Hopp 8f00d6
  /**/
Karsten Hopp 8f00d6
Karsten Hopp 8f00d6
-- 
Karsten Hopp 8f00d6
Q. What happens to programmers when they die?
Karsten Hopp 8f00d6
A: MS-Windows programmers are reinstalled.  C++ programmers become undefined,
Karsten Hopp 8f00d6
   anyone who refers to them will die as well.  Java programmers reincarnate
Karsten Hopp 8f00d6
   after being garbage collected.
Karsten Hopp 8f00d6
Karsten Hopp 8f00d6
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 8f00d6
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 8f00d6
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp 8f00d6
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///