mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.0.1554: custom plugins loaded with --clean
Problem: Custom plugins loaded with --clean. Solution: Do not include the home directory in 'runtimepath'.
This commit is contained in:
@@ -516,6 +516,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|||||||
- the |defaults.vim| script is loaded, which implies
|
- the |defaults.vim| script is loaded, which implies
|
||||||
'nocompatible': use Vim defaults
|
'nocompatible': use Vim defaults
|
||||||
- no viminfo file is read or written
|
- no viminfo file is read or written
|
||||||
|
- the home directory is excluded from 'runtimepath'
|
||||||
*-x*
|
*-x*
|
||||||
-x Use encryption to read/write files. Will prompt for a key,
|
-x Use encryption to read/write files. Will prompt for a key,
|
||||||
which is then stored in the 'key' option. All writes will
|
which is then stored in the 'key' option. All writes will
|
||||||
|
18
src/main.c
18
src/main.c
@@ -158,18 +158,25 @@ main
|
|||||||
|
|
||||||
#ifdef STARTUPTIME
|
#ifdef STARTUPTIME
|
||||||
/* Need to find "--startuptime" before actually parsing arguments. */
|
/* Need to find "--startuptime" before actually parsing arguments. */
|
||||||
for (i = 1; i < argc; ++i)
|
for (i = 1; i < argc - 1; ++i)
|
||||||
{
|
if (STRICMP(argv[i], "--startuptime") == 0)
|
||||||
if (STRICMP(argv[i], "--startuptime") == 0 && i + 1 < argc)
|
|
||||||
{
|
{
|
||||||
time_fd = mch_fopen(argv[i + 1], "a");
|
time_fd = mch_fopen(argv[i + 1], "a");
|
||||||
TIME_MSG("--- VIM STARTING ---");
|
TIME_MSG("--- VIM STARTING ---");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
starttime = time(NULL);
|
starttime = time(NULL);
|
||||||
|
|
||||||
|
#ifdef CLEAN_RUNTIMEPATH
|
||||||
|
/* Need to find "--clean" before actually parsing arguments. */
|
||||||
|
for (i = 1; i < argc; ++i)
|
||||||
|
if (STRICMP(argv[i], "--clean") == 0)
|
||||||
|
{
|
||||||
|
params.clean = TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
common_init(¶ms);
|
common_init(¶ms);
|
||||||
|
|
||||||
#ifdef FEAT_CLIENTSERVER
|
#ifdef FEAT_CLIENTSERVER
|
||||||
@@ -1024,7 +1031,7 @@ common_init(mparm_T *paramp)
|
|||||||
* First find out the home directory, needed to expand "~" in options.
|
* First find out the home directory, needed to expand "~" in options.
|
||||||
*/
|
*/
|
||||||
init_homedir(); /* find real value of $HOME */
|
init_homedir(); /* find real value of $HOME */
|
||||||
set_init_1();
|
set_init_1(paramp->clean);
|
||||||
TIME_MSG("inits 1");
|
TIME_MSG("inits 1");
|
||||||
|
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
@@ -1903,6 +1910,7 @@ command_line_scan(mparm_T *parmp)
|
|||||||
else if (STRNICMP(argv[0] + argv_idx, "clean", 5) == 0)
|
else if (STRNICMP(argv[0] + argv_idx, "clean", 5) == 0)
|
||||||
{
|
{
|
||||||
parmp->use_vimrc = (char_u *)"DEFAULTS";
|
parmp->use_vimrc = (char_u *)"DEFAULTS";
|
||||||
|
parmp->clean = TRUE;
|
||||||
set_option_value((char_u *)"vif", 0L, (char_u *)"NONE", 0);
|
set_option_value((char_u *)"vif", 0L, (char_u *)"NONE", 0);
|
||||||
}
|
}
|
||||||
else if (STRNICMP(argv[0] + argv_idx, "literal", 7) == 0)
|
else if (STRNICMP(argv[0] + argv_idx, "literal", 7) == 0)
|
||||||
|
21
src/option.c
21
src/option.c
@@ -3345,9 +3345,10 @@ static int briopt_check(win_T *wp);
|
|||||||
* Initialize the options, first part.
|
* Initialize the options, first part.
|
||||||
*
|
*
|
||||||
* Called only once from main(), just after creating the first buffer.
|
* Called only once from main(), just after creating the first buffer.
|
||||||
|
* If "clean_arg" is TRUE Vim was started with --clean.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
set_init_1(void)
|
set_init_1(int clean_arg)
|
||||||
{
|
{
|
||||||
char_u *p;
|
char_u *p;
|
||||||
int opt_idx;
|
int opt_idx;
|
||||||
@@ -3554,6 +3555,24 @@ set_init_1(void)
|
|||||||
*/
|
*/
|
||||||
set_options_default(0);
|
set_options_default(0);
|
||||||
|
|
||||||
|
#ifdef CLEAN_RUNTIMEPATH
|
||||||
|
if (clean_arg)
|
||||||
|
{
|
||||||
|
opt_idx = findoption((char_u *)"runtimepath");
|
||||||
|
if (opt_idx >= 0)
|
||||||
|
{
|
||||||
|
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)CLEAN_RUNTIMEPATH;
|
||||||
|
p_rtp = (char_u *)CLEAN_RUNTIMEPATH;
|
||||||
|
}
|
||||||
|
opt_idx = findoption((char_u *)"packpath");
|
||||||
|
if (opt_idx >= 0)
|
||||||
|
{
|
||||||
|
options[opt_idx].def_val[VI_DEFAULT] = (char_u *)CLEAN_RUNTIMEPATH;
|
||||||
|
p_pp = (char_u *)CLEAN_RUNTIMEPATH;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef FEAT_GUI
|
#ifdef FEAT_GUI
|
||||||
if (found_reverse_arg)
|
if (found_reverse_arg)
|
||||||
set_option_value((char_u *)"bg", 0L, (char_u *)"dark", 0);
|
set_option_value((char_u *)"bg", 0L, (char_u *)"dark", 0);
|
||||||
|
@@ -43,6 +43,9 @@
|
|||||||
#ifndef DFLT_RUNTIMEPATH
|
#ifndef DFLT_RUNTIMEPATH
|
||||||
# define DFLT_RUNTIMEPATH "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after"
|
# define DFLT_RUNTIMEPATH "home:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,home:vimfiles/after"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CLEAN_RUNTIMEPATH
|
||||||
|
# define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef BASENAMELEN
|
#ifndef BASENAMELEN
|
||||||
# define BASENAMELEN 26 /* Amiga */
|
# define BASENAMELEN 26 /* Amiga */
|
||||||
|
@@ -125,6 +125,7 @@
|
|||||||
|
|
||||||
#define DFLT_ERRORFILE "errors.err"
|
#define DFLT_ERRORFILE "errors.err"
|
||||||
#define DFLT_RUNTIMEPATH "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after"
|
#define DFLT_RUNTIMEPATH "$HOME/vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,$HOME/vimfiles/after"
|
||||||
|
#define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
|
||||||
|
|
||||||
#define CASE_INSENSITIVE_FILENAME /* ignore case when comparing file names */
|
#define CASE_INSENSITIVE_FILENAME /* ignore case when comparing file names */
|
||||||
#define SPACE_IN_FILENAME
|
#define SPACE_IN_FILENAME
|
||||||
|
@@ -215,6 +215,9 @@
|
|||||||
#ifndef DFLT_RUNTIMEPATH
|
#ifndef DFLT_RUNTIMEPATH
|
||||||
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef CLEAN_RUNTIMEPATH
|
||||||
|
# define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macintosh has plenty of memory, use large buffers
|
* Macintosh has plenty of memory, use large buffers
|
||||||
|
@@ -366,11 +366,14 @@ typedef struct dsc$descriptor DESC;
|
|||||||
|
|
||||||
#ifdef VMS
|
#ifdef VMS
|
||||||
# define DFLT_RUNTIMEPATH "sys$login:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,sys$login:vimfiles/after"
|
# define DFLT_RUNTIMEPATH "sys$login:vimfiles,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,sys$login:vimfiles/after"
|
||||||
|
# define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
|
||||||
#else
|
#else
|
||||||
# ifdef RUNTIME_GLOBAL
|
# ifdef RUNTIME_GLOBAL
|
||||||
# define DFLT_RUNTIMEPATH "~/.vim," RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after,~/.vim/after"
|
# define DFLT_RUNTIMEPATH "~/.vim," RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after,~/.vim/after"
|
||||||
|
# define CLEAN_RUNTIMEPATH RUNTIME_GLOBAL ",$VIMRUNTIME," RUNTIME_GLOBAL "/after"
|
||||||
# else
|
# else
|
||||||
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
# define DFLT_RUNTIMEPATH "~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after"
|
||||||
|
# define CLEAN_RUNTIMEPATH "$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/* option.c */
|
/* option.c */
|
||||||
void set_init_1(void);
|
void set_init_1(int clean_arg);
|
||||||
void set_string_default(char *name, char_u *val);
|
void set_string_default(char *name, char_u *val);
|
||||||
void set_number_default(char *name, long val);
|
void set_number_default(char *name, long val);
|
||||||
void free_all_options(void);
|
void free_all_options(void);
|
||||||
|
@@ -3333,6 +3333,7 @@ typedef struct
|
|||||||
|
|
||||||
int evim_mode; /* started as "evim" */
|
int evim_mode; /* started as "evim" */
|
||||||
char_u *use_vimrc; /* vimrc from -u argument */
|
char_u *use_vimrc; /* vimrc from -u argument */
|
||||||
|
int clean; /* --clean argument */
|
||||||
|
|
||||||
int n_commands; /* no. of commands from + or -c */
|
int n_commands; /* no. of commands from + or -c */
|
||||||
char_u *commands[MAX_ARG_CMDS]; /* commands from + or -c arg. */
|
char_u *commands[MAX_ARG_CMDS]; /* commands from + or -c arg. */
|
||||||
|
@@ -778,6 +778,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1554,
|
||||||
/**/
|
/**/
|
||||||
1553,
|
1553,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user