Mercurial > vim
comparison src/normal.c @ 6979:a25618cbc68a v7.4.807
patch 7.4.807
Problem: After CTRL-V CTRL-A mode isn't updated. (Hirohito Higashi)
Solution: Clear the command line or update the displayed command.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 04 Aug 2015 19:18:52 +0200 |
parents | c2b132add309 |
children | 27f8247d2619 |
comparison
equal
deleted
inserted
replaced
6978:5ad1ff809c32 | 6979:a25618cbc68a |
---|---|
46 static int checkclearop __ARGS((oparg_T *oap)); | 46 static int checkclearop __ARGS((oparg_T *oap)); |
47 static int checkclearopq __ARGS((oparg_T *oap)); | 47 static int checkclearopq __ARGS((oparg_T *oap)); |
48 static void clearop __ARGS((oparg_T *oap)); | 48 static void clearop __ARGS((oparg_T *oap)); |
49 static void clearopbeep __ARGS((oparg_T *oap)); | 49 static void clearopbeep __ARGS((oparg_T *oap)); |
50 static void unshift_special __ARGS((cmdarg_T *cap)); | 50 static void unshift_special __ARGS((cmdarg_T *cap)); |
51 static void may_clear_cmdline __ARGS((void)); | |
51 #ifdef FEAT_CMDL_INFO | 52 #ifdef FEAT_CMDL_INFO |
52 static void del_from_showcmd __ARGS((int)); | 53 static void del_from_showcmd __ARGS((int)); |
53 #endif | 54 #endif |
54 | 55 |
55 /* | 56 /* |
1750 VIsual_active = FALSE; | 1751 VIsual_active = FALSE; |
1751 #ifdef FEAT_MOUSE | 1752 #ifdef FEAT_MOUSE |
1752 setmouse(); | 1753 setmouse(); |
1753 mouse_dragging = 0; | 1754 mouse_dragging = 0; |
1754 #endif | 1755 #endif |
1755 if (mode_displayed) | 1756 may_clear_cmdline(); |
1756 clear_cmdline = TRUE; /* unshow visual mode later */ | |
1757 #ifdef FEAT_CMDL_INFO | |
1758 else | |
1759 clear_showcmd(); | |
1760 #endif | |
1761 if ((oap->op_type == OP_YANK | 1757 if ((oap->op_type == OP_YANK |
1762 || oap->op_type == OP_COLON | 1758 || oap->op_type == OP_COLON |
1763 || oap->op_type == OP_FUNCTION | 1759 || oap->op_type == OP_FUNCTION |
1764 || oap->op_type == OP_FILTER) | 1760 || oap->op_type == OP_FILTER) |
1765 && oap->motion_force == NUL) | 1761 && oap->motion_force == NUL) |
3310 #endif | 3306 #endif |
3311 #ifdef FEAT_VIRTUALEDIT | 3307 #ifdef FEAT_VIRTUALEDIT |
3312 if (!virtual_active()) | 3308 if (!virtual_active()) |
3313 curwin->w_cursor.coladd = 0; | 3309 curwin->w_cursor.coladd = 0; |
3314 #endif | 3310 #endif |
3315 | 3311 may_clear_cmdline(); |
3316 if (mode_displayed) | |
3317 clear_cmdline = TRUE; /* unshow visual mode later */ | |
3318 #ifdef FEAT_CMDL_INFO | |
3319 else | |
3320 clear_showcmd(); | |
3321 #endif | |
3322 | 3312 |
3323 adjust_cursor_eol(); | 3313 adjust_cursor_eol(); |
3324 } | 3314 } |
3325 | 3315 |
3326 /* | 3316 /* |
3761 case K_S_END: cap->cmdchar = K_END; break; | 3751 case K_S_END: cap->cmdchar = K_END; break; |
3762 } | 3752 } |
3763 cap->cmdchar = simplify_key(cap->cmdchar, &mod_mask); | 3753 cap->cmdchar = simplify_key(cap->cmdchar, &mod_mask); |
3764 } | 3754 } |
3765 | 3755 |
3756 /* | |
3757 * If the mode is currently displayed clear the command line or update the | |
3758 * command displayed. | |
3759 */ | |
3760 static void | |
3761 may_clear_cmdline() | |
3762 { | |
3763 if (mode_displayed) | |
3764 clear_cmdline = TRUE; /* unshow visual mode later */ | |
3765 #ifdef FEAT_CMDL_INFO | |
3766 else | |
3767 clear_showcmd(); | |
3768 #endif | |
3769 } | |
3770 | |
3766 #if defined(FEAT_CMDL_INFO) || defined(PROTO) | 3771 #if defined(FEAT_CMDL_INFO) || defined(PROTO) |
3767 /* | 3772 /* |
3768 * Routines for displaying a partly typed command | 3773 * Routines for displaying a partly typed command |
3769 */ | 3774 */ |
3770 | 3775 |
4238 static void | 4243 static void |
4239 nv_addsub(cap) | 4244 nv_addsub(cap) |
4240 cmdarg_T *cap; | 4245 cmdarg_T *cap; |
4241 { | 4246 { |
4242 int visual = VIsual_active; | 4247 int visual = VIsual_active; |
4248 | |
4243 if (cap->oap->op_type == OP_NOP | 4249 if (cap->oap->op_type == OP_NOP |
4244 && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) | 4250 && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) |
4245 { | 4251 { |
4246 if (visual) | 4252 if (visual) |
4247 { | 4253 { |
4257 clearopbeep(cap->oap); | 4263 clearopbeep(cap->oap); |
4258 if (visual) | 4264 if (visual) |
4259 { | 4265 { |
4260 VIsual_active = FALSE; | 4266 VIsual_active = FALSE; |
4261 redo_VIsual_busy = FALSE; | 4267 redo_VIsual_busy = FALSE; |
4268 may_clear_cmdline(); | |
4262 redraw_later(INVERTED); | 4269 redraw_later(INVERTED); |
4263 } | 4270 } |
4264 } | 4271 } |
4265 | 4272 |
4266 /* | 4273 /* |