Resolves: #1238544 - backport completion-related upstream fixes

This commit is contained in:
Kamil Dudka 2015-07-02 11:00:36 +02:00
parent c0bde132d6
commit 97afa7b098
2 changed files with 184 additions and 1 deletions

View File

@ -0,0 +1,176 @@
From a7b7f90b87289bf68c3175f867f77f68f1ef6a26 Mon Sep 17 00:00:00 2001
From: Peter Stephenson <pws@zsh.org>
Date: Tue, 2 Jun 2015 14:43:08 +0100
Subject: [PATCH 1/4] users/20243: turn off GLOB_ASSIGN in completion system.
Upstream-commit: 6b4d6eaa9b040a05ad9796d20cda0b797209a443
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Completion/compinit | 1 +
1 file changed, 1 insertion(+)
diff --git a/Completion/compinit b/Completion/compinit
index 9470c92..79f9d42 100644
--- a/Completion/compinit
+++ b/Completion/compinit
@@ -142,6 +142,7 @@ _comp_options=(
NO_cshnullglob
NO_cshjunkiequotes
NO_errexit
+ NO_globassign
NO_globsubst
NO_histsubstpattern
NO_ignorebraces
--
2.4.3
From 589d031cc414f44542f335e37052594b7fc89aa6 Mon Sep 17 00:00:00 2001
From: Mikael Magnusson <mikachu@gmail.com>
Date: Tue, 2 Jun 2015 15:33:07 +0200
Subject: [PATCH 2/4] GLOB_ASSIGN should only affect scalar assignments
Upstream-commit: 4dc4e23376888697234e00e0c34184bb308886e1
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Src/exec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Src/exec.c b/Src/exec.c
index 9f163a6..daed3b1 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -2264,14 +2264,14 @@ addvars(Estate state, Wordcode pc, int addflags)
state->pc = opc;
return;
}
- if (!isstr || (isset(GLOBASSIGN) &&
+ if (!isstr || (isset(GLOBASSIGN) && isstr &&
haswilds((char *)getdata(firstnode(vl))))) {
globlist(vl, 0);
/* Unset the parameter to force it to be recreated
* as either scalar or array depending on how many
* matches were found for the glob.
*/
- if (isset(GLOBASSIGN))
+ if (isset(GLOBASSIGN) && isstr)
unsetparam(name);
}
if (errflag) {
--
2.4.3
From e4ca35f21b2497fd7fc1477733f5549b399597f5 Mon Sep 17 00:00:00 2001
From: Peter Stephenson <pws@zsh.org>
Date: Tue, 2 Jun 2015 16:23:08 +0100
Subject: [PATCH 3/4] 35369: better GLOB_ASSIGN testing
Upstream-commit: 897ad466920e6d46d317e0630b5263d4c37c907f
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Test/A06assign.ztst | 25 ++++++++++++++++++++++---
Test/E01options.ztst | 10 +---------
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/Test/A06assign.ztst b/Test/A06assign.ztst
index 0ad9a0a..a4401cb 100644
--- a/Test/A06assign.ztst
+++ b/Test/A06assign.ztst
@@ -419,14 +419,14 @@
>worldliness
>world
- integer i n x
+ (integer i n x
float f
setopt globassign
i=tmpfile1
- n=tmp*
+ n=tmpf*
x=*2
f=2+2
- typeset -p i n x f
+ typeset -p i n x f)
0:GLOB_ASSIGN with numeric types
>typeset -i i=0
>typeset -a n
@@ -434,6 +434,25 @@
>typeset x=tmpfile2
>typeset -E f=4.000000000e+00
+ setopt globassign
+ foo=tmpf*
+ print $foo
+ unsetopt globassign
+ foo=tmpf*
+ print $foo
+0:GLOB_ASSIGN option
+>tmpfile1 tmpfile2
+>tmpf*
+
+ (setopt globassign
+ typeset -A foo
+ touch gatest1 gatest2
+ foo=(gatest*)
+ print ${(t)foo}
+ rm -rf gatest*)
+0:GLOB_ASSIGN doesn't monkey with type if not scalar assignment.
+>association-local
+
A=(first second)
A="${A[*]}" /bin/sh -c 'echo $A'
print -l "${A[@]}"
diff --git a/Test/E01options.ztst b/Test/E01options.ztst
index 5c453c8..d64f7ac 100644
--- a/Test/E01options.ztst
+++ b/Test/E01options.ztst
@@ -473,15 +473,7 @@
>outside2 scalar
>inside3 scalar-export
- setopt globassign
- foo=tmp*
- print $foo
- unsetopt globassign
- foo=tmp*
- print $foo
-0:GLOB_ASSIGN option
->tmpcd tmpfile1 tmpfile2
->tmp*
+# GLOB_ASSIGN is tested in A06assign.ztst.
mkdir onlysomefiles
touch onlysomefiles/.thisfile onlysomefiles/thatfile
--
2.4.3
From e271bb49214b8dd8b2794858769ff186f3076d4a Mon Sep 17 00:00:00 2001
From: Peter Stephenson <pws@zsh.org>
Date: Tue, 23 Jun 2015 12:02:06 +0100
Subject: [PATCH 4/4] 35573: turn off POSIX_BUILTINS in completion.
This is now needed to get suitable OPTIND behaviour.
Upstream-commit: a68d22eb00ea5c85422d70d1be7efa42acfda739
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
---
Completion/compinit | 1 +
1 file changed, 1 insertion(+)
diff --git a/Completion/compinit b/Completion/compinit
index 79f9d42..4b9a778 100644
--- a/Completion/compinit
+++ b/Completion/compinit
@@ -152,6 +152,7 @@ _comp_options=(
NO_kshtypeset
NO_markdirs
NO_octalzeroes
+ NO_posixbuiltins
NO_shwordsplit
NO_shglob
NO_warncreateglobal
--
2.4.3

View File

@ -3,7 +3,7 @@
Summary: Powerful interactive shell Summary: Powerful interactive shell
Name: zsh Name: zsh
Version: 5.0.8 Version: 5.0.8
Release: 2%{?dist} Release: 3%{?dist}
License: MIT License: MIT
URL: http://zsh.sourceforge.net/ URL: http://zsh.sourceforge.net/
Group: System Environment/Shells Group: System Environment/Shells
@ -21,6 +21,9 @@ Patch0: zsh-serial.patch
Patch1: zsh-4.3.6-8bit-prompts.patch Patch1: zsh-4.3.6-8bit-prompts.patch
Patch2: zsh-test-C02-dev_fd-mock.patch Patch2: zsh-test-C02-dev_fd-mock.patch
# backport completion-related upstream fixes (#1238544)
Patch3: zsh-5.0.8-comp-bz1238544.patch
BuildRequires: coreutils sed ncurses-devel libcap-devel BuildRequires: coreutils sed ncurses-devel libcap-devel
BuildRequires: texinfo texi2html gawk hostname BuildRequires: texinfo texi2html gawk hostname
Requires(post): info grep Requires(post): info grep
@ -57,6 +60,7 @@ This package contains the Zsh manual in html format.
%patch0 -p1 %patch0 -p1
%patch1 -p1 %patch1 -p1
%patch2 -p1 %patch2 -p1
%patch3 -p1
cp -p %SOURCE7 . cp -p %SOURCE7 .
@ -174,6 +178,9 @@ fi
%doc Doc/*.html %doc Doc/*.html
%changelog %changelog
* Thu Jul 02 2015 Kamil Dudka <kdudka@redhat.com> - 5.0.8-3
- backport completion-related upstream fixes (#1238544)
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.0.8-2 * Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.0.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild