mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 11:26:37 +00:00
vim-patch:8.0.0716: "--clean", 'shadafile' #9907
Nvim notes:
- Nvim does not support "-u DEFAULTS", that change is omitted.
- Also add 'shadafile' as an alias to 'viminfofile'.
- Deprecate 'viminfofile'.
Problem: Not easy to start Vim cleanly without changing the viminfo file.
Not possible to know whether the -i command line flag was used.
Solution: Add the --clean command line argument. Add the 'viminfofile'
option. Add "-u DEFAULTS".
c4da113ef9
This commit is contained in:
@@ -754,7 +754,6 @@ EXTERN int skip_redraw INIT(= FALSE); /* skip redraw once */
|
||||
EXTERN int do_redraw INIT(= FALSE); /* extra redraw once */
|
||||
|
||||
EXTERN int need_highlight_changed INIT(= true);
|
||||
EXTERN char *used_shada_file INIT(= NULL); // name of the ShaDa file to use
|
||||
|
||||
EXTERN FILE *scriptout INIT(= NULL); ///< Stream to write script to.
|
||||
|
||||
|
@@ -871,6 +871,9 @@ static void command_line_scan(mparm_T *parmp)
|
||||
} else if (STRNICMP(argv[0] + argv_idx, "startuptime", 11) == 0) {
|
||||
want_argument = true;
|
||||
argv_idx += 11;
|
||||
} else if (STRNICMP(argv[0] + argv_idx, "clean", 5) == 0) {
|
||||
parmp->use_vimrc = "NONE";
|
||||
set_option_value("shadafile", 0L, "NONE", 0);
|
||||
} else {
|
||||
if (argv[0][argv_idx])
|
||||
mainerr(err_opt_unknown, argv[0]);
|
||||
@@ -1129,7 +1132,7 @@ static void command_line_scan(mparm_T *parmp)
|
||||
}
|
||||
|
||||
case 'i': { // "-i {shada}" use for shada
|
||||
used_shada_file = argv[0];
|
||||
set_option_value("shadafile", 0L, argv[0], 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@@ -630,6 +630,7 @@ EXTERN long p_ur; ///< 'undoreload'
|
||||
EXTERN long p_uc; ///< 'updatecount'
|
||||
EXTERN long p_ut; ///< 'updatetime'
|
||||
EXTERN char_u *p_shada; ///< 'shada'
|
||||
EXTERN char *p_shadafile; ///< 'shadafile'
|
||||
EXTERN char_u *p_vdir; ///< 'viewdir'
|
||||
EXTERN char_u *p_vop; ///< 'viewoptions'
|
||||
EXTERN unsigned vop_flags; ///< uses SSOP_ flags
|
||||
|
@@ -2014,6 +2014,15 @@ return {
|
||||
varname='p_shada',
|
||||
defaults={if_true={vi="", vim="!,'100,<50,s10,h"}}
|
||||
},
|
||||
{
|
||||
full_name='shadafile', abbreviation='sdf',
|
||||
type='string', list='onecomma', scope={'global'},
|
||||
deny_duplicates=true,
|
||||
vi_def=true,
|
||||
secure=true,
|
||||
varname='p_shadafile',
|
||||
defaults={if_true={vi=""}}
|
||||
},
|
||||
{
|
||||
full_name='shell', abbreviation='sh',
|
||||
type='string', scope={'global'},
|
||||
@@ -2632,6 +2641,15 @@ return {
|
||||
varname='p_shada',
|
||||
defaults={if_true={vi="", vim="!,'100,<50,s10,h"}}
|
||||
},
|
||||
{
|
||||
full_name='viminfofile', abbreviation='vif',
|
||||
type='string', list='onecomma', scope={'global'},
|
||||
deny_duplicates=true,
|
||||
vi_def=true,
|
||||
secure=true,
|
||||
varname='p_shadafile',
|
||||
defaults={if_true={vi=""}}
|
||||
},
|
||||
{
|
||||
full_name='virtualedit', abbreviation='ve',
|
||||
type='string', list='onecomma', scope={'global'},
|
||||
|
@@ -856,13 +856,13 @@ static int msgpack_sd_writer_write(void *data, const char *buf, size_t len)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/// Check whether writing to shada file was disabled with -i NONE
|
||||
/// Check whether writing to shada file was disabled ("-i NONE" or "--clean").
|
||||
///
|
||||
/// @return true if it was disabled, false otherwise.
|
||||
static bool shada_disabled(void)
|
||||
FUNC_ATTR_PURE
|
||||
{
|
||||
return used_shada_file != NULL && STRCMP(used_shada_file, "NONE") == 0;
|
||||
return strequal(p_shadafile, "NONE");
|
||||
}
|
||||
|
||||
/// Read ShaDa file
|
||||
@@ -1542,14 +1542,14 @@ static char *shada_filename(const char *file)
|
||||
FUNC_ATTR_MALLOC FUNC_ATTR_NONNULL_RET FUNC_ATTR_WARN_UNUSED_RESULT
|
||||
{
|
||||
if (file == NULL || *file == NUL) {
|
||||
if (used_shada_file != NULL) {
|
||||
file = used_shada_file;
|
||||
if (p_shadafile != NULL) {
|
||||
file = p_shadafile;
|
||||
} else {
|
||||
if ((file = find_shada_parameter('n')) == NULL || *file == NUL) {
|
||||
file = shada_get_default_file();
|
||||
}
|
||||
// XXX It used to be one level lower, so that whatever is in
|
||||
// `used_shada_file` was expanded. I intentionally moved it here
|
||||
// `p_shadafile` was expanded. I intentionally moved it here
|
||||
// because various expansions must have already be done by the shell.
|
||||
// If shell is not performing them then they should be done in main.c
|
||||
// where arguments are parsed, *not here*.
|
||||
|
Reference in New Issue
Block a user