summary refs log tree commit diff
path: root/Src/exec.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-06-25 17:01:48 +0100
committerPeter Stephenson <pws@zsh.org>2015-06-25 17:01:48 +0100
commitb16d754d9cc36b5bcf506d95621ad3bd69238ab7 (patch)
tree21314d7fb8b935faf863aa3040b573c4bec886d2 /Src/exec.c
parent0d7be4af0dc6efa30a187ba4f897f773460a2944 (diff)
downloadzsh-b16d754d9cc36b5bcf506d95621ad3bd69238ab7.tar.gz
zsh-b16d754d9cc36b5bcf506d95621ad3bd69238ab7.tar.xz
zsh-b16d754d9cc36b5bcf506d95621ad3bd69238ab7.zip
35604: create empty arrays in typeset with array=()
Diffstat (limited to 'Src/exec.c')
-rw-r--r--Src/exec.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/Src/exec.c b/Src/exec.c
index 57e8f6376..50a11eb54 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -3583,15 +3583,18 @@ execcmd(Estate state, int input, int output, int how, int last1)
 			    asg->value.array =
 				ecgetlist(state, WC_ASSIGN_NUM(ac),
 					  EC_DUPTOK, &htok);
-			    prefork(asg->value.array, PREFORK_ASSIGN);
-			    if (errflag) {
-				state->pc = opc;
-				break;
-			    }
-			    globlist(asg->value.array, 0);
-			    if (errflag) {
-				state->pc = opc;
-				break;
+			    if (asg->value.array)
+			    {
+				prefork(asg->value.array, PREFORK_ASSIGN);
+				if (errflag) {
+				    state->pc = opc;
+				    break;
+				}
+				globlist(asg->value.array, 0);
+				if (errflag) {
+				    state->pc = opc;
+				    break;
+				}
 			    }
 			}