Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/src/evalvars.c b/src/evalvars.c
- index fdc6f454a..2566a1703 100644
- --- a/src/evalvars.c
- +++ b/src/evalvars.c
- @@ -147,6 +147,7 @@ static struct vimvar
- {VV_NAME("argv", VAR_LIST), VV_RO},
- {VV_NAME("collate", VAR_STRING), VV_RO},
- {VV_NAME("disallow_let", VAR_NUMBER), 0}, // TODO: remove
- + {VV_NAME("cmd", VAR_STRING), VV_RO},
- };
- // shorthand
- diff --git a/src/normal.c b/src/normal.c
- index 89eaabccc..8a2bdab43 100644
- --- a/src/normal.c
- +++ b/src/normal.c
- @@ -1809,9 +1809,13 @@ clear_showcmd(void)
- # endif
- sprintf((char *)showcmd_buf, "%ldx%ld", lines,
- (long)(rightcol - leftcol + 1));
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- }
- else if (VIsual_mode == 'V' || VIsual.lnum != curwin->w_cursor.lnum)
- + {
- sprintf((char *)showcmd_buf, "%ld", lines);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- + }
- else
- {
- char_u *s, *e;
- @@ -1843,17 +1847,25 @@ clear_showcmd(void)
- s += l;
- }
- if (bytes == chars)
- + {
- sprintf((char *)showcmd_buf, "%d", chars);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- + }
- else
- + {
- sprintf((char *)showcmd_buf, "%d-%d", chars, bytes);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- + }
- }
- showcmd_buf[SHOWCMD_COLS] = NUL; // truncate
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- showcmd_visual = TRUE;
- }
- else
- {
- showcmd_buf[0] = NUL;
- showcmd_visual = FALSE;
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- // Don't actually display something if there is nothing to clear.
- if (showcmd_is_clear)
- @@ -1916,6 +1928,7 @@ add_to_showcmd(int c)
- mch_memmove(showcmd_buf, showcmd_buf + overflow,
- old_len - overflow + 1);
- STRCAT(showcmd_buf, p);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- if (char_avail())
- return FALSE;
- @@ -1947,6 +1960,8 @@ del_from_showcmd(int len)
- if (len > old_len)
- len = old_len;
- showcmd_buf[old_len - len] = NUL;
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- +
- if (!char_avail())
- display_showcmd();
- @@ -1960,7 +1975,11 @@ del_from_showcmd(int len)
- push_showcmd(void)
- {
- if (p_sc)
- + {
- STRCPY(old_showcmd_buf, showcmd_buf);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- +
- + }
- }
- void
- @@ -1970,6 +1989,8 @@ pop_showcmd(void)
- return;
- STRCPY(showcmd_buf, old_showcmd_buf);
- + set_vim_var_string(VV_CMD, (char_u*)showcmd_buf, -1);
- +
- display_showcmd();
- }
- diff --git a/src/vim.h b/src/vim.h
- index c43ec83e6..1c576a774 100644
- --- a/src/vim.h
- +++ b/src/vim.h
- @@ -1993,7 +1993,8 @@ typedef int sock_T;
- #define VV_ARGV 94
- #define VV_COLLATE 95
- #define VV_DISALLOW_LET 96 // TODO: remove again
- -#define VV_LEN 97 // number of v: vars
- +#define VV_CMD 97
- +#define VV_LEN 98 // number of v: vars
- // used for v_number in VAR_BOOL and VAR_SPECIAL
- #define VVAL_FALSE 0L // VAR_BOOL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement