mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
updated for version 7.4.605
Problem: The # register is not writable, it cannot be restored after jumping around. Solution: Make the # register writable. (Marcin Szamotulski)
This commit is contained in:
26
src/ops.c
26
src/ops.c
@@ -856,11 +856,12 @@ valid_yank_reg(regname, writing)
|
||||
if ( (regname > 0 && ASCII_ISALNUM(regname))
|
||||
|| (!writing && vim_strchr((char_u *)
|
||||
#ifdef FEAT_EVAL
|
||||
"/.%#:="
|
||||
"/.%:="
|
||||
#else
|
||||
"/.%#:"
|
||||
"/.%:"
|
||||
#endif
|
||||
, regname) != NULL)
|
||||
|| regname == '#'
|
||||
|| regname == '"'
|
||||
|| regname == '-'
|
||||
|| regname == '_'
|
||||
@@ -6514,6 +6515,27 @@ write_reg_contents_ex(name, str, maxlen, must_append, yank_type, block_len)
|
||||
return;
|
||||
}
|
||||
|
||||
if (name == '#')
|
||||
{
|
||||
buf_T *buf;
|
||||
|
||||
if (VIM_ISDIGIT(*str))
|
||||
{
|
||||
int num = atoi((char *)str);
|
||||
|
||||
buf = buflist_findnr(num);
|
||||
if (buf == NULL)
|
||||
EMSGN(_(e_nobufnr), (long)num);
|
||||
}
|
||||
else
|
||||
buf = buflist_findnr(buflist_findpat(str, str + STRLEN(str),
|
||||
TRUE, FALSE, FALSE));
|
||||
if (buf == NULL)
|
||||
return;
|
||||
curwin->w_alt_fnum = buf->b_fnum;
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
if (name == '=')
|
||||
{
|
||||
|
Reference in New Issue
Block a user