mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
encoding: don't allow changing encoding after startup scripts
This commit is contained in:
parent
dc9652e68d
commit
6769438cd1
@ -633,6 +633,10 @@ EXTERN int silent_mode INIT(= FALSE);
|
|||||||
/* set to TRUE when "-s" commandline argument
|
/* set to TRUE when "-s" commandline argument
|
||||||
* used for ex */
|
* used for ex */
|
||||||
|
|
||||||
|
// Set to true when sourcing of startup scripts (nvimrc) is done.
|
||||||
|
// Used for options that cannot be changed after startup scripts.
|
||||||
|
EXTERN bool did_source_startup_scripts INIT(= false);
|
||||||
|
|
||||||
EXTERN pos_T VIsual; /* start position of active Visual selection */
|
EXTERN pos_T VIsual; /* start position of active Visual selection */
|
||||||
EXTERN int VIsual_active INIT(= FALSE);
|
EXTERN int VIsual_active INIT(= FALSE);
|
||||||
/* whether Visual mode is active */
|
/* whether Visual mode is active */
|
||||||
@ -1078,6 +1082,8 @@ EXTERN garray_T error_ga
|
|||||||
* Excluded are errors that are only used once and debugging messages.
|
* Excluded are errors that are only used once and debugging messages.
|
||||||
*/
|
*/
|
||||||
EXTERN char_u e_abort[] INIT(= N_("E470: Command aborted"));
|
EXTERN char_u e_abort[] INIT(= N_("E470: Command aborted"));
|
||||||
|
EXTERN char_u e_afterinit[] INIT(= N_(
|
||||||
|
"E905: Cannot set this option after startup"));
|
||||||
EXTERN char_u e_api_spawn_failed[] INIT(= N_("E903: Could not spawn API job"));
|
EXTERN char_u e_api_spawn_failed[] INIT(= N_("E903: Could not spawn API job"));
|
||||||
EXTERN char_u e_argreq[] INIT(= N_("E471: Argument required"));
|
EXTERN char_u e_argreq[] INIT(= N_("E471: Argument required"));
|
||||||
EXTERN char_u e_backslash[] INIT(= N_("E10: \\ should be followed by /, ? or &"));
|
EXTERN char_u e_backslash[] INIT(= N_("E10: \\ should be followed by /, ? or &"));
|
||||||
|
@ -1911,6 +1911,7 @@ static void source_startup_scripts(mparm_T *parmp)
|
|||||||
need_wait_return = TRUE;
|
need_wait_return = TRUE;
|
||||||
secure = 0;
|
secure = 0;
|
||||||
}
|
}
|
||||||
|
did_source_startup_scripts = true;
|
||||||
TIME_MSG("sourcing vimrc file(s)");
|
TIME_MSG("sourcing vimrc file(s)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -575,6 +575,12 @@ void set_init_1(void)
|
|||||||
mb_init();
|
mb_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Don't change &encoding when resetting to defaults with ":set all&".
|
||||||
|
opt_idx = findoption((char_u *)"encoding");
|
||||||
|
if (opt_idx >= 0) {
|
||||||
|
options[opt_idx].flags |= P_NODEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
/* Set the default for 'helplang'. */
|
/* Set the default for 'helplang'. */
|
||||||
set_helplang_default(get_mess_lang());
|
set_helplang_default(get_mess_lang());
|
||||||
}
|
}
|
||||||
@ -2271,10 +2277,11 @@ did_set_string_option (
|
|||||||
else if (varp == &p_ei) {
|
else if (varp == &p_ei) {
|
||||||
if (check_ei() == FAIL)
|
if (check_ei() == FAIL)
|
||||||
errmsg = e_invarg;
|
errmsg = e_invarg;
|
||||||
}
|
|
||||||
/* 'encoding' and 'fileencoding' */
|
/* 'encoding' and 'fileencoding' */
|
||||||
else if (varp == &p_enc || gvarp == &p_fenc) {
|
} else if (varp == &p_enc || gvarp == &p_fenc) {
|
||||||
if (gvarp == &p_fenc) {
|
if (varp == &p_enc && did_source_startup_scripts) {
|
||||||
|
errmsg = e_afterinit;
|
||||||
|
} else if (gvarp == &p_fenc) {
|
||||||
if (!MODIFIABLE(curbuf) && opt_flags != OPT_GLOBAL)
|
if (!MODIFIABLE(curbuf) && opt_flags != OPT_GLOBAL)
|
||||||
errmsg = e_modifiable;
|
errmsg = e_modifiable;
|
||||||
else if (vim_strchr(*varp, ',') != NULL)
|
else if (vim_strchr(*varp, ',') != NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user