1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-01 05:16:05 +01:00

unposted: replace-argument can take negative prefix to count from end

This commit is contained in:
Peter Stephenson 2014-07-24 10:49:50 +01:00
parent 341d443414
commit 6076c474f2
3 changed files with 16 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2014-07-24 Peter Stephenson <p.stephenson@samsung.com>
* unposted: Functions/Zle/replace-argument, Doc/Zsh/contrib.yo:
allow negative numeric prefix to count backwards from last
argument.
2014-07-23 Peter Stephenson <p.w.stephenson@ntlworld.com>
* Jai Keerthan: users/18981: Completion/Unix/Command/_tmux:

View file

@ -2339,6 +2339,7 @@ is not executed). Arguments are as delimited by standard shell syntax,
If a numeric argument is given, that specifies the argument to be
replaced. 0 means the command name, as in history expansion.
A negative numeric argument counts backward from the last word.
If no numeric argument is given, the current argument is replaced;
this is the last argument if the previous history line is being used.

View file

@ -12,21 +12,23 @@ if (( ${#BUFFER} == 0 )); then
CURSOR=${#BUFFER}
fi
local widget=$WIDGET
integer numeric cursor=CURSOR
local widget=$WIDGET numeric
integer cursor=CURSOR
if (( ${+NUMERIC} )); then
numeric=$NUMERIC
else
numeric=-1
fi
local reply REPLY REPLY2
integer index
split-shell-arguments
if (( numeric >= 0 )); then
index=$(( 2 + 2*numeric ))
if [[ -n $numeric ]]; then
if (( numeric < 0 )); then
(( index = ${#reply} - 1 + 2*(numeric+1) ))
else
(( index = 2 + 2*numeric ))
fi
else
index=$((REPLY & ~1 ))
(( index = REPLY & ~1 ))
fi
local edit