From ded97b8ed969d463906ef1145a618bee547f4620 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Mon, 27 Oct 2014 20:25:40 +0100 Subject: 33561: The time builtin forgot to unmetafy TIMEFMT --- Src/jobs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Src') diff --git a/Src/jobs.c b/Src/jobs.c index 18bb648d9..d312b2380 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -702,7 +702,7 @@ printtime(struct timeval *real, child_times_t *ti, char *desc) #endif queue_signals(); - if (!(s = getsparam("TIMEFMT"))) + if (!(s = unmetafy(getsparam("TIMEFMT"), NULL))) s = DEFAULT_TIMEFMT; for (; *s; s++) -- cgit 1.4.1 From ed90154e58d2bd9a5e91fa430a14f55f78376861 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Mon, 27 Oct 2014 20:53:42 +0100 Subject: 33562: Fix thinko in previous commit --- ChangeLog | 3 ++- Src/jobs.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'Src') diff --git a/ChangeLog b/ChangeLog index 56a6ea228..f54327a6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,7 @@ 2014-10-27 Mikael Magnusson - * 33561: Src/jobs.c: The time builtin forgot to unmetafy TIMEFMT. + * 33561, 33562: Src/jobs.c: The time builtin forgot to unmetafy + TIMEFMT. 2014-10-26 Peter Stephenson diff --git a/Src/jobs.c b/Src/jobs.c index d312b2380..494d5aa90 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -702,8 +702,10 @@ printtime(struct timeval *real, child_times_t *ti, char *desc) #endif queue_signals(); - if (!(s = unmetafy(getsparam("TIMEFMT"), NULL))) + if (!(s = getsparam("TIMEFMT"))) s = DEFAULT_TIMEFMT; + else + s = unmetafy(s, NULL); for (; *s; s++) if (*s == '%') -- cgit 1.4.1 From 16cfa78aa98da19f5928dd6bd036705096017815 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Wed, 29 Oct 2014 13:34:37 +0100 Subject: 33528: take notice of last column position when using vi-yank and an upward cursor movement --- ChangeLog | 6 ++++++ Src/Zle/iwidgets.list | 20 ++++++++++---------- Src/Zle/zle_vi.c | 20 +++++++++++++++----- Test/X02zlevi.ztst | 19 +++++++++++++++++++ 4 files changed, 50 insertions(+), 15 deletions(-) (limited to 'Src') diff --git a/ChangeLog b/ChangeLog index f54327a6a..94cb172b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-10-29 Oliver Kiddle + + * 33528: Src/Zle/iwidgets.list, Src/Zle/zle_vi.c, + Test/X02zlevi.ztst: take notice of last column position when + using vi-yank and an upward cursor movement + 2014-10-27 Mikael Magnusson * 33561, 33562: Src/jobs.c: The time builtin forgot to unmetafy diff --git a/Src/Zle/iwidgets.list b/Src/Zle/iwidgets.list index ea41a7fed..79d62c7b5 100644 --- a/Src/Zle/iwidgets.list +++ b/Src/Zle/iwidgets.list @@ -102,9 +102,9 @@ "self-insert-unmeta", selfinsertunmeta, ZLE_MENUCMP | ZLE_KEEPSUFFIX "send-break", sendbreak, 0 "set-mark-command", setmarkcommand, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL -"split-undo", splitundo, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_NOTCOMMAND +"split-undo", splitundo, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL | ZLE_NOTCOMMAND "spell-word", spellword, 0 -"set-local-history", setlocalhistory, 0 +"set-local-history", setlocalhistory, ZLE_LASTCOL "transpose-chars", transposechars, 0 "transpose-words", transposewords, 0 "undefined-key", undefinedkey, 0 @@ -122,12 +122,12 @@ "vi-backward-kill-word", vibackwardkillword, ZLE_KEEPSUFFIX "vi-backward-word", vibackwardword, 0 "vi-beginning-of-line", vibeginningofline, 0 -"vi-caps-lock-panic", vicapslockpanic, 0 -"vi-change", vichange, 0 +"vi-caps-lock-panic", vicapslockpanic, ZLE_LASTCOL +"vi-change", vichange, ZLE_LASTCOL "vi-change-eol", vichangeeol, 0 "vi-change-whole-line", vichangewholeline, 0 "vi-cmd-mode", vicmdmode, 0 -"vi-delete", videlete, ZLE_KEEPSUFFIX +"vi-delete", videlete, ZLE_KEEPSUFFIX | ZLE_LASTCOL "vi-delete-char", videletechar, ZLE_KEEPSUFFIX "vi-digit-or-beginning-of-line", vidigitorbeginningofline, 0 "vi-down-line-or-history", vidownlineorhistory, ZLE_LINEMOVE @@ -148,7 +148,7 @@ "vi-goto-mark-line", vigotomarkline, 0 "vi-history-search-backward", vihistorysearchbackward, 0 "vi-history-search-forward", vihistorysearchforward, 0 -"vi-indent", viindent, 0 +"vi-indent", viindent, ZLE_LASTCOL "vi-insert", viinsert, 0 "vi-insert-bol", viinsertbol, 0 "vi-join", vijoin, 0 @@ -157,7 +157,7 @@ "vi-match-bracket", vimatchbracket, 0 "vi-open-line-above", viopenlineabove, 0 "vi-open-line-below", viopenlinebelow, 0 -"vi-oper-swap-case", vioperswapcase, 0 +"vi-oper-swap-case", vioperswapcase, ZLE_LASTCOL "vi-pound-insert", vipoundinsert, 0 "vi-put-after", viputafter, ZLE_YANK | ZLE_KEEPSUFFIX "vi-put-before", viputbefore, ZLE_YANK | ZLE_KEEPSUFFIX @@ -172,11 +172,11 @@ "vi-set-buffer", visetbuffer, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL "vi-set-mark", visetmark, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL "vi-substitute", visubstitute, 0 -"vi-swap-case", viswapcase, 0 +"vi-swap-case", viswapcase, ZLE_LASTCOL "vi-undo-change", viundochange, ZLE_KEEPSUFFIX -"vi-unindent", viunindent, 0 +"vi-unindent", viunindent, ZLE_LASTCOL "vi-up-line-or-history", viuplineorhistory, ZLE_LINEMOVE -"vi-yank", viyank, 0 +"vi-yank", viyank, ZLE_LASTCOL "vi-yank-eol", viyankeol, 0 "vi-yank-whole-line", viyankwholeline, 0 "what-cursor-position", whatcursorposition, ZLE_MENUCMP | ZLE_KEEPSUFFIX | ZLE_LASTCOL diff --git a/Src/Zle/zle_vi.c b/Src/Zle/zle_vi.c index 53919e361..0a8b27d65 100644 --- a/Src/Zle/zle_vi.c +++ b/Src/Zle/zle_vi.c @@ -248,6 +248,7 @@ getvirange(int wf) * point we just need to make the range encompass entire lines. */ if(vilinerange) { int newcs = findbol(); + lastcol = zlecs - newcs; zlecs = pos; pos = findeol(); zlecs = newcs; @@ -348,6 +349,7 @@ videlete(UNUSED(char **args)) forekill(c2 - zlecs, CUT_RAW); ret = 0; if (vilinerange && zlell) { + lastcol = -1; if (zlecs == zlell) DECCS(); foredel(1, 0); @@ -449,7 +451,7 @@ vichangewholeline(char **args) int viyank(UNUSED(char **args)) { - int oldcs = zlecs, c2, ret = 1; + int c2, ret = 1; startvichange(1); if ((c2 = getvirange(0)) != -1) { @@ -459,11 +461,19 @@ viyank(UNUSED(char **args)) vichgflag = 0; /* cursor now at the start of the range yanked. For line mode * restore the column position */ - if (vilinerange) { - while (oldcs > 0 && zleline[oldcs - 1] != ZWC('\n') && - zlecs != zlell && zleline[zlecs] != ZWC('\n')) { - ++zlecs; --oldcs; + if (vilinerange && lastcol != -1) { + int x = findeol(); + + if ((zlecs += lastcol) >= x) { + zlecs = x; + if (zlecs > findbol() && invicmdmode()) + DECCS(); } +#ifdef MULTIBYTE_SUPPORT + else + CCRIGHT(); +#endif + lastcol = -1; } return ret; } diff --git a/Test/X02zlevi.ztst b/Test/X02zlevi.ztst index d9fa0d51f..2af6f06e6 100644 --- a/Test/X02zlevi.ztst +++ b/Test/X02zlevi.ztst @@ -37,6 +37,25 @@ >two >CURSOR: 2 + zletest $'long\eo s\eolong\ekjy-k' +0:yank up clears lastcol +>BUFFER: long +> s +>long +>CURSOR: 2 + + zletest $'long\eos\eklljyk' +0:yank up honours lastcol +>BUFFER: long +>s +>CURSOR: 2 + + zletest $'long\eolong\eo s\eolong\ekjd-k' +0:delete up clears lastcol +>BUFFER: long +>long +>CURSOR: 0 + zletest $'yankee doodle\ebhDyy0"1P' 0:paste register 1 to get last deletion >BUFFER: doodleyankee -- cgit 1.4.1