]> granicus.if.org Git - vim/commitdiff
Change readfile() to ignore byte order marks, unless in binary mode.
authorBram Moolenaar <Bram@vim.org>
Sat, 7 Aug 2010 18:30:49 +0000 (20:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 7 Aug 2010 18:30:49 +0000 (20:30 +0200)
runtime/doc/eval.txt
runtime/doc/tags
runtime/doc/todo.txt
src/eval.c

index 51ec4e1558bbbd269e95ae24be391fbe6801f9c2..37a935cf011a8f9cdb970a6982bcb8be3eff73d9 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 7.3e.  Last change: 2010 Aug 04
+*eval.txt*     For Vim version 7.3e.  Last change: 2010 Aug 07
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -4524,6 +4524,7 @@ readfile({fname} [, {binary} [, {max}]])
                as an item.  Lines broken at NL characters.  Macintosh files
                separated with CR will result in a single long line (unless a
                NL appears somewhere).
+               All NUL characters are replaced with a NL character.
                When {binary} is equal to "b" binary mode is used:
                - When the last line ends in a NL an extra empty list item is
                  added.
@@ -4531,7 +4532,8 @@ readfile({fname} [, {binary} [, {max}]])
                Otherwise:
                - CR characters that appear before a NL are removed.
                - Whether the last line ends in a NL or not does not matter.
-               All NUL characters are replaced with a NL character.
+               - When 'encoding' is Unicode any UTF-8 byte order mark is
+                 removed from the text.
                When {max} is given this specifies the maximum number of lines
                to be read.  Useful if you only want to check the first ten
                lines of a file: >
index f72af0e8457b452253e35cd4c551e0336100ef83..e16c8e91607ae9ed85080259ac7693004487acbf 100644 (file)
@@ -7917,6 +7917,7 @@ tex-package       syntax.txt      /*tex-package*
 tex-runon      syntax.txt      /*tex-runon*
 tex-slow       syntax.txt      /*tex-slow*
 tex-style      syntax.txt      /*tex-style*
+tex-verb       syntax.txt      /*tex-verb*
 tex.vim        syntax.txt      /*tex.vim*
 text-functions usr_41.txt      /*text-functions*
 text-objects   motion.txt      /*text-objects*
index 299ea625b157295e39c757f9af55e9566f3bfd0c..e4bdbc513419d210a9ca7d38287ebe762f59fc28 100644 (file)
@@ -33,10 +33,6 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 Before release 7.3:
 - Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
 
-Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
-
-Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
-
 Should readfile() ignore BOM when not in binary mode?
 
 Bug: searching for tags file uses 'suffixesadd', should not happen. (Dominique
@@ -64,6 +60,8 @@ accented character. (Tony Mechelynck, 2010 Apr 15)
 Patch: Let rare word highlighting overrule good word highlighting.
 (Jakson A. Aquino, 2010 Jul 30)
 
+Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
+
 ":drop" does not respect 'autochdir'. (Peter Odding, 2010 Jul 24)
 
 Problem with cursor in the wrong column. (SungHyun Nam, 2010 Mar 11)
index 8a26b6690cf9fd56704c472067f5099535f9d255..5dfb7f22668b3db292916d204e919949f3e38429 100644 (file)
@@ -14267,6 +14267,20 @@ f_readfile(argvars, rettv)
            }
            else if (buf[filtd] == NUL)
                buf[filtd] = '\n';
+#ifdef FEAT_MBYTE
+           else if (buf[filtd] == 0xef
+                   && enc_utf8
+                   && filtd + 2 < buflen
+                   && !binary
+                   && buf[filtd + 1] == 0xbb
+                   && buf[filtd + 2] == 0xbf)
+           {
+               /* remove utf-8 byte order mark */
+               mch_memmove(buf + filtd, buf + filtd + 3, buflen - filtd - 3);
+               --filtd;
+               buflen -= 3;
+           }
+#endif
        }
        if (readlen <= 0)
            break;