Bash-4.2 patch 37

This commit is contained in:
Chet Ramey 2012-07-17 09:48:15 -04:00
commit 15be0ec466
2 changed files with 32 additions and 3 deletions

View file

@ -1234,11 +1234,19 @@ rl_vi_delete_to (count, key)
_rl_vimvcxt->motion = '$'; _rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt); r = rl_domove_motion_callback (_rl_vimvcxt);
} }
else if (vi_redoing) else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
{ {
_rl_vimvcxt->motion = _rl_vi_last_motion; _rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt); r = rl_domove_motion_callback (_rl_vimvcxt);
} }
else if (vi_redoing) /* handle redoing `dd' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
rl_beg_of_line (1, key);
RL_UNSETSTATE (RL_STATE_VIMOTION);
r = vidomove_dispatch (_rl_vimvcxt);
}
#if defined (READLINE_CALLBACKS) #if defined (READLINE_CALLBACKS)
else if (RL_ISSTATE (RL_STATE_CALLBACK)) else if (RL_ISSTATE (RL_STATE_CALLBACK))
{ {
@ -1316,11 +1324,19 @@ rl_vi_change_to (count, key)
_rl_vimvcxt->motion = '$'; _rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt); r = rl_domove_motion_callback (_rl_vimvcxt);
} }
else if (vi_redoing) else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
{ {
_rl_vimvcxt->motion = _rl_vi_last_motion; _rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt); r = rl_domove_motion_callback (_rl_vimvcxt);
} }
else if (vi_redoing) /* handle redoing `cc' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
rl_beg_of_line (1, key);
RL_UNSETSTATE (RL_STATE_VIMOTION);
r = vidomove_dispatch (_rl_vimvcxt);
}
#if defined (READLINE_CALLBACKS) #if defined (READLINE_CALLBACKS)
else if (RL_ISSTATE (RL_STATE_CALLBACK)) else if (RL_ISSTATE (RL_STATE_CALLBACK))
{ {
@ -1377,6 +1393,19 @@ rl_vi_yank_to (count, key)
_rl_vimvcxt->motion = '$'; _rl_vimvcxt->motion = '$';
r = rl_domove_motion_callback (_rl_vimvcxt); r = rl_domove_motion_callback (_rl_vimvcxt);
} }
else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
r = rl_domove_motion_callback (_rl_vimvcxt);
}
else if (vi_redoing) /* handle redoing `yy' here */
{
_rl_vimvcxt->motion = _rl_vi_last_motion;
rl_mark = rl_end;
rl_beg_of_line (1, key);
RL_UNSETSTATE (RL_STATE_VIMOTION);
r = vidomove_dispatch (_rl_vimvcxt);
}
#if defined (READLINE_CALLBACKS) #if defined (READLINE_CALLBACKS)
else if (RL_ISSTATE (RL_STATE_CALLBACK)) else if (RL_ISSTATE (RL_STATE_CALLBACK))
{ {

View file

@ -25,6 +25,6 @@
regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh
looks for to find the patch level (for the sccs version string). */ looks for to find the patch level (for the sccs version string). */
#define PATCHLEVEL 36 #define PATCHLEVEL 37
#endif /* _PATCHLEVEL_H_ */ #endif /* _PATCHLEVEL_H_ */