Submitted By: William Harrington (kb0iic at cross-lfs dot org) Date: 2012-11-01 Initial Package Version: 6.2 Origin: Upstream Upstream Status: Applied Description: Contains all upstream patches up to 6.2-004 diff -Naur readline-6.2.orig/callback.c readline-6.2/callback.c --- readline-6.2.orig/callback.c 2010-06-06 16:18:58.000000000 +0000 +++ readline-6.2/callback.c 2012-11-01 20:14:01.000000000 +0000 @@ -148,6 +148,9 @@ eof = _rl_vi_domove_callback (_rl_vimvcxt); /* Should handle everything, including cleanup, numeric arguments, and turning off RL_STATE_VIMOTION */ + if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0) + _rl_internal_char_cleanup (); + return; } #endif diff -Naur readline-6.2.orig/input.c readline-6.2/input.c --- readline-6.2.orig/input.c 2010-05-30 22:33:01.000000000 +0000 +++ readline-6.2/input.c 2012-11-01 20:14:01.000000000 +0000 @@ -409,7 +409,7 @@ int rl_read_key () { - int c; + int c, r; rl_key_sequence_length++; @@ -429,14 +429,18 @@ { while (rl_event_hook) { - if (rl_gather_tyi () < 0) /* XXX - EIO */ + if (rl_get_char (&c) != 0) + break; + + if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ { rl_done = 1; return ('\n'); } + else if (r == 1) /* read something */ + continue; + RL_CHECK_SIGNALS (); - if (rl_get_char (&c) != 0) - break; if (rl_done) /* XXX - experimental */ return ('\n'); (*rl_event_hook) (); diff -Naur readline-6.2.orig/patchlevel readline-6.2/patchlevel --- readline-6.2.orig/patchlevel 2010-01-14 15:15:52.000000000 +0000 +++ readline-6.2/patchlevel 2012-11-01 20:14:01.000000000 +0000 @@ -1,3 +1,3 @@ # Do not edit -- exists only for use by patch -1 +4 diff -Naur readline-6.2.orig/support/shobj-conf readline-6.2/support/shobj-conf --- readline-6.2.orig/support/shobj-conf 2009-10-28 13:20:21.000000000 +0000 +++ readline-6.2/support/shobj-conf 2012-11-01 20:14:01.000000000 +0000 @@ -157,7 +157,7 @@ ;; # Darwin/MacOS X -darwin[89]*|darwin10*) +darwin[89]*|darwin1[012]*) SHOBJ_STATUS=supported SHLIB_STATUS=supported @@ -186,7 +186,7 @@ SHLIB_LIBSUFF='dylib' case "${host_os}" in - darwin[789]*|darwin10*) SHOBJ_LDFLAGS='' + darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS='' SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v' ;; *) SHOBJ_LDFLAGS='-dynamic' diff -Naur readline-6.2.orig/vi_mode.c readline-6.2/vi_mode.c --- readline-6.2.orig/vi_mode.c 2010-11-21 00:51:39.000000000 +0000 +++ readline-6.2/vi_mode.c 2012-11-01 20:14:01.000000000 +0000 @@ -1114,7 +1114,7 @@ rl_beg_of_line (1, c); _rl_vi_last_motion = c; RL_UNSETSTATE (RL_STATE_VIMOTION); - return (0); + return (vidomove_dispatch (m)); } #if defined (READLINE_CALLBACKS) /* XXX - these need to handle rl_universal_argument bindings */ @@ -1234,11 +1234,19 @@ _rl_vimvcxt->motion = '$'; 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; 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) else if (RL_ISSTATE (RL_STATE_CALLBACK)) { @@ -1316,11 +1324,19 @@ _rl_vimvcxt->motion = '$'; 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; 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) else if (RL_ISSTATE (RL_STATE_CALLBACK)) { @@ -1377,6 +1393,19 @@ _rl_vimvcxt->motion = '$'; 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) else if (RL_ISSTATE (RL_STATE_CALLBACK)) {