From patchwork Mon Oct 7 18:15:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2477 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7vr0PwVz42hn for ; Mon, 7 Oct 2019 18:16:08 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7vp2k4hz2Jy; Mon, 7 Oct 2019 18:16:06 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7vp118rz2yHh; Mon, 7 Oct 2019 18:16:06 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7vn0JNwz2yCL for ; Mon, 7 Oct 2019 18:16:04 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7vl2vFnz2Jy for ; Mon, 7 Oct 2019 18:16:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rbhpkVaMYYTLgk1Kcx/N0Xp+WEvYCxsUQWhftvP1kVs=; b=E05+jaOhyt6w4xNL/WbmMNbXuOA56YRjuptzh4+HEcol5KmoMIGlScjqaIT0PQ1IKqxTGr KGT2WlCc/PuiuwsxUU/JK4cUuNJfD4DA37zKY1th4UlvxyN5fnEP7hcE7Z97q0jPEQBeyc QTTn/rbw97ZGWenLvdvN1n2nXZQQqBWL2fEeXKL11AdEXlG4jb4aMFkW2+Gm93ls4GDoVW 77QYLYYMqUAuqDoK84nbwBcIQo5PJc2kCDcQqdK1dPU0I8OQsl3Rh1mxLVxCJ4NJqdeBI+ vpf4r01PPydkP2SA6DnxXGfsLXDpjmx1h2+U3mEBiT7D6mkAeyTCXUK0HaH/oQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rbhpkVaMYYTLgk1Kcx/N0Xp+WEvYCxsUQWhftvP1kVs=; b=jidiuHMGUJqLRfZicreyThzBIx886WRNPDzvKQwzRaEAd7JEUDmglgfG3O7dFg0y3HYHuC r5Ig/8a9TT9Zh1BA== To: "IPFire: Development-List" From: peter.mueller@ipfire.org Subject: [PATCH 1/7] bash: update to 5.0 Message-ID: Date: Mon, 07 Oct 2019 18:15:00 +0000 MIME-Version: 1.0 Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- lfs/bash | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lfs/bash b/lfs/bash index 09b4e71e6..79c21896b 100644 --- a/lfs/bash +++ b/lfs/bash @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team # +# Copyright (C) 2007-2019 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 4.3 +VER = 5.0 THISAPP = bash-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -53,7 +53,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 81348932d5da294953e15d4814c74dd1 +$(DL_FILE)_MD5 = 2b44b47b905be16f45709648f671820b install : $(TARGET) @@ -87,8 +87,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \ -i $(DIR_APP)/builtins/enable.def - for i in $$(seq 1 30); do \ - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash43-$$(printf "%03d" "$${i}") || exit 1; \ + for i in $$(seq 1 11); do \ + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash50-$$(printf "%03d" "$${i}") || exit 1; \ done cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch From patchwork Mon Oct 7 18:16:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2478 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7wl0xfyz42hn for ; Mon, 7 Oct 2019 18:16:55 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7wk5ffhz2Lc; Mon, 7 Oct 2019 18:16:54 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7wk4LGgz2yFJ; Mon, 7 Oct 2019 18:16:54 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7wh40qfz2yBF for ; Mon, 7 Oct 2019 18:16:52 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7wg3N0Jz2KR for ; Mon, 7 Oct 2019 18:16:51 +0000 (UTC) DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7HYxEaLZzHp+UPTo+U0ZhJdk9i2KUq/H1HoavHluBTI=; b=M/5hEwsr2fUygxT9lxJ3YoZnz9o90PRyJuJ7MdFuhq2BmYaX+JYgXbqb4I1om47oG2Yben Mli6pummyTX3ntCw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472212; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7HYxEaLZzHp+UPTo+U0ZhJdk9i2KUq/H1HoavHluBTI=; b=HHx2Qzufv/I9/H0ZedAgGZ7ct2hxbz4ShevaZpi7/dcnEeZrVZb0oBuKsU83/BKND/wOnI a2kT5ik9RnzToZuCT4wVnDcfHv75+KqV5rkCWjrzgrCnjZuZw2CNZnKyrNTZFmMYIwMaGW sUfPD8cbDfaBZsfEZcNc3ama/vwhGICDlPajq7P7nBAox3lcYAOeFQXLTpumvTaev8Ds0y dqTVc55V4uRETG41TP3beVfcQDQKM5oyF4hOhr1lfPoMER6p72yAJW+I6dwAl8a64Lvtrm 8Yv1sF4rriLJONCZ2CpGoc7y+Xf21rMpowk+NnMvRkl6fgvgH8RlHBODZsl8tQ== Subject: [PATCH 2/7] readline: update to 8.0 From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: Message-ID: Date: Mon, 07 Oct 2019 18:16:00 +0000 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- lfs/readline | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lfs/readline b/lfs/readline index 3e9e2a3d5..4f7329766 100644 --- a/lfs/readline +++ b/lfs/readline @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007-2018 IPFire Team # +# Copyright (C) 2007-2019 IPFire Team # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -24,7 +24,7 @@ include Config -VER = 6.3 +VER = 8.0 THISAPP = readline-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -40,7 +40,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = 33c8fb279e981274f485fd91da77e94a +$(DL_FILE)_MD5 = 7e6c1f16aee3244a69aba6e438295ca3 install : $(TARGET) @@ -71,9 +71,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) - for i in $$(seq 1 6); do \ - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline63-$$(printf "%03d" "$${i}") || exit 1; \ - done + cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline80-001 cd $(DIR_APP) && ./configure --prefix=/usr --disable-static cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses From patchwork Mon Oct 7 18:17:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2479 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7xc30CLz3yqX for ; Mon, 7 Oct 2019 18:17:40 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7xc0TGQz36f; Mon, 7 Oct 2019 18:17:40 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7xb6MSPz2yXv; Mon, 7 Oct 2019 18:17:39 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7xb2dfvz2yBF for ; Mon, 7 Oct 2019 18:17:39 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7xZ2rYnz2M4 for ; Mon, 7 Oct 2019 18:17:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+8TzQa5BW/Jv1ki4ewKC5btXWske0srwlDEVJ7o5R8c=; b=LdpFyJ0bMCLINNeRrMmhYZE5qTmBpV7JGi0GuweQ7NzVvIQpyOzlCqeQ32ek5/39DU6ekF aotomBbERe5wO1ES9P0k4EaSc5uskk+8UYTNtCNf+WWPODa1H3uGjvHPXFbids86ikGIUx xyYmfl9TKPZxSCP7Ji+g2mvjAGcys7FwW9/RAxuXTsetVdcTPwNLq52HzJqjUI8YTmFZOU ZzS24bpgUqYQBgmnoxgPNGE/xnMKv4Vog4819W/RWgf1/SeUiZfH7zJjqTpmGI0balrlrO qXuUHEeiRXYjblbfOOSbBegU8Te5K1fivjezAy+2+CvnYstGmDNxf7neOVQ5Qw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+8TzQa5BW/Jv1ki4ewKC5btXWske0srwlDEVJ7o5R8c=; b=0kJ7MTBAgMzR3/LAW0kfcWEbUEHYUsnRMHPVOJCc+UKLG7gilORkVcL8zMh3N05oXACr+m bcX3lRZ0Z97TX9Aw== Subject: [PATCH 3/7] update rootfiles for bash and readline From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: Message-ID: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> Date: Mon, 07 Oct 2019 18:17:00 +0000 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- config/rootfiles/common/bash | 5 +++++ config/rootfiles/common/readline | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/config/rootfiles/common/bash b/config/rootfiles/common/bash index 84f587f3c..27344c31b 100644 --- a/config/rootfiles/common/bash +++ b/config/rootfiles/common/bash @@ -1,6 +1,9 @@ bin/sh bin/bash #bin/bashbug +#usr/lib/bash +#usr/lib/pkgconfig/bash.pc +#usr/include/bash #usr/share/doc/bash #usr/share/doc/bash/CHANGES #usr/share/doc/bash/COMPAT @@ -39,8 +42,10 @@ bin/bash #usr/share/locale/it/LC_MESSAGES/bash.mo #usr/share/locale/ja/LC_MESSAGES/bash.mo #usr/share/locale/lt/LC_MESSAGES/bash.mo +#usr/share/locale/nb/LC_MESSAGES/bash.mo #usr/share/locale/nl/LC_MESSAGES/bash.mo #usr/share/locale/pl/LC_MESSAGES/bash.mo +#usr/share/locale/pt/LC_MESSAGES/bash.mo #usr/share/locale/pt_BR/LC_MESSAGES/bash.mo #usr/share/locale/ro/LC_MESSAGES/bash.mo #usr/share/locale/ru/LC_MESSAGES/bash.mo diff --git a/config/rootfiles/common/readline b/config/rootfiles/common/readline index b2ac26dd4..3fecb6805 100644 --- a/config/rootfiles/common/readline +++ b/config/rootfiles/common/readline @@ -8,11 +8,11 @@ #usr/include/readline/rltypedefs.h #usr/include/readline/tilde.h #usr/lib/libhistory.so -usr/lib/libhistory.so.6 -usr/lib/libhistory.so.6.3 +usr/lib/libhistory.so.8 +usr/lib/libhistory.so.8.0 #usr/lib/libreadline.so -usr/lib/libreadline.so.6 -usr/lib/libreadline.so.6.3 +usr/lib/libreadline.so.8 +usr/lib/libreadline.so.8.0 #usr/share/doc/readline #usr/share/doc/readline/CHANGES #usr/share/doc/readline/INSTALL From patchwork Mon Oct 7 18:18:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2480 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7yK576cz3yqX for ; Mon, 7 Oct 2019 18:18:17 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7yK2L8Gz38c; Mon, 7 Oct 2019 18:18:17 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7yK113zz2yXf; Mon, 7 Oct 2019 18:18:17 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7yH4C1dz2yBF for ; Mon, 7 Oct 2019 18:18:15 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7yF5R50z2M4 for ; Mon, 7 Oct 2019 18:18:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472295; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sQ9wg6QxdhEBjxK/qOXFNXRSIHCLpy7wUd6DGm/7BH0=; b=cLZYq31Kp4KDoY34Td0U6MSxVhmk8SI4Ian28V8wrEUj68LdV1LFFada/E+m4AtrXJX3nX QKuv6/VziH6kbQFMTM7wdogHFiMpgdgNEXyIFpQf7sXcxaXU0SxWLeLC7ayxEFAHiFcr67 FoKcNrLfdr/HTuZFRMrc2LPyaJWyMz1N0kj5Hi3QeD27WGNtz7CgxGaQF+ROxYTwl4lJG3 4JAZ4vjAG5G5TzzuFNXQVVM1KVVg8sG7eZ6JTwcxpAG4QMyXrHOJthZOaA3/ipNDybYiQE 5jLBoSK87GUV7qZb/qZFCnNjKw4GPuRyaV2VLsmtbzwcvpFA78FB0+Z+tv+k3A== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472295; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=sQ9wg6QxdhEBjxK/qOXFNXRSIHCLpy7wUd6DGm/7BH0=; b=NvmmYhF5ERkBjNnDbSH5LPd1D7w4rw6p02RavuCNFDfAoE7vWbdWPMy+6Q/8bMrFQA3VRq kTbQV/H3cKPghhDg== Subject: [PATCH 4/7] bash: add patches 001 - 011 for 5.0 version From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> Message-ID: <1c9a3727-c220-2d75-2957-7b0e48b6604c@ipfire.org> Date: Mon, 07 Oct 2019 18:18:00 +0000 MIME-Version: 1.0 In-Reply-To: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- src/patches/bash/bash50-001 | 166 ++++++++++++++++++++++++++++++ src/patches/bash/bash50-002 | 113 +++++++++++++++++++++ src/patches/bash/bash50-003 | 239 ++++++++++++++++++++++++++++++++++++++++++++ src/patches/bash/bash50-004 | 53 ++++++++++ src/patches/bash/bash50-005 | 110 ++++++++++++++++++++ src/patches/bash/bash50-006 | 47 +++++++++ src/patches/bash/bash50-007 | 62 ++++++++++++ src/patches/bash/bash50-008 | 68 +++++++++++++ src/patches/bash/bash50-009 | 42 ++++++++ src/patches/bash/bash50-010 | 172 +++++++++++++++++++++++++++++++ src/patches/bash/bash50-011 | 59 +++++++++++ 11 files changed, 1131 insertions(+) create mode 100644 src/patches/bash/bash50-001 create mode 100644 src/patches/bash/bash50-002 create mode 100644 src/patches/bash/bash50-003 create mode 100644 src/patches/bash/bash50-004 create mode 100644 src/patches/bash/bash50-005 create mode 100644 src/patches/bash/bash50-006 create mode 100644 src/patches/bash/bash50-007 create mode 100644 src/patches/bash/bash50-008 create mode 100644 src/patches/bash/bash50-009 create mode 100644 src/patches/bash/bash50-010 create mode 100644 src/patches/bash/bash50-011 diff --git a/src/patches/bash/bash50-001 b/src/patches/bash/bash50-001 new file mode 100644 index 000000000..169317ded --- /dev/null +++ b/src/patches/bash/bash50-001 @@ -0,0 +1,166 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-001 + +Bug-Reported-by: axel@freakout.de +Bug-Reference-ID: <201901082050.x08KoShS006731@bongo.freakout.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00079.html + +Bug-Description: + +Under certain circumstances, the glob expansion code did not remove +backslashes escaping characters in directory names (or portions of a +pattern preceding a slash). + +Patch (apply with `patch -p0'): + +*** ../bash-5.0/bashline.c 2018-11-27 13:20:16.000000000 -0500 +--- bashline.c 2019-01-16 16:06:03.000000000 -0500 +*************** +*** 232,235 **** +--- 232,236 ---- + static int bash_possible_command_completions __P((int, int)); + ++ static int completion_glob_pattern __P((char *)); + static char *glob_complete_word __P((const char *, int)); + static int bash_glob_completion_internal __P((int)); +*************** +*** 1742,1746 **** + /* This could be a globbing pattern, so try to expand it using pathname + expansion. */ +! if (!matches && glob_pattern_p (text)) + { + matches = rl_completion_matches (text, glob_complete_word); +--- 1743,1747 ---- + /* This could be a globbing pattern, so try to expand it using pathname + expansion. */ +! if (!matches && completion_glob_pattern ((char *)text)) + { + matches = rl_completion_matches (text, glob_complete_word); +*************** +*** 1851,1855 **** + } + +! globpat = glob_pattern_p (hint_text); + + /* If this is an absolute program name, do not check it against +--- 1852,1856 ---- + } + +! globpat = completion_glob_pattern ((char *)hint_text); + + /* If this is an absolute program name, do not check it against +*************** +*** 3714,3717 **** +--- 3715,3773 ---- + } + ++ static int ++ completion_glob_pattern (string) ++ char *string; ++ { ++ register int c; ++ char *send; ++ int open; ++ ++ DECLARE_MBSTATE; ++ ++ open = 0; ++ send = string + strlen (string); ++ ++ while (c = *string++) ++ { ++ switch (c) ++ { ++ case '?': ++ case '*': ++ return (1); ++ ++ case '[': ++ open++; ++ continue; ++ ++ case ']': ++ if (open) ++ return (1); ++ continue; ++ ++ case '+': ++ case '@': ++ case '!': ++ if (*string == '(') /*)*/ ++ return (1); ++ continue; ++ ++ case '\\': ++ if (*string == 0) ++ return (0); ++ } ++ ++ /* Advance one fewer byte than an entire multibyte character to ++ account for the auto-increment in the loop above. */ ++ #ifdef HANDLE_MULTIBYTE ++ string--; ++ ADVANCE_CHAR_P (string, send - string); ++ string++; ++ #else ++ ADVANCE_CHAR_P (string, send - string); ++ #endif ++ } ++ return (0); ++ } ++ + static char *globtext; + static char *globorig; +*************** +*** 3878,3882 **** + } + +! if (t && glob_pattern_p (t) == 0) + rl_explicit_arg = 1; /* XXX - force glob_complete_word to append `*' */ + FREE (t); +--- 3934,3938 ---- + } + +! if (t && completion_glob_pattern (t) == 0) + rl_explicit_arg = 1; /* XXX - force glob_complete_word to append `*' */ + FREE (t); +*** ../bash-5.0/lib/glob/glob_loop.c 2018-12-31 13:35:15.000000000 -0500 +--- lib/glob/glob_loop.c 2019-01-09 09:44:36.000000000 -0500 +*************** +*** 55,59 **** + + case L('\\'): +- #if 0 + /* Don't let the pattern end in a backslash (GMATCH returns no match + if the pattern ends in a backslash anyway), but otherwise return 1, +--- 55,58 ---- +*************** +*** 61,69 **** + and it can be removed. */ + return (*p != L('\0')); +- #else +- /* The pattern may not end with a backslash. */ +- if (*p++ == L('\0')) +- return 0; +- #endif + } + +--- 60,63 ---- +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-002 b/src/patches/bash/bash50-002 new file mode 100644 index 000000000..3fc8272f8 --- /dev/null +++ b/src/patches/bash/bash50-002 @@ -0,0 +1,113 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-002 + +Bug-Reported-by: Ante Peric +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00095.html + +Bug-Description: + +When an alias value ends with an unquoted literal tab (not part of a quoted +string or comment), alias expansion cannot correctly detect the end of the +alias value after expanding it. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0/parser.h 2018-12-28 19:11:18.000000000 -0500 +--- parser.h 2019-01-11 15:13:03.000000000 -0500 +*************** +*** 48,51 **** +--- 48,52 ---- + #define PST_REDIRLIST 0x080000 /* parsing a list of redirections preceding a simple command name */ + #define PST_COMMENT 0x100000 /* parsing a shell comment; used by aliases */ ++ #define PST_ENDALIAS 0x200000 /* just finished expanding and consuming an alias */ + + /* Definition of the delimiter stack. Needed by parse.y and bashhist.c. */ +*** ../bash-5.0/parse.y 2019-01-02 13:57:34.000000000 -0500 +--- parse.y 2019-01-14 08:23:31.000000000 -0500 +*************** +*** 2558,2567 **** + pushed_string_list->flags != PSH_DPAREN && + (parser_state & PST_COMMENT) == 0 && + shell_input_line_index > 0 && +! shell_input_line[shell_input_line_index-1] != ' ' && + shell_input_line[shell_input_line_index-1] != '\n' && + shellmeta (shell_input_line[shell_input_line_index-1]) == 0 && + (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"')) + { + return ' '; /* END_ALIAS */ + } +--- 2558,2569 ---- + pushed_string_list->flags != PSH_DPAREN && + (parser_state & PST_COMMENT) == 0 && ++ (parser_state & PST_ENDALIAS) == 0 && /* only once */ + shell_input_line_index > 0 && +! shellblank (shell_input_line[shell_input_line_index-1]) == 0 && + shell_input_line[shell_input_line_index-1] != '\n' && + shellmeta (shell_input_line[shell_input_line_index-1]) == 0 && + (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"')) + { ++ parser_state |= PST_ENDALIAS; + return ' '; /* END_ALIAS */ + } +*************** +*** 2572,2575 **** +--- 2574,2578 ---- + if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE) + { ++ parser_state &= ~PST_ENDALIAS; + pop_string (); + uc = shell_input_line[shell_input_line_index]; +*** ../bash-5.0/y.tab.c 2019-01-02 13:57:43.000000000 -0500 +--- y.tab.c 2019-01-14 08:39:23.000000000 -0500 +*************** +*** 4874,4883 **** + pushed_string_list->flags != PSH_DPAREN && + (parser_state & PST_COMMENT) == 0 && + shell_input_line_index > 0 && +! shell_input_line[shell_input_line_index-1] != ' ' && + shell_input_line[shell_input_line_index-1] != '\n' && + shellmeta (shell_input_line[shell_input_line_index-1]) == 0 && + (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"')) + { + return ' '; /* END_ALIAS */ + } +--- 4874,4885 ---- + pushed_string_list->flags != PSH_DPAREN && + (parser_state & PST_COMMENT) == 0 && ++ (parser_state & PST_ENDALIAS) == 0 && /* only once */ + shell_input_line_index > 0 && +! shellblank (shell_input_line[shell_input_line_index-1]) == 0 && + shell_input_line[shell_input_line_index-1] != '\n' && + shellmeta (shell_input_line[shell_input_line_index-1]) == 0 && + (current_delimiter (dstack) != '\'' && current_delimiter (dstack) != '"')) + { ++ parser_state |= PST_ENDALIAS; + return ' '; /* END_ALIAS */ + } +*************** +*** 4888,4891 **** +--- 4890,4894 ---- + if (uc == 0 && pushed_string_list && pushed_string_list->flags != PSH_SOURCE) + { ++ parser_state &= ~PST_ENDALIAS; + pop_string (); + uc = shell_input_line[shell_input_line_index]; +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-003 b/src/patches/bash/bash50-003 new file mode 100644 index 000000000..f7e5677e5 --- /dev/null +++ b/src/patches/bash/bash50-003 @@ -0,0 +1,239 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-003 + +Bug-Reported-by: Andrew Church +Bug-Reference-ID: <5c534aa2.04371@msgid.achurch.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00276.html + +Bug-Description: + +There are several incompatibilities in how bash-5.0 processes pathname +expansion (globbing) of filename arguments that have backslashes in the +directory portion. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/lib/glob/glob_loop.c 2019-01-16 16:13:21.000000000 -0500 +--- lib/glob/glob_loop.c 2019-02-01 09:45:11.000000000 -0500 +*************** +*** 27,34 **** + register const GCHAR *p; + register GCHAR c; +! int bopen; + + p = pattern; +! bopen = 0; + + while ((c = *p++) != L('\0')) +--- 27,34 ---- + register const GCHAR *p; + register GCHAR c; +! int bopen, bsquote; + + p = pattern; +! bopen = bsquote = 0; + + while ((c = *p++) != L('\0')) +*************** +*** 56,66 **** + case L('\\'): + /* Don't let the pattern end in a backslash (GMATCH returns no match +! if the pattern ends in a backslash anyway), but otherwise return 1, +! since the matching engine uses backslash as an escape character +! and it can be removed. */ +! return (*p != L('\0')); + } + +! return 0; + } + +--- 56,75 ---- + case L('\\'): + /* Don't let the pattern end in a backslash (GMATCH returns no match +! if the pattern ends in a backslash anyway), but otherwise note that +! we have seen this, since the matching engine uses backslash as an +! escape character and it can be removed. We return 2 later if we +! have seen only backslash-escaped characters, so interested callers +! know they can shortcut and just dequote the pathname. */ +! if (*p != L('\0')) +! { +! p++; +! bsquote = 1; +! continue; +! } +! else /* (*p == L('\0')) */ +! return 0; + } + +! return bsquote ? 2 : 0; + } + +*** ../bash-5.0-patched/lib/glob/glob.h 2013-10-28 14:46:12.000000000 -0400 +--- lib/glob/glob.h 2019-03-07 11:06:47.000000000 -0500 +*************** +*** 31,34 **** +--- 31,35 ---- + #define GX_ADDCURDIR 0x200 /* internal -- add passed directory name */ + #define GX_GLOBSTAR 0x400 /* turn on special handling of ** */ ++ #define GX_RECURSE 0x800 /* internal -- glob_filename called recursively */ + + extern int glob_pattern_p __P((const char *)); +*** ../bash-5.0-patched/lib/glob/glob.c 2018-09-20 10:53:23.000000000 -0400 +--- lib/glob/glob.c 2019-03-07 14:23:43.000000000 -0500 +*************** +*** 1062,1066 **** + unsigned int directory_len; + int free_dirname; /* flag */ +! int dflags; + + result = (char **) malloc (sizeof (char *)); +--- 1078,1082 ---- + unsigned int directory_len; + int free_dirname; /* flag */ +! int dflags, hasglob; + + result = (char **) malloc (sizeof (char *)); +*************** +*** 1111,1117 **** + } + + /* If directory_name contains globbing characters, then we +! have to expand the previous levels. Just recurse. */ +! if (directory_len > 0 && glob_pattern_p (directory_name)) + { + char **directories, *d, *p; +--- 1127,1136 ---- + } + ++ hasglob = 0; + /* If directory_name contains globbing characters, then we +! have to expand the previous levels. Just recurse. +! If glob_pattern_p returns != [0,1] we have a pattern that has backslash +! quotes but no unquoted glob pattern characters. We dequote it below. */ +! if (directory_len > 0 && (hasglob = glob_pattern_p (directory_name)) == 1) + { + char **directories, *d, *p; +*************** +*** 1176,1180 **** + d[directory_len - 1] = '\0'; + +! directories = glob_filename (d, dflags); + + if (free_dirname) +--- 1195,1199 ---- + d[directory_len - 1] = '\0'; + +! directories = glob_filename (d, dflags|GX_RECURSE); + + if (free_dirname) +*************** +*** 1333,1336 **** +--- 1352,1369 ---- + return (NULL); + } ++ /* If we have a directory name with quoted characters, and we are ++ being called recursively to glob the directory portion of a pathname, ++ we need to dequote the directory name before returning it so the ++ caller can read the directory */ ++ if (directory_len > 0 && hasglob == 2 && (flags & GX_RECURSE) != 0) ++ { ++ dequote_pathname (directory_name); ++ directory_len = strlen (directory_name); ++ } ++ ++ /* We could check whether or not the dequoted directory_name is a ++ directory and return it here, returning the original directory_name ++ if not, but we don't do that yet. I'm not sure it matters. */ ++ + /* Handle GX_MARKDIRS here. */ + result[0] = (char *) malloc (directory_len + 1); +*** ../bash-5.0-patched/pathexp.c 2018-04-29 17:44:48.000000000 -0400 +--- pathexp.c 2019-01-31 20:19:41.000000000 -0500 +*************** +*** 66,74 **** + register int c; + char *send; +! int open; + + DECLARE_MBSTATE; + +! open = 0; + send = string + strlen (string); + +--- 66,74 ---- + register int c; + char *send; +! int open, bsquote; + + DECLARE_MBSTATE; + +! open = bsquote = 0; + send = string + strlen (string); + +*************** +*** 101,105 **** + globbing. */ + case '\\': +! return (*string != 0); + + case CTLESC: +--- 101,112 ---- + globbing. */ + case '\\': +! if (*string != '\0' && *string != '/') +! { +! bsquote = 1; +! string++; +! continue; +! } +! else if (*string == 0) +! return (0); + + case CTLESC: +*************** +*** 118,122 **** + #endif + } +! return (0); + } + +--- 125,130 ---- + #endif + } +! +! return (bsquote ? 2 : 0); + } + +*** ../bash-5.0-patched/bashline.c 2019-01-16 16:13:21.000000000 -0500 +--- bashline.c 2019-02-22 09:29:08.000000000 -0500 +*************** +*** 3753,3757 **** + + case '\\': +! if (*string == 0) + return (0); + } +--- 3766,3770 ---- + + case '\\': +! if (*string++ == 0) + return (0); + } +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-004 b/src/patches/bash/bash50-004 new file mode 100644 index 000000000..fe3c764bd --- /dev/null +++ b/src/patches/bash/bash50-004 @@ -0,0 +1,53 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-004 + +Bug-Reported-by: Daniel Kahn Gillmor +Bug-Reference-ID: <87lg0g8aiw.fsf@fifthhorseman.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-04/msg00076.html + +Bug-Description: + +In bash-5.0, the `wait' builtin without arguments waits for all children of the +shell. This includes children it `inherited' at shell invocation time. This +patch modifies the behavior to not wait for these inherited children, some +of which might be long-lived. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/jobs.c 2018-12-06 11:44:34.000000000 -0500 +--- jobs.c 2019-04-12 15:15:10.000000000 -0400 +*************** +*** 2489,2496 **** + wait_procsubs (); + reap_procsubs (); +! #if 1 + /* We don't want to wait indefinitely if we have stopped children. */ +- /* XXX - should add a loop that goes through the list of process +- substitutions and waits for each proc in turn before this code. */ + if (any_stopped == 0) + { +--- 2490,2495 ---- + wait_procsubs (); + reap_procsubs (); +! #if 0 + /* We don't want to wait indefinitely if we have stopped children. */ + if (any_stopped == 0) + { +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-005 b/src/patches/bash/bash50-005 new file mode 100644 index 000000000..9b1cd75b0 --- /dev/null +++ b/src/patches/bash/bash50-005 @@ -0,0 +1,110 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-005 + +Bug-Reported-by: Brad Spencer +Bug-Reference-ID: <1b993ff2-ce4f-662a-6be4-393457362e47@blackberry.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg00250.html + +Bug-Description: + +In certain cases, bash optimizes out a fork() call too early and prevents +traps from running. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/command.h 2018-07-20 21:16:31.000000000 -0400 +--- command.h 2019-02-20 11:09:36.000000000 -0500 +*************** +*** 187,190 **** +--- 188,192 ---- + #define CMD_LASTPIPE 0x2000 + #define CMD_STDPATH 0x4000 /* use standard path for command lookup */ ++ #define CMD_TRY_OPTIMIZING 0x8000 /* try to optimize this simple command */ + + /* What a command looks like. */ +*** ../bash-5.0-patched/builtins/evalstring.c 2018-12-26 11:19:21.000000000 -0500 +--- builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500 +*************** +*** 101,104 **** +--- 101,113 ---- + } + ++ int ++ can_optimize_connection (command) ++ COMMAND *command; ++ { ++ return (*bash_input.location.string == '\0' && ++ (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') && ++ command->value.Connection->second->type == cm_simple); ++ } ++ + void + optimize_fork (command) +*************** +*** 106,110 **** + { + if (command->type == cm_connection && +! (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR) && + should_suppress_fork (command->value.Connection->second)) + { +--- 115,120 ---- + { + if (command->type == cm_connection && +! (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') && +! (command->value.Connection->second->flags & CMD_TRY_OPTIMIZING) && + should_suppress_fork (command->value.Connection->second)) + { +*************** +*** 413,418 **** + command->value.Simple->flags |= CMD_NO_FORK; + } +! else if (command->type == cm_connection) +! optimize_fork (command); + #endif /* ONESHOT */ + +--- 423,438 ---- + command->value.Simple->flags |= CMD_NO_FORK; + } +! +! /* Can't optimize forks out here execept for simple commands. +! This knows that the parser sets up commands as left-side heavy +! (&& and || are left-associative) and after the single parse, +! if we are at the end of the command string, the last in a +! series of connection commands is +! command->value.Connection->second. */ +! else if (command->type == cm_connection && can_optimize_connection (command)) +! { +! command->value.Connection->second->flags |= CMD_TRY_OPTIMIZING; +! command->value.Connection->second->value.Simple->flags |= CMD_TRY_OPTIMIZING; +! } + #endif /* ONESHOT */ + +*** ../bash-5.0-patched/execute_cmd.c 2018-12-05 09:05:14.000000000 -0500 +--- execute_cmd.c 2019-01-25 15:59:00.000000000 -0500 +*************** +*** 2768,2771 **** +--- 2768,2773 ---- + (exec_result != EXECUTION_SUCCESS))) + { ++ optimize_fork (command); ++ + second = command->value.Connection->second; + if (ignore_return && second) +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-006 b/src/patches/bash/bash50-006 new file mode 100644 index 000000000..2ad1cd200 --- /dev/null +++ b/src/patches/bash/bash50-006 @@ -0,0 +1,47 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-006 + +Bug-Reported-by: Tomas Mozes +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-03/msg00037.html + +Bug-Description: + +Bash-5.0 did not build successfully if SYSLOG_HISTORY was defined without +also defining SYSLOG_SHOPT. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/builtins/shopt.def 2018-10-05 14:49:02.000000000 -0400 +--- builtins/shopt.def 2019-01-23 09:55:22.000000000 -0500 +*************** +*** 123,127 **** + #endif + +! #if defined (SYSLOG_HISTORY) && defined (SYSLOG_SHOPT) + extern int syslog_history; + #endif +--- 123,127 ---- + #endif + +! #if defined (SYSLOG_HISTORY) + extern int syslog_history; + #endif +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-007 b/src/patches/bash/bash50-007 new file mode 100644 index 000000000..b9eb4150a --- /dev/null +++ b/src/patches/bash/bash50-007 @@ -0,0 +1,62 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-007 + +Bug-Reported-by: Grisha Levit +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-02/msg00067.html + +Bug-Description: + +Running `exec' when job control was disabled, even temporarily, but after it +had been initialized, could leave the terminal in the wrong process group for +the executed process. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/jobs.c 2018-12-06 11:44:34.000000000 -0500 +--- jobs.c 2019-04-12 15:15:10.000000000 -0400 +*************** +*** 4838,4850 **** + { + if (job_control) +! { +! terminate_stopped_jobs (); + +! if (original_pgrp >= 0) +! give_terminal_to (original_pgrp, 1); +! } + +! if (original_pgrp >= 0) +! setpgid (0, original_pgrp); + } + +--- 4838,4848 ---- + { + if (job_control) +! terminate_stopped_jobs (); + +! if (original_pgrp >= 0 && terminal_pgrp != original_pgrp) +! give_terminal_to (original_pgrp, 1); + +! if (original_pgrp >= 0 && setpgid (0, original_pgrp) == 0) +! shell_pgrp = original_pgrp; + } + +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-008 b/src/patches/bash/bash50-008 new file mode 100644 index 000000000..b09d6b33a --- /dev/null +++ b/src/patches/bash/bash50-008 @@ -0,0 +1,68 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-008 + +Bug-Reported-by: Michael Albinus +Bug-Reference-ID: <87bm36k3kz.fsf@gmx.de> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-02/msg00111.html + +Bug-Description: + +When HISTSIZE is set to 0, history expansion can leave the history length +set to an incorrect value, leading to subsequent attempts to access invalid +memory. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/bashhist.c 2018-07-05 22:41:14.000000000 -0400 +--- bashhist.c 2019-02-20 16:20:04.000000000 -0500 +*************** +*** 561,573 **** + if (!history_expansion_inhibited && history_expansion && history_expansion_p (line)) + { + /* If we are expanding the second or later line of a multi-line + command, decrease history_length so references to history expansions + in these lines refer to the previous history entry and not the + current command. */ + if (history_length > 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1) + history_length--; + expanded = history_expand (line, &history_value); + if (history_length >= 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1) +! history_length++; + + if (expanded) +--- 561,576 ---- + if (!history_expansion_inhibited && history_expansion && history_expansion_p (line)) + { ++ int old_len; ++ + /* If we are expanding the second or later line of a multi-line + command, decrease history_length so references to history expansions + in these lines refer to the previous history entry and not the + current command. */ ++ old_len = history_length; + if (history_length > 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1) + history_length--; + expanded = history_expand (line, &history_value); + if (history_length >= 0 && command_oriented_history && current_command_first_line_saved && current_command_line_count > 1) +! history_length = old_len; + + if (expanded) + +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-009 b/src/patches/bash/bash50-009 new file mode 100644 index 000000000..aef4ce7b5 --- /dev/null +++ b/src/patches/bash/bash50-009 @@ -0,0 +1,42 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-009 + +Bug-Reported-by: chet.ramey@case.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +The history file reading code doesn't close the file descriptor open to +the history file when it encounters a zero-length file. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/lib/readline/histfile.c 2018-06-11 09:14:52.000000000 -0400 +--- lib/readline/histfile.c 2019-05-16 15:55:57.000000000 -0400 +*************** +*** 306,309 **** +--- 312,316 ---- + { + free (input); ++ close (file); + return 0; /* don't waste time if we don't have to */ + } +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-010 b/src/patches/bash/bash50-010 new file mode 100644 index 000000000..bac7aa925 --- /dev/null +++ b/src/patches/bash/bash50-010 @@ -0,0 +1,172 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-010 + +Bug-Reported-by: Thorsten Glaser +Bug-Reference-ID: <156622962831.19438.16374961114836556294.reportbug@tglase.lan.tarent.de> +Bug-Reference-URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=935115 + +Bug-Description: + +Bash-5.0 changed the way assignment statements preceding special builtins +and shell functions were handled in posix mode. They automatically created +or modified global variables instead of modifying existing local variables +as in bash-4.4. + +The bash-4.4 posix-mode semantics were buggy, and resulted in creating +local variables where they were not intended and modifying global variables +and local variables simultaneously. + +The bash-5.0 changes were intended to fix this issue, but did not preserve +enough backwards compatibility. The posix standard also changed what it +required in these cases, so bash-5.0 is not bound by the strict conformance +requirements that existed in previous issues of the standard. + +This patch modifies the bash-5.0 posix mode behavior in an effort to restore +some backwards compatibility and rationalize the behavior in the presence of +local variables. It + +1. Changes the assignment semantics to be more similar to standalone assignment + statements: assignments preceding a function call or special builtin while + executing in a shell function will modify the value of a local variable + with the same name for the duration of the function's execution; + +2. Changes assignments preceding shell function calls or special builtins + from within a shell function to no longer create or modify global variables + in the presence of a local variable with the same name; + +3. Assignment statements preceding a shell function call or special builtin + at the global scope continue to modify the (global) calling environment, + but are unaffected by assignments preceding function calls or special + builtins within a function, as described in item 2. This is also similar + to the behavior of a standalone assignment statement. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/variables.c 2018-12-18 11:07:21.000000000 -0500 +--- variables.c 2019-08-22 10:53:44.000000000 -0400 +*************** +*** 4461,4467 **** + + /* Take a variable from an assignment statement preceding a posix special +! builtin (including `return') and create a global variable from it. This +! is called from merge_temporary_env, which is only called when in posix +! mode. */ + static void + push_posix_temp_var (data) +--- 4461,4467 ---- + + /* Take a variable from an assignment statement preceding a posix special +! builtin (including `return') and create a variable from it as if a +! standalone assignment statement had been performed. This is called from +! merge_temporary_env, which is only called when in posix mode. */ + static void + push_posix_temp_var (data) +*************** +*** 4473,4486 **** + var = (SHELL_VAR *)data; + +! binding_table = global_variables->table; +! if (binding_table == 0) +! binding_table = global_variables->table = hash_create (VARIABLES_HASH_BUCKETS); +! +! v = bind_variable_internal (var->name, value_cell (var), binding_table, 0, ASS_FORCE|ASS_NOLONGJMP); + + /* global variables are no longer temporary and don't need propagating. */ +! var->attributes &= ~(att_tempvar|att_propagate); + if (v) +! v->attributes |= var->attributes; + + if (find_special_var (var->name) >= 0) +--- 4473,4497 ---- + var = (SHELL_VAR *)data; + +! /* Just like do_assignment_internal(). This makes assignments preceding +! special builtins act like standalone assignment statements when in +! posix mode, satisfying the posix requirement that this affect the +! "current execution environment." */ +! v = bind_variable (var->name, value_cell (var), ASS_FORCE|ASS_NOLONGJMP); +! +! /* If this modifies an existing local variable, v->context will be non-zero. +! If it comes back with v->context == 0, we bound at the global context. +! Set binding_table appropriately. It doesn't matter whether it's correct +! if the variable is local, only that it's not global_variables->table */ +! binding_table = v->context ? shell_variables->table : global_variables->table; + + /* global variables are no longer temporary and don't need propagating. */ +! if (binding_table == global_variables->table) +! var->attributes &= ~(att_tempvar|att_propagate); +! + if (v) +! { +! v->attributes |= var->attributes; +! v->attributes &= ~att_tempvar; /* not a temp var now */ +! } + + if (find_special_var (var->name) >= 0) +*************** +*** 4576,4587 **** + { + int i; + + tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1); + tempvar_list[tvlist_ind = 0] = 0; +! +! hash_flush (temporary_env, pushf); +! hash_dispose (temporary_env); + temporary_env = (HASH_TABLE *)NULL; + + tempvar_list[tvlist_ind] = 0; + +--- 4587,4601 ---- + { + int i; ++ HASH_TABLE *disposer; + + tempvar_list = strvec_create (HASH_ENTRIES (temporary_env) + 1); + tempvar_list[tvlist_ind = 0] = 0; +! +! disposer = temporary_env; + temporary_env = (HASH_TABLE *)NULL; + ++ hash_flush (disposer, pushf); ++ hash_dispose (disposer); ++ + tempvar_list[tvlist_ind] = 0; + +*** ../bash-5.0-patched/tests/varenv.right 2018-12-17 15:39:48.000000000 -0500 +--- tests/varenv.right 2019-08-22 16:05:25.000000000 -0400 +*************** +*** 147,153 **** + outside: declare -- var="one" + inside: declare -x var="value" +! outside: declare -x var="value" +! inside: declare -- var="local" +! outside: declare -x var="global" + foo= environment foo= + foo=foo environment foo=foo +--- 147,153 ---- + outside: declare -- var="one" + inside: declare -x var="value" +! outside: declare -- var="outside" +! inside: declare -x var="global" +! outside: declare -- var="outside" + foo= environment foo= + foo=foo environment foo=foo +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash50-011 b/src/patches/bash/bash50-011 new file mode 100644 index 000000000..a9ae690e0 --- /dev/null +++ b/src/patches/bash/bash50-011 @@ -0,0 +1,59 @@ + BASH PATCH REPORT + ================= + +Bash-Release: 5.0 +Patch-ID: bash50-011 + +Bug-Reported-by: Matt Whitlock +Bug-Reference-ID: +Bug-Reference-URL: https://savannah.gnu.org/support/?109671 + +Bug-Description: + +The conditional command did not perform appropriate quoted null character +removal on its arguments, causing syntax errors and attempts to stat +invalid pathnames. + +Patch (apply with `patch -p0'): + +*** ../bash-5.0-patched/subst.c 2018-12-22 17:43:37.000000000 -0500 +--- subst.c 2019-04-14 13:25:41.000000000 -0400 +*************** +*** 3626,3630 **** + SPECIAL is 2, this is an rhs argument for the =~ operator, and should + be quoted appropriately for regcomp/regexec. The caller is responsible +! for removing the backslashes if the unquoted word is needed later. */ + char * + cond_expand_word (w, special) +--- 3642,3648 ---- + SPECIAL is 2, this is an rhs argument for the =~ operator, and should + be quoted appropriately for regcomp/regexec. The caller is responsible +! for removing the backslashes if the unquoted word is needed later. In +! any case, since we don't perform word splitting, we need to do quoted +! null character removal. */ + char * + cond_expand_word (w, special) +*************** +*** 3647,3650 **** +--- 3665,3670 ---- + if (special == 0) /* LHS */ + { ++ if (l->word) ++ word_list_remove_quoted_nulls (l); + dequote_list (l); + r = string_list (l); +*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400 +--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ From patchwork Mon Oct 7 18:18:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2481 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7z42vLcz3yqX for ; Mon, 7 Oct 2019 18:18:56 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7z40CFvz2M4; Mon, 7 Oct 2019 18:18:56 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7z35qN9z2yHh; Mon, 7 Oct 2019 18:18:55 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7z20XcBz2yCL for ; Mon, 7 Oct 2019 18:18:54 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7z06zctz2M4 for ; Mon, 7 Oct 2019 18:18:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PXKsE7jf6Cx5qdx6/W5j5Vcdyv+/lW0ttcN9mPivOlo=; b=JCAC6w8FU7u8oSNsY4XFzbQt+s+u9REpFEpJdUWoql9UzgUHDV8QE+6We9n/fbIER0S7nt zgQ0OBvrKUoBN5oWZpQ/BYiW0JRKhFvu2wptuZdSYDrhA//h0o6CL3EmA7zAKnmURLehqq RHsdzQVP7OgPCSBlFy0Vkpbqzsm9bBRqvAPtMSlDGN9DN32ElmxYUEBYadlON2VRcbZ/FB 7s2J9ofbKe8APingIbvQAIV+coVTTt+UF9eklf2qFqvB/8VttNgPB8ASWmTx9xAybDKgpa 06XY4pGdVYHc0nJcTZdw6L7UUElQypYdVk5dkzHt1jlRRB0g2+7kAjRqxtCtjw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472333; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PXKsE7jf6Cx5qdx6/W5j5Vcdyv+/lW0ttcN9mPivOlo=; b=y9wAlUCs1DzsTIM3UtVMoDlk+xaiWQw76eIHNpvr3S4T/YdoG0lLgbpKVGbwhm2QuFJM84 gP570DqZhtxBt9Aw== Subject: [PATCH 5/7] readline: add patch 001 for version 8.0 From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> <1c9a3727-c220-2d75-2957-7b0e48b6604c@ipfire.org> Message-ID: <1d0f4b20-a378-b756-bbe8-a379be2feede@ipfire.org> Date: Mon, 07 Oct 2019 18:18:00 +0000 MIME-Version: 1.0 In-Reply-To: <1c9a3727-c220-2d75-2957-7b0e48b6604c@ipfire.org> Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- src/patches/readline/readline80-001 | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/patches/readline/readline80-001 diff --git a/src/patches/readline/readline80-001 b/src/patches/readline/readline80-001 new file mode 100644 index 000000000..aa72a9dfa --- /dev/null +++ b/src/patches/readline/readline80-001 @@ -0,0 +1,38 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.0 +Patch-ID: readline80-001 + +Bug-Reported-by: chet.ramey@case.edu +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +The history file reading code doesn't close the file descriptor open to +the history file when it encounters a zero-length file. + +Patch (apply with `patch -p0'): + +*** ../readline-8.0-patched/histfile.c 2018-06-11 09:14:52.000000000 -0400 +--- histfile.c 2019-05-16 15:55:57.000000000 -0400 +*************** +*** 306,309 **** +--- 312,316 ---- + { + free (input); ++ close (file); + return 0; /* don't waste time if we don't have to */ + } +*** ../readline-8.0/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 0 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 1 From patchwork Mon Oct 7 18:19:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2482 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n7zm4GqPz3yqX for ; Mon, 7 Oct 2019 18:19:32 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n7zm1wbKz3Bk; Mon, 7 Oct 2019 18:19:32 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n7zm0ZQlz2yXf; Mon, 7 Oct 2019 18:19:32 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n7zk2Kb9z2yBF for ; Mon, 7 Oct 2019 18:19:30 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n7zg2P8Pz2jN for ; Mon, 7 Oct 2019 18:19:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bv0XXXZaSv9l3ELzqswkVHIvS39d1s7XS6pgdcWPB7U=; b=m5yMOymKcp3ZxWWA/5Z2uM9gvOPbkgOWsPNE8xYpB08LonXlODzh/40fkqqA7Vr5KR1t1x hnj6wqZAaJX46PDZa/Yx/q6sqEtI7u9pKA8wItZqvL/+NUKc6dmUZBi+0FEeXmjnPrYEuR er6IZjYxOXLU4X4DDg2dwH0io/Ia3XkgZDr3TubXpC8vYDHbi2dUFVrRubw/2EUA1+2flA lcT49YS46BwcmXFOsoreOquzCxCHQc3PizKfVrLvfnJ+a+CamNt2UnXCyYfUB1zKrFd33S e/xtSm4pmUDgkAlv/2kytnQ2hC3MMcbU1yxQY1XYV8QuU4yJAPGFs/RtuCqDXw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472370; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bv0XXXZaSv9l3ELzqswkVHIvS39d1s7XS6pgdcWPB7U=; b=2p+0SD2Khcl2gtXdx6jOXv/IO+O6TFskhSGWqjl4FukvGyAyCqjj2m8PuhVXGQ29ntyyou hfQmEqECp3bRHhBA== Subject: [PATCH 6/7] bash/readline: drop orphaned patches From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> <1c9a3727-c220-2d75-2957-7b0e48b6604c@ipfire.org> <1d0f4b20-a378-b756-bbe8-a379be2feede@ipfire.org> Message-ID: <38cab14f-3362-3c4d-d174-111d09c4cedc@ipfire.org> Date: Mon, 07 Oct 2019 18:19:00 +0000 MIME-Version: 1.0 In-Reply-To: <1d0f4b20-a378-b756-bbe8-a379be2feede@ipfire.org> Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- src/patches/bash/bash43-001 | 58 - src/patches/bash/bash43-002 | 62 - src/patches/bash/bash43-003 | 48 - src/patches/bash/bash43-004 | 47 - src/patches/bash/bash43-005 | 63 - src/patches/bash/bash43-006 | 48 - src/patches/bash/bash43-007 | 50 - src/patches/bash/bash43-008 | 188 --- src/patches/bash/bash43-009 | 64 - src/patches/bash/bash43-010 | 157 --- src/patches/bash/bash43-011 | 49 - src/patches/bash/bash43-012 | 43 - src/patches/bash/bash43-013 | 66 - src/patches/bash/bash43-014 | 102 -- src/patches/bash/bash43-015 | 58 - src/patches/bash/bash43-016 | 132 -- src/patches/bash/bash43-017 | 51 - src/patches/bash/bash43-018 | 44 - src/patches/bash/bash43-019 | 84 -- src/patches/bash/bash43-020 | 110 -- src/patches/bash/bash43-021 | 52 - src/patches/bash/bash43-022 | 56 - src/patches/bash/bash43-023 | 104 -- src/patches/bash/bash43-024 | 54 - src/patches/bash/bash43-025 | 123 -- src/patches/bash/bash43-026 | 60 - src/patches/bash/bash43-027 | 221 ---- src/patches/bash/bash43-028 | 2265 ----------------------------------- src/patches/bash/bash43-029 | 59 - src/patches/bash/bash43-030 | 2064 ------------------------------- src/patches/readline/readline63-001 | 43 - src/patches/readline/readline63-002 | 44 - src/patches/readline/readline63-003 | 47 - src/patches/readline/readline63-004 | 45 - src/patches/readline/readline63-005 | 58 - src/patches/readline/readline63-006 | 63 - 36 files changed, 6882 deletions(-) delete mode 100644 src/patches/bash/bash43-001 delete mode 100644 src/patches/bash/bash43-002 delete mode 100644 src/patches/bash/bash43-003 delete mode 100644 src/patches/bash/bash43-004 delete mode 100644 src/patches/bash/bash43-005 delete mode 100644 src/patches/bash/bash43-006 delete mode 100644 src/patches/bash/bash43-007 delete mode 100644 src/patches/bash/bash43-008 delete mode 100644 src/patches/bash/bash43-009 delete mode 100644 src/patches/bash/bash43-010 delete mode 100644 src/patches/bash/bash43-011 delete mode 100644 src/patches/bash/bash43-012 delete mode 100644 src/patches/bash/bash43-013 delete mode 100644 src/patches/bash/bash43-014 delete mode 100644 src/patches/bash/bash43-015 delete mode 100644 src/patches/bash/bash43-016 delete mode 100644 src/patches/bash/bash43-017 delete mode 100644 src/patches/bash/bash43-018 delete mode 100644 src/patches/bash/bash43-019 delete mode 100644 src/patches/bash/bash43-020 delete mode 100644 src/patches/bash/bash43-021 delete mode 100644 src/patches/bash/bash43-022 delete mode 100644 src/patches/bash/bash43-023 delete mode 100644 src/patches/bash/bash43-024 delete mode 100644 src/patches/bash/bash43-025 delete mode 100644 src/patches/bash/bash43-026 delete mode 100644 src/patches/bash/bash43-027 delete mode 100644 src/patches/bash/bash43-028 delete mode 100644 src/patches/bash/bash43-029 delete mode 100644 src/patches/bash/bash43-030 delete mode 100644 src/patches/readline/readline63-001 delete mode 100644 src/patches/readline/readline63-002 delete mode 100644 src/patches/readline/readline63-003 delete mode 100644 src/patches/readline/readline63-004 delete mode 100644 src/patches/readline/readline63-005 delete mode 100644 src/patches/readline/readline63-006 diff --git a/src/patches/bash/bash43-001 b/src/patches/bash/bash43-001 deleted file mode 100644 index ea1c6b265..000000000 --- a/src/patches/bash/bash43-001 +++ /dev/null @@ -1,58 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-001 - -Bug-Reported-by: NBaH -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00092.html - -Bug-Description: - -A missing check for a valid option prevented `test -R' from working. There -is another problem that causes bash to look up the wrong variable name when -processing the argument to `test -R'. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/test.c 2014-02-04 16:52:58.000000000 -0500 ---- test.c 2014-02-28 21:22:44.000000000 -0500 -*************** -*** 647,652 **** - - case 'R': -! v = find_variable (arg); -! return (v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v) ? TRUE : FALSE); - } - ---- 647,652 ---- - - case 'R': -! v = find_variable_noref (arg); -! return ((v && invisible_p (v) == 0 && var_isset (v) && nameref_p (v)) ? TRUE : FALSE); - } - -*************** -*** 724,727 **** ---- 724,728 ---- - case 'u': case 'v': case 'w': case 'x': case 'z': - case 'G': case 'L': case 'O': case 'S': case 'N': -+ case 'R': - return (1); - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 0 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-002 b/src/patches/bash/bash43-002 deleted file mode 100644 index 735b7b81a..000000000 --- a/src/patches/bash/bash43-002 +++ /dev/null @@ -1,62 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-002 - -Bug-Reported-by: Moe Tunes -Bug-Reference-ID: <53103F49.3070100@gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html - -Bug-Description: - -A change to save state while running the DEBUG trap caused pipelines to hang -on systems which need process group synchronization while building pipelines. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500 ---- trap.c 2014-02-28 09:51:43.000000000 -0500 -*************** -*** 921,925 **** - - #if defined (JOB_CONTROL) -! save_pipeline (1); /* XXX only provides one save level */ - #endif - ---- 921,926 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! save_pipeline (1); /* XXX only provides one save level */ - #endif - -*************** -*** 941,945 **** - - #if defined (JOB_CONTROL) -! restore_pipeline (1); - #endif - ---- 942,947 ---- - - #if defined (JOB_CONTROL) -! if (sig != DEBUG_TRAP) /* run_debug_trap does this */ -! restore_pipeline (1); - #endif - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 1 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-003 b/src/patches/bash/bash43-003 deleted file mode 100644 index 0f32f410d..000000000 --- a/src/patches/bash/bash43-003 +++ /dev/null @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-003 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 2 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-004 b/src/patches/bash/bash43-004 deleted file mode 100644 index 010f04a2a..000000000 --- a/src/patches/bash/bash43-004 +++ /dev/null @@ -1,47 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-004 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/readline/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 3 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-005 b/src/patches/bash/bash43-005 deleted file mode 100644 index bcd40697c..000000000 --- a/src/patches/bash/bash43-005 +++ /dev/null @@ -1,63 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-005 - -Bug-Reported-by: David Sines -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00037.html - -Bug-Description: - -When in Posix mode, bash did not correctly interpret the ANSI-C-style -$'...' quoting mechanism when performing pattern substitution word -expansions within double quotes. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-07 20:57:15.000000000 -0500 -*************** -*** 3399,3403 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 3399,3403 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** ../bash-4.3/y.tab.c 2014-02-11 10:57:47.000000000 -0500 ---- y.tab.c 2014-03-28 10:41:15.000000000 -0400 -*************** -*** 5711,5715 **** - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - ---- 5711,5715 ---- - unescaped double-quotes or single-quotes, if any, shall occur." */ - /* This was changed in Austin Group Interp 221 */ -! if MBTEST(posixly_correct && shell_compatibility_level > 41 && dolbrace_state != DOLBRACE_QUOTE && dolbrace_state != DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch == '\'') - continue; - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 4 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-006 b/src/patches/bash/bash43-006 deleted file mode 100644 index 24ff057a5..000000000 --- a/src/patches/bash/bash43-006 +++ /dev/null @@ -1,48 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-006 - -Bug-Reported-by: Eduardo A . Bustamante Lopez -Bug-Reference-ID: <20140228170013.GA16015@dualbus.me> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00091.html - -Bug-Description: - -A shell that started with job control active but was not interactive left -the terminal in the wrong process group when exiting, causing its parent -shell to get a stop signal when it attempted to read from the terminal. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/jobs.c 2014-01-10 09:05:34.000000000 -0500 ---- jobs.c 2014-03-02 18:05:09.000000000 -0500 -*************** -*** 4375,4379 **** - end_job_control () - { -! if (interactive_shell) /* XXX - should it be interactive? */ - { - terminate_stopped_jobs (); ---- 4375,4379 ---- - end_job_control () - { -! if (interactive_shell || job_control) /* XXX - should it be just job_control? */ - { - terminate_stopped_jobs (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 5 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-007 b/src/patches/bash/bash43-007 deleted file mode 100644 index 0d62c9ec6..000000000 --- a/src/patches/bash/bash43-007 +++ /dev/null @@ -1,50 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-007 - -Bug-Reported-by: geir.hauge@gmail.com -Bug-Reference-ID: <20140318093650.B181C1C5B0B@gina.itea.ntnu.no> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00095.html - -Bug-Description: - -Using compound assignments for associative arrays like - -assoc=( [x]= [y]=bar ) - -left the value corresponding to the key `x' NULL. This caused subsequent -lookups to interpret it as unset. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/arrayfunc.c 2013-08-02 16:19:59.000000000 -0400 ---- arrayfunc.c 2014-03-18 11:08:15.000000000 -0400 -*************** -*** 598,601 **** ---- 598,606 ---- - { - val = expand_assignment_string_to_string (val, 0); -+ if (val == 0) -+ { -+ val = (char *)xmalloc (1); -+ val[0] = '\0'; /* like do_assignment_internal */ -+ } - free_val = 1; - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 6 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-008 b/src/patches/bash/bash43-008 deleted file mode 100644 index 0ae7c9522..000000000 --- a/src/patches/bash/bash43-008 +++ /dev/null @@ -1,188 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-008 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: <20140318135901.GB22158@chaz.gmail.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00098.html - -Bug-Description: - -Some extended glob patterns incorrectly matched filenames with a leading -dot, regardless of the setting of the `dotglob' option. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3/lib/glob/gmisc.c 2013-10-28 14:45:25.000000000 -0400 ---- lib/glob/gmisc.c 2014-03-19 09:16:08.000000000 -0400 -*************** -*** 211,214 **** ---- 211,215 ---- - case '!': - case '@': -+ case '?': - return (pat[1] == LPAREN); - default: -*** ../bash-4.3/lib/glob/glob.c 2014-01-31 21:43:51.000000000 -0500 ---- lib/glob/glob.c 2014-03-20 09:01:26.000000000 -0400 -*************** -*** 180,202 **** - int flags; - { -! char *pp, *pe, *t; -! int n, r; - - pp = pat + 2; -! pe = pp + strlen (pp) - 1; /*(*/ -! if (*pe != ')') -! return 0; -! if ((t = strchr (pp, '|')) == 0) /* easy case first */ - { - *pe = '\0'; - r = skipname (pp, dname, flags); /*(*/ - *pe = ')'; - return r; - } - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; - r = skipname (pp, dname, flags); - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ ---- 180,215 ---- - int flags; - { -! char *pp, *pe, *t, *se; -! int n, r, negate; - -+ negate = *pat == '!'; - pp = pat + 2; -! se = pp + strlen (pp) - 1; /* end of string */ -! pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ -! /* we should check for invalid extglob pattern here */ -! /* if pe != se we have more of the pattern at the end of the extglob -! pattern. Check the easy case first ( */ -! if (pe == se && *pe == ')' && (t = strchr (pp, '|')) == 0) - { - *pe = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); /*(*/ -+ #endif - *pe = ')'; - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan (pp, pe, '|')) - { - n = t[-1]; - t[-1] = '\0'; -+ #if defined (HANDLE_MULTIBYTE) -+ r = mbskipname (pp, dname, flags); -+ #else - r = skipname (pp, dname, flags); -+ #endif - t[-1] = n; - if (r == 0) /* if any pattern says not skip, we don't skip */ -*************** -*** 205,219 **** - } /*(*/ - -! if (pp == pe) /* glob_patscan might find end of pattern */ - return r; - -! *pe = '\0'; -! # if defined (HANDLE_MULTIBYTE) -! r = mbskipname (pp, dname, flags); /*(*/ -! # else -! r = skipname (pp, dname, flags); /*(*/ -! # endif -! *pe = ')'; -! return r; - } - #endif ---- 218,227 ---- - } /*(*/ - -! /* glob_patscan might find end of pattern */ -! if (pp == se) - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - } - #endif -*************** -*** 278,289 **** - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n; -! int r; - - pp = pat + 2; -! pe = pp + wcslen (pp) - 1; /*(*/ -! if (*pe != L')') -! return 0; -! if ((t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; ---- 286,298 ---- - { - #if EXTENDED_GLOB -! wchar_t *pp, *pe, *t, n, *se; -! int r, negate; - -+ negate = *pat == L'!'; - pp = pat + 2; -! se = pp + wcslen (pp) - 1; /*(*/ -! pe = glob_patscan_wc (pp, se, 0); -! -! if (pe == se && *pe == ')' && (t = wcschr (pp, L'|')) == 0) - { - *pe = L'\0'; -*************** -*** 292,295 **** ---- 301,306 ---- - return r; - } -+ -+ /* check every subpattern */ - while (t = glob_patscan_wc (pp, pe, '|')) - { -*************** -*** 306,313 **** - return r; - -! *pe = L'\0'; -! r = wchkname (pp, dname); /*(*/ -! *pe = L')'; -! return r; - #else - return (wchkname (pat, dname)); ---- 317,322 ---- - return r; - -! /* but if it doesn't then we didn't match a leading dot */ -! return 0; - #else - return (wchkname (pat, dname)); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 7 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-009 b/src/patches/bash/bash43-009 deleted file mode 100644 index 015835cde..000000000 --- a/src/patches/bash/bash43-009 +++ /dev/null @@ -1,64 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-009 - -Bug-Reported-by: Matthias Klose -Bug-Reference-ID: <53346FC8.6090005@debian.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00171.html - -Bug-Description: - -There is a problem with unsigned sign extension when attempting to reallocate -the input line when it is fewer than 3 characters long and there has been a -history expansion. The sign extension causes the shell to not reallocate the -line, which results in a segmentation fault when it writes past the end. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/parse.y 2014-02-11 09:42:10.000000000 -0500 ---- parse.y 2014-03-27 16:33:29.000000000 -0400 -*************** -*** 2425,2429 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 2425,2429 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** ../bash-4.3-patched/y.tab.c 2014-03-28 11:17:06.000000000 -0400 ---- y.tab.c 2014-04-07 11:48:31.000000000 -0400 -*************** -*** 4737,4741 **** - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len > shell_input_line_size - 3) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); ---- 4737,4741 ---- - if (shell_input_line_terminator != EOF) - { -! if (shell_input_line_size < SIZE_MAX-3 && (shell_input_line_len+3 > shell_input_line_size)) - shell_input_line = (char *)xrealloc (shell_input_line, - 1 + (shell_input_line_size += 2)); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 8 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-010 b/src/patches/bash/bash43-010 deleted file mode 100644 index 835a96ead..000000000 --- a/src/patches/bash/bash43-010 +++ /dev/null @@ -1,157 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-010 - -Bug-Reported-by: Albert Shih -Bug-Reference-ID: Wed, 5 Mar 2014 23:01:40 +0100 -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00028.html - -Bug-Description: - -Patch (apply with `patch -p0'): - -This patch changes the behavior of programmable completion to compensate -for two assumptions made by the bash-completion package. Bash-4.3 changed -to dequote the argument to programmable completion only under certain -circumstances, to make the behavior of compgen more consistent when run -from the command line -- closer to the behavior when run by a shell function -run as part of programmable completion. Bash-completion can pass quoted -arguments to compgen when the original word to be completed was not quoted, -expecting programmable completion to dequote the word before attempting -completion. - -This patch fixes two cases: - -1. An empty string that bash-completion passes to compgen as a quoted null - string (''). - -2. An unquoted word that bash-completion quotes using single quotes or - backslashes before passing it to compgen. - -In these cases, since readline did not detect a quote character in the original -word to be completed, bash-4.3 - -*** ../bash-4.3/externs.h 2014-01-02 14:58:20.000000000 -0500 ---- externs.h 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 325,328 **** ---- 325,329 ---- - extern char *sh_backslash_quote_for_double_quotes __P((char *)); - extern int sh_contains_shell_metas __P((char *)); -+ extern int sh_contains_quotes __P((char *)); - - /* declarations for functions defined in lib/sh/spell.c */ -*** ../bash-4.3/lib/sh/shquote.c 2013-03-31 21:53:32.000000000 -0400 ---- lib/sh/shquote.c 2014-03-13 14:42:57.000000000 -0400 -*************** -*** 312,313 **** ---- 312,327 ---- - return (0); - } -+ -+ int -+ sh_contains_quotes (string) -+ char *string; -+ { -+ char *s; -+ -+ for (s = string; s && *s; s++) -+ { -+ if (*s == '\'' || *s == '"' || *s == '\\') -+ return 1; -+ } -+ return 0; -+ } -*** ../bash-4.3/pcomplete.c 2013-08-26 15:23:45.000000000 -0400 ---- pcomplete.c 2014-03-25 17:23:23.000000000 -0400 -*************** -*** 184,187 **** ---- 184,188 ---- - COMPSPEC *pcomp_curcs; - const char *pcomp_curcmd; -+ const char *pcomp_curtxt; - - #ifdef DEBUG -*************** -*** 754,757 **** ---- 755,784 ---- - dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - } -+ /* Intended to solve a mismatched assumption by bash-completion. If -+ the text to be completed is empty, but bash-completion turns it into -+ a quoted string ('') assuming that this code will dequote it before -+ calling readline, do the dequoting. */ -+ else if (iscompgen && iscompleting && -+ pcomp_curtxt && *pcomp_curtxt == 0 && -+ text && (*text == '\'' || *text == '"') && text[1] == text[0] && text[2] == 0 && -+ rl_filename_dequoting_function) -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); -+ /* Another mismatched assumption by bash-completion. If compgen is being -+ run as part of bash-completion, and the argument to compgen is not -+ the same as the word originally passed to the programmable completion -+ code, dequote the argument if it has quote characters. It's an -+ attempt to detect when bash-completion is quoting its filename -+ argument before calling compgen. */ -+ /* We could check whether gen_shell_function_matches is in the call -+ stack by checking whether the gen-shell-function-matches tag is in -+ the unwind-protect stack, but there's no function to do that yet. -+ We could simply check whether we're executing in a function by -+ checking variable_context, and may end up doing that. */ -+ else if (iscompgen && iscompleting && rl_filename_dequoting_function && -+ pcomp_curtxt && text && -+ STREQ (pcomp_curtxt, text) == 0 && -+ variable_context && -+ sh_contains_quotes (text)) /* guess */ -+ dfn = (*rl_filename_dequoting_function) ((char *)text, rl_completion_quote_character); - else - dfn = savestring (text); -*************** -*** 1523,1527 **** - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd; - STRINGLIST *ret; - ---- 1550,1554 ---- - { - COMPSPEC *cs, *oldcs; -! const char *oldcmd, *oldtxt; - STRINGLIST *ret; - -*************** -*** 1546,1552 **** ---- 1573,1581 ---- - oldcs = pcomp_curcs; - oldcmd = pcomp_curcmd; -+ oldtxt = pcomp_curtxt; - - pcomp_curcs = cs; - pcomp_curcmd = cmd; -+ pcomp_curtxt = word; - - ret = gen_compspec_completions (cs, cmd, word, start, end, foundp); -*************** -*** 1554,1557 **** ---- 1583,1587 ---- - pcomp_curcs = oldcs; - pcomp_curcmd = oldcmd; -+ pcomp_curtxt = oldtxt; - - /* We need to conditionally handle setting *retryp here */ -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 9 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-011 b/src/patches/bash/bash43-011 deleted file mode 100644 index cdc1572ee..000000000 --- a/src/patches/bash/bash43-011 +++ /dev/null @@ -1,49 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-011 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html - -Bug-Description: - -The signal handling changes to bash and readline (to avoid running any code -in a signal handler context) cause the cursor to be placed on the wrong -line of a multi-line command after a ^C interrupts editing. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/display.c 2013-12-27 13:10:56.000000000 -0500 ---- lib/readline/display.c 2014-03-27 11:52:45.000000000 -0400 -*************** -*** 2678,2682 **** - if (_rl_echoing_p) - { -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); ---- 2678,2683 ---- - if (_rl_echoing_p) - { -! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 10 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-012 b/src/patches/bash/bash43-012 deleted file mode 100644 index 176fa15bd..000000000 --- a/src/patches/bash/bash43-012 +++ /dev/null @@ -1,43 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-012 - -Bug-Reported-by: Eduardo A. Bustamante López -Bug-Reference-ID: <5346B54C.4070205@case.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00051.html - -Bug-Description: - -When a SIGCHLD trap runs a command containing a shell builtin while -a script is running `wait' to wait for all running children to complete, -the SIGCHLD trap will not be run once for each child that terminates. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/jobs.c 2014-03-28 10:54:19.000000000 -0400 ---- jobs.c 2014-04-15 08:47:03.000000000 -0400 -*************** -*** 3598,3601 **** ---- 3598,3602 ---- - unwind_protect_pointer (the_pipeline); - unwind_protect_pointer (subst_assign_varlist); -+ unwind_protect_pointer (this_shell_builtin); - - /* We have to add the commands this way because they will be run -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 11 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-013 b/src/patches/bash/bash43-013 deleted file mode 100644 index 8f4006b48..000000000 --- a/src/patches/bash/bash43-013 +++ /dev/null @@ -1,66 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-013 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html - -Bug-Description: - -Using reverse-i-search when horizontal scrolling is enabled does not redisplay -the entire line containing the successful search results. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/lib/readline/display.c 2014-04-08 18:19:36.000000000 -0400 ---- lib/readline/display.c 2014-04-20 18:32:52.000000000 -0400 -*************** -*** 1638,1642 **** - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { ---- 1638,1642 ---- - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ - current_invis_chars != visible_wrap_offset) - { -*************** -*** 1826,1831 **** - _rl_last_c_pos += bytes_to_insert; - - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! goto clear_rest_of_line; - } - } ---- 1826,1836 ---- - _rl_last_c_pos += bytes_to_insert; - -+ /* XXX - we only want to do this if we are at the end of the line -+ so we move there with _rl_move_cursor_relative */ - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! { -! _rl_move_cursor_relative (ne-new, new); -! goto clear_rest_of_line; -! } - } - } -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 12 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-014 b/src/patches/bash/bash43-014 deleted file mode 100644 index f8371967f..000000000 --- a/src/patches/bash/bash43-014 +++ /dev/null @@ -1,102 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-014 - -Bug-Reported-by: Greg Wooledge -Bug-Reference-ID: <20140418202123.GB7660@eeg.ccf.org> -Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/msg00004.html - -Bug-Description: - -Under certain circumstances, $@ is expanded incorrectly in contexts where -word splitting is not performed. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/subst.c 2014-01-23 16:26:37.000000000 -0500 ---- subst.c 2014-04-19 15:41:26.000000000 -0400 -*************** -*** 3249,3254 **** ---- 3249,3256 ---- - return ((char *)NULL); - -+ expand_no_split_dollar_star = 1; - w->flags |= W_NOSPLIT2; - l = call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); -+ expand_no_split_dollar_star = 0; - if (l) - { -*************** -*** 7848,7851 **** ---- 7850,7857 ---- - according to POSIX.2, this expands to a list of the positional - parameters no matter what IFS is set to. */ -+ /* XXX - what to do when in a context where word splitting is not -+ performed? Even when IFS is not the default, posix seems to imply -+ that we behave like unquoted $* ? Maybe we should use PF_NOSPLIT2 -+ here. */ - temp = string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ? (quoted|Q_DOUBLE_QUOTES) : quoted); - -*************** -*** 8817,8820 **** ---- 8823,8827 ---- - { - char *ifs_chars; -+ char *tstring; - - ifs_chars = (quoted_dollar_at || has_dollar_at) ? ifs_value : (char *)NULL; -*************** -*** 8831,8834 **** ---- 8838,8865 ---- - if (split_on_spaces) - list = list_string (istring, " ", 1); /* XXX quoted == 1? */ -+ /* If we have $@ (has_dollar_at != 0) and we are in a context where we -+ don't want to split the result (W_NOSPLIT2), and we are not quoted, -+ we have already separated the arguments with the first character of -+ $IFS. In this case, we want to return a list with a single word -+ with the separator possibly replaced with a space (it's what other -+ shells seem to do). -+ quoted_dollar_at is internal to this function and is set if we are -+ passed an argument that is unquoted (quoted == 0) but we encounter a -+ double-quoted $@ while expanding it. */ -+ else if (has_dollar_at && quoted_dollar_at == 0 && ifs_chars && quoted == 0 && (word->flags & W_NOSPLIT2)) -+ { -+ /* Only split and rejoin if we have to */ -+ if (*ifs_chars && *ifs_chars != ' ') -+ { -+ list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -+ tstring = string_list (list); -+ } -+ else -+ tstring = istring; -+ tword = make_bare_word (tstring); -+ if (tstring != istring) -+ free (tstring); -+ goto set_word_flags; -+ } - else if (has_dollar_at && ifs_chars) - list = list_string (istring, *ifs_chars ? ifs_chars : " ", 1); -*************** -*** 8836,8839 **** ---- 8867,8871 ---- - { - tword = make_bare_word (istring); -+ set_word_flags: - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) || (quoted_state == WHOLLY_QUOTED)) - tword->flags |= W_QUOTED; -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 13 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-015 b/src/patches/bash/bash43-015 deleted file mode 100644 index 9c4e5ea48..000000000 --- a/src/patches/bash/bash43-015 +++ /dev/null @@ -1,58 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-015 - -Bug-Reported-by: Clark Wang -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00095.html - -Bug-Description: - -When completing directory names, the directory name is dequoted twice. -This causes problems for directories with single and double quotes in -their names. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/bashline.c 2014-02-09 19:56:58.000000000 -0500 ---- bashline.c 2014-04-25 14:57:52.000000000 -0400 -*************** -*** 4168,4174 **** - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! dfn = bash_dequote_filename ((char *)text, qc); - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! free (dfn); - - if (m1 == 0 || m1[0] == 0) ---- 4209,4222 ---- - - qc = rl_dispatching ? rl_completion_quote_character : 0; -! /* If rl_completion_found_quote != 0, rl_completion_matches will call the -! filename dequoting function, causing the directory name to be dequoted -! twice. */ -! if (rl_dispatching && rl_completion_found_quote == 0) -! dfn = bash_dequote_filename ((char *)text, qc); -! else -! dfn = (char *)text; - m1 = rl_completion_matches (dfn, rl_filename_completion_function); -! if (dfn != text) -! free (dfn); - - if (m1 == 0 || m1[0] == 0) -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 14 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-016 b/src/patches/bash/bash43-016 deleted file mode 100644 index 882d5939b..000000000 --- a/src/patches/bash/bash43-016 +++ /dev/null @@ -1,132 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-016 - -Bug-Reported-by: Pierre Gaston -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00100.html - -Bug-Description: - -An extended glob pattern containing a slash (`/') causes the globbing code -to misinterpret it as a directory separator. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/lib/glob/glob.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/glob.c 2014-05-02 10:24:28.000000000 -0400 -*************** -*** 124,127 **** ---- 124,129 ---- - extern wchar_t *glob_patscan_wc __P((wchar_t *, wchar_t *, int)); - -+ extern char *glob_dirscan __P((char *, int)); -+ - /* Compile `glob_loop.c' for single-byte characters. */ - #define CHAR unsigned char -*************** -*** 188,191 **** ---- 190,196 ---- - pe = glob_patscan (pp, se, 0); /* end of extglob pattern (( */ - /* we should check for invalid extglob pattern here */ -+ if (pe == 0) -+ return 0; -+ - /* if pe != se we have more of the pattern at the end of the extglob - pattern. Check the easy case first ( */ -*************** -*** 1016,1020 **** - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname; - unsigned int directory_len; - int free_dirname; /* flag */ ---- 1021,1025 ---- - char **result; - unsigned int result_size; -! char *directory_name, *filename, *dname, *fn; - unsigned int directory_len; - int free_dirname; /* flag */ -*************** -*** 1032,1035 **** ---- 1037,1052 ---- - /* Find the filename. */ - filename = strrchr (pathname, '/'); -+ #if defined (EXTENDED_GLOB) -+ if (filename && extended_glob) -+ { -+ fn = glob_dirscan (pathname, '/'); -+ #if DEBUG_MATCHING -+ if (fn != filename) -+ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) != filename (%s)\n", fn ? fn : "(null)", filename); -+ #endif -+ filename = fn; -+ } -+ #endif -+ - if (filename == NULL) - { -*** ../bash-4.3-patched/lib/glob/gmisc.c 2014-03-28 10:54:23.000000000 -0400 ---- lib/glob/gmisc.c 2014-05-02 09:35:57.000000000 -0400 -*************** -*** 43,46 **** ---- 43,48 ---- - #define WRPAREN L')' - -+ extern char *glob_patscan __P((char *, char *, int)); -+ - /* Return 1 of the first character of WSTRING could match the first - character of pattern WPAT. Wide character version. */ -*************** -*** 376,377 **** ---- 378,410 ---- - return matlen; - } -+ -+ /* Skip characters in PAT and return the final occurrence of DIRSEP. This -+ is only called when extended_glob is set, so we have to skip over extglob -+ patterns x(...) */ -+ char * -+ glob_dirscan (pat, dirsep) -+ char *pat; -+ int dirsep; -+ { -+ char *p, *d, *pe, *se; -+ -+ d = pe = se = 0; -+ for (p = pat; p && *p; p++) -+ { -+ if (extglob_pattern_p (p)) -+ { -+ if (se == 0) -+ se = p + strlen (p) - 1; -+ pe = glob_patscan (p + 2, se, 0); -+ if (pe == 0) -+ continue; -+ else if (*pe == 0) -+ break; -+ p = pe - 1; /* will do increment above */ -+ continue; -+ } -+ if (*p == dirsep) -+ d = p; -+ } -+ return d; -+ } - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 15 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-017 b/src/patches/bash/bash43-017 deleted file mode 100644 index 4016fb934..000000000 --- a/src/patches/bash/bash43-017 +++ /dev/null @@ -1,51 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-017 - -Bug-Reported-by: Dan Douglas -Bug-Reference-ID: <7781746.RhfoTROLxF@smorgbox> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00026.html - -Bug-Description: - -The code that creates local variables should not clear the `invisible' -attribute when returning an existing local variable. Let the code that -actually assigns a value clear it. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/variables.c 2014-02-14 11:55:12.000000000 -0500 ---- variables.c 2014-05-07 10:53:57.000000000 -0400 -*************** -*** 2198,2205 **** - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! { -! VUNSETATTR (old_var, att_invisible); /* XXX */ -! return (old_var); -! } - - was_tmpvar = old_var && tempvar_p (old_var); ---- 2260,2264 ---- - old_var = find_variable (name); - if (old_var && local_p (old_var) && old_var->context == variable_context) -! return (old_var); - - was_tmpvar = old_var && tempvar_p (old_var); - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 16 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-018 b/src/patches/bash/bash43-018 deleted file mode 100644 index 39499f663..000000000 --- a/src/patches/bash/bash43-018 +++ /dev/null @@ -1,44 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-018 - -Bug-Reported-by: Geir Hauge -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg00040.html - -Bug-Description: - -When assigning an array variable using the compound assignment syntax, -but using `declare' with the rhs of the compound assignment quoted, the -shell did not mark the variable as visible after successfully performing -the assignment. - -Patch (apply with `patch -p0'): -*** ../bash-4.3-patched/arrayfunc.c 2014-03-28 10:54:21.000000000 -0400 ---- arrayfunc.c 2014-05-12 11:19:00.000000000 -0400 -*************** -*** 180,183 **** ---- 180,184 ---- - FREE (newval); - -+ VUNSETATTR (entry, att_invisible); /* no longer invisible */ - return (entry); - } - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 17 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-019 b/src/patches/bash/bash43-019 deleted file mode 100644 index a93714beb..000000000 --- a/src/patches/bash/bash43-019 +++ /dev/null @@ -1,84 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-019 - -Bug-Reported-by: John Lenton -Bug-Reference-ID: -Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476 - -Bug-Description: - -The -t timeout option to `read' does not work when the -e option is used. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/input.c 2014-01-10 15:07:08.000000000 -0500 ---- lib/readline/input.c 2014-05-22 18:40:59.000000000 -0400 -*************** -*** 535,540 **** ---- 538,551 ---- - else if (_rl_caught_signal == SIGHUP || _rl_caught_signal == SIGTERM) - return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); -+ /* keyboard-generated signals of interest */ - else if (_rl_caught_signal == SIGINT || _rl_caught_signal == SIGQUIT) - RL_CHECK_SIGNALS (); -+ /* non-keyboard-generated signals of interest */ -+ else if (_rl_caught_signal == SIGALRM -+ #if defined (SIGVTALRM) -+ || _rl_caught_signal == SIGVTALRM -+ #endif -+ ) -+ RL_CHECK_SIGNALS (); - - if (rl_signal_event_hook) -*** ../bash-4.3-patched/builtins/read.def 2013-09-02 11:54:00.000000000 -0400 ---- builtins/read.def 2014-05-08 11:43:35.000000000 -0400 -*************** -*** 443,447 **** - #if defined (READLINE) - if (edit) -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); - #endif - falarm (tmsec, tmusec); ---- 443,450 ---- - #if defined (READLINE) - if (edit) -! { -! add_unwind_protect (reset_attempted_completion_function, (char *)NULL); -! add_unwind_protect (bashline_reset_event_hook, (char *)NULL); -! } - #endif - falarm (tmsec, tmusec); -*************** -*** 1022,1025 **** ---- 1025,1029 ---- - old_attempted_completion_function = rl_attempted_completion_function; - rl_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_set_event_hook (); - if (itext) - { -*************** -*** 1033,1036 **** ---- 1037,1041 ---- - rl_attempted_completion_function = old_attempted_completion_function; - old_attempted_completion_function = (rl_completion_func_t *)NULL; -+ bashline_reset_event_hook (); - - if (ret == 0) -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 18 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-020 b/src/patches/bash/bash43-020 deleted file mode 100644 index 5f533ef8d..000000000 --- a/src/patches/bash/bash43-020 +++ /dev/null @@ -1,110 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-020 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140417073654.GB26875@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00065.html - -Bug-Description: - -When PS2 contains a command substitution, here-documents entered in an -interactive shell can sometimes cause a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/shell.h 2012-12-25 21:11:01.000000000 -0500 ---- shell.h 2014-06-03 09:24:28.000000000 -0400 -*************** -*** 169,173 **** - int expand_aliases; - int echo_input_at_read; -! - } sh_parser_state_t; - ---- 169,174 ---- - int expand_aliases; - int echo_input_at_read; -! int need_here_doc; -! - } sh_parser_state_t; - -*** ../bash-4.3-patched/parse.y 2014-05-14 09:16:40.000000000 -0400 ---- parse.y 2014-04-30 09:27:59.000000000 -0400 -*************** -*** 2643,2647 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 2643,2647 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 6076,6079 **** ---- 6076,6080 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 6124,6127 **** ---- 6125,6129 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** ../bash-4.3-patched/y.tab.c 2014-04-07 11:56:12.000000000 -0400 ---- y.tab.c 2014-07-30 09:55:57.000000000 -0400 -*************** -*** 4955,4959 **** - - r = 0; -! while (need_here_doc) - { - parser_state |= PST_HEREDOC; ---- 5151,5155 ---- - - r = 0; -! while (need_here_doc > 0) - { - parser_state |= PST_HEREDOC; -*************** -*** 8388,8391 **** ---- 8584,8588 ---- - ps->expand_aliases = expand_aliases; - ps->echo_input_at_read = echo_input_at_read; -+ ps->need_here_doc = need_here_doc; - - ps->token = token; -*************** -*** 8436,8439 **** ---- 8633,8637 ---- - expand_aliases = ps->expand_aliases; - echo_input_at_read = ps->echo_input_at_read; -+ need_here_doc = ps->need_here_doc; - - FREE (token); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 19 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-021 b/src/patches/bash/bash43-021 deleted file mode 100644 index fd1c945ec..000000000 --- a/src/patches/bash/bash43-021 +++ /dev/null @@ -1,52 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-021 - -Bug-Reported-by: Jared Yanovich -Bug-Reference-ID: <20140625225019.GJ17044@nightderanger.psc.edu> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00070.html - -Bug-Description: - -When the readline `revert-all-at-newline' option is set, pressing newline -when the current line is one retrieved from history results in a double free -and a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/lib/readline/misc.c 2012-09-01 18:03:11.000000000 -0400 ---- lib/readline/misc.c 2014-06-30 13:41:19.000000000 -0400 -*************** -*** 462,465 **** ---- 462,466 ---- - /* Set up rl_line_buffer and other variables from history entry */ - rl_replace_from_history (entry, 0); /* entry->line is now current */ -+ entry->data = 0; /* entry->data is now current undo list */ - /* Undo all changes to this history entry */ - while (rl_undo_list) -*************** -*** 469,473 **** - FREE (entry->line); - entry->line = savestring (rl_line_buffer); -- entry->data = 0; - } - entry = previous_history (); ---- 470,473 ---- - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 20 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-022 b/src/patches/bash/bash43-022 deleted file mode 100644 index 7ce39ec0a..000000000 --- a/src/patches/bash/bash43-022 +++ /dev/null @@ -1,56 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-022 - -Bug-Reported-by: scorp.dev.null@gmail.com -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00061.html - -Bug-Description: - -Using nested pipelines within loops with the `lastpipe' option set can result -in a segmentation fault. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/execute_cmd.c 2014-01-31 10:54:52.000000000 -0500 ---- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 -*************** -*** 2410,2414 **** - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! exec_result = job_exit_status (lastpipe_jid); - #endif - unfreeze_jobs_list (); ---- 2425,2438 ---- - lstdin = wait_for (lastpid); - #if defined (JOB_CONTROL) -! /* If wait_for removes the job from the jobs table, use result of last -! command as pipeline's exit status as usual. The jobs list can get -! frozen and unfrozen at inconvenient times if there are multiple pipelines -! running simultaneously. */ -! if (INVALID_JOB (lastpipe_jid) == 0) -! exec_result = job_exit_status (lastpipe_jid); -! else if (pipefail_opt) -! exec_result = exec_result | lstdin; /* XXX */ -! /* otherwise we use exec_result */ -! - #endif - unfreeze_jobs_list (); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 21 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-023 b/src/patches/bash/bash43-023 deleted file mode 100644 index d1e4e9d7c..000000000 --- a/src/patches/bash/bash43-023 +++ /dev/null @@ -1,104 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-023 - -Bug-Reported-by: Tim Friske -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg00056.html - -Bug-Description: - -Bash does not correctly parse process substitution constructs that contain -unbalanced parentheses as part of the contained command. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/subst.h 2014-01-11 21:02:27.000000000 -0500 ---- subst.h 2014-07-20 17:25:01.000000000 -0400 -*************** -*** 83,87 **** - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *)); - #endif /* PROCESS_SUBSTITUTION */ - ---- 83,87 ---- - Start extracting at (SINDEX) as if we had just seen "<(". - Make (SINDEX) get the position just after the matching ")". */ -! extern char *extract_process_subst __P((char *, char *, int *, int)); - #endif /* PROCESS_SUBSTITUTION */ - -*** ../bash-4.3-patched/subst.c 2014-05-15 08:26:45.000000000 -0400 ---- subst.c 2014-07-20 17:26:44.000000000 -0400 -*************** -*** 1193,1202 **** - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex) - char *string; - char *starter; - int *sindex; - { - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); - } - #endif /* PROCESS_SUBSTITUTION */ ---- 1193,1208 ---- - Make (SINDEX) get the position of the matching ")". */ /*))*/ - char * -! extract_process_subst (string, starter, sindex, xflags) - char *string; - char *starter; - int *sindex; -+ int xflags; - { -+ #if 0 - return (extract_delimited_string (string, sindex, starter, "(", ")", SX_COMMAND)); -+ #else -+ xflags |= (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); -+ return (xparse_dolparen (string, string+*sindex, sindex, xflags)); -+ #endif - } - #endif /* PROCESS_SUBSTITUTION */ -*************** -*** 1786,1790 **** - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si); - free (temp); /* no SX_ALLOC here */ - i = si; ---- 1792,1796 ---- - if (string[si] == '\0') - CQ_RETURN(si); -! temp = extract_process_subst (string, (c == '<') ? "<(" : ">(", &si, 0); - free (temp); /* no SX_ALLOC here */ - i = si; -*************** -*** 8250,8254 **** - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index); /*))*/ - sindex = t_index; - ---- 8256,8260 ---- - t_index = sindex + 1; /* skip past both '<' and LPAREN */ - -! temp1 = extract_process_subst (string, (c == '<') ? "<(" : ">(", &t_index, 0); /*))*/ - sindex = t_index; - -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 22 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-024 b/src/patches/bash/bash43-024 deleted file mode 100644 index a24b8fbbc..000000000 --- a/src/patches/bash/bash43-024 +++ /dev/null @@ -1,54 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-024 - -Bug-Reported-by: Corentin Peuvrel -Bug-Reference-ID: <53CE9E5D.6050203@pom-monitoring.com> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg00021.html - -Bug-Description: - -Indirect variable references do not work correctly if the reference -variable expands to an array reference using a subscript other than 0 -(e.g., foo='bar[1]' ; echo ${!foo}). - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/subst.c 2014-06-03 09:32:44.000000000 -0400 ---- subst.c 2014-07-23 09:58:19.000000000 -0400 -*************** -*** 7375,7379 **** - - if (want_indir) -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); ---- 7445,7455 ---- - - if (want_indir) -! { -! tdesc = parameter_brace_expand_indir (name + 1, var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); -! /* Turn off the W_ARRAYIND flag because there is no way for this function -! to return the index we're supposed to be using. */ -! if (tdesc && tdesc->flags) -! tdesc->flags &= ~W_ARRAYIND; -! } - else - tdesc = parameter_brace_expand_word (name, var_is_special, quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 23 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-025 b/src/patches/bash/bash43-025 deleted file mode 100644 index 721aca030..000000000 --- a/src/patches/bash/bash43-025 +++ /dev/null @@ -1,123 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-025 - -Bug-Reported-by: Stephane Chazelas -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -Under certain circumstances, bash will execute user code while processing the -environment for exported function definitions. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/builtins/common.h 2013-07-08 16:54:47.000000000 -0400 ---- builtins/common.h 2014-09-12 14:25:47.000000000 -0400 -*************** -*** 34,37 **** ---- 49,54 ---- - #define SEVAL_PARSEONLY 0x020 - #define SEVAL_NOLONGJMP 0x040 -+ #define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ -+ #define SEVAL_ONECMD 0x100 /* only allow a single command */ - - /* Flags for describe_command, shared between type.def and command.def */ -*** ../bash-4.3-patched/builtins/evalstring.c 2014-02-11 09:42:10.000000000 -0500 ---- builtins/evalstring.c 2014-09-14 14:15:13.000000000 -0400 -*************** -*** 309,312 **** ---- 313,324 ---- - struct fd_bitmap *bitmap; - -+ if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) -+ { -+ internal_warning ("%s: ignoring function definition attempt", from_file); -+ should_jump_to_top_level = 0; -+ last_result = last_command_exit_value = EX_BADUSAGE; -+ break; -+ } -+ - bitmap = new_fd_bitmap (FD_BITMAP_SIZE); - begin_unwind_frame ("pe_dispose"); -*************** -*** 369,372 **** ---- 381,387 ---- - dispose_fd_bitmap (bitmap); - discard_unwind_frame ("pe_dispose"); -+ -+ if (flags & SEVAL_ONECMD) -+ break; - } - } -*** ../bash-4.3-patched/variables.c 2014-05-15 08:26:50.000000000 -0400 ---- variables.c 2014-09-14 14:23:35.000000000 -0400 -*************** -*** 359,369 **** - strcpy (temp_string + char_index + 1, string); - -! if (posixly_correct == 0 || legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); -! -! /* Ancient backwards compatibility. Old versions of bash exported -! functions like name()=() {...} */ -! if (name[char_index - 1] == ')' && name[char_index - 2] == '(') -! name[char_index - 2] = '\0'; - - if (temp_var = find_function (name)) ---- 364,372 ---- - strcpy (temp_string + char_index + 1, string); - -! /* Don't import function names that are invalid identifiers from the -! environment, though we still allow them to be defined as shell -! variables. */ -! if (legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - - if (temp_var = find_function (name)) -*************** -*** 382,389 **** - report_error (_("error importing function definition for `%s'"), name); - } -- -- /* ( */ -- if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') -- name[char_index - 2] = '('; /* ) */ - } - #if defined (ARRAY_VARS) ---- 385,388 ---- -*** ../bash-4.3-patched/subst.c 2014-08-11 11:16:35.000000000 -0400 ---- subst.c 2014-09-12 15:31:04.000000000 -0400 -*************** -*** 8048,8052 **** - goto return0; - } -! else if (var = find_variable_last_nameref (temp1)) - { - temp = nameref_cell (var); ---- 8118,8124 ---- - goto return0; - } -! else if (var && (invisible_p (var) || var_isset (var) == 0)) -! temp = (char *)NULL; -! else if ((var = find_variable_last_nameref (temp1)) && var_isset (var) && invisible_p (var) == 0) - { - temp = nameref_cell (var); -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 24 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-026 b/src/patches/bash/bash43-026 deleted file mode 100644 index e48141b01..000000000 --- a/src/patches/bash/bash43-026 +++ /dev/null @@ -1,60 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-026 - -Bug-Reported-by: Tavis Ormandy -Bug-Reference-ID: -Bug-Reference-URL: http://twitter.com/taviso/statuses/514887394294652929 - -Bug-Description: - -Under certain circumstances, bash can incorrectly save a lookahead character and -return it on a subsequent call, even when reading a new line. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3.25/parse.y 2014-07-30 10:14:31.000000000 -0400 ---- parse.y 2014-09-25 20:20:21.000000000 -0400 -*************** -*** 2954,2957 **** ---- 2954,2959 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*** ../bash-4.3.25/y.tab.c 2014-07-30 10:14:32.000000000 -0400 ---- y.tab.c 2014-09-25 20:21:48.000000000 -0400 -*************** -*** 5266,5269 **** ---- 5266,5271 ---- - word_desc_to_read = (WORD_DESC *)NULL; - -+ eol_ungetc_lookahead = 0; -+ - current_token = '\n'; /* XXX */ - last_read_token = '\n'; -*************** -*** 8540,8542 **** - } - #endif /* HANDLE_MULTIBYTE */ -- ---- 8542,8543 ---- -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 25 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 26 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-027 b/src/patches/bash/bash43-027 deleted file mode 100644 index ef48bd82d..000000000 --- a/src/patches/bash/bash43-027 +++ /dev/null @@ -1,221 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-027 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -This patch changes the encoding bash uses for exported functions to avoid -clashes with shell variables and to avoid depending only on an environment -variable's contents to determine whether or not to interpret it as a shell -function. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3.26/variables.c 2014-09-25 23:02:18.000000000 -0400 ---- variables.c 2014-09-27 20:52:04.000000000 -0400 -*************** -*** 84,87 **** ---- 84,92 ---- - #define ifsname(s) ((s)[0] == 'I' && (s)[1] == 'F' && (s)[2] == 'S' && (s)[3] == '\0') - -+ #define BASHFUNC_PREFIX "BASH_FUNC_" -+ #define BASHFUNC_PREFLEN 10 /* == strlen(BASHFUNC_PREFIX */ -+ #define BASHFUNC_SUFFIX "%%" -+ #define BASHFUNC_SUFFLEN 2 /* == strlen(BASHFUNC_SUFFIX) */ -+ - extern char **environ; - -*************** -*** 280,284 **** - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); ---- 285,289 ---- - static void dispose_temporary_env __P((sh_free_func_t *)); - -! static inline char *mk_env_string __P((const char *, const char *, int)); - static char **make_env_array_from_var_list __P((SHELL_VAR **)); - static char **make_var_export_array __P((VAR_CONTEXT *)); -*************** -*** 350,369 **** - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) - { - string_length = strlen (string); -! temp_string = (char *)xmalloc (3 + string_length + char_index); - -! strcpy (temp_string, name); -! temp_string[char_index] = ' '; -! strcpy (temp_string + char_index + 1, string); - - /* Don't import function names that are invalid identifiers from the - environment, though we still allow them to be defined as shell - variables. */ -! if (legal_identifier (name)) -! parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - -! if (temp_var = find_function (name)) - { - VSETATTR (temp_var, (att_exported|att_imported)); ---- 355,385 ---- - /* If exported function, define it now. Don't import functions from - the environment in privileged mode. */ -! if (privmode == 0 && read_but_dont_execute == 0 && -! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && -! STREQ (BASHFUNC_SUFFIX, name + char_index - BASHFUNC_SUFFLEN) && -! STREQN ("() {", string, 4)) - { -+ size_t namelen; -+ char *tname; /* desired imported function name */ -+ -+ namelen = char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; -+ -+ tname = name + BASHFUNC_PREFLEN; /* start of func name */ -+ tname[namelen] = '\0'; /* now tname == func name */ -+ - string_length = strlen (string); -! temp_string = (char *)xmalloc (namelen + string_length + 2); - -! memcpy (temp_string, tname, namelen); -! temp_string[namelen] = ' '; -! memcpy (temp_string + namelen + 1, string, string_length + 1); - - /* Don't import function names that are invalid identifiers from the - environment, though we still allow them to be defined as shell - variables. */ -! if (absolute_program (tname) == 0 && (posixly_correct == 0 || legal_identifier (tname))) -! parse_and_execute (temp_string, tname, SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - -! if (temp_var = find_function (tname)) - { - VSETATTR (temp_var, (att_exported|att_imported)); -*************** -*** 378,383 **** - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), name); - } - } - #if defined (ARRAY_VARS) ---- 394,402 ---- - } - last_command_exit_value = 1; -! report_error (_("error importing function definition for `%s'"), tname); - } -+ -+ /* Restore original suffix */ -+ tname[namelen] = BASHFUNC_SUFFIX[0]; - } - #if defined (ARRAY_VARS) -*************** -*** 2955,2959 **** - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value); - - array_needs_making = 1; ---- 2974,2978 ---- - - INVALIDATE_EXPORTSTR (var); -! var->exportstr = mk_env_string (name, value, 0); - - array_needs_making = 1; -*************** -*** 3853,3871 **** - - static inline char * -! mk_env_string (name, value) - const char *name, *value; - { -! int name_len, value_len; -! char *p; - - name_len = strlen (name); - value_len = STRLEN (value); -! p = (char *)xmalloc (2 + name_len + value_len); -! strcpy (p, name); -! p[name_len] = '='; - if (value && *value) -! strcpy (p + name_len + 1, value); - else -! p[name_len + 1] = '\0'; - return (p); - } ---- 3872,3911 ---- - - static inline char * -! mk_env_string (name, value, isfunc) - const char *name, *value; -+ int isfunc; - { -! size_t name_len, value_len; -! char *p, *q; - - name_len = strlen (name); - value_len = STRLEN (value); -! -! /* If we are exporting a shell function, construct the encoded function -! name. */ -! if (isfunc && value) -! { -! p = (char *)xmalloc (BASHFUNC_PREFLEN + name_len + BASHFUNC_SUFFLEN + value_len + 2); -! q = p; -! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); -! q += BASHFUNC_PREFLEN; -! memcpy (q, name, name_len); -! q += name_len; -! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); -! q += BASHFUNC_SUFFLEN; -! } -! else -! { -! p = (char *)xmalloc (2 + name_len + value_len); -! memcpy (p, name, name_len); -! q = p + name_len; -! } -! -! q[0] = '='; - if (value && *value) -! memcpy (q + 1, value, value_len + 1); - else -! q[1] = '\0'; -! - return (p); - } -*************** -*** 3953,3957 **** - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value); - - if (USE_EXPORTSTR == 0) ---- 3993,3997 ---- - using the cached exportstr... */ - list[list_index] = USE_EXPORTSTR ? savestring (value) -! : mk_env_string (var->name, value, function_p (var)); - - if (USE_EXPORTSTR == 0) -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 26 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 27 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-028 b/src/patches/bash/bash43-028 deleted file mode 100644 index 7448cf814..000000000 --- a/src/patches/bash/bash43-028 +++ /dev/null @@ -1,2265 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-028 - -Bug-Reported-by: Florian Weimer -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are two local buffer overflows in parse.y that can cause the shell -to dump core when given many here-documents attached to a single command -or many nested loops. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3-patched/parse.y 2014-09-25 23:02:35.000000000 -0400 ---- parse.y 2014-09-29 16:47:03.000000000 -0400 -*************** -*** 169,172 **** ---- 169,175 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 266,270 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 269,275 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 308,312 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 313,317 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 521,525 **** - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS WORD ---- 526,530 ---- - redir.filename = $2; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS WORD -*************** -*** 528,532 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS WORD ---- 533,537 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS WORD -*************** -*** 535,539 **** - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_MINUS WORD ---- 540,544 ---- - redir.filename = $3; - $$ = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_MINUS WORD -*************** -*** 542,546 **** - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | NUMBER LESS_LESS_MINUS WORD ---- 547,551 ---- - redir.filename = $2; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | NUMBER LESS_LESS_MINUS WORD -*************** -*** 549,553 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = $$; - } - | REDIR_WORD LESS_LESS_MINUS WORD ---- 554,558 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ($$); - } - | REDIR_WORD LESS_LESS_MINUS WORD -*************** -*** 556,560 **** - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = $$; - } - | LESS_LESS_LESS WORD ---- 561,565 ---- - redir.filename = $3; - $$ = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ($$); - } - | LESS_LESS_LESS WORD -*************** -*** 2637,2640 **** ---- 2642,2660 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*** ../bash-4.3.27/y.tab.c 2014-10-01 11:38:24.000000000 -0400 ---- y.tab.c 2014-10-01 12:46:11.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/homes/chet/src/bash/src/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" -*************** -*** 320,323 **** ---- 320,326 ---- - static int reserved_word_acceptable __P((int)); - static int yylex __P((void)); -+ -+ static void push_heredoc __P((REDIRECT *)); -+ static char *mk_alexpansion __P((char *)); - static int alias_expand_token __P((char *)); - static int time_command_acceptable __P((void)); -*************** -*** 417,421 **** - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! static REDIRECT *redir_stack[10]; - int need_here_doc; - ---- 420,426 ---- - /* Variables to manage the task of reading here documents, because we need to - defer the reading until after a complete command has been collected. */ -! #define HEREDOC_MAX 16 -! -! static REDIRECT *redir_stack[HEREDOC_MAX]; - int need_here_doc; - -*************** -*** 459,463 **** - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST]; - static int word_top = -1; - ---- 464,468 ---- - index is decremented after a case, select, or for command is parsed. */ - #define MAX_CASE_NEST 128 -! static int word_lineno[MAX_CASE_NEST+1]; - static int word_top = -1; - -*************** -*** 493,497 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 324 "/usr/homes/chet/src/bash/src/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 504,508 **** - } - /* Line 193 of yacc.c. */ -! #line 507 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ ---- 509,513 ---- - } - /* Line 193 of yacc.c. */ -! #line 512 "y.tab.c" - YYSTYPE; - # define yystype YYSTYPE /* obsolescent; will be withdrawn */ -*************** -*** 517,521 **** - - /* Line 216 of yacc.c. */ -! #line 520 "y.tab.c" - - #ifdef short ---- 522,526 ---- - - /* Line 216 of yacc.c. */ -! #line 525 "y.tab.c" - - #ifdef short -*************** -*** 887,907 **** - static const yytype_uint16 yyrline[] = - { -! 0, 377, 377, 388, 397, 412, 422, 424, 428, 434, -! 440, 446, 452, 458, 464, 470, 476, 482, 488, 494, -! 500, 506, 512, 518, 525, 532, 539, 546, 553, 560, -! 566, 572, 578, 584, 590, 596, 602, 608, 614, 620, -! 626, 632, 638, 644, 650, 656, 662, 668, 674, 680, -! 686, 692, 700, 702, 704, 708, 712, 723, 725, 729, -! 731, 733, 749, 751, 755, 757, 759, 761, 763, 765, -! 767, 769, 771, 773, 775, 779, 784, 789, 794, 799, -! 804, 809, 814, 821, 826, 831, 836, 843, 848, 853, -! 858, 863, 868, 875, 880, 885, 892, 895, 898, 902, -! 904, 935, 942, 947, 964, 969, 986, 993, 995, 997, -! 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, 1029, -! 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, 1053, -! 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, 1100, -! 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, 1130, -! 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, 1200, -! 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276 - }; - #endif ---- 892,912 ---- - static const yytype_uint16 yyrline[] = - { -! 0, 382, 382, 393, 402, 417, 427, 429, 433, 439, -! 445, 451, 457, 463, 469, 475, 481, 487, 493, 499, -! 505, 511, 517, 523, 530, 537, 544, 551, 558, 565, -! 571, 577, 583, 589, 595, 601, 607, 613, 619, 625, -! 631, 637, 643, 649, 655, 661, 667, 673, 679, 685, -! 691, 697, 705, 707, 709, 713, 717, 728, 730, 734, -! 736, 738, 754, 756, 760, 762, 764, 766, 768, 770, -! 772, 774, 776, 778, 780, 784, 789, 794, 799, 804, -! 809, 814, 819, 826, 831, 836, 841, 848, 853, 858, -! 863, 868, 873, 880, 885, 890, 897, 900, 903, 907, -! 909, 940, 947, 952, 969, 974, 991, 998, 1000, 1002, -! 1007, 1011, 1015, 1019, 1021, 1023, 1027, 1028, 1032, 1034, -! 1036, 1038, 1042, 1044, 1046, 1048, 1050, 1052, 1056, 1058, -! 1067, 1075, 1076, 1082, 1083, 1090, 1094, 1096, 1098, 1105, -! 1107, 1109, 1113, 1114, 1117, 1119, 1121, 1125, 1126, 1135, -! 1148, 1164, 1179, 1181, 1183, 1190, 1193, 1197, 1199, 1205, -! 1211, 1228, 1248, 1250, 1273, 1277, 1279, 1281 - }; - #endif -*************** -*** 2094,2098 **** - { - case 2: -! #line 378 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2108,2112 **** - - case 3: -! #line 389 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2120,2124 **** - - case 4: -! #line 398 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2138,2142 **** - - case 5: -! #line 413 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2149,2163 **** - - case 6: -! #line 423 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 425 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 429 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2168,2172 **** - - case 9: -! #line 435 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2177,2181 **** - - case 10: -! #line 441 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2186,2190 **** - - case 11: -! #line 447 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2195,2199 **** - - case 12: -! #line 453 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2204,2208 **** - - case 13: -! #line 459 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2213,2217 **** - - case 14: -! #line 465 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2222,2226 **** - - case 15: -! #line 471 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2231,2235 **** - - case 16: -! #line 477 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2240,2244 **** - - case 17: -! #line 483 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2249,2253 **** - - case 18: -! #line 489 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2258,2262 **** - - case 19: -! #line 495 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2267,2271 **** - - case 20: -! #line 501 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2276,2280 **** - - case 21: -! #line 507 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2285,2289 **** - - case 22: -! #line 513 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2294,2358 **** - - case 23: -! #line 519 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 24: -! #line 526 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 25: -! #line 533 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 26: -! #line 540 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 27: -! #line 547 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 28: -! #line 554 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! redir_stack[need_here_doc++] = (yyval.redirect); - } - break; - - case 29: -! #line 561 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2299,2363 ---- - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; - redir.filename = (yyvsp[(2) - (2)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, 0); -! push_heredoc ((yyval.redirect)); - } - break; - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); - redir.filename = (yyvsp[(3) - (3)].word); - (yyval.redirect) = make_redirection (source, r_deblank_reading_until, redir, REDIR_VARASSIGN); -! push_heredoc ((yyval.redirect)); - } - break; - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2363,2367 **** - - case 30: -! #line 567 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2372,2376 **** - - case 31: -! #line 573 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2381,2385 **** - - case 32: -! #line 579 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2390,2394 **** - - case 33: -! #line 585 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2399,2403 **** - - case 34: -! #line 591 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2408,2412 **** - - case 35: -! #line 597 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2417,2421 **** - - case 36: -! #line 603 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2426,2430 **** - - case 37: -! #line 609 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2435,2439 **** - - case 38: -! #line 615 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2444,2448 **** - - case 39: -! #line 621 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2453,2457 **** - - case 40: -! #line 627 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2462,2466 **** - - case 41: -! #line 633 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2471,2475 **** - - case 42: -! #line 639 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2480,2484 **** - - case 43: -! #line 645 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2489,2493 **** - - case 44: -! #line 651 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2498,2502 **** - - case 45: -! #line 657 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2507,2511 **** - - case 46: -! #line 663 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2516,2520 **** - - case 47: -! #line 669 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; -*************** -*** 2525,2529 **** - - case 48: -! #line 675 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2534,2538 **** - - case 49: -! #line 681 "/usr/homes/chet/src/bash/src/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2543,2547 **** - - case 50: -! #line 687 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2552,2556 **** - - case 51: -! #line 693 "/usr/homes/chet/src/bash/src/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; -*************** -*** 2561,2580 **** - - case 52: -! #line 701 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 703 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 705 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 709 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2583,2587 **** - - case 56: -! #line 713 "/usr/homes/chet/src/bash/src/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; -*************** -*** 2595,2619 **** - - case 57: -! #line 724 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 726 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 730 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 732 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 734 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2634,2703 **** - - case 62: -! #line 750 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 752 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 756 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 758 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 760 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 762 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 764 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 766 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 768 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 770 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 772 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 774 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 776 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 780 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2707,2711 **** - - case 76: -! #line 785 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2715,2719 **** - - case 77: -! #line 790 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2723,2727 **** - - case 78: -! #line 795 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2731,2735 **** - - case 79: -! #line 800 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2739,2743 **** - - case 80: -! #line 805 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2747,2751 **** - - case 81: -! #line 810 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2755,2759 **** - - case 82: -! #line 815 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2763,2767 **** - - case 83: -! #line 822 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2771,2775 **** - - case 84: -! #line 827 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2779,2783 **** - - case 85: -! #line 832 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2787,2791 **** - - case 86: -! #line 837 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2795,2799 **** - - case 87: -! #line 844 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2803,2807 **** - - case 88: -! #line 849 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2811,2815 **** - - case 89: -! #line 854 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2819,2823 **** - - case 90: -! #line 859 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2827,2831 **** - - case 91: -! #line 864 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2835,2839 **** - - case 92: -! #line 869 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2843,2847 **** - - case 93: -! #line 876 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2851,2855 **** - - case 94: -! #line 881 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2859,2863 **** - - case 95: -! #line 886 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2867,2891 **** - - case 96: -! #line 893 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 896 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 899 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 903 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 905 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2919,2923 **** - - case 101: -! #line 936 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2927,2931 **** - - case 102: -! #line 943 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2935,2939 **** - - case 103: -! #line 948 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2955,2959 **** - - case 104: -! #line 965 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2963,2967 **** - - case 105: -! #line 970 "/usr/homes/chet/src/bash/src/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; -*************** -*** 2983,2987 **** - - case 106: -! #line 987 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2991,3105 **** - - case 107: -! #line 994 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 996 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 998 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1003 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1007 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1011 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1015 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1017 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1019 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1024 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1028 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1030 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1032 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1034 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1038 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1040 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1042 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1044 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1046 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1048 "/usr/homes/chet/src/bash/src/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1052 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1054 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1063 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3110,3114 **** - - case 132: -! #line 1072 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3117,3121 **** - - case 134: -! #line 1079 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3127,3141 **** - - case 136: -! #line 1090 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1092 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1094 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3147,3181 **** - - case 139: -! #line 1101 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1103 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1105 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1113 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1115 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1117 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1131 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3193,3197 **** - - case 150: -! #line 1144 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3212,3216 **** - - case 151: -! #line 1160 "/usr/homes/chet/src/bash/src/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3228,3242 **** - - case 152: -! #line 1175 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1177 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1179 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3248,3267 **** - - case 155: -! #line 1186 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1189 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1193 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1195 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3272,3276 **** - - case 159: -! #line 1201 "/usr/homes/chet/src/bash/src/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3281,3285 **** - - case 160: -! #line 1207 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3301,3305 **** - - case 161: -! #line 1224 "/usr/homes/chet/src/bash/src/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; -*************** -*** 3322,3331 **** - - case 162: -! #line 1244 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1246 "/usr/homes/chet/src/bash/src/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3353,3372 **** - - case 164: -! #line 1269 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1273 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1275 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1277 "/usr/homes/chet/src/bash/src/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3374,3378 **** - - /* Line 1267 of yacc.c. */ -! #line 3377 "y.tab.c" - default: break; - } ---- 3379,3383 ---- - - /* Line 1267 of yacc.c. */ -! #line 3382 "y.tab.c" - default: break; - } -*************** -*** 3588,3592 **** - - -! #line 1279 "/usr/homes/chet/src/bash/src/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - -*************** -*** 4949,4952 **** ---- 4954,4972 ---- - static int esacs_needed_count; - -+ static void -+ push_heredoc (r) -+ REDIRECT *r; -+ { -+ if (need_here_doc >= HEREDOC_MAX) -+ { -+ last_command_exit_value = EX_BADUSAGE; -+ need_here_doc = 0; -+ report_syntax_error (_("maximum here-document count exceeded")); -+ reset_parser (); -+ exit_shell (last_command_exit_value); -+ } -+ redir_stack[need_here_doc++] = r; -+ } -+ - void - gather_here_documents () -*************** -*** 8542,8543 **** ---- 8562,8564 ---- - } - #endif /* HANDLE_MULTIBYTE */ -+ -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 27 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 28 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-029 b/src/patches/bash/bash43-029 deleted file mode 100644 index 93bd390a8..000000000 --- a/src/patches/bash/bash43-029 +++ /dev/null @@ -1,59 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-029 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -When bash is parsing a function definition that contains a here-document -delimited by end-of-file (or end-of-string), it leaves the closing delimiter -uninitialized. This can result in an invalid memory access when the parsed -function is later copied. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3.28/make_cmd.c 2011-12-16 08:08:01.000000000 -0500 ---- make_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 693,696 **** ---- 693,697 ---- - temp->redirector = source; - temp->redirectee = dest_and_filename; -+ temp->here_doc_eof = 0; - temp->instruction = instruction; - temp->flags = 0; -*** ../bash-4.3.28/copy_cmd.c 2009-09-11 16:28:02.000000000 -0400 ---- copy_cmd.c 2014-10-02 11:24:23.000000000 -0400 -*************** -*** 127,131 **** - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = savestring (redirect->here_doc_eof); - /*FALLTHROUGH*/ - case r_reading_string: ---- 127,131 ---- - case r_reading_until: - case r_deblank_reading_until: -! new_redirect->here_doc_eof = redirect->here_doc_eof ? savestring (redirect->here_doc_eof) : 0; - /*FALLTHROUGH*/ - case r_reading_string: -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 28 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 29 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/bash/bash43-030 b/src/patches/bash/bash43-030 deleted file mode 100644 index 78984da26..000000000 --- a/src/patches/bash/bash43-030 +++ /dev/null @@ -1,2064 +0,0 @@ - BASH PATCH REPORT - ================= - -Bash-Release: 4.3 -Patch-ID: bash43-030 - -Bug-Reported-by: Michal Zalewski -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -A combination of nested command substitutions and function importing from -the environment can cause bash to execute code appearing in the environment -variable value following the function definition. - -Patch (apply with `patch -p0'): - -*** ../bash-4.3.29/builtins/evalstring.c 2014-10-01 12:57:47.000000000 -0400 ---- builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400 -*************** -*** 309,318 **** - struct fd_bitmap *bitmap; - -! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) - { -! internal_warning ("%s: ignoring function definition attempt", from_file); -! should_jump_to_top_level = 0; -! last_result = last_command_exit_value = EX_BADUSAGE; -! break; - } - ---- 313,335 ---- - struct fd_bitmap *bitmap; - -! if (flags & SEVAL_FUNCDEF) - { -! char *x; -! -! /* If the command parses to something other than a straight -! function definition, or if we have not consumed the entire -! string, or if the parser has transformed the function -! name (as parsing will if it begins or ends with shell -! whitespace, for example), reject the attempt */ -! if (command->type != cm_function_def || -! ((x = parser_remaining_input ()) && *x) || -! (STREQ (from_file, command->value.Function_def->name->word) == 0)) -! { -! internal_warning (_("%s: ignoring function definition attempt"), from_file); -! should_jump_to_top_level = 0; -! last_result = last_command_exit_value = EX_BADUSAGE; -! reset_parser (); -! break; -! } - } - -*************** -*** 379,383 **** - - if (flags & SEVAL_ONECMD) -! break; - } - } ---- 396,403 ---- - - if (flags & SEVAL_ONECMD) -! { -! reset_parser (); -! break; -! } - } - } -*** ../bash-4.3.29/parse.y 2014-10-01 12:58:43.000000000 -0400 ---- parse.y 2014-10-03 14:48:59.000000000 -0400 -*************** -*** 2539,2542 **** ---- 2539,2552 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 4028,4033 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 4053,4058 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** ../bash-4.3.29/shell.h 2014-10-01 12:57:39.000000000 -0400 ---- shell.h 2014-10-03 14:49:12.000000000 -0400 -*************** -*** 181,184 **** ---- 181,186 ---- - - /* Let's try declaring these here. */ -+ extern char *parser_remaining_input __P((void)); -+ - extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); - extern void restore_parser_state __P((sh_parser_state_t *)); -*** ../bash-4.3.28/y.tab.c 2014-10-01 13:09:46.000000000 -0400 ---- y.tab.c 2014-10-04 19:26:22.000000000 -0400 -*************** -*** 169,173 **** - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - #include "config.h" ---- 169,173 ---- - - /* Copy the first part of user declarations. */ -! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - #include "config.h" -*************** -*** 498,502 **** - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - WORD_DESC *word; /* the word that we read. */ ---- 498,502 ---- - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - typedef union YYSTYPE -! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - WORD_DESC *word; /* the word that we read. */ -*************** -*** 2099,2103 **** - { - case 2: -! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command. Discard the error ---- 2099,2103 ---- - { - case 2: -! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command. Discard the error -*************** -*** 2113,2117 **** - - case 3: -! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of regular command, but not a very ---- 2113,2117 ---- - - case 3: -! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of regular command, but not a very -*************** -*** 2125,2129 **** - - case 4: -! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Error during parsing. Return NULL command. */ ---- 2125,2129 ---- - - case 4: -! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Error during parsing. Return NULL command. */ -*************** -*** 2143,2147 **** - - case 5: -! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or ---- 2143,2147 ---- - - case 5: -! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Case of EOF seen by itself. Do ignoreeof or -*************** -*** 2154,2168 **** - - case 6: -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2154,2168 ---- - - case 6: -! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 7: -! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); } - break; - - case 8: -! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2173,2177 **** - - case 9: -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2173,2177 ---- - - case 9: -! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2182,2186 **** - - case 10: -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2182,2186 ---- - - case 10: -! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2191,2195 **** - - case 11: -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2191,2195 ---- - - case 11: -! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2200,2204 **** - - case 12: -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2200,2204 ---- - - case 12: -! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2209,2213 **** - - case 13: -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2209,2213 ---- - - case 13: -! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2218,2222 **** - - case 14: -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2218,2222 ---- - - case 14: -! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2227,2231 **** - - case 15: -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2227,2231 ---- - - case 15: -! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2236,2240 **** - - case 16: -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2236,2240 ---- - - case 16: -! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2245,2249 **** - - case 17: -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2245,2249 ---- - - case 17: -! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2254,2258 **** - - case 18: -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2254,2258 ---- - - case 18: -! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2263,2267 **** - - case 19: -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2263,2267 ---- - - case 19: -! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2272,2276 **** - - case 20: -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2272,2276 ---- - - case 20: -! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2281,2285 **** - - case 21: -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2281,2285 ---- - - case 21: -! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2290,2294 **** - - case 22: -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2290,2294 ---- - - case 22: -! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2299,2303 **** - - case 23: -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2299,2303 ---- - - case 23: -! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2309,2313 **** - - case 24: -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2309,2313 ---- - - case 24: -! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2319,2323 **** - - case 25: -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2319,2323 ---- - - case 25: -! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2329,2333 **** - - case 26: -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2329,2333 ---- - - case 26: -! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2339,2343 **** - - case 27: -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2339,2343 ---- - - case 27: -! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2349,2353 **** - - case 28: -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2349,2353 ---- - - case 28: -! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2359,2363 **** - - case 29: -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2359,2363 ---- - - case 29: -! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2368,2372 **** - - case 30: -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2368,2372 ---- - - case 30: -! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2377,2381 **** - - case 31: -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2377,2381 ---- - - case 31: -! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2386,2390 **** - - case 32: -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2386,2390 ---- - - case 32: -! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2395,2399 **** - - case 33: -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2395,2399 ---- - - case 33: -! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2404,2408 **** - - case 34: -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2404,2408 ---- - - case 34: -! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2413,2417 **** - - case 35: -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2413,2417 ---- - - case 35: -! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2422,2426 **** - - case 36: -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2422,2426 ---- - - case 36: -! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2431,2435 **** - - case 37: -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2431,2435 ---- - - case 37: -! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2440,2444 **** - - case 38: -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2440,2444 ---- - - case 38: -! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2449,2453 **** - - case 39: -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2449,2453 ---- - - case 39: -! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2458,2462 **** - - case 40: -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2458,2462 ---- - - case 40: -! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2467,2471 **** - - case 41: -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2467,2471 ---- - - case 41: -! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2476,2480 **** - - case 42: -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2476,2480 ---- - - case 42: -! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2485,2489 **** - - case 43: -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2485,2489 ---- - - case 43: -! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2494,2498 **** - - case 44: -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2494,2498 ---- - - case 44: -! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2503,2507 **** - - case 45: -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2503,2507 ---- - - case 45: -! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2512,2516 **** - - case 46: -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2512,2516 ---- - - case 46: -! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2521,2525 **** - - case 47: -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 0; ---- 2521,2525 ---- - - case 47: -! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 0; -*************** -*** 2530,2534 **** - - case 48: -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); ---- 2530,2534 ---- - - case 48: -! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = (yyvsp[(1) - (3)].number); -*************** -*** 2539,2543 **** - - case 49: -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); ---- 2539,2543 ---- - - case 49: -! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.filename = (yyvsp[(1) - (3)].word); -*************** -*** 2548,2552 **** - - case 50: -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2548,2552 ---- - - case 50: -! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2557,2561 **** - - case 51: -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - source.dest = 1; ---- 2557,2561 ---- - - case 51: -! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - source.dest = 1; -*************** -*** 2566,2585 **** - - case 52: -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); ---- 2566,2585 ---- - - case 52: -! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 53: -! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; } - break; - - case 54: -! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; } - break; - - case 55: -! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.redirect) = (yyvsp[(1) - (1)].redirect); -*************** -*** 2588,2592 **** - - case 56: -! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - register REDIRECT *t; ---- 2588,2592 ---- - - case 56: -! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - register REDIRECT *t; -*************** -*** 2600,2624 **** - - case 57: -! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2600,2624 ---- - - case 57: -! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); } - break; - - case 58: -! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); } - break; - - case 59: -! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } - break; - - case 60: -! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 61: -! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2639,2708 **** - - case 62: -! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2639,2708 ---- - - case 62: -! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 63: -! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 64: -! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 65: -! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 66: -! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 67: -! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); } - break; - - case 68: -! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 69: -! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 70: -! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 71: -! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 72: -! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 73: -! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 74: -! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 75: -! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2712,2716 **** - - case 76: -! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2712,2716 ---- - - case 76: -! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2720,2724 **** - - case 77: -! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2720,2724 ---- - - case 77: -! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2728,2732 **** - - case 78: -! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2728,2732 ---- - - case 78: -! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2736,2740 **** - - case 79: -! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2736,2740 ---- - - case 79: -! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2744,2748 **** - - case 80: -! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2744,2748 ---- - - case 80: -! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2752,2756 **** - - case 81: -! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2752,2756 ---- - - case 81: -! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2760,2764 **** - - case 82: -! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); ---- 2760,2764 ---- - - case 82: -! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); -*************** -*** 2768,2772 **** - - case 83: -! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2768,2772 ---- - - case 83: -! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2776,2780 **** - - case 84: -! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); ---- 2776,2780 ---- - - case 84: -! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); -*************** -*** 2784,2788 **** - - case 85: -! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2784,2788 ---- - - case 85: -! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2792,2796 **** - - case 86: -! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); ---- 2792,2796 ---- - - case 86: -! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); -*************** -*** 2800,2804 **** - - case 87: -! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2800,2804 ---- - - case 87: -! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2808,2812 **** - - case 88: -! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); ---- 2808,2812 ---- - - case 88: -! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]); -*************** -*** 2816,2820 **** - - case 89: -! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2816,2820 ---- - - case 89: -! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2824,2828 **** - - case 90: -! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); ---- 2824,2828 ---- - - case 90: -! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]); -*************** -*** 2832,2836 **** - - case 91: -! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2832,2836 ---- - - case 91: -! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2840,2844 **** - - case 92: -! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); ---- 2840,2844 ---- - - case 92: -! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_select_command ((yyvsp[(2) - (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); -*************** -*** 2848,2852 **** - - case 93: -! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); ---- 2848,2852 ---- - - case 93: -! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]); -*************** -*** 2856,2860 **** - - case 94: -! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); ---- 2856,2860 ---- - - case 94: -! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); -*************** -*** 2864,2868 **** - - case 95: -! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); ---- 2864,2868 ---- - - case 95: -! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); -*************** -*** 2872,2896 **** - - case 96: -! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2872,2896 ---- - - case 96: -! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } - break; - - case 97: -! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } - break; - - case 98: -! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } - break; - - case 99: -! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 100: -! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2924,2928 **** - - case 101: -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); ---- 2924,2928 ---- - - case 101: -! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command)); -*************** -*** 2932,2936 **** - - case 102: -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); ---- 2932,2936 ---- - - case 102: -! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command)); -*************** -*** 2940,2944 **** - - case 103: -! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2940,2944 ---- - - case 103: -! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2960,2964 **** - - case 104: -! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); ---- 2960,2964 ---- - - case 104: -! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command)); -*************** -*** 2968,2972 **** - - case 105: -! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - COMMAND *tc; ---- 2968,2972 ---- - - case 105: -! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - COMMAND *tc; -*************** -*** 2988,2992 **** - - case 106: -! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); ---- 2988,2992 ---- - - case 106: -! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command))); -*************** -*** 2996,3110 **** - - case 107: -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 2996,3110 ---- - - case 107: -! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } - break; - - case 108: -! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } - break; - - case 109: -! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } - break; - - case 110: -! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } - break; - - case 111: -! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } - break; - - case 112: -! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(2) - (3)].command); } - break; - - case 113: -! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } - break; - - case 114: -! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } - break; - - case 115: -! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } - break; - - case 117: -! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } - break; - - case 118: -! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); } - break; - - case 119: -! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); } - break; - - case 120: -! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); } - break; - - case 121: -! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); } - break; - - case 122: -! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 123: -! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 124: -! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 125: -! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 126: -! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } - break; - - case 127: -! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } - break; - - case 128: -! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); } - break; - - case 129: -! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); } - break; - - case 130: -! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3115,3119 **** - - case 132: -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); ---- 3115,3119 ---- - - case 132: -! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(2) - (2)].command); -*************** -*** 3122,3126 **** - - case 134: -! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3122,3126 ---- - - case 134: -! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3132,3146 **** - - case 136: -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) ---- 3132,3146 ---- - - case 136: -! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 137: -! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 138: -! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (4)].command)->type == cm_connection) -*************** -*** 3152,3186 **** - - case 139: -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); ---- 3152,3186 ---- - - case 139: -! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 140: -! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); } - break; - - case 141: -! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 144: -! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = '\n'; } - break; - - case 145: -! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = ';'; } - break; - - case 146: -! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = yacc_EOF; } - break; - - case 149: -! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (1)].command); -*************** -*** 3198,3202 **** - - case 150: -! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) ---- 3198,3202 ---- - - case 150: -! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (2)].command)->type == cm_connection) -*************** -*** 3217,3221 **** - - case 151: -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); ---- 3217,3221 ---- - - case 151: -! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - (yyval.command) = (yyvsp[(1) - (2)].command); -*************** -*** 3233,3247 **** - - case 152: -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) ---- 3233,3247 ---- - - case 152: -! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } - break; - - case 153: -! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); } - break; - - case 154: -! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(1) - (3)].command)->type == cm_connection) -*************** -*** 3253,3272 **** - - case 155: -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3253,3272 ---- - - case 155: -! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); } - break; - - case 156: -! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 157: -! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 158: -! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3277,3281 **** - - case 159: -! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - if ((yyvsp[(2) - (2)].command)) ---- 3277,3281 ---- - - case 159: -! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - if ((yyvsp[(2) - (2)].command)) -*************** -*** 3286,3290 **** - - case 160: -! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3286,3290 ---- - - case 160: -! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3306,3310 **** - - case 161: -! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - ELEMENT x; ---- 3306,3310 ---- - - case 161: -! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - ELEMENT x; -*************** -*** 3327,3336 **** - - case 162: -! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ ---- 3327,3336 ---- - - case 162: -! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); } - break; - - case 163: -! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { - /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ -*************** -*** 3358,3377 **** - - case 164: -! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; ---- 3358,3377 ---- - - case 164: -! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.command) = (yyvsp[(1) - (1)].command); } - break; - - case 165: -! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE; } - break; - - case 166: -! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; - - case 167: -! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" - { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } - break; -*************** -*** 3593,3597 **** - - -! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" - - ---- 3593,3597 ---- - - -! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y" - - -*************** -*** 4851,4854 **** ---- 4851,4864 ---- - } - -+ char * -+ parser_remaining_input () -+ { -+ if (shell_input_line == 0) -+ return 0; -+ if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len) -+ return '\0'; /* XXX */ -+ return (shell_input_line + shell_input_line_index); -+ } -+ - #ifdef INCLUDE_UNUSED - /* Back the input pointer up by one, effectively `ungetting' a character. */ -*************** -*** 6340,6345 **** - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! if (interactive) -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update ---- 6350,6355 ---- - /* reset_parser clears shell_input_line and associated variables */ - restore_input_line_state (&ls); -! -! token_to_read = 0; - - /* Need to find how many characters parse_and_execute consumed, update -*** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 ---- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 -*************** -*** 26,30 **** - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 29 - - #endif /* _PATCHLEVEL_H_ */ ---- 26,30 ---- - looks for to find the patch level (for the sccs version string). */ - -! #define PATCHLEVEL 30 - - #endif /* _PATCHLEVEL_H_ */ diff --git a/src/patches/readline/readline63-001 b/src/patches/readline/readline63-001 deleted file mode 100644 index bae6a2f52..000000000 --- a/src/patches/readline/readline63-001 +++ /dev/null @@ -1,43 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-001 - -Bug-Reported-by: Daan van Rossum -Bug-Reference-ID: <20140307072523.GA14250@flash.uchicago.edu> -Bug-Reference-URL: - -Bug-Description: - -The `.' command in vi mode cannot undo multi-key commands beginning with -`c', `d', and `y' (command plus motion specifier). - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-07 15:20:33.000000000 -0500 -*************** -*** 965,969 **** - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! rl_key_sequence_length == 1 && /* XXX */ - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); ---- 965,969 ---- - if (rl_editing_mode == vi_mode && _rl_keymap == vi_movement_keymap && - key != ANYOTHERKEY && -! _rl_dispatching_keymap == vi_movement_keymap && - _rl_vi_textmod_command (key)) - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 5 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 1 diff --git a/src/patches/readline/readline63-002 b/src/patches/readline/readline63-002 deleted file mode 100644 index 0e79f13f6..000000000 --- a/src/patches/readline/readline63-002 +++ /dev/null @@ -1,44 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-002 - -Bug-Reported-by: Anatol Pomozov -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00010.html - -Bug-Description: - -When in callback mode, some readline commands can cause readline to seg -fault by passing invalid contexts to callback functions. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/readline.c 2013-10-28 14:58:06.000000000 -0400 ---- readline.c 2014-03-10 14:15:02.000000000 -0400 -*************** -*** 745,749 **** - - RL_CHECK_SIGNALS (); -! if (r == 0) /* success! */ - { - _rl_keyseq_chain_dispose (); ---- 745,750 ---- - - RL_CHECK_SIGNALS (); -! /* We only treat values < 0 specially to simulate recursion. */ -! if (r >= 0 || (r == -1 && (cxt->flags & KSEQ_SUBSEQ) == 0)) /* success! or failure! */ - { - _rl_keyseq_chain_dispose (); -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 1 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 2 diff --git a/src/patches/readline/readline63-003 b/src/patches/readline/readline63-003 deleted file mode 100644 index d2cad94f9..000000000 --- a/src/patches/readline/readline63-003 +++ /dev/null @@ -1,47 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-003 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: - -Bug-Description: - -There are debugging functions in the readline release that are theoretically -exploitable as security problems. They are not public functions, but have -global linkage. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3/util.c 2013-09-02 13:36:12.000000000 -0400 ---- util.c 2014-03-20 10:25:53.000000000 -0400 -*************** -*** 477,480 **** ---- 479,483 ---- - } - -+ #if defined (DEBUG) - #if defined (USE_VARARGS) - static FILE *_rl_tracefp; -*************** -*** 539,542 **** ---- 542,546 ---- - } - #endif -+ #endif /* DEBUG */ - - -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 2 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 3 diff --git a/src/patches/readline/readline63-004 b/src/patches/readline/readline63-004 deleted file mode 100644 index 3cd89e3a0..000000000 --- a/src/patches/readline/readline63-004 +++ /dev/null @@ -1,45 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-004 - -Bug-Reported-by: Egmont Koblinger -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00153.html - -Bug-Description: - -The signal handling changes to bash and readline (to avoid running any code -in a signal handler context) cause the cursor to be placed on the wrong -line of a multi-line command after a ^C interrupts editing. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3-patched/display.c 2013-12-27 13:10:56.000000000 -0500 ---- display.c 2014-03-27 11:52:45.000000000 -0400 -*************** -*** 2678,2682 **** - if (_rl_echoing_p) - { -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); ---- 2678,2683 ---- - if (_rl_echoing_p) - { -! if (_rl_vis_botlin > 0) /* minor optimization plus bug fix */ -! _rl_move_vert (_rl_vis_botlin); - _rl_vis_botlin = 0; - fflush (rl_outstream); -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 3 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 4 diff --git a/src/patches/readline/readline63-005 b/src/patches/readline/readline63-005 deleted file mode 100644 index 8a6373849..000000000 --- a/src/patches/readline/readline63-005 +++ /dev/null @@ -1,58 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-005 - -Bug-Reported-by: Juergen Daubert -Bug-Reference-ID: <20140303180430.GA7346@jue.netz> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2014-03/msg00002.html - -Bug-Description: - -There are still applications using the deprecated Function/VFunction/etc. -typedefs in rltypedefs.h. This patch restores the typedefs, but attempts -to mark them as deprecated using gcc/clang attributes. Thanks to Max Horn -for the suggestion. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3-patched/rltypedefs.h 2011-03-26 14:53:31.000000000 -0400 ---- rltypedefs.h 2014-04-10 11:30:45.000000000 -0400 -*************** -*** 27,30 **** ---- 27,49 ---- - #endif - -+ /* Old-style, attempt to mark as deprecated in some way people will notice. */ -+ -+ #if !defined (_FUNCTION_DEF) -+ # define _FUNCTION_DEF -+ -+ #if defined(__GNUC__) || defined(__clang__) -+ typedef int Function () __attribute__ ((deprecated)); -+ typedef void VFunction () __attribute__ ((deprecated)); -+ typedef char *CPFunction () __attribute__ ((deprecated)); -+ typedef char **CPPFunction () __attribute__ ((deprecated)); -+ #else -+ typedef int Function (); -+ typedef void VFunction (); -+ typedef char *CPFunction (); -+ typedef char **CPPFunction (); -+ #endif -+ -+ #endif /* _FUNCTION_DEF */ -+ - /* New style. */ - -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 4 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 5 diff --git a/src/patches/readline/readline63-006 b/src/patches/readline/readline63-006 deleted file mode 100644 index a3f09304a..000000000 --- a/src/patches/readline/readline63-006 +++ /dev/null @@ -1,63 +0,0 @@ - READLINE PATCH REPORT - ===================== - -Readline-Release: 6.3 -Patch-ID: readline63-006 - -Bug-Reported-by: -Bug-Reference-ID: -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00069.html - -Bug-Description: - -Using reverse-i-search when horizontal scrolling is enabled does not redisplay -the entire line containing the successful search results. - -Patch (apply with `patch -p0'): - -*** ../readline-6.3-patched/display.c 2014-04-08 18:19:36.000000000 -0400 ---- display.c 2014-04-20 18:32:52.000000000 -0400 -*************** -*** 1638,1642 **** - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && !_rl_horizontal_scroll_mode && - current_invis_chars != visible_wrap_offset) - { ---- 1638,1642 ---- - the spot of first difference is before the end of the invisible chars, - lendiff needs to be adjusted. */ -! if (current_line == 0 && /* !_rl_horizontal_scroll_mode && */ - current_invis_chars != visible_wrap_offset) - { -*************** -*** 1826,1831 **** - _rl_last_c_pos += bytes_to_insert; - - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! goto clear_rest_of_line; - } - } ---- 1826,1836 ---- - _rl_last_c_pos += bytes_to_insert; - -+ /* XXX - we only want to do this if we are at the end of the line -+ so we move there with _rl_move_cursor_relative */ - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) -! { -! _rl_move_cursor_relative (ne-new, new); -! goto clear_rest_of_line; -! } - } - } -*** ../readline-6.3/patchlevel 2013-11-15 08:11:11.000000000 -0500 ---- patchlevel 2014-03-21 08:28:40.000000000 -0400 -*************** -*** 1,3 **** - # Do not edit -- exists only for use by patch - -! 5 ---- 1,3 ---- - # Do not edit -- exists only for use by patch - -! 6 From patchwork Mon Oct 7 18:19:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Peter_M=C3=BCller?= X-Patchwork-Id: 2483 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 46n80L2cj0z42hp for ; Mon, 7 Oct 2019 18:20:02 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384 client-signature ECDSA (P-384) client-digest SHA384) (Client CN "mail02.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 46n80L01B8z3Fv; Mon, 7 Oct 2019 18:20:01 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [127.0.0.1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 46n80K5bz9z2yXv; Mon, 7 Oct 2019 18:20:01 +0000 (UTC) Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) client-signature ECDSA (P-384)) (Client CN "mail01.haj.ipfire.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 46n80J3CBQz2yBF for ; Mon, 7 Oct 2019 18:20:00 +0000 (UTC) Received: from [127.0.0.1] (unknown [149.202.170.60]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail01.ipfire.org (Postfix) with ESMTPSA id 46n80H1bvRz2jN for ; Mon, 7 Oct 2019 18:19:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909rsa; t=1570472400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=i8IjVj1oK8LCwIJDOD6zSgtc0CCCnbImLB9HOibcJSg=; b=Zlhtq2dD7fvzljg0pVr5OEOi/eO5CBzCfwgqnVTsErIpC/ov3f70N+JlhFf9WIRKlRqey1 sA8SwMRL3gSWhBUu0hvvMFbQ3VAxplOt44oeJ9Q257gZ/SoHjfRkiKrEvIFoUV2NgoylXW hYoAQRFcByvCOPD2T4wc7dR9JruvjtOTqo3wojtGBYktXtM2R4xo2wM230G6a3q1OL+b2F tDxc24JVu7lsWcKnGUS9wP5sLGq6p4tj/DgORfsAC+xVydoiwPHsgQe55kYeYZXOdpoUni eG3xGL9gis2VNtMVvxRmn6AOEUQgBMpwGJwu0ixwRs4CBFhwlF1kIDcIXlVz5w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=ipfire.org; s=201909ed25519; t=1570472400; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=i8IjVj1oK8LCwIJDOD6zSgtc0CCCnbImLB9HOibcJSg=; b=U4YVAAOGKsahofJcY9gtlASHzjOq1GefyOO0nLOFdLl9gn7Z3Xxss1tIbUs2yvhpLnutNd L8Ig2eXr9r6LrYBA== Subject: [PATCH 7/7] ship updated bash and readline From: peter.mueller@ipfire.org To: "IPFire: Development-List" References: <3543dab0-7713-89bc-ea57-30e5f348d1e6@ipfire.org> <1c9a3727-c220-2d75-2957-7b0e48b6604c@ipfire.org> <1d0f4b20-a378-b756-bbe8-a379be2feede@ipfire.org> <38cab14f-3362-3c4d-d174-111d09c4cedc@ipfire.org> Message-ID: Date: Mon, 07 Oct 2019 18:19:00 +0000 MIME-Version: 1.0 In-Reply-To: <38cab14f-3362-3c4d-d174-111d09c4cedc@ipfire.org> Content-Language: en-US Authentication-Results: mail01.ipfire.org; auth=pass smtp.auth=pmueller smtp.mailfrom=peter.mueller@ipfire.org X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: IPFire development talk List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: development-bounces@lists.ipfire.org Sender: "Development" Signed-off-by: Peter Müller --- config/rootfiles/core/137/filelists/bash | 1 + config/rootfiles/core/137/filelists/readline | 1 + 2 files changed, 2 insertions(+) create mode 120000 config/rootfiles/core/137/filelists/bash create mode 120000 config/rootfiles/core/137/filelists/readline diff --git a/config/rootfiles/core/137/filelists/bash b/config/rootfiles/core/137/filelists/bash new file mode 120000 index 000000000..de970cb1d --- /dev/null +++ b/config/rootfiles/core/137/filelists/bash @@ -0,0 +1 @@ +../../../common/bash \ No newline at end of file diff --git a/config/rootfiles/core/137/filelists/readline b/config/rootfiles/core/137/filelists/readline new file mode 120000 index 000000000..84209f189 --- /dev/null +++ b/config/rootfiles/core/137/filelists/readline @@ -0,0 +1 @@ +../../../common/readline \ No newline at end of file