Mercurial > vim
changeset 2317:2b2cd34569eb vim73
Disallow setting 'enc' in a modeline. (Patrick Texier)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 14 Jul 2010 21:12:05 +0200 |
parents | db0ea641e382 |
children | 9cf111138fb9 |
files | runtime/doc/options.txt runtime/doc/todo.txt src/option.c |
diffstat | 3 files changed, 21 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -2436,6 +2436,9 @@ A jump table for the options with a shor It should normally be kept at its default value, or set when Vim starts up. See |multibyte|. To reload the menus see |:menutrans|. + This option cannot be set from a |modeline|. It would most likely + corrupt the text. + NOTE: For GTK+ 2 it is highly recommended to set 'encoding' to "utf-8". Although care has been taken to allow different values of 'encoding', "utf-8" is the natural choice for the environment and @@ -2619,6 +2622,7 @@ A jump table for the options with a shor feature} {not in Vi} Sets the character encoding for the file of this buffer. + When 'fileencoding' is different from 'encoding', conversion will be done when writing the file. For reading see below. When 'fileencoding' is empty, the same value as 'encoding' will be @@ -2631,24 +2635,32 @@ A jump table for the options with a shor is most likely done in a way that the reverse conversion results in the same text. When 'encoding' is not "utf-8" some characters may be lost! + See 'encoding' for the possible values. Additionally, values may be specified that can be handled by the converter, see |mbyte-conversion|. + When reading a file 'fileencoding' will be set from 'fileencodings'. To read a file in a certain encoding it won't work by setting 'fileencoding', use the |++enc| argument. One exception: when 'fileencodings' is empty the value of 'fileencoding' is used. For a new file the global value of 'fileencoding' is used. + Prepending "8bit-" and "2byte-" has no meaning here, they are ignored. When the option is set, the value is converted to lowercase. Thus you can set it with uppercase values too. '_' characters are replaced with '-'. If a name is recognized from the list for 'encoding', it is replaced by the standard name. For example "ISO8859-2" becomes "iso-8859-2". + When this option is set, after starting to edit a file, the 'modified' option is set, because the file would be different when written. - If you do this in a modeline, you might want to set 'nomodified' to - avoid this. + + Keep in mind that changing 'fenc' from a modeline happens + AFTER the text has been read, thus it applies to when the file will be + written. If you do set 'fenc' in a modeline, you might want to set + 'nomodified' to avoid not being able to ":q". + This option can not be changed when 'modifiable' is off. *'fe'*
--- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -560,11 +560,6 @@ character typed. (Tyler Spivey, 2008 Sep 'arabicshape' when there is a character on the command line for which (ARABIC_CHAR(u8c)) is TRUE. -Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 -by Vissale Neang. (Martin Stubenschrott) -Asked Vissale to make the scripts more friendly for the Vim distribution. -New version received 2008 Jan 6. - Cheng Fang made javacomplete. (2007 Aug 11) Asked about latest version: 0.77.1 is on www.vim.org. @@ -1102,6 +1097,10 @@ Patches to possibly include: feature. (Matt Wozniski, 2009 Apr 15) Patch go make gui highlight settings work in Vim without +gui feature. (Matt Wozniski, 2009 Mar 27) +- Replace ccomplete.vim by cppcomplete.vim from www.vim.org? script 1520 by + Vissale Neang. (Martin Stubenschrott) + Asked Vissale to make the scripts more friendly for the Vim distribution. + New version received 2008 Jan 6. - Patch for supporting #rrggbb in color terminals. (Matt Wozniski) 6 In the quickfix window statusline add the command used to get the list of errors, e.g. ":make foo", ":grep something *.c". @@ -1112,8 +1111,6 @@ 6 In the quickfix window statusline ad Fix for invalid memory access. (Lech Lorens, 2009 Apr 17) - Another patch for Javascript indenting. (Hari Kumar, 2010 Jul 11) Needs a few tests. -- Disable setting 'encoding' from a modeline? It usually causes problems, - can't do any good. (Patch from Patrick Texier, 2008 Dec 9) - Redraw problem when appending digraph causes line to wrap. (James Vega, 2007 Sep 18) Patch by Ian Kelling, 2008 Aug 8. - Patch for colorscheme submenu. (Juergen Kraemer, 2008 Aug 20)
--- a/src/option.c +++ b/src/option.c @@ -451,6 +451,7 @@ struct vimoption #define P_INSECURE 0x400000L/* option was set from a modeline */ #define P_PRI_MKRC 0x800000L/* priority for :mkvimrc (setting option has side effects) */ +#define P_NO_ML 0x1000000L/* not allowed in modeline */ #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255" @@ -1015,7 +1016,7 @@ static struct vimoption {"edcompatible","ed", P_BOOL|P_VI_DEF, (char_u *)&p_ed, PV_NONE, {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, - {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR, + {"encoding", "enc", P_STRING|P_VI_DEF|P_RCLR|P_NO_ML, #ifdef FEAT_MBYTE (char_u *)&p_enc, PV_NONE, {(char_u *)ENC_DFLT, (char_u *)0L} @@ -4236,7 +4237,7 @@ do_set(arg, opt_flags) /* Disallow changing some options from modelines. */ if (opt_flags & OPT_MODELINE) { - if (flags & P_SECURE) + if (flags & (P_SECURE | P_NO_ML)) { errmsg = (char_u *)_("E520: Not allowed in a modeline"); goto skip;