From 13f3eec61dd806682141d45520fb4a08726831e0 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Sat, 15 Nov 2014 21:31:29 +0100 Subject: 33696: simple up/down line widgets that don't go through history lines --- ChangeLog | 3 +++ Doc/Zsh/zle.yo | 8 ++++++++ Src/Zle/iwidgets.list | 2 ++ Src/Zle/zle_hist.c | 20 ++++++++++---------- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index ef22cb5eb..50b0fb881 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2014-11-15 Oliver Kiddle + * 33696: Doc/Zsh/zle.yo, Src/Zle/iwidgets.list, Src/Zle/zle_hist.c: + simple up/down line widgets that don't go through history lines + * 33695: Src/Zle/zle_vi.c, Test/X02zlevi.ztst, Test/comptest: fix various vi-indent problems and vi-swap-case on a blank line diff --git a/Doc/Zsh/zle.yo b/Doc/Zsh/zle.yo index 06b165963..854510fa1 100644 --- a/Doc/Zsh/zle.yo +++ b/Doc/Zsh/zle.yo @@ -1078,6 +1078,10 @@ tindex(vi-beginning-of-line) item(tt(vi-beginning-of-line))( Move to the beginning of the line, without changing lines. ) +tindex(down-line) +item(tt(down-line) (unbound) (unbound) (unbound))( +Move down a line in the buffer. +) tindex(end-of-line) item(tt(end-of-line) (^E) (unbound) (unbound))( Move to the end of the line. If already at the end @@ -1170,6 +1174,10 @@ tindex(vi-rev-repeat-find) item(tt(vi-rev-repeat-find) (unbound) (,) (unbound))( Repeat the last tt(vi-find) command in the opposite direction. ) +tindex(up-line) +item(tt(up-line) (unbound) (unbound) (unbound))( +Move up a line in the buffer. +) enditem() texinode(History Control)(Modifying Text)(Movement)(Zle Widgets) subsect(History Control) diff --git a/Src/Zle/iwidgets.list b/Src/Zle/iwidgets.list index dc7e8008d..0401397e1 100644 --- a/Src/Zle/iwidgets.list +++ b/Src/Zle/iwidgets.list @@ -41,6 +41,7 @@ "digit-argument", digitargument, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL | ZLE_NOTCOMMAND "down-case-word", downcaseword, 0 "down-history", downhistory, 0 +"down-line", downline, ZLE_LINEMOVE | ZLE_LASTCOL "down-line-or-history", downlineorhistory, ZLE_LINEMOVE | ZLE_LASTCOL "down-line-or-search", downlineorsearch, ZLE_LINEMOVE | ZLE_LASTCOL "emacs-backward-word", emacsbackwardword, 0 @@ -112,6 +113,7 @@ "universal-argument", universalargument, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL | ZLE_NOTCOMMAND "up-case-word", upcaseword, 0 "up-history", uphistory, 0 +"up-line", upline, ZLE_LINEMOVE | ZLE_LASTCOL "up-line-or-history", uplineorhistory, ZLE_LINEMOVE | ZLE_LASTCOL "up-line-or-search", uplineorsearch, ZLE_LINEMOVE | ZLE_LASTCOL "vi-add-eol", viaddeol, 0 diff --git a/Src/Zle/zle_hist.c b/Src/Zle/zle_hist.c index 44b39d186..bf7b5f46d 100644 --- a/Src/Zle/zle_hist.c +++ b/Src/Zle/zle_hist.c @@ -227,14 +227,14 @@ uphistory(UNUSED(char **args)) } /**/ -static int -upline(void) +int +upline(char **args) { int n = zmult; if (n < 0) { zmult = -zmult; - n = -downline(); + n = -downline(args); zmult = -zmult; return n; } @@ -270,7 +270,7 @@ int uplineorhistory(char **args) { int ocs = zlecs; - int n = upline(); + int n = upline(args); if (n) { int m = zmult, ret; @@ -300,7 +300,7 @@ int uplineorsearch(char **args) { int ocs = zlecs; - int n = upline(); + int n = upline(args); if (n) { int m = zmult, ret; @@ -316,14 +316,14 @@ uplineorsearch(char **args) } /**/ -static int -downline(void) +int +downline(char **args) { int n = zmult; if (n < 0) { zmult = -zmult; - n = -upline(); + n = -upline(args); zmult = -zmult; return n; } @@ -358,7 +358,7 @@ int downlineorhistory(char **args) { int ocs = zlecs; - int n = downline(); + int n = downline(args); if (n) { int m = zmult, ret; @@ -388,7 +388,7 @@ int downlineorsearch(char **args) { int ocs = zlecs; - int n = downline(); + int n = downline(args); if (n) { int m = zmult, ret; -- cgit 1.4.1