Commit ea17cf89 authored by Axel Beckert's avatar Axel Beckert

New upstream bugfix release 5.7.1

Merge branch 'upstream' at 'zsh-5.7.1' into 'debian'.
parents 14d26260 8b89d0d5
2019-02-03 dana <dana@dana.is>
* unposted: Config/version.mk, Etc/FAQ.yo, README: Update for
5.7.1
* 44034: Completion/Unix/Type/_date_formats: Complete %9./%N,
adjust some wording
* 44033: Completion/Unix/Command/_dos2unix: Add completion for
dos2unix/unix2dos
* 44030: Src/prompt.c, Test/D01prompt.ztst: Return error for
unrecognised colour name
2019-01-28 Fredric Silberberg <fred@silberberg.xyz>
* github #32: Completion/Unix/Command/_git: Fix a typo in the
git tag completion.
2018-01-27 dana <dana@dana.is>
* unposted: Etc/creating-a-release.txt: Document additional
release steps
* 44020: Functions/VCS_Info/Backends/VCS_INFO_detect_p4: Fix
infinite recursion
2018-01-24 dana <dana@dana.is>
* unposted: Config/version.mk: Post-release version bump
* unposted: Config/version.mk, README: Update for 5.7
2018-01-23 dana <dana@dana.is>
......
#compdef dos2unix unix2dos mac2unix unix2mac
local variant ret=1
local -a context expl line state state_descr cp_opts xl_opts args
local -A opt_args
# Code-page options for ISO translation (use group `cp`)
cp_opts=(
'(-7 -ascii)-437[use DOS code page 437 (US) for ISO translation]'
'(-7 -ascii)-850[use DOS code page 850 (Western European) for ISO translation]'
'(-7 -ascii)-860[use DOS code page 860 (Portuguese) for ISO translation]'
'(-7 -ascii)-863[use DOS code page 863 (French Canadian) for ISO translation]'
'(-7 -ascii)-865[use DOS code page 865 (Nordic) for ISO translation]'
'(-7 -ascii)-1252[use Windows code page 1252 (Western European) for ISO translation]'
)
# Translation/conversion options (use group `xl`)
xl_opts=(
'(cp)-7[also replace 8-bit characters by 7-bit spaces]'
'(cp)-ascii[convert only line breaks (CRLF<->LF)]'
'-iso[also convert between DOS and ISO character sets]'
{-c,--convmode}'[specify conversion mode]:conversion mode:((
7bit\:"also replace 8-bit characters by 7-bit spaces"
ascii\:"convert only line breaks (CRLF<->LF)"
iso\:"also convert between DOS and ISO character sets"
mac\:"convert only line breaks (CR<->LF)"
))'
{-ub,--assume-utf16be}'[assume input file format is UTF-16BE]'
{-ul,--assume-utf16le}'[assume input file format is UTF-16LE]'
)
# `dos2unix` here is the dos2unix package provided by many Linux distributions,
# Homebrew, &al. `unix2dos` is the unix2dos package provided by FreeBSD, &al.
# Some implementations (Solaris) don't bother with any kind of argument
# validation, so we pass in /dev/null to make sure they never hang
_pick_variant -r variant \
dos2unix='(#i)waterlan' \
unix2dos='-p' \
$OSTYPE \
--version /dev/null{,}
case $variant in
dos2unix)
# -D and -gb are omitted, since they only make sense on Windows
args=(
'(: * -)'{-h,--help}'[display help information]'
'(: * -)'{-L,--license}'[display license information]'
'(: * -)'{-V,--version}'[display version information]'
'(-l --newline)'{-l,--newline}'[write two line breaks to output for each converted line break]'
'(-u --keep-utf16)'{-u,--keep-utf16}'[write output in same UTF-16 encoding as input]'
'*:: :->file'
+ '(qv)' # Verbosity options
{-q,--quiet}'[reduce output verbosity]'
{-v,--verbose}'[increase output verbosity]'
+ '(cp)' # Code-page options
$cp_opts
+ '(xl)' # Translation/conversion options
$xl_opts
+ bm # BOM options
'(-b -r --keep-bom --remove-bom)'{-b,--keep-bom}'[write existing BOM to output]'
'(-m -r --add-bom --remove-bom)'{-m,--add-bom}'[write new BOM to output]'
'(bm)'{-r,--remove-bom}"[don't write BOM to output]"
+ '(ch)' # chown options
'--allow-chown[allow file-ownership changes in old-file mode]'
"--no-allow-chown[don't allow file-ownership changes in old-file mode]"
+ '(fs)' # Force/safe options
{-f,--force}'[force conversion of binary files]'
{-s,--safe}'[skip binary files]'
+ '(in)' # Info options
{-i-,--info=-}'[display (specified) file information]:: :->info'
+ '(ln)' # Symlink options
{-F,--follow-symlink}'[follow symbolic links]'
{-R,--replace-symlink}'[replace symbolic links]'
{-S,--skip-symlink}'[skip symbolic links]'
+ '(no)' # File-mode options
{-n,--newfile}'[convert each input file to specified output file]'
{-o,--oldfile}'[convert input files in place]'
)
# No stacking!
_arguments -S -A '-*' : $args && ret=0
case $state in
file)
if (( CURRENT % 2 == 0 )) && [[ -n ${opt_args[(I)*-(-n|--newfile)]} ]]; then
_description files expl 'output file'
else
_description files expl 'input file'
fi
_files "${(@)expl}" && ret=0
;;
info)
_values -s '' 'information flag [dumbt]' \
'0[end each output line with NUL instead of newline]' \
'b[show BOM type]' \
'c[show only files that would be converted]' \
'd[show number of DOS line breaks (CRLF)]' \
'h[show header]' \
'm[show number of Mac line breaks (CR)]' \
'p[show file names without paths]' \
't[show whether file is text or binary]' \
'u[show number of UNIX line breaks (LF)]' \
&& ret=0
;;
esac
return ret
;;
unix2dos)
_arguments -s -S -A '-*' : \
'-p[preserve access and modification times]' \
'*:input file:_files'
return
;;
solaris*)
_arguments -A '-*' : \
'1:input file:_files' \
'2:output file:_files' \
+ '(cp)' \
${(@M)cp_opts:#(|\([^\)]#\))-(437|850|860|863|865)(|\[*)} \
+ '(xl)' \
${(@M)xl_opts:#(|\([^\)]#\))-(7|ascii|iso)(|\[*)}
return
;;
*)
_default
return
;;
esac
......@@ -2049,7 +2049,7 @@ _git-tag () {
'(-i --ignore-case)'{-i,--ignore-case}'[sorting and filtering are case-insensitive]' \
':: :_guard "^-*" pattern' \
- verification \
'(-v --verify)'{-v,--verify}'[verify gpg signutare of tags]' \
'(-v --verify)'{-v,--verify}'[verify gpg signature of tags]' \
'*:: :__git_ignore_line_inside_arguments __git_tags'
}
......
......@@ -24,7 +24,7 @@ specs=(
'c:preferred locale date and time'
'C:2-digit century'
'd:day of month (01-31)'
'D:american format month/day/year (%m/%d/%y)'
'D:American format month/day/year (%m/%d/%y)'
'e:day of month ( 1-31)'
'F:ISO 8601 year-month-date (%Y-%m-%d)'
'G:4-digit ISO 8601 week-based year'
......@@ -44,21 +44,25 @@ specs=(
'S:seconds (00-60)'
't:tab'
'T:24-hour notation with seconds (%H:%M:%S)'
'u:day of week (1-7, 1=monday)'
'U:week number of current year, sunday based (00-53)'
'u:day of week (1-7, 1=Monday)'
'U:week number of current year, Sunday based (00-53)'
'V:ISO 8601 week number of current year, week 1 has 4 days in current year (01-53)'
'w:day of week (0-6, 0=sunday)'
'W:week number of current year, monday based (00-53)'
'w:day of week (0-6, 0=Sunday)'
'W:week number of current year, Monday based (00-53)'
'x:locale dependent date representation without time'
'X:locale dependent time representation without date'
'y:2-digit year (00-99)'
'Y:full year'
'z:UTC offset'
'Z:timezone name'
'%:A %'
'%:literal %'
)
case $OSTYPE in
linux-gnu)
[[ $1 == zsh ]] || # %N is handled below in this case
specs+=( 'N:fractional part of seconds since epoch, in nanoseconds' )
;|
freebsd*|dragonfly*|darwin*|linux-gnu|solaris2.<11->)
specs+=(
'E:alternate representation'
......@@ -91,6 +95,7 @@ if [[ $1 == zsh ]]; then
'f:day of month (1-31)'
'K:hour (0-23)'
'L:hour (0-12)'
'N:fractional part of seconds since epoch, in nanoseconds (%9.)'
'.:fractional part of seconds since epoch'
"-:don't pad numeric values"
)
......@@ -102,4 +107,4 @@ done
_describe -t date-format-specifier 'date format specifier' specs \
-p "${(Q)PREFIX:-%}" -S ''
[[ $1 == zsh ]] && _message -e date-format-precision 'precision for %%. (1-6)'
[[ $1 == zsh ]] && _message -e date-format-precision 'precision for %%. (1-9)'
......@@ -27,5 +27,5 @@
# This must also serve as a shell script, so do not add spaces around the
# `=' signs.
VERSION=5.7
VERSION_DATE='January 24, 2019'
VERSION=5.7.1
VERSION_DATE='February 3, 2019'
......@@ -307,7 +307,7 @@ sect(On what machines will it run?)
sect(What's the latest version?)
Zsh 5.7 is the latest production version. For details of all the
Zsh 5.7.1 is the latest production version. For details of all the
changes, see the NEWS file in the source distribution.
A beta of the next version is sometimes available. Development of zsh is
......
......@@ -17,7 +17,7 @@ To create a zsh release:
- Commit those changes with an "unposted" ChangeLog entry.
git commit -am "Test release: 5.5.1-test-1." &&
git commit -am "Test release: 5.5.1-test-1." &&
zshdev-add-nnnnn-and-changelog unposted
# (Everyone has a different way of getting the "unposted" magic string
# into ChangeLog and the log message. This script is how I do it; YMMV;
......@@ -38,6 +38,7 @@ To create a zsh release:
git checkout zsh-5.5.1-test-1
git diff HEAD # ensure no local mods
rm -f Doc/help.txt Doc/help/[_a-zA-Z0-9]* # some devs have had issues with these
Util/preconfig && ./configure ...
make -C Etc
make -C Doc everything
......@@ -55,7 +56,46 @@ To create a zsh release:
Stable releases to zsh/ and zsh-doc/.
After uploading, select the tar.xz artifact, press the 🛈 button ("View Details") to its right, and press [Select All] next to "Default Download For:". This should cause sf.net to offer that artifact in the "Looking for the latest version?" line.
- Upload to zsh.org
- If the new release is a stable release, update zsh.sf.net:
# Move into the 'web' repository mentioned above
cd /path/to/web/repo
git pull
# Review the README, in case there is any new information there
cat README
# Run release.zsh to update the documentation from the main repository
# (making sure you still have checked out the tag you created!)
ZSHPATH=/path/to/zsh/repo ./release.zsh
# Commit changes
git commit -am 'Doc, FAQ, Intro: Update for <version>' # replace <version>
# Update the files mentioned in the release.zsh instructions (just
# adhere to the existing structure/format)
$EDITOR index.html
$EDITOR News/index.html
$EDITOR releases.html
# Run release-update-versions.zsh to update the names and sizes of the
# files listed on the documentation index and source page
./release-update-versions.zsh <version> # replace <version>
# Commit changes
git commit -am 'Update downloads, notes, etc., for <version>' # replace <version>
# Tag and push changes
git tag -sm 'Release of zsh <version>' zsh-<version> # replace <version>
git push
# Post changes; see web/README for the full rsync command. When in
# doubt, use `rsync -n` to perform a dry run. Note that changes may take
# several minutes to appear afterwards
rsync ...
- Upload the build artefacts to zsh.org/pub; you may need assistance from
another dev if you don't have access to do this.
- Post to -workers@
......
......@@ -44,7 +44,6 @@ VCS_INFO_p4_get_server() {
}
(( ${+functions[VCS_INFO_detect_p4]} )) ||
VCS_INFO_detect_p4() {
local serverport p4where
......
......@@ -5,7 +5,7 @@ THE Z SHELL (ZSH)
Version
-------
This is version 5.7 of the shell. This is a stable release. There are
This is version 5.7.1 of the shell. This is a stable release. There are
a few visible improvements since 5.6 as well as many bugfixes.
Note in particular the changes highlighted under "Incompatibilities since
......
......@@ -1663,6 +1663,8 @@ match_colour(const char **teststrp, int is_fg, int colour)
/* default */
return is_fg ? TXTNOFGCOLOUR : TXTNOBGCOLOUR;
}
if (colour < 0)
return TXT_ERROR;
}
else {
colour = (int)zstrtol(*teststrp, (char **)teststrp, 10);
......
......@@ -221,3 +221,11 @@
print ${(%U)Y-%(v}
0:Regression test for test on empty psvar
>
# Unrecognised colour strings should produce the default sequence
f=${(%):-'%f'} # Recognised
Fdefault=${(%):-'%F{default}'} # Recognised
Freset=${(%):-'%F{reset}'} # Unrecognised
Ffoo=${(%):-'%F{foo}'} # Unrecognised
[[ $f == $Fdefault && $Fdefault == $Freset && $Freset == $Ffoo ]]
0:Regression test for workers/44029
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment