vim/7.3.273
2011-08-29 13:45:16 +02:00

125 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

To: vim_dev@googlegroups.com
Subject: Patch 7.3.273
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------
Patch 7.3.273
Problem: A BOM in an error file is seen as text. (Aleksey Baibarin)
Solution: Remove the BOM from the text before evaluating. (idea by Christian
Brabandt)
Files: src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
src/testdir/test10.in
*** ../vim-7.3.272/src/quickfix.c 2011-05-19 17:42:54.000000000 +0200
--- src/quickfix.c 2011-08-10 12:56:15.000000000 +0200
***************
*** 561,566 ****
--- 561,570 ----
break;
IObuff[CMDBUFFSIZE - 2] = NUL; /* for very long lines */
+ #ifdef FEAT_MBYTE
+ remove_bom(IObuff);
+ #endif
+
if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
*efmp = NUL;
#ifdef USE_CRNL
*** ../vim-7.3.272/src/mbyte.c 2011-07-27 18:25:40.000000000 +0200
--- src/mbyte.c 2011-08-10 13:11:56.000000000 +0200
***************
*** 838,843 ****
--- 838,864 ----
}
/*
+ * Remove all BOM from "s" by moving remaining text.
+ */
+ void
+ remove_bom(s)
+ char_u *s;
+ {
+ if (enc_utf8)
+ {
+ char_u *p = s;
+
+ while ((p = vim_strbyte(p, 0xef)) != NULL)
+ {
+ if (p[1] == 0xbb && p[2] == 0xbf)
+ STRMOVE(p, p + 3);
+ else
+ ++p;
+ }
+ }
+ }
+
+ /*
* Get class of pointer:
* 0 for blank or NUL
* 1 for punctuation
*** ../vim-7.3.272/src/proto/mbyte.pro 2011-07-07 15:08:53.000000000 +0200
--- src/proto/mbyte.pro 2011-08-10 12:50:44.000000000 +0200
***************
*** 2,7 ****
--- 2,8 ----
int enc_canon_props __ARGS((char_u *name));
char_u *mb_init __ARGS((void));
int bomb_size __ARGS((void));
+ void remove_bom __ARGS((char_u *s));
int mb_get_class __ARGS((char_u *p));
int dbcs_class __ARGS((unsigned lead, unsigned trail));
int latin_char2len __ARGS((int c));
*** ../vim-7.3.272/src/testdir/test10.in 2010-08-15 21:57:29.000000000 +0200
--- src/testdir/test10.in 2011-08-10 13:01:46.000000000 +0200
***************
*** 2,7 ****
--- 2,10 ----
STARTTEST
:so small.vim
+ :" Also test a BOM is ignored.
+ :so mbyte.vim
+ :set encoding=utf-8
:/start of errorfile/,/end of errorfile/w! Xerrorfile
:/start of testfile/,/end of testfile/w! Xtestfile
:cf Xerrorfile
***************
*** 20,26 ****
start of errorfile
"Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! "Xtestfile", line 7 col 19; this is an error
gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
Xtestfile:13: parse error before `asd'
make: *** [vim] Error 1
--- 23,29 ----
start of errorfile
"Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
! "Xtestfile", line 7 col 19; this is an error
gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
Xtestfile:13: parse error before `asd'
make: *** [vim] Error 1
*** ../vim-7.3.272/src/version.c 2011-08-10 12:38:02.000000000 +0200
--- src/version.c 2011-08-10 13:14:35.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
{ /* Add new patch number below this line */
+ /**/
+ 273,
/**/
--
Compilation process failed successfully.
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///