1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-15 13:34:18 +01:00
Conflicts:
	ChangeLog
This commit is contained in:
Barton E. Schaefer 2014-10-29 08:49:33 -07:00
commit 9d2cfa7af6
5 changed files with 57 additions and 15 deletions

@ -7,6 +7,17 @@
in output loops so that unexpectedly long completion listings can
be interrupted
2014-10-29 Oliver Kiddle <opk@zsh.org>
* 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 <mikachu@gmail.com>
* 33561, 33562: Src/jobs.c: The time builtin forgot to unmetafy
TIMEFMT.
2014-10-26 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 33564: Test/A05execution.ztst: more care with monitor option.

@ -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

@ -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;
}

@ -704,6 +704,8 @@ printtime(struct timeval *real, child_times_t *ti, char *desc)
queue_signals();
if (!(s = getsparam("TIMEFMT")))
s = DEFAULT_TIMEFMT;
else
s = unmetafy(s, NULL);
for (; *s; s++)
if (*s == '%')

@ -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