summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2015-08-30 22:01:55 +0200
committerAxel Beckert <abe@deuxchevaux.org>2015-08-30 22:01:55 +0200
commit2a4475bbba3adf67ae6e95dc489ca41d0062483f (patch)
treebe2fec1a3c0487b62b16402c1a73135fe00ccb78
parenta90fb9402a5652391f57e1838399f700ca9a4a4e (diff)
parent11189c6df725d682a5b0759f83d0bd5afc0e330a (diff)
downloadzsh-2a4475bbba3adf67ae6e95dc489ca41d0062483f.tar.gz
zsh-2a4475bbba3adf67ae6e95dc489ca41d0062483f.zip
Merge tag 'zsh-5.1' into debian
-rw-r--r--ChangeLog55
-rw-r--r--Completion/Debian/Command/_debcheckout21
-rw-r--r--Completion/Unix/Command/_git1
-rw-r--r--Completion/Unix/Command/_subversion20
-rw-r--r--Config/version.mk4
-rw-r--r--Doc/Zsh/contrib.yo10
-rw-r--r--Functions/Prompts/prompt_bart_setup4
-rw-r--r--Src/Modules/attr.c6
-rw-r--r--Src/Zle/zle_tricky.c9
-rw-r--r--Test/A05execution.ztst1
-rw-r--r--Test/V09datetime.ztst5
11 files changed, 119 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index c2f4952be..79ba92457 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,58 @@
+2015-08-30 Peter Stephenson <p.w.stephenson@ntlworld.com>
+
+ * unposted: Config/version.mk: Release version 5.1
+
+2015-08-29 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * 36321: Completion/Debian/Command/_debcheckout: _debcheckout:
+ New completion.
+
+2015-08-28 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * 36306: Completion/Unix/Command/_subversion: _subversion:
+ Complete --show-item values
+
+2015-08-28 Peter Stephenson <p.stephenson@samsung.com>
+
+ * users/20475: Doc/Zsh/contrib.yo: mention that cdr mechanism
+ keeps unique list with most recent use first.
+
+ * users/20466: Test/V09datetime.ztst: make test for skipping
+ strftime extention tests one that is known to fail on
+ Solaris. Reason is not yet known, but there's no current
+ evidence for a shell bug so replace the failure by skipping
+ test for the release.
+
+2015-08-28 Mikael Magnusson <mikachu@gmail.com>
+
+ * 36302: Src/Modules/attr.c: Fix compilation with libcap 2.24
+
+ * 36314: Functions/Prompts/prompt_bart_setup: Avoid using
+ short_loops syntax in distributed files
+
+2015-08-27 Daniel Shahaf <d.s@daniel.shahaf.name>
+
+ * unposted: Completion/Unix/Command/_subversion: _subversion:
+ Avoid SHORT_LOOPS
+
+ * 36304: Completion/Unix/Command/_git: _git-cat-file: Fix
+ regression in 36237
+
+2015-08-27 Barton E. Schaefer <schaefer@zsh.org>
+
+ * unposted (cf. Axel Beckert 36292): Test/A05execution.ztst:
+ discard even more extraneous stderr in "hang" test
+
+2015-08-26 Barton E. Schaefer <schaefer@zsh.org>
+
+ * 36288: Src/Zle/zle_tricky.c: refine 36825, slightly different
+ test for redirect context
+
+ * 36285: Src/Zle/zle_tricky.c: update 36025, context cannot be
+ command and redirect at the same time, redirect wins
+
+ * 36282: Test/A05execution.ztst: discard stderr of "hang" test
+
2015-08-25 Peter Stephenson <p.w.stephenson@ntlworld.com>
* unposted: Config/version.mk: 5.0.8-test-3.
diff --git a/Completion/Debian/Command/_debcheckout b/Completion/Debian/Command/_debcheckout
new file mode 100644
index 000000000..3e6d5df7d
--- /dev/null
+++ b/Completion/Debian/Command/_debcheckout
@@ -0,0 +1,21 @@
+#compdef debcheckout
+
+# The helpstrings use the term 'checkout' (rather than 'clone' or 'branch' or
+# 'fork') to be consistent with the name of the tool.
+
+local -a args=(
+'(-a --auth)'{-a,--auth}'[rewrite anonymous checkout URLs to authenticated ones]'
+'(-p --print -d --details)'{-d,--details}'[print detailed information; do not checkout]'
+'(-h --help)'{-h,--help}'[show usage message]'
+'(-p --print -d --details)'{-p,--print}'[print summary information; do not checkout]'
+'(-P --package)'{-P+,--package=}'[specify package name explicitly (when target is a URL)]:package name:_deb_packages available'
+'(-t --type)'{-t+,--type=}'[specify repository type]:repository type:((arch\:Arch bzr\:Bazaar cvs\:CVS darcs\:Darcs git\:Git hg\:Mercurial svn\:Subversion))'
+'(-u --username)'{-u+,--username=}'[specify username (implies --auth)]:username: '
+\*{-f+,--file=}'[extract named file]:remote filename'
+'--source=:policy for .orig.tar.gz file:(never auto download-only always)'
+'--git-track=[specify branches to track]:branches (separated by spaces) or '\'\*\'
+'1:package or URL: _alternative "_deb_packages available" "_urls"'
+'2::destination directory:_path_files -/'
+)
+
+_arguments -s -S : "$args[@]"
diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git
index a096007d6..740969903 100644
--- a/Completion/Unix/Command/_git
+++ b/Completion/Unix/Command/_git
@@ -6008,6 +6008,7 @@ __git_tree_files () {
if [[ $1 == --root-relative ]]; then
extra_args+=(--full-tree)
+ shift
fi
zparseopts -D -E -a compadd_opts V: J: 1 2 n f X: M: P: S: r: R: q F:
diff --git a/Completion/Unix/Command/_subversion b/Completion/Unix/Command/_subversion
index 1cffc3c04..3cc9e8a0b 100644
--- a/Completion/Unix/Command/_subversion
+++ b/Completion/Unix/Command/_subversion
@@ -4,6 +4,20 @@ _svn () {
local curcontext="$curcontext" state line expl ret=1
typeset -A opt_args
+ # Colons in values must be escaped.
+ local -A show_item_keys=(
+ kind "the kind of TARGET (file or dir)"
+ url "the URL of TARGET in the repository"
+ relative-url "the repository-relative URL"
+ repos-root-url "the repository root URL"
+ repos-uuid "the repository UUID"
+ revision "the revision of TARGET"
+ last-changed-revision "the most recent revision in which TARGET was changed"
+ last-changed-date "the date of the last-changed revision"
+ last-changed-author "the author of the last-changed revision"
+ wc-root "the working copy root path"
+ )
+
local update_policy
zstyle -s ":completion:*:*:$service:*" cache-policy update_policy
if [[ -z "$update_policy" ]]; then
@@ -51,7 +65,7 @@ _svn () {
${=${${${(M)${(f)"$(_comp_locale; _call_program options svn help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)(-##)([[:alpha:]]##) \[--([a-z-]##)\](:arg:)#/(--$match[3])$match[1]$match[2]$match[4] ($match[1]$match[2])--$match[3]$match[4]}
)
while (( idx=$args[(I)*--accept:arg:] )); do
- args[(I)*--accept:arg:]=( --accept':automatic conflict resolution action:((working\:working base\:base '"`for i j in p postpone mc mine-conflict tc theirs-conflict mf mine-full tf theirs-full e edit l launch; print -rn $i\\\\:$j $j\\\\:$j "" `"'))' )
+ args[(I)*--accept:arg:]=( --accept':automatic conflict resolution action:((working\:working base\:base '"`for i j in p postpone mc mine-conflict tc theirs-conflict mf mine-full tf theirs-full e edit l launch; do print -rn $i\\\\:$j $j\\\\:$j ""; done `"'))' )
done
while (( idx=$args[(I)*--c(l|hangelist):arg:] )); do
args[(I)*--c(l|hangelist):arg:]=( \*{--cl,--changelist}':change list:_svn_changelists' )
@@ -71,6 +85,10 @@ _svn () {
while (( idx=$args[(I)*--trust-server-cert-failures:arg:] )); do
args[(I)*--trust-server-cert-failures:arg:]=( --trust-server-cert-failures':failures:_values -s , "certificate failures to ignore" "unknown-ca[unknown authority]" "cn-mismatch[hostname mismatch]" "expired[certificate expired]" "not-yet-valid[certificate not yet valid]" "other[all other failures]"' )
done
+ while (( idx=$args[(I)*--show-item:arg:] )); do
+ # (q) to quote the parentheses in the value
+ args[(I)*--show-item:arg:]=( --show-item':item key:(('"`for i j in ${(kv)show_item_keys}; do print -rn - $i\\\\:"${(q)j}" ""; done`"'))' )
+ done
_store_cache svn-${cmd}-args args
fi
diff --git a/Config/version.mk b/Config/version.mk
index ab5bf4cf4..90ed6b17f 100644
--- a/Config/version.mk
+++ b/Config/version.mk
@@ -27,5 +27,5 @@
# This must also serve as a shell script, so do not add spaces around the
# `=' signs.
-VERSION=5.0.8-test-3
-VERSION_DATE='August 21, 2015'
+VERSION=5.1
+VERSION_DATE='August 30, 2015'
diff --git a/Doc/Zsh/contrib.yo b/Doc/Zsh/contrib.yo
index 4e87d4116..db0940d94 100644
--- a/Doc/Zsh/contrib.yo
+++ b/Doc/Zsh/contrib.yo
@@ -339,9 +339,13 @@ previous working directory from a list maintained automatically. It is
similar in concept to the directory stack controlled by the tt(pushd),
tt(popd) and tt(dirs) builtins, but is more configurable, and as it stores
all entries in files it is maintained across sessions and (by default)
-between terminal emulators in the current session. (The tt(pushd)
-directory stack is not actually modified or used by tt(cdr) unless you
-configure it to do so as described in the configuration section below.)
+between terminal emulators in the current session. Duplicates are
+automatically removed, so that the list reflects the single most recent
+use of each directory.
+
+Note that the tt(pushd) directory stack is not actually modified or used
+by tt(cdr) unless you configure it to do so as described in the
+configuration section below.
subsect(Installation)
diff --git a/Functions/Prompts/prompt_bart_setup b/Functions/Prompts/prompt_bart_setup
index 45fcffed4..22c0c0340 100644
--- a/Functions/Prompts/prompt_bart_setup
+++ b/Functions/Prompts/prompt_bart_setup
@@ -178,7 +178,7 @@ prompt_bart_setup () {
typeset -gA fg
# A few extra niceties ...
- repeat 1 case "$1:l" in
+ repeat 1; do case "$1:l" in
(off|disable)
add-zsh-hook -D precmd "prompt_*_precmd"
add-zsh-hook -D preexec "prompt_*_preexec"
@@ -201,7 +201,7 @@ prompt_bart_setup () {
fg[%D]="%F{${4:-default}}"
fg[%@]="%F{${1:-red}}"
;;
- esac
+ esac; done
prompt_bart_ps1
diff --git a/Src/Modules/attr.c b/Src/Modules/attr.c
index 78c1104a9..f4bd04982 100644
--- a/Src/Modules/attr.c
+++ b/Src/Modules/attr.c
@@ -27,12 +27,12 @@
*
*/
-#include "attr.mdh"
-#include "attr.pro"
-
#include <sys/types.h>
#include <sys/xattr.h>
+#include "attr.mdh"
+#include "attr.pro"
+
static ssize_t
xgetxattr(const char *path, const char *name, void *value, size_t size, int symlink)
{
diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c
index b87b99b00..97bdcc020 100644
--- a/Src/Zle/zle_tricky.c
+++ b/Src/Zle/zle_tricky.c
@@ -1184,11 +1184,12 @@ get_comp_string(void)
* considering a new command. Consequently, although this looks
* relatively harmless by itself, it's probably incomplete.
*/
- lincmd = (incmdpos && !ins && !incond) ||
- (oins == 2 && wordpos == 2) ||
- (ins == 3 && wordpos == 1) ||
- (cmdtok == NULLTOK && !incond);
linredir = (inredir && !ins);
+ lincmd = !inredir &&
+ ((incmdpos && !ins && !incond) ||
+ (oins == 2 && wordpos == 2) ||
+ (ins == 3 && wordpos == 1) ||
+ (cmdtok == NULLTOK && !incond));
oins = ins;
/* Get the next token. */
if (linarr)
diff --git a/Test/A05execution.ztst b/Test/A05execution.ztst
index a12ba467e..a504ac41a 100644
--- a/Test/A05execution.ztst
+++ b/Test/A05execution.ztst
@@ -208,7 +208,6 @@ F:This similar test was triggering a reproducible failure with pipestatus.
print -u $ZTST_fd 'This test takes 5 seconds to fail...'
{ printf "%d\n" {1..20000} } 2>/dev/null | ( read -e )
hang(){ printf "%d\n" {2..20000} | cat }; hang 2>/dev/null | ( read -e )
- sleep 1 ;: avoid coproc exit race condition
print -p done
read -et 6 -p
0:Bug regression: piping a shell construct to an external process may hang
diff --git a/Test/V09datetime.ztst b/Test/V09datetime.ztst
index c9351995e..1e677cd69 100644
--- a/Test/V09datetime.ztst
+++ b/Test/V09datetime.ztst
@@ -8,7 +8,10 @@
unset LC_ALL
LC_TIME=C
TZ=UTC+0
- [[ "$(strftime %04y 1)" = "0070" ]] || skip_extensions=1
+ # It's not clear this skip_extensions is correct, but the
+ # format in question is causing problems on Solaris.
+ # We'll revist this after the release.
+ [[ "$(strftime %^_10B 0)" = " JANUARY" ]] || skip_extensions=1
[[ "$(LC_TIME=ja_JP.UTF-8 strftime %OS 1)" = δΈ€ ]] || skip_japanese=1
%test