mirror of
https://github.com/neovim/neovim.git
synced 2025-09-15 07:48:18 +00:00
Ignore compatible mode
This commit is contained in:
@@ -1851,8 +1851,8 @@ void set_init_1(void)
|
||||
|
||||
langmap_init();
|
||||
|
||||
/* Be Vi compatible by default */
|
||||
p_cp = TRUE;
|
||||
/* Be nocompatible */
|
||||
p_cp = FALSE;
|
||||
|
||||
/* Use POSIX compatibility when $VIM_POSIX is set. */
|
||||
if (os_getenv("VIM_POSIX") != NULL) {
|
||||
@@ -1995,6 +1995,9 @@ void set_init_1(void)
|
||||
check_win_options(curwin);
|
||||
check_options();
|
||||
|
||||
/* Set all options to their Vim default */
|
||||
set_options_default(OPT_FREE);
|
||||
|
||||
/* Must be before option_expand(), because that one needs vim_isIDc() */
|
||||
didset_options();
|
||||
|
||||
@@ -2617,7 +2620,7 @@ do_set (
|
||||
if (vim_strchr((char_u *)"=:!&<", nextchar) == NULL
|
||||
&& (!(options[opt_idx].flags & P_BOOL)
|
||||
|| nextchar == '?'))
|
||||
errmsg = (char_u *)N_("E519: Option not supported");
|
||||
errmsg = (char_u *)_(e_unsupportedoption);
|
||||
goto skip;
|
||||
}
|
||||
|
||||
@@ -4922,13 +4925,10 @@ set_bool_option (
|
||||
if ((opt_flags & (OPT_LOCAL | OPT_GLOBAL)) == 0)
|
||||
*(int *)get_varp_scope(&(options[opt_idx]), OPT_GLOBAL) = value;
|
||||
|
||||
/*
|
||||
* Handle side effects of changing a bool option.
|
||||
*/
|
||||
|
||||
/* 'compatible' */
|
||||
if ((int *)varp == &p_cp) {
|
||||
compatible_set();
|
||||
if ((int *)varp == &p_cp && p_cp == TRUE) {
|
||||
/* Ensure that compatible can not be enabled */
|
||||
p_cp = FALSE;
|
||||
return e_unsupportedoption;
|
||||
}
|
||||
/* 'undofile' */
|
||||
else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf) {
|
||||
@@ -7748,18 +7748,9 @@ static void paste_option_changed(void)
|
||||
*/
|
||||
void vimrc_found(char_u *fname, char_u *envname)
|
||||
{
|
||||
int opt_idx;
|
||||
int dofree = FALSE;
|
||||
char_u *p;
|
||||
|
||||
if (!option_was_set((char_u *)"cp")) {
|
||||
p_cp = FALSE;
|
||||
for (opt_idx = 0; !istermoption(&options[opt_idx]); opt_idx++)
|
||||
if (!(options[opt_idx].flags & (P_WAS_SET|P_VI_DEF)))
|
||||
set_option_default(opt_idx, OPT_FREE, FALSE);
|
||||
didset_options();
|
||||
}
|
||||
|
||||
if (fname != NULL) {
|
||||
p = vim_getenv(envname, &dofree);
|
||||
if (p == NULL) {
|
||||
@@ -7774,22 +7765,6 @@ void vimrc_found(char_u *fname, char_u *envname)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Set 'compatible' on or off. Called for "-C" and "-N" command line arg.
|
||||
*/
|
||||
void change_compatible(int on)
|
||||
{
|
||||
int opt_idx;
|
||||
|
||||
if (p_cp != on) {
|
||||
p_cp = on;
|
||||
compatible_set();
|
||||
}
|
||||
opt_idx = findoption((char_u *)"cp");
|
||||
if (opt_idx >= 0)
|
||||
options[opt_idx].flags |= P_WAS_SET;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return TRUE when option "name" has been set.
|
||||
* Only works correctly for global options.
|
||||
@@ -7817,25 +7792,6 @@ void reset_option_was_set(char_u *name)
|
||||
options[idx].flags &= ~P_WAS_SET;
|
||||
}
|
||||
|
||||
/*
|
||||
* compatible_set() - Called when 'compatible' has been set or unset.
|
||||
*
|
||||
* When 'compatible' set: Set all relevant options (those that have the P_VIM)
|
||||
* flag) to a Vi compatible value.
|
||||
* When 'compatible' is unset: Set all options that have a different default
|
||||
* for Vim (without the P_VI_DEF flag) to that default.
|
||||
*/
|
||||
static void compatible_set(void)
|
||||
{
|
||||
int opt_idx;
|
||||
|
||||
for (opt_idx = 0; !istermoption(&options[opt_idx]); opt_idx++)
|
||||
if ( ((options[opt_idx].flags & P_VIM) && p_cp)
|
||||
|| (!(options[opt_idx].flags & P_VI_DEF) && !p_cp))
|
||||
set_option_default(opt_idx, OPT_FREE, p_cp);
|
||||
didset_options();
|
||||
}
|
||||
|
||||
/*
|
||||
* fill_breakat_flags() -- called when 'breakat' changes value.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user