0
0
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:
Bram Moolenaar
2018-03-01 21:57:32 +01:00
parent 5f73ef8d20
commit 0726870326
10 changed files with 48 additions and 7 deletions

View File

@@ -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

View File

@@ -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(&params); common_init(&params);
#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)

View File

@@ -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);

View File

@@ -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 */

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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. */

View File

@@ -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,
/**/ /**/