From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arne Fitzenreiter To: development@lists.ipfire.org Subject: Re: [PATCH v2 1/2] bash: update to 5.0 (patchlevel 11) Date: Tue, 15 Oct 2019 12:40:27 +0200 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8767259049801396249==" List-Id: --===============8767259049801396249== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I had megerd the first patchset because it was not marked as superseeded=20 and i had to revert it because we cannot remove readline-6.3 yet because some addons are=20 still linked against. Please update readline-compat to 6.3, also add the missing include and=20 lib lines to the rootfiles. https://nightly.ipfire.org/next/2019-10-14%2018:10:20%20+0000-2ad1b18b/i586/l= og/bash-5.0 https://nightly.ipfire.org/next/2019-10-14%2018:10:20%20+0000-2ad1b18b/i586/l= og/readline-8.0 Arne Am 2019-10-13 15:09, schrieb Michael Tremer: > Why is a second patchset needed for this? >=20 >> On 13 Oct 2019, at 10:56, peter.mueller(a)ipfire.org wrote: >>=20 >> The second version of this patch also includes patches 1-11 >> for version 5.0, and drops orphaned 4.3 patches. >>=20 >> Please refer to https://tiswww.case.edu/php/chet/bash/bashtop.html >> for release notes. >>=20 >> Signed-off-by: Peter M=C3=BCller >> --- >> config/rootfiles/common/bash | 5 + >> lfs/bash | 10 +- >> 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=20 >> ------------------------------------------ >> src/patches/bash/bash43-029 | 59 -- >> src/patches/bash/bash43-030 | 2064=20 >> -------------------------------------- >> 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 ++ >> 43 files changed, 1141 insertions(+), 6587 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 >> 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 >>=20 >> diff --git a/config/rootfiles/common/bash=20 >> 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/lfs/bash b/lfs/bash >> index 09b4e71e6..79c21896b 100644 >> --- a/lfs/bash >> +++ b/lfs/bash >> @@ -1,7 +1,7 @@ >> ##########################################################################= ##### >> # =20 >> # >> # IPFire.org - A linux based firewall =20 >> # >> -# Copyright (C) 2007-2018 IPFire Team =20 >> # >> +# Copyright (C) 2007-2019 IPFire Team =20 >> # >> # =20 >> # >> # This program is free software: you can redistribute it and/or modify=20 >> # >> # it under the terms of the GNU General Public License as published by=20 >> # >> @@ -24,7 +24,7 @@ >>=20 >> include Config >>=20 >> -VER =3D 4.3 >> +VER =3D 5.0 >>=20 >> THISAPP =3D bash-$(VER) >> DL_FILE =3D $(THISAPP).tar.gz >> @@ -53,7 +53,7 @@ objects =3D $(DL_FILE) >>=20 >> $(DL_FILE) =3D $(DL_FROM)/$(DL_FILE) >>=20 >> -$(DL_FILE)_MD5 =3D 81348932d5da294953e15d4814c74dd1 >> +$(DL_FILE)_MD5 =3D 2b44b47b905be16f45709648f671820b >>=20 >> install : $(TARGET) >>=20 >> @@ -87,8 +87,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) >> sed -e "s/filename, RTLD_LAZY/filename, RTLD_NOW/" \ >> -i $(DIR_APP)/builtins/enable.def >>=20 >> - for i in $$(seq 1 30); do \ >> - cd $(DIR_APP) && patch -Np0 <=20 >> $(DIR_SRC)/src/patches/bash/bash43-$$(printf "%03d" "$${i}") || exit=20 >> 1; \ >> + for i in $$(seq 1 11); do \ >> + cd $(DIR_APP) && patch -Np0 <=20 >> $(DIR_SRC)/src/patches/bash/bash50-$$(printf "%03d" "$${i}") || exit=20 >> 1; \ >> done >>=20 >> cd $(DIR_APP) && patch -Np1 <=20 >> $(DIR_SRC)/src/patches/bash-4.0-paths-1.patch >> 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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00092.html >> - >> -Bug-Description: >> - >> -A missing check for a valid option prevented `test -R' from working. =20 >> There >> -is another problem that causes bash to look up the wrong variable=20 >> 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 =3D find_variable (arg); >> -! return (v && invisible_p (v) =3D=3D 0 && var_isset (v) &&=20 >> nameref_p (v) ? TRUE : FALSE); >> - } >> - >> ---- 647,652 ---- >> - >> - case 'R': >> -! v =3D find_variable_noref (arg); >> -! return ((v && invisible_p (v) =3D=3D 0 && var_isset (v) &&=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 0 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-002 >> - >> -Bug-Reported-by: Moe Tunes >> -Bug-Reference-ID: <53103F49.3070100(a)gmail.com> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg= 00086.html >> - >> -Bug-Description: >> - >> -A change to save state while running the DEBUG trap caused pipelines=20 >> to hang >> -on systems which need process group synchronization while building=20 >> 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 !=3D 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 !=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 1 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> 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=20 >> -0400 >> ---- lib/readline/readline.c 2014-03-10 14:15:02.000000000 -0400 >> -*************** >> -*** 745,749 **** >> - >> - RL_CHECK_SIGNALS (); >> -! if (r =3D=3D 0) /* success! */ >> - { >> - _rl_keyseq_chain_dispose (); >> ---- 745,750 ---- >> - >> - RL_CHECK_SIGNALS (); >> -! /* We only treat values < 0 specially to simulate recursion. */ >> -! if (r >=3D 0 || (r =3D=3D -1 && (cxt->flags & KSEQ_SUBSEQ) =3D=3D 0))= /*=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 2 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-004 >> - >> -Bug-Reported-by: Daan van Rossum >> -Bug-Reference-ID: <20140307072523.GA14250(a)flash.uchicago.edu> >> -Bug-Reference-URL: >> - >> -Bug-Description: >> - >> -The `.' command in vi mode cannot undo multi-key commands beginning=20 >> 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=20 >> -0400 >> ---- lib/readline/readline.c 2014-03-07 15:20:33.000000000 -0500 >> -*************** >> -*** 965,969 **** >> - if (rl_editing_mode =3D=3D vi_mode && _rl_keymap =3D=3D=20 >> vi_movement_keymap && >> - key !=3D ANYOTHERKEY && >> -! rl_key_sequence_length =3D=3D 1 && /* XXX */ >> - _rl_vi_textmod_command (key)) >> - _rl_vi_set_last (key, rl_numeric_arg, rl_arg_sign); >> ---- 965,969 ---- >> - if (rl_editing_mode =3D=3D vi_mode && _rl_keymap =3D=3D=20 >> vi_movement_keymap && >> - key !=3D ANYOTHERKEY && >> -! _rl_dispatching_keymap =3D=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 3 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00037.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=20 >> occur." */ >> - /* This was changed in Austin Group Interp 221 */ >> -! if MBTEST(posixly_correct && shell_compatibility_level > 41=20 >> && dolbrace_state !=3D DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags &=20 >> P_DOLBRACE) && ch =3D=3D '\'') >> - continue; >> - >> ---- 3399,3403 ---- >> - unescaped double-quotes or single-quotes, if any, shall=20 >> occur." */ >> - /* This was changed in Austin Group Interp 221 */ >> -! if MBTEST(posixly_correct && shell_compatibility_level > 41=20 >> && dolbrace_state !=3D DOLBRACE_QUOTE && dolbrace_state !=3D=20 >> DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch =3D=3D= =20 >> '\'') >> - 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=20 >> occur." */ >> - /* This was changed in Austin Group Interp 221 */ >> -! if MBTEST(posixly_correct && shell_compatibility_level > 41=20 >> && dolbrace_state !=3D DOLBRACE_QUOTE && (flags & P_DQUOTE) && (flags &=20 >> P_DOLBRACE) && ch =3D=3D '\'') >> - continue; >> - >> ---- 5711,5715 ---- >> - unescaped double-quotes or single-quotes, if any, shall=20 >> occur." */ >> - /* This was changed in Austin Group Interp 221 */ >> -! if MBTEST(posixly_correct && shell_compatibility_level > 41=20 >> && dolbrace_state !=3D DOLBRACE_QUOTE && dolbrace_state !=3D=20 >> DOLBRACE_QUOTE2 && (flags & P_DQUOTE) && (flags & P_DOLBRACE) && ch =3D=3D= =20 >> '\'') >> - 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).=20 >> */ >> - >> -! #define PATCHLEVEL 4 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-006 >> - >> -Bug-Reported-by: Eduardo A . Bustamante Lopez >> -Bug-Reference-ID: <20140228170013.GA16015(a)dualbus.me> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg= 00091.html >> - >> -Bug-Description: >> - >> -A shell that started with job control active but was not interactive=20 >> left >> -the terminal in the wrong process group when exiting, causing its=20 >> parent >> -shell to get a stop signal when it attempted to read from the=20 >> 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=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 5 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-007 >> - >> -Bug-Reported-by: geir.hauge(a)gmail.com >> -Bug-Reference-ID: <20140318093650.B181C1C5B0B(a)gina.itea.ntnu.no> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg= 00095.html >> - >> -Bug-Description: >> - >> -Using compound assignments for associative arrays like >> - >> -assoc=3D( [x]=3D [y]=3Dbar ) >> - >> -left the value corresponding to the key `x' NULL. This caused=20 >> 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 =3D expand_assignment_string_to_string (val, 0); >> -+ if (val =3D=3D 0) >> -+ { >> -+ val =3D (char *)xmalloc (1); >> -+ val[0] =3D '\0'; /* like do_assignment_internal */ >> -+ } >> - free_val =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 6 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-008 >> - >> -Bug-Reported-by: Stephane Chazelas >> -Bug-Reference-ID: <20140318135901.GB22158(a)chaz.gmail.com> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg= 00098.html >> - >> -Bug-Description: >> - >> -Some extended glob patterns incorrectly matched filenames with a=20 >> 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] =3D=3D 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 =3D pat + 2; >> -! pe =3D pp + strlen (pp) - 1; /*(*/ >> -! if (*pe !=3D ')') >> -! return 0; >> -! if ((t =3D strchr (pp, '|')) =3D=3D 0) /* easy case first */ >> - { >> - *pe =3D '\0'; >> - r =3D skipname (pp, dname, flags); /*(*/ >> - *pe =3D ')'; >> - return r; >> - } >> - while (t =3D glob_patscan (pp, pe, '|')) >> - { >> - n =3D t[-1]; >> - t[-1] =3D '\0'; >> - r =3D skipname (pp, dname, flags); >> - t[-1] =3D n; >> - if (r =3D=3D 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 =3D *pat =3D=3D '!'; >> - pp =3D pat + 2; >> -! se =3D pp + strlen (pp) - 1; /* end of string */ >> -! pe =3D glob_patscan (pp, se, 0); /* end of extglob pattern (( */ >> -! /* we should check for invalid extglob pattern here */ >> -! /* if pe !=3D se we have more of the pattern at the end of the=20 >> extglob >> -! pattern. Check the easy case first ( */ >> -! if (pe =3D=3D se && *pe =3D=3D ')' && (t =3D strchr (pp, '|')) =3D=3D= 0) >> - { >> - *pe =3D '\0'; >> -+ #if defined (HANDLE_MULTIBYTE) >> -+ r =3D mbskipname (pp, dname, flags); >> -+ #else >> - r =3D skipname (pp, dname, flags); /*(*/ >> -+ #endif >> - *pe =3D ')'; >> - return r; >> - } >> -+ >> -+ /* check every subpattern */ >> - while (t =3D glob_patscan (pp, pe, '|')) >> - { >> - n =3D t[-1]; >> - t[-1] =3D '\0'; >> -+ #if defined (HANDLE_MULTIBYTE) >> -+ r =3D mbskipname (pp, dname, flags); >> -+ #else >> - r =3D skipname (pp, dname, flags); >> -+ #endif >> - t[-1] =3D n; >> - if (r =3D=3D 0) /* if any pattern says not skip, we don't skip */ >> -*************** >> -*** 205,219 **** >> - } /*(*/ >> - >> -! if (pp =3D=3D pe) /* glob_patscan might find end of pattern */ >> - return r; >> - >> -! *pe =3D '\0'; >> -! # if defined (HANDLE_MULTIBYTE) >> -! r =3D mbskipname (pp, dname, flags); /*(*/ >> -! # else >> -! r =3D skipname (pp, dname, flags); /*(*/ >> -! # endif >> -! *pe =3D ')'; >> -! return r; >> - } >> - #endif >> ---- 218,227 ---- >> - } /*(*/ >> - >> -! /* glob_patscan might find end of pattern */ >> -! if (pp =3D=3D 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 =3D pat + 2; >> -! pe =3D pp + wcslen (pp) - 1; /*(*/ >> -! if (*pe !=3D L')') >> -! return 0; >> -! if ((t =3D wcschr (pp, L'|')) =3D=3D 0) >> - { >> - *pe =3D L'\0'; >> ---- 286,298 ---- >> - { >> - #if EXTENDED_GLOB >> -! wchar_t *pp, *pe, *t, n, *se; >> -! int r, negate; >> - >> -+ negate =3D *pat =3D=3D L'!'; >> - pp =3D pat + 2; >> -! se =3D pp + wcslen (pp) - 1; /*(*/ >> -! pe =3D glob_patscan_wc (pp, se, 0); >> -! >> -! if (pe =3D=3D se && *pe =3D=3D ')' && (t =3D wcschr (pp, L'|')) =3D= =3D 0) >> - { >> - *pe =3D L'\0'; >> -*************** >> -*** 292,295 **** >> ---- 301,306 ---- >> - return r; >> - } >> -+ >> -+ /* check every subpattern */ >> - while (t =3D glob_patscan_wc (pp, pe, '|')) >> - { >> -*************** >> -*** 306,313 **** >> - return r; >> - >> -! *pe =3D L'\0'; >> -! r =3D wchkname (pp, dname); /*(*/ >> -! *pe =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 7 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-009 >> - >> -Bug-Reported-by: Matthias Klose >> -Bug-Reference-ID: <53346FC8.6090005(a)debian.org> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-03/msg= 00171.html >> - >> -Bug-Description: >> - >> -There is a problem with unsigned sign extension when attempting to=20 >> reallocate >> -the input line when it is fewer than 3 characters long and there has=20 >> been a >> -history expansion. The sign extension causes the shell to not=20 >> reallocate the >> -line, which results in a segmentation fault when it writes past the=20 >> 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 !=3D EOF) >> - { >> -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len >=20 >> shell_input_line_size - 3) >> - shell_input_line =3D (char *)xrealloc (shell_input_line, >> - 1 + (shell_input_line_size +=3D 2)); >> ---- 2425,2429 ---- >> - if (shell_input_line_terminator !=3D EOF) >> - { >> -! if (shell_input_line_size < SIZE_MAX-3 &&=20 >> (shell_input_line_len+3 > shell_input_line_size)) >> - shell_input_line =3D (char *)xrealloc (shell_input_line, >> - 1 + (shell_input_line_size +=3D 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 !=3D EOF) >> - { >> -! if (shell_input_line_size < SIZE_MAX && shell_input_line_len >=20 >> shell_input_line_size - 3) >> - shell_input_line =3D (char *)xrealloc (shell_input_line, >> - 1 + (shell_input_line_size +=3D 2)); >> ---- 4737,4741 ---- >> - if (shell_input_line_terminator !=3D EOF) >> - { >> -! if (shell_input_line_size < SIZE_MAX-3 &&=20 >> (shell_input_line_len+3 > shell_input_line_size)) >> - shell_input_line =3D (char *)xrealloc (shell_input_line, >> - 1 + (shell_input_line_size +=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 8 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00028.html >> - >> -Bug-Description: >> - >> -Patch (apply with `patch -p0'): >> - >> -This patch changes the behavior of programmable completion to=20 >> compensate >> -for two assumptions made by the bash-completion package. Bash-4.3=20 >> changed >> -to dequote the argument to programmable completion only under certain >> -circumstances, to make the behavior of compgen more consistent when=20 >> run >> -from the command line -- closer to the behavior when run by a shell=20 >> function >> -run as part of programmable completion. Bash-completion can pass=20 >> quoted >> -arguments to compgen when the original word to be completed was not=20 >> quoted, >> -expecting programmable completion to dequote the word before=20 >> attempting >> -completion. >> - >> -This patch fixes two cases: >> - >> -1. An empty string that bash-completion passes to compgen as a=20 >> quoted null >> - string (''). >> - >> -2. An unquoted word that bash-completion quotes using single quotes=20 >> or >> - backslashes before passing it to compgen. >> - >> -In these cases, since readline did not detect a quote character in=20 >> 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 =3D string; s && *s; s++) >> -+ { >> -+ if (*s =3D=3D '\'' || *s =3D=3D '"' || *s =3D=3D '\\') >> -+ 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 =3D (*rl_filename_dequoting_function) ((char *)text,=20 >> rl_completion_quote_character); >> - } >> -+ /* Intended to solve a mismatched assumption by=20 >> bash-completion. If >> -+ the text to be completed is empty, but bash-completion turns it=20 >> into >> -+ a quoted string ('') assuming that this code will dequote it=20 >> before >> -+ calling readline, do the dequoting. */ >> -+ else if (iscompgen && iscompleting && >> -+ pcomp_curtxt && *pcomp_curtxt =3D=3D 0 && >> -+ text && (*text =3D=3D '\'' || *text =3D=3D '"') && text[1] =3D= =3D=20 >> text[0] && text[2] =3D=3D 0 && >> -+ rl_filename_dequoting_function) >> -+ dfn =3D (*rl_filename_dequoting_function) ((char *)text,=20 >> rl_completion_quote_character); >> -+ /* Another mismatched assumption by bash-completion. If=20 >> compgen is being >> -+ run as part of bash-completion, and the argument to compgen=20 >> is not >> -+ the same as the word originally passed to the programmable=20 >> completion >> -+ code, dequote the argument if it has quote characters. =20 >> It's an >> -+ attempt to detect when bash-completion is quoting its=20 >> filename >> -+ argument before calling compgen. */ >> -+ /* We could check whether gen_shell_function_matches is in=20 >> the call >> -+ stack by checking whether the gen-shell-function-matches tag is=20 >> 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 &&=20 >> rl_filename_dequoting_function && >> -+ pcomp_curtxt && text && >> -+ STREQ (pcomp_curtxt, text) =3D=3D 0 && >> -+ variable_context && >> -+ sh_contains_quotes (text)) /* guess */ >> -+ dfn =3D (*rl_filename_dequoting_function) ((char *)text,=20 >> rl_completion_quote_character); >> - else >> - dfn =3D 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 =3D pcomp_curcs; >> - oldcmd =3D pcomp_curcmd; >> -+ oldtxt =3D pcomp_curtxt; >> - >> - pcomp_curcs =3D cs; >> - pcomp_curcmd =3D cmd; >> -+ pcomp_curtxt =3D word; >> - >> - ret =3D gen_compspec_completions (cs, cmd, word, start, end,=20 >> foundp); >> -*************** >> -*** 1554,1557 **** >> ---- 1583,1587 ---- >> - pcomp_curcs =3D oldcs; >> - pcomp_curcmd =3D oldcmd; >> -+ pcomp_curtxt =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 9 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00153.html >> - >> -Bug-Description: >> - >> -The signal handling changes to bash and readline (to avoid running=20 >> any code >> -in a signal handler context) cause the cursor to be placed on the=20 >> 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=20 >> 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 =3D 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 =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 10 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-012 >> - >> -Bug-Reported-by: Eduardo A. Bustamante L=C3=B3pez >> -Bug-Reference-ID: <5346B54C.4070205(a)case.edu> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg= 00051.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=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 11 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00069.html >> - >> -Bug-Description: >> - >> -Using reverse-i-search when horizontal scrolling is enabled does not=20 >> 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=20 >> 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=20 >> invisible chars, >> - lendiff needs to be adjusted. */ >> -! if (current_line =3D=3D 0 && !_rl_horizontal_scroll_mode && >> - current_invis_chars !=3D visible_wrap_offset) >> - { >> ---- 1638,1642 ---- >> - the spot of first difference is before the end of the=20 >> invisible chars, >> - lendiff needs to be adjusted. */ >> -! if (current_line =3D=3D 0 && /* !_rl_horizontal_scroll_mode && */ >> - current_invis_chars !=3D visible_wrap_offset) >> - { >> -*************** >> -*** 1826,1831 **** >> - _rl_last_c_pos +=3D bytes_to_insert; >> - >> - if (_rl_horizontal_scroll_mode && ((oe-old) > (ne-new))) >> -! goto clear_rest_of_line; >> - } >> - } >> ---- 1826,1836 ---- >> - _rl_last_c_pos +=3D bytes_to_insert; >> - >> -+ /* XXX - we only want to do this if we are at the end of the=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 12 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-014 >> - >> -Bug-Reported-by: Greg Wooledge >> -Bug-Reference-ID: <20140418202123.GB7660(a)eeg.ccf.org> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2014-04/ms= g00004.html >> - >> -Bug-Description: >> - >> -Under certain circumstances, $@ is expanded incorrectly in contexts=20 >> 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 =3D 1; >> - w->flags |=3D W_NOSPLIT2; >> - l =3D call_expand_word_internal (w, 0, 0, (int *)0, (int *)0); >> -+ expand_no_split_dollar_star =3D 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=20 >> not >> -+ performed? Even when IFS is not the default, posix seems to imply >> -+ that we behave like unquoted $* ? Maybe we should use=20 >> PF_NOSPLIT2 >> -+ here. */ >> - temp =3D string_list_dollar_at (list, (pflags & PF_ASSIGNRHS) ?=20 >> (quoted|Q_DOUBLE_QUOTES) : quoted); >> - >> -*************** >> -*** 8817,8820 **** >> ---- 8823,8827 ---- >> - { >> - char *ifs_chars; >> -+ char *tstring; >> - >> - ifs_chars =3D (quoted_dollar_at || has_dollar_at) ? ifs_value :=20 >> (char *)NULL; >> -*************** >> -*** 8831,8834 **** >> ---- 8838,8865 ---- >> - if (split_on_spaces) >> - list =3D list_string (istring, " ", 1); /* XXX quoted =3D=3D 1? */ >> -+ /* If we have $@ (has_dollar_at !=3D 0) and we are in a context=20 >> where we >> -+ don't want to split the result (W_NOSPLIT2), and we are not=20 >> quoted, >> -+ we have already separated the arguments with the first character=20 >> 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=20 >> other >> -+ shells seem to do). >> -+ quoted_dollar_at is internal to this function and is set if we=20 >> are >> -+ passed an argument that is unquoted (quoted =3D=3D 0) but we=20 >> encounter a >> -+ double-quoted $@ while expanding it. */ >> -+ else if (has_dollar_at && quoted_dollar_at =3D=3D 0 && ifs_chars = >> && quoted =3D=3D 0 && (word->flags & W_NOSPLIT2)) >> -+ { >> -+ /* Only split and rejoin if we have to */ >> -+ if (*ifs_chars && *ifs_chars !=3D ' ') >> -+ { >> -+ list =3D list_string (istring, *ifs_chars ? ifs_chars : " ",=20 >> 1); >> -+ tstring =3D string_list (list); >> -+ } >> -+ else >> -+ tstring =3D istring; >> -+ tword =3D make_bare_word (tstring); >> -+ if (tstring !=3D istring) >> -+ free (tstring); >> -+ goto set_word_flags; >> -+ } >> - else if (has_dollar_at && ifs_chars) >> - list =3D list_string (istring, *ifs_chars ? ifs_chars : " ", 1); >> -*************** >> -*** 8836,8839 **** >> ---- 8867,8871 ---- >> - { >> - tword =3D make_bare_word (istring); >> -+ set_word_flags: >> - if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) ||=20 >> (quoted_state =3D=3D WHOLLY_QUOTED)) >> - tword->flags |=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 13 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00095.html >> - >> -Bug-Description: >> - >> -When completing directory names, the directory name is dequoted=20 >> 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=20 >> -0500 >> ---- bashline.c 2014-04-25 14:57:52.000000000 -0400 >> -*************** >> -*** 4168,4174 **** >> - >> - qc =3D rl_dispatching ? rl_completion_quote_character : 0; >> -! dfn =3D bash_dequote_filename ((char *)text, qc); >> - m1 =3D rl_completion_matches (dfn,=20 >> rl_filename_completion_function); >> -! free (dfn); >> - >> - if (m1 =3D=3D 0 || m1[0] =3D=3D 0) >> ---- 4209,4222 ---- >> - >> - qc =3D rl_dispatching ? rl_completion_quote_character : 0; >> -! /* If rl_completion_found_quote !=3D 0, rl_completion_matches will=20 >> call the >> -! filename dequoting function, causing the directory name to be=20 >> dequoted >> -! twice. */ >> -! if (rl_dispatching && rl_completion_found_quote =3D=3D 0) >> -! dfn =3D bash_dequote_filename ((char *)text, qc); >> -! else >> -! dfn =3D (char *)text; >> - m1 =3D rl_completion_matches (dfn,=20 >> rl_filename_completion_function); >> -! if (dfn !=3D text) >> -! free (dfn); >> - >> - if (m1 =3D=3D 0 || m1[0] =3D=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 14 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00100.html >> - >> -Bug-Description: >> - >> -An extended glob pattern containing a slash (`/') causes the globbing=20 >> 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=20 >> -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 =3D glob_patscan (pp, se, 0); /* end of extglob pattern (( */ >> - /* we should check for invalid extglob pattern here */ >> -+ if (pe =3D=3D 0) >> -+ return 0; >> -+ >> - /* if pe !=3D se we have more of the pattern at the end of the=20 >> 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 =3D strrchr (pathname, '/'); >> -+ #if defined (EXTENDED_GLOB) >> -+ if (filename && extended_glob) >> -+ { >> -+ fn =3D glob_dirscan (pathname, '/'); >> -+ #if DEBUG_MATCHING >> -+ if (fn !=3D filename) >> -+ fprintf (stderr, "glob_filename: glob_dirscan: fn (%s) !=3D filename=20 >> (%s)\n", fn ? fn : "(null)", filename); >> -+ #endif >> -+ filename =3D fn; >> -+ } >> -+ #endif >> -+ >> - if (filename =3D=3D NULL) >> - { >> -*** ../bash-4.3-patched/lib/glob/gmisc.c 2014-03-28=20 >> 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=20 >> DIRSEP. This >> -+ is only called when extended_glob is set, so we have to skip=20 >> over extglob >> -+ patterns x(...) */ >> -+ char * >> -+ glob_dirscan (pat, dirsep) >> -+ char *pat; >> -+ int dirsep; >> -+ { >> -+ char *p, *d, *pe, *se; >> -+ >> -+ d =3D pe =3D se =3D 0; >> -+ for (p =3D pat; p && *p; p++) >> -+ { >> -+ if (extglob_pattern_p (p)) >> -+ { >> -+ if (se =3D=3D 0) >> -+ se =3D p + strlen (p) - 1; >> -+ pe =3D glob_patscan (p + 2, se, 0); >> -+ if (pe =3D=3D 0) >> -+ continue; >> -+ else if (*pe =3D=3D 0) >> -+ break; >> -+ p =3D pe - 1; /* will do increment above */ >> -+ continue; >> -+ } >> -+ if (*p =3D=3D dirsep) >> -+ d =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 15 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-017 >> - >> -Bug-Reported-by: Dan Douglas >> -Bug-Reference-ID: <7781746.RhfoTROLxF(a)smorgbox> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-05/msg= 00026.html >> - >> -Bug-Description: >> - >> -The code that creates local variables should not clear the=20 >> `invisible' >> -attribute when returning an existing local variable. Let the code=20 >> 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=20 >> -0500 >> ---- variables.c 2014-05-07 10:53:57.000000000 -0400 >> -*************** >> -*** 2198,2205 **** >> - old_var =3D find_variable (name); >> - if (old_var && local_p (old_var) && old_var->context =3D=3D=20 >> variable_context) >> -! { >> -! VUNSETATTR (old_var, att_invisible); /* XXX */ >> -! return (old_var); >> -! } >> - >> - was_tmpvar =3D old_var && tempvar_p (old_var); >> ---- 2260,2264 ---- >> - old_var =3D find_variable (name); >> - if (old_var && local_p (old_var) && old_var->context =3D=3D=20 >> variable_context) >> -! return (old_var); >> - >> - was_tmpvar =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 16 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00040.html >> - >> -Bug-Description: >> - >> -When assigning an array variable using the compound assignment=20 >> syntax, >> -but using `declare' with the rhs of the compound assignment quoted,=20 >> the >> -shell did not mark the variable as visible after successfully=20 >> performing >> -the assignment. >> - >> -Patch (apply with `patch -p0'): >> -*** ../bash-4.3-patched/arrayfunc.c 2014-03-28 10:54:21.000000000=20 >> -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).=20 >> */ >> - >> -! #define PATCHLEVEL 17 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/13= 17476 >> - >> -Bug-Description: >> - >> -The -t timeout option to `read' does not work when the -e option is=20 >> used. >> - >> -Patch (apply with `patch -p0'): >> - >> -*** ../bash-4.3-patched/lib/readline/input.c 2014-01-10=20 >> 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 =3D=3D SIGHUP || _rl_caught_signal =3D= =3D=20 >> SIGTERM) >> - return (RL_ISSTATE (RL_STATE_READCMD) ? READERR : EOF); >> -+ /* keyboard-generated signals of interest */ >> - else if (_rl_caught_signal =3D=3D SIGINT || _rl_caught_signal =3D= =3D=20 >> SIGQUIT) >> - RL_CHECK_SIGNALS (); >> -+ /* non-keyboard-generated signals of interest */ >> -+ else if (_rl_caught_signal =3D=3D SIGALRM >> -+ #if defined (SIGVTALRM) >> -+ || _rl_caught_signal =3D=3D SIGVTALRM >> -+ #endif >> -+ ) >> -+ RL_CHECK_SIGNALS (); >> - >> - if (rl_signal_event_hook) >> -*** ../bash-4.3-patched/builtins/read.def 2013-09-02=20 >> 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=20 >> *)NULL); >> - #endif >> - falarm (tmsec, tmusec); >> ---- 443,450 ---- >> - #if defined (READLINE) >> - if (edit) >> -! { >> -! add_unwind_protect (reset_attempted_completion_function, (char=20 >> *)NULL); >> -! add_unwind_protect (bashline_reset_event_hook, (char *)NULL); >> -! } >> - #endif >> - falarm (tmsec, tmusec); >> -*************** >> -*** 1022,1025 **** >> ---- 1025,1029 ---- >> - old_attempted_completion_function =3D=20 >> rl_attempted_completion_function; >> - rl_attempted_completion_function =3D (rl_completion_func_t *)NULL; >> -+ bashline_set_event_hook (); >> - if (itext) >> - { >> -*************** >> -*** 1033,1036 **** >> ---- 1037,1041 ---- >> - rl_attempted_completion_function =3D=20 >> old_attempted_completion_function; >> - old_attempted_completion_function =3D (rl_completion_func_t *)NULL; >> -+ bashline_reset_event_hook (); >> - >> - if (ret =3D=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 18 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-020 >> - >> -Bug-Reported-by: Jared Yanovich >> -Bug-Reference-ID: <20140417073654.GB26875(a)nightderanger.psc.edu> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-04/msg= 00065.html >> - >> -Bug-Description: >> - >> -When PS2 contains a command substitution, here-documents entered in=20 >> 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 =3D 0; >> -! while (need_here_doc) >> - { >> - parser_state |=3D PST_HEREDOC; >> ---- 2643,2647 ---- >> - >> - r =3D 0; >> -! while (need_here_doc > 0) >> - { >> - parser_state |=3D PST_HEREDOC; >> -*************** >> -*** 6076,6079 **** >> ---- 6076,6080 ---- >> - ps->expand_aliases =3D expand_aliases; >> - ps->echo_input_at_read =3D echo_input_at_read; >> -+ ps->need_here_doc =3D need_here_doc; >> - >> - ps->token =3D token; >> -*************** >> -*** 6124,6127 **** >> ---- 6125,6129 ---- >> - expand_aliases =3D ps->expand_aliases; >> - echo_input_at_read =3D ps->echo_input_at_read; >> -+ need_here_doc =3D 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 =3D 0; >> -! while (need_here_doc) >> - { >> - parser_state |=3D PST_HEREDOC; >> ---- 5151,5155 ---- >> - >> - r =3D 0; >> -! while (need_here_doc > 0) >> - { >> - parser_state |=3D PST_HEREDOC; >> -*************** >> -*** 8388,8391 **** >> ---- 8584,8588 ---- >> - ps->expand_aliases =3D expand_aliases; >> - ps->echo_input_at_read =3D echo_input_at_read; >> -+ ps->need_here_doc =3D need_here_doc; >> - >> - ps->token =3D token; >> -*************** >> -*** 8436,8439 **** >> ---- 8633,8637 ---- >> - expand_aliases =3D ps->expand_aliases; >> - echo_input_at_read =3D ps->echo_input_at_read; >> -+ need_here_doc =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 19 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-021 >> - >> -Bug-Reported-by: Jared Yanovich >> -Bug-Reference-ID: <20140625225019.GJ17044(a)nightderanger.psc.edu> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg= 00070.html >> - >> -Bug-Description: >> - >> -When the readline `revert-all-at-newline' option is set, pressing=20 >> newline >> -when the current line is one retrieved from history results in a=20 >> double free >> -and a segmentation fault. >> - >> -Patch (apply with `patch -p0'): >> - >> -*** ../bash-4.3-patched/lib/readline/misc.c 2012-09-01=20 >> 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=20 >> */ >> - rl_replace_from_history (entry, 0); /* entry->line is now=20 >> current */ >> -+ entry->data =3D 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 =3D savestring (rl_line_buffer); >> -- entry->data =3D 0; >> - } >> - entry =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 20 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-022 >> - >> -Bug-Reported-by: scorp.dev.null(a)gmail.com >> -Bug-Reference-ID: >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-06/msg= 00061.html >> - >> -Bug-Description: >> - >> -Using nested pipelines within loops with the `lastpipe' option set=20 >> 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=20 >> -0500 >> ---- execute_cmd.c 2014-06-19 08:05:49.000000000 -0400 >> -*************** >> -*** 2410,2414 **** >> - lstdin =3D wait_for (lastpid); >> - #if defined (JOB_CONTROL) >> -! exec_result =3D job_exit_status (lastpipe_jid); >> - #endif >> - unfreeze_jobs_list (); >> ---- 2425,2438 ---- >> - lstdin =3D wait_for (lastpid); >> - #if defined (JOB_CONTROL) >> -! /* If wait_for removes the job from the jobs table, use=20 >> result of last >> -! command as pipeline's exit status as usual. The jobs list can=20 >> get >> -! frozen and unfrozen at inconvenient times if there are multiple=20 >> pipelines >> -! running simultaneously. */ >> -! if (INVALID_JOB (lastpipe_jid) =3D=3D 0) >> -! exec_result =3D job_exit_status (lastpipe_jid); >> -! else if (pipefail_opt) >> -! exec_result =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 21 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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/msg= 00056.html >> - >> -Bug-Description: >> - >> -Bash does not correctly parse process substitution constructs that=20 >> 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 *,=20 >> 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, "(",=20 >> ")", 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, "(",=20 >> ")", SX_COMMAND)); >> -+ #else >> -+ xflags |=3D (no_longjmp_on_fatal_error ? SX_NOLONGJMP : 0); >> -+ return (xparse_dolparen (string, string+*sindex, sindex,=20 >> xflags)); >> -+ #endif >> - } >> - #endif /* PROCESS_SUBSTITUTION */ >> -*************** >> -*** 1786,1790 **** >> - if (string[si] =3D=3D '\0') >> - CQ_RETURN(si); >> -! temp =3D extract_process_subst (string, (c =3D=3D '<') ? "<(" : ">("= ,=20 >> &si); >> - free (temp); /* no SX_ALLOC here */ >> - i =3D si; >> ---- 1792,1796 ---- >> - if (string[si] =3D=3D '\0') >> - CQ_RETURN(si); >> -! temp =3D extract_process_subst (string, (c =3D=3D '<') ? "<(" : ">("= ,=20 >> &si, 0); >> - free (temp); /* no SX_ALLOC here */ >> - i =3D si; >> -*************** >> -*** 8250,8254 **** >> - t_index =3D sindex + 1; /* skip past both '<' and LPAREN */ >> - >> -! temp1 =3D extract_process_subst (string, (c =3D=3D '<') ? "<(" :=20 >> ">(", &t_index); /*))*/ >> - sindex =3D t_index; >> - >> ---- 8256,8260 ---- >> - t_index =3D sindex + 1; /* skip past both '<' and LPAREN */ >> - >> -! temp1 =3D extract_process_subst (string, (c =3D=3D '<') ? "<(" :=20 >> ">(", &t_index, 0); /*))*/ >> - sindex =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 22 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -Bash-Release: 4.3 >> -Patch-ID: bash43-024 >> - >> -Bug-Reported-by: Corentin Peuvrel >> -Bug-Reference-ID: <53CE9E5D.6050203(a)pom-monitoring.com> >> -Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-07/msg= 00021.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=3D'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 =3D parameter_brace_expand_indir (name + 1, var_is_special,=20 >> quoted, quoted_dollar_atp, contains_dollar_at); >> - else >> - tdesc =3D parameter_brace_expand_word (name, var_is_special,=20 >> quoted, PF_IGNUNBOUND|(pflags&(PF_NOSPLIT2|PF_ASSIGNRHS)), &ind); >> ---- 7445,7455 ---- >> - >> - if (want_indir) >> -! { >> -! tdesc =3D parameter_brace_expand_indir (name + 1,=20 >> var_is_special, quoted, quoted_dollar_atp, contains_dollar_at); >> -! /* Turn off the W_ARRAYIND flag because there is no way for=20 >> this function >> -! to return the index we're supposed to be using. */ >> -! if (tdesc && tdesc->flags) >> -! tdesc->flags &=3D ~W_ARRAYIND; >> -! } >> - else >> - tdesc =3D parameter_brace_expand_word (name, var_is_special,=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 23 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> processing the >> -environment for exported function definitions. >> - >> -Patch (apply with `patch -p0'): >> - >> -*** ../bash-4.3-patched/builtins/common.h 2013-07-08=20 >> 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=20 >> command.def */ >> -*** ../bash-4.3-patched/builtins/evalstring.c 2014-02-11=20 >> 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 !=3D=20 >> cm_function_def) >> -+ { >> -+ internal_warning ("%s: ignoring function definition attempt",=20 >> from_file); >> -+ should_jump_to_top_level =3D 0; >> -+ last_result =3D last_command_exit_value =3D EX_BADUSAGE; >> -+ break; >> -+ } >> -+ >> - bitmap =3D 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=20 >> -0400 >> ---- variables.c 2014-09-14 14:23:35.000000000 -0400 >> -*************** >> -*** 359,369 **** >> - strcpy (temp_string + char_index + 1, string); >> - >> -! if (posixly_correct =3D=3D 0 || legal_identifier (name)) >> -! parse_and_execute (temp_string, name,=20 >> SEVAL_NONINT|SEVAL_NOHIST); >> -! >> -! /* Ancient backwards compatibility. Old versions of bash=20 >> exported >> -! functions like name()=3D() {...} */ >> -! if (name[char_index - 1] =3D=3D ')' && name[char_index - 2] =3D=3D '= (') >> -! name[char_index - 2] =3D '\0'; >> - >> - if (temp_var =3D find_function (name)) >> ---- 364,372 ---- >> - strcpy (temp_string + char_index + 1, string); >> - >> -! /* Don't import function names that are invalid identifiers from=20 >> the >> -! environment, though we still allow them to be defined as=20 >> shell >> -! variables. */ >> -! if (legal_identifier (name)) >> -! parse_and_execute (temp_string, name,=20 >> SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); >> - >> - if (temp_var =3D find_function (name)) >> -*************** >> -*** 382,389 **** >> - report_error (_("error importing function definition for=20 >> `%s'"), name); >> - } >> -- >> -- /* ( */ >> -- if (name[char_index - 1] =3D=3D ')' && name[char_index - 2] =3D=3D '= \0') >> -- name[char_index - 2] =3D '('; /* ) */ >> - } >> - #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 =3D find_variable_last_nameref (temp1)) >> - { >> - temp =3D nameref_cell (var); >> ---- 8118,8124 ---- >> - goto return0; >> - } >> -! else if (var && (invisible_p (var) || var_isset (var) =3D=3D 0)) >> -! temp =3D (char *)NULL; >> -! else if ((var =3D find_variable_last_nameref (temp1)) &&=20 >> var_isset (var) && invisible_p (var) =3D=3D 0) >> - { >> - temp =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 24 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> 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 =3D (WORD_DESC *)NULL; >> - >> -+ eol_ungetc_lookahead =3D 0; >> -+ >> - current_token =3D '\n'; /* XXX */ >> - last_read_token =3D '\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 =3D (WORD_DESC *)NULL; >> - >> -+ eol_ungetc_lookahead =3D 0; >> -+ >> - current_token =3D '\n'; /* XXX */ >> - last_read_token =3D '\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).=20 >> */ >> - >> -! #define PATCHLEVEL 25 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> avoid >> -clashes with shell variables and to avoid depending only on an=20 >> environment >> -variable's contents to determine whether or not to interpret it as a=20 >> 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] =3D=3D 'I' && (s)[1] =3D=3D 'F' && (s)[2] = =3D=3D 'S'=20 >> && (s)[3] =3D=3D '\0') >> - >> -+ #define BASHFUNC_PREFIX "BASH_FUNC_" >> -+ #define BASHFUNC_PREFLEN 10 /* =3D=3D strlen(BASHFUNC_PREFIX */ >> -+ #define BASHFUNC_SUFFIX "%%" >> -+ #define BASHFUNC_SUFFLEN 2 /* =3D=3D 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=20 >> *)); >> - 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 *,=20 >> 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=20 >> functions from >> - the environment in privileged mode. */ >> -! if (privmode =3D=3D 0 && read_but_dont_execute =3D=3D 0 && STREQN= =20 >> ("() {", string, 4)) >> - { >> - string_length =3D strlen (string); >> -! temp_string =3D (char *)xmalloc (3 + string_length + char_index); >> - >> -! strcpy (temp_string, name); >> -! temp_string[char_index] =3D ' '; >> -! strcpy (temp_string + char_index + 1, string); >> - >> - /* Don't import function names that are invalid identifiers from=20 >> the >> - environment, though we still allow them to be defined as=20 >> shell >> - variables. */ >> -! if (legal_identifier (name)) >> -! parse_and_execute (temp_string, name,=20 >> SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); >> - >> -! if (temp_var =3D find_function (name)) >> - { >> - VSETATTR (temp_var, (att_exported|att_imported)); >> ---- 355,385 ---- >> - /* If exported function, define it now. Don't import=20 >> functions from >> - the environment in privileged mode. */ >> -! if (privmode =3D=3D 0 && read_but_dont_execute =3D=3D 0 && >> -! STREQN (BASHFUNC_PREFIX, name, BASHFUNC_PREFLEN) && >> -! STREQ (BASHFUNC_SUFFIX, name + char_index -=20 >> BASHFUNC_SUFFLEN) && >> -! STREQN ("() {", string, 4)) >> - { >> -+ size_t namelen; >> -+ char *tname; /* desired imported function name */ >> -+ >> -+ namelen =3D char_index - BASHFUNC_PREFLEN - BASHFUNC_SUFFLEN; >> -+ >> -+ tname =3D name + BASHFUNC_PREFLEN; /* start of func name */ >> -+ tname[namelen] =3D '\0'; /* now tname =3D=3D func name */ >> -+ >> - string_length =3D strlen (string); >> -! temp_string =3D (char *)xmalloc (namelen + string_length + 2); >> - >> -! memcpy (temp_string, tname, namelen); >> -! temp_string[namelen] =3D ' '; >> -! memcpy (temp_string + namelen + 1, string, string_length + 1); >> - >> - /* Don't import function names that are invalid identifiers from=20 >> the >> - environment, though we still allow them to be defined as=20 >> shell >> - variables. */ >> -! if (absolute_program (tname) =3D=3D 0 && (posixly_correct =3D=3D 0 |= |=20 >> legal_identifier (tname))) >> -! parse_and_execute (temp_string, tname,=20 >> SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); >> - >> -! if (temp_var =3D find_function (tname)) >> - { >> - VSETATTR (temp_var, (att_exported|att_imported)); >> -*************** >> -*** 378,383 **** >> - } >> - last_command_exit_value =3D 1; >> -! report_error (_("error importing function definition for=20 >> `%s'"), name); >> - } >> - } >> - #if defined (ARRAY_VARS) >> ---- 394,402 ---- >> - } >> - last_command_exit_value =3D 1; >> -! report_error (_("error importing function definition for=20 >> `%s'"), tname); >> - } >> -+ >> -+ /* Restore original suffix */ >> -+ tname[namelen] =3D BASHFUNC_SUFFIX[0]; >> - } >> - #if defined (ARRAY_VARS) >> -*************** >> -*** 2955,2959 **** >> - >> - INVALIDATE_EXPORTSTR (var); >> -! var->exportstr =3D mk_env_string (name, value); >> - >> - array_needs_making =3D 1; >> ---- 2974,2978 ---- >> - >> - INVALIDATE_EXPORTSTR (var); >> -! var->exportstr =3D mk_env_string (name, value, 0); >> - >> - array_needs_making =3D 1; >> -*************** >> -*** 3853,3871 **** >> - >> - static inline char * >> -! mk_env_string (name, value) >> - const char *name, *value; >> - { >> -! int name_len, value_len; >> -! char *p; >> - >> - name_len =3D strlen (name); >> - value_len =3D STRLEN (value); >> -! p =3D (char *)xmalloc (2 + name_len + value_len); >> -! strcpy (p, name); >> -! p[name_len] =3D '=3D'; >> - if (value && *value) >> -! strcpy (p + name_len + 1, value); >> - else >> -! p[name_len + 1] =3D '\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 =3D strlen (name); >> - value_len =3D STRLEN (value); >> -! >> -! /* If we are exporting a shell function, construct the encoded=20 >> function >> -! name. */ >> -! if (isfunc && value) >> -! { >> -! p =3D (char *)xmalloc (BASHFUNC_PREFLEN + name_len +=20 >> BASHFUNC_SUFFLEN + value_len + 2); >> -! q =3D p; >> -! memcpy (q, BASHFUNC_PREFIX, BASHFUNC_PREFLEN); >> -! q +=3D BASHFUNC_PREFLEN; >> -! memcpy (q, name, name_len); >> -! q +=3D name_len; >> -! memcpy (q, BASHFUNC_SUFFIX, BASHFUNC_SUFFLEN); >> -! q +=3D BASHFUNC_SUFFLEN; >> -! } >> -! else >> -! { >> -! p =3D (char *)xmalloc (2 + name_len + value_len); >> -! memcpy (p, name, name_len); >> -! q =3D p + name_len; >> -! } >> -! >> -! q[0] =3D '=3D'; >> - if (value && *value) >> -! memcpy (q + 1, value, value_len + 1); >> - else >> -! q[1] =3D '\0'; >> -! >> - return (p); >> - } >> -*************** >> -*** 3953,3957 **** >> - using the cached exportstr... */ >> - list[list_index] =3D USE_EXPORTSTR ? savestring (value) >> -! : mk_env_string (var->name, value); >> - >> - if (USE_EXPORTSTR =3D=3D 0) >> ---- 3993,3997 ---- >> - using the cached exportstr... */ >> - list[list_index] =3D USE_EXPORTSTR ? savestring (value) >> -! : mk_env_string (var->name, value, function_p (var)); >> - >> - if (USE_EXPORTSTR =3D=3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 26 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> shell >> -to dump core when given many here-documents attached to a single=20 >> 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=20 >> we need to >> - defer the reading until after a complete command has been=20 >> collected. */ >> -! static REDIRECT *redir_stack[10]; >> - int need_here_doc; >> - >> ---- 269,275 ---- >> - /* Variables to manage the task of reading here documents, because=20 >> we need to >> - defer the reading until after a complete command has been=20 >> 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=20 >> parsed. */ >> - #define MAX_CASE_NEST 128 >> -! static int word_lineno[MAX_CASE_NEST]; >> - static int word_top =3D -1; >> - >> ---- 313,317 ---- >> - index is decremented after a case, select, or for command is=20 >> parsed. */ >> - #define MAX_CASE_NEST 128 >> -! static int word_lineno[MAX_CASE_NEST+1]; >> - static int word_top =3D -1; >> - >> -*************** >> -*** 521,525 **** >> - redir.filename =3D $2; >> - $$ =3D make_redirection (source, r_reading_until, redir, 0); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | NUMBER LESS_LESS WORD >> ---- 526,530 ---- >> - redir.filename =3D $2; >> - $$ =3D make_redirection (source, r_reading_until, redir, 0); >> -! push_heredoc ($$); >> - } >> - | NUMBER LESS_LESS WORD >> -*************** >> -*** 528,532 **** >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_reading_until, redir, 0); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | REDIR_WORD LESS_LESS WORD >> ---- 533,537 ---- >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_reading_until, redir, 0); >> -! push_heredoc ($$); >> - } >> - | REDIR_WORD LESS_LESS WORD >> -*************** >> -*** 535,539 **** >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_reading_until, redir,=20 >> REDIR_VARASSIGN); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | LESS_LESS_MINUS WORD >> ---- 540,544 ---- >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_reading_until, redir,=20 >> REDIR_VARASSIGN); >> -! push_heredoc ($$); >> - } >> - | LESS_LESS_MINUS WORD >> -*************** >> -*** 542,546 **** >> - redir.filename =3D $2; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> 0); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | NUMBER LESS_LESS_MINUS WORD >> ---- 547,551 ---- >> - redir.filename =3D $2; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> 0); >> -! push_heredoc ($$); >> - } >> - | NUMBER LESS_LESS_MINUS WORD >> -*************** >> -*** 549,553 **** >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> 0); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | REDIR_WORD LESS_LESS_MINUS WORD >> ---- 554,558 ---- >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> 0); >> -! push_heredoc ($$); >> - } >> - | REDIR_WORD LESS_LESS_MINUS WORD >> -*************** >> -*** 556,560 **** >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> REDIR_VARASSIGN); >> -! redir_stack[need_here_doc++] =3D $$; >> - } >> - | LESS_LESS_LESS WORD >> ---- 561,565 ---- >> - redir.filename =3D $3; >> - $$ =3D make_redirection (source, r_deblank_reading_until, redir,=20 >> 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 >=3D HEREDOC_MAX) >> -+ { >> -+ last_command_exit_value =3D EX_BADUSAGE; >> -+ need_here_doc =3D 0; >> -+ report_syntax_error (_("maximum here-document count=20 >> exceeded")); >> -+ reset_parser (); >> -+ exit_shell (last_command_exit_value); >> -+ } >> -+ redir_stack[need_here_doc++] =3D 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=20 >> we need to >> - defer the reading until after a complete command has been=20 >> collected. */ >> -! static REDIRECT *redir_stack[10]; >> - int need_here_doc; >> - >> ---- 420,426 ---- >> - /* Variables to manage the task of reading here documents, because=20 >> we need to >> - defer the reading until after a complete command has been=20 >> 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=20 >> parsed. */ >> - #define MAX_CASE_NEST 128 >> -! static int word_lineno[MAX_CASE_NEST]; >> - static int word_top =3D -1; >> - >> ---- 464,468 ---- >> - index is decremented after a case, select, or for command is=20 >> parsed. */ >> - #define MAX_CASE_NEST 128 >> -! static int word_lineno[MAX_CASE_NEST+1]; >> - static int word_top =3D -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[] =3D >> - { >> -! 0, 377, 377, 388, 397, 412, 422, 424, 428, =20 >> 434, >> -! 440, 446, 452, 458, 464, 470, 476, 482, 488, =20 >> 494, >> -! 500, 506, 512, 518, 525, 532, 539, 546, 553, =20 >> 560, >> -! 566, 572, 578, 584, 590, 596, 602, 608, 614, =20 >> 620, >> -! 626, 632, 638, 644, 650, 656, 662, 668, 674, =20 >> 680, >> -! 686, 692, 700, 702, 704, 708, 712, 723, 725, =20 >> 729, >> -! 731, 733, 749, 751, 755, 757, 759, 761, 763, =20 >> 765, >> -! 767, 769, 771, 773, 775, 779, 784, 789, 794, =20 >> 799, >> -! 804, 809, 814, 821, 826, 831, 836, 843, 848, =20 >> 853, >> -! 858, 863, 868, 875, 880, 885, 892, 895, 898, =20 >> 902, >> -! 904, 935, 942, 947, 964, 969, 986, 993, 995, =20 >> 997, >> -! 1002, 1006, 1010, 1014, 1016, 1018, 1022, 1023, 1027, =20 >> 1029, >> -! 1031, 1033, 1037, 1039, 1041, 1043, 1045, 1047, 1051, =20 >> 1053, >> -! 1062, 1070, 1071, 1077, 1078, 1085, 1089, 1091, 1093, =20 >> 1100, >> -! 1102, 1104, 1108, 1109, 1112, 1114, 1116, 1120, 1121, =20 >> 1130, >> -! 1143, 1159, 1174, 1176, 1178, 1185, 1188, 1192, 1194, =20 >> 1200, >> -! 1206, 1223, 1243, 1245, 1268, 1272, 1274, 1276 >> - }; >> - #endif >> ---- 892,912 ---- >> - static const yytype_uint16 yyrline[] =3D >> - { >> -! 0, 382, 382, 393, 402, 417, 427, 429, 433, =20 >> 439, >> -! 445, 451, 457, 463, 469, 475, 481, 487, 493, =20 >> 499, >> -! 505, 511, 517, 523, 530, 537, 544, 551, 558, =20 >> 565, >> -! 571, 577, 583, 589, 595, 601, 607, 613, 619, =20 >> 625, >> -! 631, 637, 643, 649, 655, 661, 667, 673, 679, =20 >> 685, >> -! 691, 697, 705, 707, 709, 713, 717, 728, 730, =20 >> 734, >> -! 736, 738, 754, 756, 760, 762, 764, 766, 768, =20 >> 770, >> -! 772, 774, 776, 778, 780, 784, 789, 794, 799, =20 >> 804, >> -! 809, 814, 819, 826, 831, 836, 841, 848, 853, =20 >> 858, >> -! 863, 868, 873, 880, 885, 890, 897, 900, 903, =20 >> 907, >> -! 909, 940, 947, 952, 969, 974, 991, 998, 1000, =20 >> 1002, >> -! 1007, 1011, 1015, 1019, 1021, 1023, 1027, 1028, 1032, =20 >> 1034, >> -! 1036, 1038, 1042, 1044, 1046, 1048, 1050, 1052, 1056, =20 >> 1058, >> -! 1067, 1075, 1076, 1082, 1083, 1090, 1094, 1096, 1098, =20 >> 1105, >> -! 1107, 1109, 1113, 1114, 1117, 1119, 1121, 1125, 1126, =20 >> 1135, >> -! 1148, 1164, 1179, 1181, 1183, 1190, 1193, 1197, 1199, =20 >> 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) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 7: >> -! #line 425 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(2) - (2)].word),=20 >> (yyvsp[(1) - (2)].word_list)); } >> - break; >> - >> - case 8: >> -! #line 429 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2154,2168 ---- >> - >> - case 6: >> -! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 7: >> -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(2) - (2)].word),=20 >> (yyvsp[(1) - (2)].word_list)); } >> - break; >> - >> - case 8: >> -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2168,2172 **** >> - >> - case 9: >> -! #line 435 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2173,2177 ---- >> - >> - case 9: >> -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2177,2181 **** >> - >> - case 10: >> -! #line 441 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2182,2186 ---- >> - >> - case 10: >> -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2186,2190 **** >> - >> - case 11: >> -! #line 447 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2191,2195 ---- >> - >> - case 11: >> -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2195,2199 **** >> - >> - case 12: >> -! #line 453 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2200,2204 ---- >> - >> - case 12: >> -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2204,2208 **** >> - >> - case 13: >> -! #line 459 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2209,2213 ---- >> - >> - case 13: >> -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2213,2217 **** >> - >> - case 14: >> -! #line 465 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2218,2222 ---- >> - >> - case 14: >> -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2222,2226 **** >> - >> - case 15: >> -! #line 471 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2227,2231 ---- >> - >> - case 15: >> -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2231,2235 **** >> - >> - case 16: >> -! #line 477 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2236,2240 ---- >> - >> - case 16: >> -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2240,2244 **** >> - >> - case 17: >> -! #line 483 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2245,2249 ---- >> - >> - case 17: >> -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2249,2253 **** >> - >> - case 18: >> -! #line 489 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2254,2258 ---- >> - >> - case 18: >> -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2258,2262 **** >> - >> - case 19: >> -! #line 495 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2263,2267 ---- >> - >> - case 19: >> -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2267,2271 **** >> - >> - case 20: >> -! #line 501 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2272,2276 ---- >> - >> - case 20: >> -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2276,2280 **** >> - >> - case 21: >> -! #line 507 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2281,2285 ---- >> - >> - case 21: >> -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2285,2289 **** >> - >> - case 22: >> -! #line 513 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2290,2294 ---- >> - >> - case 22: >> -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2294,2358 **** >> - >> - case 23: >> -! #line 519 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> - redir.filename =3D (yyvsp[(2) - (2)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> redir, 0); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 24: >> -! #line 526 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> redir, 0); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 25: >> -! #line 533 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> redir, REDIR_VARASSIGN); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 26: >> -! #line 540 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> - redir.filename =3D (yyvsp[(2) - (2)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> r_deblank_reading_until, redir, 0); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 27: >> -! #line 547 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> r_deblank_reading_until, redir, 0); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 28: >> -! #line 554 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> r_deblank_reading_until, redir, REDIR_VARASSIGN); >> -! redir_stack[need_here_doc++] =3D (yyval.redirect); >> - } >> - break; >> - >> - case 29: >> -! #line 561 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2299,2363 ---- >> - >> - case 23: >> -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> - redir.filename =3D (yyvsp[(2) - (2)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> 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 =3D (yyvsp[(1) - (3)].number); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> 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 =3D (yyvsp[(1) - (3)].word); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source, r_reading_until,=20 >> 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 =3D 0; >> - redir.filename =3D (yyvsp[(2) - (2)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> 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 =3D (yyvsp[(1) - (3)].number); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> 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 =3D (yyvsp[(1) - (3)].word); >> - redir.filename =3D (yyvsp[(3) - (3)].word); >> - (yyval.redirect) =3D make_redirection (source,=20 >> 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 =3D 0; >> -*************** >> -*** 2363,2367 **** >> - >> - case 30: >> -! #line 567 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2368,2372 ---- >> - >> - case 30: >> -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2372,2376 **** >> - >> - case 31: >> -! #line 573 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2377,2381 ---- >> - >> - case 31: >> -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2381,2385 **** >> - >> - case 32: >> -! #line 579 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2386,2390 ---- >> - >> - case 32: >> -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2390,2394 **** >> - >> - case 33: >> -! #line 585 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2395,2399 ---- >> - >> - case 33: >> -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2399,2403 **** >> - >> - case 34: >> -! #line 591 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2404,2408 ---- >> - >> - case 34: >> -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2408,2412 **** >> - >> - case 35: >> -! #line 597 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2413,2417 ---- >> - >> - case 35: >> -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2417,2421 **** >> - >> - case 36: >> -! #line 603 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2422,2426 ---- >> - >> - case 36: >> -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2426,2430 **** >> - >> - case 37: >> -! #line 609 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2431,2435 ---- >> - >> - case 37: >> -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2435,2439 **** >> - >> - case 38: >> -! #line 615 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2440,2444 ---- >> - >> - case 38: >> -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2444,2448 **** >> - >> - case 39: >> -! #line 621 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2449,2453 ---- >> - >> - case 39: >> -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2453,2457 **** >> - >> - case 40: >> -! #line 627 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2458,2462 ---- >> - >> - case 40: >> -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2462,2466 **** >> - >> - case 41: >> -! #line 633 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2467,2471 ---- >> - >> - case 41: >> -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2471,2475 **** >> - >> - case 42: >> -! #line 639 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2476,2480 ---- >> - >> - case 42: >> -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2480,2484 **** >> - >> - case 43: >> -! #line 645 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2485,2489 ---- >> - >> - case 43: >> -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2489,2493 **** >> - >> - case 44: >> -! #line 651 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2494,2498 ---- >> - >> - case 44: >> -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2498,2502 **** >> - >> - case 45: >> -! #line 657 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2503,2507 ---- >> - >> - case 45: >> -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2507,2511 **** >> - >> - case 46: >> -! #line 663 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2512,2516 ---- >> - >> - case 46: >> -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2516,2520 **** >> - >> - case 47: >> -! #line 669 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2521,2525 ---- >> - >> - case 47: >> -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2525,2529 **** >> - >> - case 48: >> -! #line 675 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2530,2534 ---- >> - >> - case 48: >> -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2534,2538 **** >> - >> - case 49: >> -! #line 681 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2539,2543 ---- >> - >> - case 49: >> -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2543,2547 **** >> - >> - case 50: >> -! #line 687 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2548,2552 ---- >> - >> - case 50: >> -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2552,2556 **** >> - >> - case 51: >> -! #line 693 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2557,2561 ---- >> - >> - case 51: >> -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2561,2580 **** >> - >> - case 52: >> -! #line 701 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 53: >> -! #line 703 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 54: >> -! #line 705 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.element).redirect =3D (yyvsp[(1) - (1)].redirect);=20 >> (yyval.element).word =3D 0; } >> - break; >> - >> - case 55: >> -! #line 709 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.redirect) =3D (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 =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 53: >> -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 54: >> -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.element).redirect =3D (yyvsp[(1) - (1)].redirect);=20 >> (yyval.element).word =3D 0; } >> - break; >> - >> - case 55: >> -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.redirect) =3D (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) =3D make_simple_command ((yyvsp[(1) -=20 >> (1)].element), (COMMAND *)NULL); } >> - break; >> - >> - case 58: >> -! #line 726 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_simple_command ((yyvsp[(2) -=20 >> (2)].element), (yyvsp[(1) - (2)].command)); } >> - break; >> - >> - case 59: >> -! #line 730 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D clean_simple_command ((yyvsp[(1) -=20 >> (1)].command)); } >> - break; >> - >> - case 60: >> -! #line 732 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (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) =3D make_simple_command ((yyvsp[(1) -=20 >> (1)].element), (COMMAND *)NULL); } >> - break; >> - >> - case 58: >> -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_simple_command ((yyvsp[(2) -=20 >> (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) =3D clean_simple_command ((yyvsp[(1) -=20 >> (1)].command)); } >> - break; >> - >> - case 60: >> -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 63: >> -! #line 752 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 64: >> -! #line 756 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 65: >> -! #line 758 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 66: >> -! #line 760 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_while_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command)); } >> - break; >> - >> - case 67: >> -! #line 762 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_until_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command)); } >> - break; >> - >> - case 68: >> -! #line 764 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 69: >> -! #line 766 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 70: >> -! #line 768 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 71: >> -! #line 770 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 72: >> -! #line 772 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 73: >> -! #line 774 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 74: >> -! #line 776 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 75: >> -! #line 780 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 63: >> -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 64: >> -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 65: >> -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 66: >> -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_while_command ((yyvsp[(2) -=20 >> (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) =3D make_until_command ((yyvsp[(2) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 69: >> -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 70: >> -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 71: >> -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 72: >> -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 73: >> -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 74: >> -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 75: >> -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (6)].command), word_lineno[word_top]); >> -*************** >> -*** 2707,2711 **** >> - >> - case 76: >> -! #line 785 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (6)].command), word_lineno[word_top]); >> -*************** >> -*** 2715,2719 **** >> - >> - case 77: >> -! #line 790 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (7)].command), word_lineno[word_top]); >> -*************** >> -*** 2723,2727 **** >> - >> - case 78: >> -! #line 795 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (7)].command), word_lineno[word_top]); >> -*************** >> -*** 2731,2735 **** >> - >> - case 79: >> -! #line 800 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (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) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (10)].command), word_lineno[word_top]); >> -*************** >> -*** 2739,2743 **** >> - >> - case 80: >> -! #line 805 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (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) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (10)].command), word_lineno[word_top]); >> -*************** >> -*** 2747,2751 **** >> - >> - case 81: >> -! #line 810 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (yyvsp[(5) - (6)].command), word_lineno[word_top]); >> -*************** >> -*** 2803,2807 **** >> - >> - case 88: >> -! #line 849 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (yyvsp[(5) - (6)].command), word_lineno[word_top]); >> -*************** >> -*** 2811,2815 **** >> - >> - case 89: >> -! #line 854 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (yyvsp[(6) - (7)].command), word_lineno[word_top]); >> -*************** >> -*** 2819,2823 **** >> - >> - case 90: >> -! #line 859 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (yyvsp[(6) - (7)].command), word_lineno[word_top]); >> -*************** >> -*** 2827,2831 **** >> - >> - case 91: >> -! #line 864 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); >> -*************** >> -*** 2835,2839 **** >> - >> - case 92: >> -! #line 869 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (yyvsp[(9) - (10)].command), word_lineno[word_top]); >> -*************** >> -*** 2843,2847 **** >> - >> - case 93: >> -! #line 876 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (PATTERN_LIST *)NULL, word_lineno[word_top]); >> -*************** >> -*** 2851,2855 **** >> - >> - case 94: >> -! #line 881 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_case_command ((yyvsp[(2) - (7)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (7)].word),=20 >> (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); >> -*************** >> -*** 2859,2863 **** >> - >> - case 95: >> -! #line 886 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); >> -*************** >> -*** 2867,2891 **** >> - >> - case 96: >> -! #line 893 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_function_def ((yyvsp[(1) - (5)].word),=20 >> (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } >> - break; >> - >> - case 97: >> -! #line 896 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_function_def ((yyvsp[(2) - (6)].word),=20 >> (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } >> - break; >> - >> - case 98: >> -! #line 899 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_function_def ((yyvsp[(2) - (4)].word),=20 >> (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } >> - break; >> - >> - case 99: >> -! #line 903 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (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) =3D make_function_def ((yyvsp[(1) - (5)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (4)].word),=20 >> (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) =3D (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) =3D make_subshell_command ((yyvsp[(2) -=20 >> (3)].command)); >> ---- 2924,2928 ---- >> - >> - case 101: >> -! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D make_subshell_command ((yyvsp[(2) -=20 >> (3)].command)); >> -*************** >> -*** 2927,2931 **** >> - >> - case 102: >> -! #line 943 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D make_coproc_command ("COPROC", (yyvsp[(2) -=20 >> (2)].command)); >> ---- 2932,2936 ---- >> - >> - case 102: >> -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D make_coproc_command ("COPROC", (yyvsp[(2) -=20 >> (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) =3D make_coproc_command ((yyvsp[(2) -=20 >> (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) =3D make_coproc_command ((yyvsp[(2) -=20 >> (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) =3D make_coproc_command ("COPROC",=20 >> 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) =3D make_coproc_command ("COPROC",=20 >> clean_simple_command ((yyvsp[(2) - (2)].command))); >> -*************** >> -*** 2991,3105 **** >> - >> - case 107: >> -! #line 994 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } >> - break; >> - >> - case 108: >> -! #line 996 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) -=20 >> (7)].command)); } >> - break; >> - >> - case 109: >> -! #line 998 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) -=20 >> (6)].command)); } >> - break; >> - >> - case 110: >> -! #line 1003 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_group_command ((yyvsp[(2) -=20 >> (3)].command)); } >> - break; >> - >> - case 111: >> -! #line 1007 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_arith_command ((yyvsp[(1) -=20 >> (1)].word_list)); } >> - break; >> - >> - case 112: >> -! #line 1011 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(2) - (3)].command); } >> - break; >> - >> - case 113: >> -! #line 1015 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } >> - break; >> - >> - case 114: >> -! #line 1017 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) -=20 >> (6)].command)); } >> - break; >> - >> - case 115: >> -! #line 1019 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) -=20 >> (5)].command)); } >> - break; >> - >> - case 117: >> -! #line 1024 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(2) - (2)].pattern)->next =3D (yyvsp[(1) -=20 >> (2)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (2)].pattern); } >> - break; >> - >> - case 118: >> -! #line 1028 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (yyvsp[(4) - (4)].command)); } >> - break; >> - >> - case 119: >> -! #line 1030 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 120: >> -! #line 1032 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (yyvsp[(5) - (5)].command)); } >> - break; >> - >> - case 121: >> -! #line 1034 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 122: >> -! #line 1038 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 123: >> -! #line 1040 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) -=20 >> (3)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 124: >> -! #line 1042 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(1) - (2)].pattern)->flags |=3D CASEPAT_FALLTHROUGH;=20 >> (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 125: >> -! #line 1044 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->flags |=3D CASEPAT_FALLTHROUGH;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 126: >> -! #line 1046 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(1) - (2)].pattern)->flags |=3D CASEPAT_TESTNEXT;=20 >> (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 127: >> -! #line 1048 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->flags |=3D CASEPAT_TESTNEXT;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 128: >> -! #line 1052 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 129: >> -! #line 1054 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(3) - (3)].word),=20 >> (yyvsp[(1) - (3)].word_list)); } >> - break; >> - >> - case 130: >> -! #line 1063 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> ---- 2996,3110 ---- >> - >> - case 107: >> -! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) -=20 >> (7)].command)); } >> - break; >> - >> - case 109: >> -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) -=20 >> (6)].command)); } >> - break; >> - >> - case 110: >> -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_group_command ((yyvsp[(2) -=20 >> (3)].command)); } >> - break; >> - >> - case 111: >> -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_arith_command ((yyvsp[(1) -=20 >> (1)].word_list)); } >> - break; >> - >> - case 112: >> -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(2) - (3)].command); } >> - break; >> - >> - case 113: >> -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) -=20 >> (6)].command)); } >> - break; >> - >> - case 115: >> -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) -=20 >> (5)].command)); } >> - break; >> - >> - case 117: >> -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyvsp[(2) - (2)].pattern)->next =3D (yyvsp[(1) -=20 >> (2)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (2)].pattern); } >> - break; >> - >> - case 118: >> -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (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) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 120: >> -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (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) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 122: >> -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D (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 =3D (yyvsp[(1) -=20 >> (3)].pattern); (yyval.pattern) =3D (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 |=3D CASEPAT_FALLTHROUGH;=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_FALLTHROUGH;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_TESTNEXT;=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_TESTNEXT;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 128: >> -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 129: >> -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(3) - (3)].word),=20 >> (yyvsp[(1) - (3)].word_list)); } >> - break; >> - >> - case 130: >> -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> -*************** >> -*** 3110,3114 **** >> - >> - case 132: >> -! #line 1072 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> ---- 3115,3119 ---- >> - >> - case 132: >> -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> -*************** >> -*** 3117,3121 **** >> - >> - case 134: >> -! #line 1079 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - if ((yyvsp[(1) - (3)].command)->type =3D=3D 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 =3D=3D cm_connection) >> -*************** >> -*** 3127,3141 **** >> - >> - case 136: >> -! #line 1090 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } >> - break; >> - >> - case 137: >> -! #line 1092 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> ---- 3132,3146 ---- >> - >> - case 136: >> -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> -*************** >> -*** 3147,3181 **** >> - >> - case 139: >> -! #line 1101 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), ';'); } >> - break; >> - >> - case 140: >> -! #line 1103 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), ';'); } >> - break; >> - >> - case 141: >> -! #line 1105 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 144: >> -! #line 1113 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D '\n'; } >> - break; >> - >> - case 145: >> -! #line 1115 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D ';'; } >> - break; >> - >> - case 146: >> -! #line 1117 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D yacc_EOF; } >> - break; >> - >> - case 149: >> -! #line 1131 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (1)].command); >> ---- 3152,3186 ---- >> - >> - case 139: >> -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 144: >> -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D '\n'; } >> - break; >> - >> - case 145: >> -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D ';'; } >> - break; >> - >> - case 146: >> -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D yacc_EOF; } >> - break; >> - >> - case 149: >> -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (1)].command); >> -*************** >> -*** 3193,3197 **** >> - >> - case 150: >> -! #line 1144 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - if ((yyvsp[(1) - (2)].command)->type =3D=3D 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 =3D=3D cm_connection) >> -*************** >> -*** 3212,3216 **** >> - >> - case 151: >> -! #line 1160 "/usr/homes/chet/src/bash/src/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (2)].command); >> ---- 3217,3221 ---- >> - >> - case 151: >> -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (2)].command); >> -*************** >> -*** 3228,3242 **** >> - >> - case 152: >> -! #line 1175 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), AND_AND); } >> - break; >> - >> - case 153: >> -! #line 1177 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> ---- 3233,3247 ---- >> - >> - case 152: >> -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> -*************** >> -*** 3248,3267 **** >> - >> - case 155: >> -! #line 1186 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (3)].command), (yyvsp[(3) - (3)].command), ';'); } >> - break; >> - >> - case 156: >> -! #line 1189 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 157: >> -! #line 1193 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.command) =3D (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 157: >> -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 165: >> -! #line 1273 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE; } >> - break; >> - >> - case 166: >> -! #line 1275 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE|CMD_TIME_POSIX; } >> - break; >> - >> - case 167: >> -! #line 1277 "/usr/homes/chet/src/bash/src/parse.y" >> - { (yyval.number) =3D 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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 165: >> -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE; } >> - break; >> - >> - case 166: >> -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D 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) =3D 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 >=3D HEREDOC_MAX) >> -+ { >> -+ last_command_exit_value =3D EX_BADUSAGE; >> -+ need_here_doc =3D 0; >> -+ report_syntax_error (_("maximum here-document count=20 >> exceeded")); >> -+ reset_parser (); >> -+ exit_shell (last_command_exit_value); >> -+ } >> -+ redir_stack[need_here_doc++] =3D 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).=20 >> */ >> - >> -! #define PATCHLEVEL 27 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> here-document >> -delimited by end-of-file (or end-of-string), it leaves the closing=20 >> delimiter >> -uninitialized. This can result in an invalid memory access when the=20 >> 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 =3D source; >> - temp->redirectee =3D dest_and_filename; >> -+ temp->here_doc_eof =3D 0; >> - temp->instruction =3D instruction; >> - temp->flags =3D 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 =3D savestring=20 >> (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 =3D redirect->here_doc_eof ?=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 28 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #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 >> - =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> - >> -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=20 >> from >> -the environment can cause bash to execute code appearing in the=20 >> environment >> -variable value following the function definition. >> - >> -Patch (apply with `patch -p0'): >> - >> -*** ../bash-4.3.29/builtins/evalstring.c 2014-10-01=20 >> 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 !=3D=20 >> cm_function_def) >> - { >> -! internal_warning ("%s: ignoring function definition attempt",=20 >> from_file); >> -! should_jump_to_top_level =3D 0; >> -! last_result =3D last_command_exit_value =3D 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 !=3D cm_function_def || >> -! ((x =3D parser_remaining_input ()) && *x) || >> -! (STREQ (from_file, command->value.Function_def->name->word)=20 >> =3D=3D 0)) >> -! { >> -! internal_warning (_("%s: ignoring function definition=20 >> attempt"), from_file); >> -! should_jump_to_top_level =3D 0; >> -! last_result =3D last_command_exit_value =3D 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 =3D=3D 0) >> -+ return 0; >> -+ if (shell_input_line_index < 0 || shell_input_line_index >=3D=20 >> 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=20 >> character. */ >> -*************** >> -*** 4028,4033 **** >> - /* reset_parser clears shell_input_line and associated variables=20 >> */ >> - restore_input_line_state (&ls); >> -! if (interactive) >> -! token_to_read =3D 0; >> - >> - /* Need to find how many characters parse_and_execute consumed,=20 >> update >> ---- 4053,4058 ---- >> - /* reset_parser clears shell_input_line and associated variables=20 >> */ >> - restore_input_line_state (&ls); >> -! >> -! token_to_read =3D 0; >> - >> - /* Need to find how many characters parse_and_execute consumed,=20 >> 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=20 >> *)); >> - 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) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 7: >> -! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(2) - (2)].word),=20 >> (yyvsp[(1) - (2)].word_list)); } >> - break; >> - >> - case 8: >> -! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2154,2168 ---- >> - >> - case 6: >> -! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 7: >> -! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(2) - (2)].word),=20 >> (yyvsp[(1) - (2)].word_list)); } >> - break; >> - >> - case 8: >> -! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2173,2177 **** >> - >> - case 9: >> -! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2173,2177 ---- >> - >> - case 9: >> -! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2182,2186 **** >> - >> - case 10: >> -! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2182,2186 ---- >> - >> - case 10: >> -! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2191,2195 **** >> - >> - case 11: >> -! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2191,2195 ---- >> - >> - case 11: >> -! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2200,2204 **** >> - >> - case 12: >> -! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2200,2204 ---- >> - >> - case 12: >> -! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2209,2213 **** >> - >> - case 13: >> -! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2209,2213 ---- >> - >> - case 13: >> -! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2218,2222 **** >> - >> - case 14: >> -! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2218,2222 ---- >> - >> - case 14: >> -! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2227,2231 **** >> - >> - case 15: >> -! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2227,2231 ---- >> - >> - case 15: >> -! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2236,2240 **** >> - >> - case 16: >> -! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2236,2240 ---- >> - >> - case 16: >> -! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2245,2249 **** >> - >> - case 17: >> -! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2245,2249 ---- >> - >> - case 17: >> -! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2254,2258 **** >> - >> - case 18: >> -! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2254,2258 ---- >> - >> - case 18: >> -! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2263,2267 **** >> - >> - case 19: >> -! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2263,2267 ---- >> - >> - case 19: >> -! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2272,2276 **** >> - >> - case 20: >> -! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2272,2276 ---- >> - >> - case 20: >> -! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2281,2285 **** >> - >> - case 21: >> -! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2281,2285 ---- >> - >> - case 21: >> -! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2290,2294 **** >> - >> - case 22: >> -! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2290,2294 ---- >> - >> - case 22: >> -! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2299,2303 **** >> - >> - case 23: >> -! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2299,2303 ---- >> - >> - case 23: >> -! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2309,2313 **** >> - >> - case 24: >> -! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2309,2313 ---- >> - >> - case 24: >> -! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2319,2323 **** >> - >> - case 25: >> -! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2319,2323 ---- >> - >> - case 25: >> -! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2329,2333 **** >> - >> - case 26: >> -! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2329,2333 ---- >> - >> - case 26: >> -! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2339,2343 **** >> - >> - case 27: >> -! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2339,2343 ---- >> - >> - case 27: >> -! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2349,2353 **** >> - >> - case 28: >> -! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2349,2353 ---- >> - >> - case 28: >> -! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2359,2363 **** >> - >> - case 29: >> -! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2359,2363 ---- >> - >> - case 29: >> -! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2368,2372 **** >> - >> - case 30: >> -! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2368,2372 ---- >> - >> - case 30: >> -! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2377,2381 **** >> - >> - case 31: >> -! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2377,2381 ---- >> - >> - case 31: >> -! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2386,2390 **** >> - >> - case 32: >> -! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2386,2390 ---- >> - >> - case 32: >> -! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2395,2399 **** >> - >> - case 33: >> -! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2395,2399 ---- >> - >> - case 33: >> -! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2404,2408 **** >> - >> - case 34: >> -! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2404,2408 ---- >> - >> - case 34: >> -! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2413,2417 **** >> - >> - case 35: >> -! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2413,2417 ---- >> - >> - case 35: >> -! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2422,2426 **** >> - >> - case 36: >> -! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2422,2426 ---- >> - >> - case 36: >> -! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2431,2435 **** >> - >> - case 37: >> -! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2431,2435 ---- >> - >> - case 37: >> -! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2440,2444 **** >> - >> - case 38: >> -! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2440,2444 ---- >> - >> - case 38: >> -! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2449,2453 **** >> - >> - case 39: >> -! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2449,2453 ---- >> - >> - case 39: >> -! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2458,2462 **** >> - >> - case 40: >> -! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2458,2462 ---- >> - >> - case 40: >> -! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2467,2471 **** >> - >> - case 41: >> -! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2467,2471 ---- >> - >> - case 41: >> -! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2476,2480 **** >> - >> - case 42: >> -! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2476,2480 ---- >> - >> - case 42: >> -! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2485,2489 **** >> - >> - case 43: >> -! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2485,2489 ---- >> - >> - case 43: >> -! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2494,2498 **** >> - >> - case 44: >> -! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2494,2498 ---- >> - >> - case 44: >> -! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2503,2507 **** >> - >> - case 45: >> -! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2503,2507 ---- >> - >> - case 45: >> -! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2512,2516 **** >> - >> - case 46: >> -! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2512,2516 ---- >> - >> - case 46: >> -! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2521,2525 **** >> - >> - case 47: >> -! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 0; >> ---- 2521,2525 ---- >> - >> - case 47: >> -! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 0; >> -*************** >> -*** 2530,2534 **** >> - >> - case 48: >> -! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> ---- 2530,2534 ---- >> - >> - case 48: >> -! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D (yyvsp[(1) - (3)].number); >> -*************** >> -*** 2539,2543 **** >> - >> - case 49: >> -! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> ---- 2539,2543 ---- >> - >> - case 49: >> -! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.filename =3D (yyvsp[(1) - (3)].word); >> -*************** >> -*** 2548,2552 **** >> - >> - case 50: >> -! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2548,2552 ---- >> - >> - case 50: >> -! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2557,2561 **** >> - >> - case 51: >> -! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - source.dest =3D 1; >> ---- 2557,2561 ---- >> - >> - case 51: >> -! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - source.dest =3D 1; >> -*************** >> -*** 2566,2585 **** >> - >> - case 52: >> -! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 53: >> -! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 54: >> -! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.element).redirect =3D (yyvsp[(1) - (1)].redirect);=20 >> (yyval.element).word =3D 0; } >> - break; >> - >> - case 55: >> -! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.redirect) =3D (yyvsp[(1) - (1)].redirect); >> ---- 2566,2585 ---- >> - >> - case 52: >> -! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 53: >> -! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.element).word =3D (yyvsp[(1) - (1)].word);=20 >> (yyval.element).redirect =3D 0; } >> - break; >> - >> - case 54: >> -! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.element).redirect =3D (yyvsp[(1) - (1)].redirect);=20 >> (yyval.element).word =3D 0; } >> - break; >> - >> - case 55: >> -! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.redirect) =3D (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) =3D make_simple_command ((yyvsp[(1) -=20 >> (1)].element), (COMMAND *)NULL); } >> - break; >> - >> - case 58: >> -! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_simple_command ((yyvsp[(2) -=20 >> (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) =3D clean_simple_command ((yyvsp[(1) -=20 >> (1)].command)); } >> - break; >> - >> - case 60: >> -! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (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) =3D make_simple_command ((yyvsp[(1) -=20 >> (1)].element), (COMMAND *)NULL); } >> - break; >> - >> - case 58: >> -! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_simple_command ((yyvsp[(2) -=20 >> (2)].element), (yyvsp[(1) - (2)].command)); } >> - break; >> - >> - case 59: >> -! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D clean_simple_command ((yyvsp[(1) -=20 >> (1)].command)); } >> - break; >> - >> - case 60: >> -! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 63: >> -! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 64: >> -! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 65: >> -! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 66: >> -! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_while_command ((yyvsp[(2) -=20 >> (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) =3D make_until_command ((yyvsp[(2) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 69: >> -! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 70: >> -! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 71: >> -! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 72: >> -! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 73: >> -! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 74: >> -! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 75: >> -! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (6)].command), word_lineno[word_top]); >> ---- 2639,2708 ---- >> - >> - case 62: >> -! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 63: >> -! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 64: >> -! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 65: >> -! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 66: >> -! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_while_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command)); } >> - break; >> - >> - case 67: >> -! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_until_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command)); } >> - break; >> - >> - case 68: >> -! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 69: >> -! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 70: >> -! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 71: >> -! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 72: >> -! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 73: >> -! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 74: >> -! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 75: >> -! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (6)].command), word_lineno[word_top]); >> ---- 2712,2716 ---- >> - >> - case 76: >> -! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (6)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (7)].command), word_lineno[word_top]); >> ---- 2720,2724 ---- >> - >> - case 77: >> -! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (7)].command), word_lineno[word_top]); >> ---- 2728,2732 ---- >> - >> - case 78: >> -! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (7)].word),=20 >> add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) -=20 >> (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) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (10)].command), word_lineno[word_top]); >> ---- 2736,2740 ---- >> - >> - case 79: >> -! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (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) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (10)].command), word_lineno[word_top]); >> ---- 2744,2748 ---- >> - >> - case 80: >> -! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_for_command ((yyvsp[(2) - (10)].word),=20 >> REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9)=20 >> - (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_for_command ((yyvsp[(2) - (9)].word),=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_arith_for_command ((yyvsp[(2) -=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL),=20 >> (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_select_command ((yyvsp[(2) -=20 >> (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST=20 >> *), (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (7)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (7)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_case_command ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_function_def ((yyvsp[(1) - (5)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (4)].word),=20 >> (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) =3D (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) =3D make_function_def ((yyvsp[(1) - (5)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (6)].word),=20 >> (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) =3D make_function_def ((yyvsp[(2) - (4)].word),=20 >> (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) =3D (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) =3D make_subshell_command ((yyvsp[(2) -=20 >> (3)].command)); >> ---- 2924,2928 ---- >> - >> - case 101: >> -! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_subshell_command ((yyvsp[(2) -=20 >> (3)].command)); >> -*************** >> -*** 2932,2936 **** >> - >> - case 102: >> -! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D make_coproc_command ("COPROC", (yyvsp[(2) -=20 >> (2)].command)); >> ---- 2932,2936 ---- >> - >> - case 102: >> -! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D make_coproc_command ("COPROC", (yyvsp[(2) -=20 >> (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) =3D make_coproc_command ((yyvsp[(2) -=20 >> (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) =3D make_coproc_command ((yyvsp[(2) -=20 >> (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) =3D make_coproc_command ("COPROC",=20 >> 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) =3D make_coproc_command ("COPROC",=20 >> 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) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) -=20 >> (7)].command)); } >> - break; >> - >> - case 109: >> -! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) -=20 >> (6)].command)); } >> - break; >> - >> - case 110: >> -! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_group_command ((yyvsp[(2) -=20 >> (3)].command)); } >> - break; >> - >> - case 111: >> -! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_arith_command ((yyvsp[(1) -=20 >> (1)].word_list)); } >> - break; >> - >> - case 112: >> -! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (yyvsp[(2) - (3)].command); } >> - break; >> - >> - case 113: >> -! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) -=20 >> (6)].command)); } >> - break; >> - >> - case 115: >> -! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) -=20 >> (5)].command)); } >> - break; >> - >> - case 117: >> -! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyvsp[(2) - (2)].pattern)->next =3D (yyvsp[(1) -=20 >> (2)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (2)].pattern); } >> - break; >> - >> - case 118: >> -! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (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) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 120: >> -! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (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) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 122: >> -! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.pattern) =3D (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 =3D (yyvsp[(1) -=20 >> (3)].pattern); (yyval.pattern) =3D (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 |=3D CASEPAT_FALLTHROUGH;=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_FALLTHROUGH;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_TESTNEXT;=20 >> (yyval.pattern) =3D (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 |=3D CASEPAT_TESTNEXT;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 128: >> -! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 129: >> -! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(3) - (3)].word),=20 >> (yyvsp[(1) - (3)].word_list)); } >> - break; >> - >> - case 130: >> -! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> ---- 2996,3110 ---- >> - >> - case 107: >> -! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) -=20 >> (7)].command)); } >> - break; >> - >> - case 109: >> -! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) -=20 >> (6)].command)); } >> - break; >> - >> - case 110: >> -! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_group_command ((yyvsp[(2) -=20 >> (3)].command)); } >> - break; >> - >> - case 111: >> -! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_arith_command ((yyvsp[(1) -=20 >> (1)].word_list)); } >> - break; >> - >> - case 112: >> -! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(2) - (3)].command); } >> - break; >> - >> - case 113: >> -! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (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) =3D make_if_command ((yyvsp[(2) -=20 >> (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) -=20 >> (6)].command)); } >> - break; >> - >> - case 115: >> -! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D make_if_command ((yyvsp[(2) -=20 >> (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) -=20 >> (5)].command)); } >> - break; >> - >> - case 117: >> -! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(2) - (2)].pattern)->next =3D (yyvsp[(1) -=20 >> (2)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (2)].pattern); } >> - break; >> - >> - case 118: >> -! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (yyvsp[(4) - (4)].command)); } >> - break; >> - >> - case 119: >> -! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(2) -=20 >> (4)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 120: >> -! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (yyvsp[(5) - (5)].command)); } >> - break; >> - >> - case 121: >> -! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.pattern) =3D make_pattern_list ((yyvsp[(3) -=20 >> (5)].word_list), (COMMAND *)NULL); } >> - break; >> - >> - case 122: >> -! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 123: >> -! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) -=20 >> (3)].pattern); (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 124: >> -! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(1) - (2)].pattern)->flags |=3D CASEPAT_FALLTHROUGH;=20 >> (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 125: >> -! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->flags |=3D CASEPAT_FALLTHROUGH;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 126: >> -! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(1) - (2)].pattern)->flags |=3D CASEPAT_TESTNEXT;=20 >> (yyval.pattern) =3D (yyvsp[(1) - (2)].pattern); } >> - break; >> - >> - case 127: >> -! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyvsp[(2) - (3)].pattern)->flags |=3D CASEPAT_TESTNEXT;=20 >> (yyvsp[(2) - (3)].pattern)->next =3D (yyvsp[(1) - (3)].pattern);=20 >> (yyval.pattern) =3D (yyvsp[(2) - (3)].pattern); } >> - break; >> - >> - case 128: >> -! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(1) - (1)].word),=20 >> (WORD_LIST *)NULL); } >> - break; >> - >> - case 129: >> -! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.word_list) =3D make_word_list ((yyvsp[(3) - (3)].word),=20 >> (yyvsp[(1) - (3)].word_list)); } >> - break; >> - >> - case 130: >> -! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> -*************** >> -*** 3115,3119 **** >> - >> - case 132: >> -! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(2) - (2)].command); >> ---- 3115,3119 ---- >> - >> - case 132: >> -! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D (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 =3D=3D cm_connection) >> ---- 3122,3126 ---- >> - >> - case 134: >> -! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - if ((yyvsp[(1) - (3)].command)->type =3D=3D cm_connection) >> -*************** >> -*** 3132,3146 **** >> - >> - case 136: >> -! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> ---- 3132,3146 ---- >> - >> - case 136: >> -! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> -*************** >> -*** 3152,3186 **** >> - >> - case 139: >> -! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 144: >> -! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D '\n'; } >> - break; >> - >> - case 145: >> -! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D ';'; } >> - break; >> - >> - case 146: >> -! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D yacc_EOF; } >> - break; >> - >> - case 149: >> -! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (1)].command); >> ---- 3152,3186 ---- >> - >> - case 139: >> -! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), ';'); } >> - break; >> - >> - case 140: >> -! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (4)].command), (yyvsp[(4) - (4)].command), ';'); } >> - break; >> - >> - case 141: >> -! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 144: >> -! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D '\n'; } >> - break; >> - >> - case 145: >> -! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D ';'; } >> - break; >> - >> - case 146: >> -! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D yacc_EOF; } >> - break; >> - >> - case 149: >> -! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D (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 =3D=3D cm_connection) >> ---- 3198,3202 ---- >> - >> - case 150: >> -! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - if ((yyvsp[(1) - (2)].command)->type =3D=3D cm_connection) >> -*************** >> -*** 3217,3221 **** >> - >> - case 151: >> -! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (2)].command); >> ---- 3217,3221 ---- >> - >> - case 151: >> -! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { >> - (yyval.command) =3D (yyvsp[(1) - (2)].command); >> -*************** >> -*** 3233,3247 **** >> - >> - case 152: >> -! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> ---- 3233,3247 ---- >> - >> - case 152: >> -! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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 =3D=3D cm_connection) >> -*************** >> -*** 3253,3272 **** >> - >> - case 155: >> -! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 157: >> -! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.command) =3D (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) =3D command_connect ((yyvsp[(1) -=20 >> (3)].command), (yyvsp[(3) - (3)].command), ';'); } >> - break; >> - >> - case 156: >> -! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 157: >> -! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.command) =3D (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D command_connect ((yyvsp[(1) -=20 >> (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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 165: >> -! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE; } >> - break; >> - >> - case 166: >> -! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" >> - { (yyval.number) =3D 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) =3D 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) =3D (yyvsp[(1) - (1)].command); } >> - break; >> - >> - case 165: >> -! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE; } >> - break; >> - >> - case 166: >> -! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D CMD_TIME_PIPELINE|CMD_TIME_POSIX; } >> - break; >> - >> - case 167: >> -! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" >> - { (yyval.number) =3D 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 =3D=3D 0) >> -+ return 0; >> -+ if (shell_input_line_index < 0 || shell_input_line_index >=3D=20 >> 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=20 >> character. */ >> -*************** >> -*** 6340,6345 **** >> - /* reset_parser clears shell_input_line and associated variables=20 >> */ >> - restore_input_line_state (&ls); >> -! if (interactive) >> -! token_to_read =3D 0; >> - >> - /* Need to find how many characters parse_and_execute consumed,=20 >> update >> ---- 6350,6355 ---- >> - /* reset_parser clears shell_input_line and associated variables=20 >> */ >> - restore_input_line_state (&ls); >> -! >> -! token_to_read =3D 0; >> - >> - /* Need to find how many characters parse_and_execute consumed,=20 >> 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).=20 >> */ >> - >> -! #define PATCHLEVEL 29 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> ---- 26,30 ---- >> - looks for to find the patch level (for the sccs version string).=20 >> */ >> - >> -! #define PATCHLEVEL 30 >> - >> - #endif /* _PATCHLEVEL_H_ */ >> 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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-001 >> + >> +Bug-Reported-by: axel(a)freakout.de >> +Bug-Reference-ID: <201901082050.x08KoShS006731(a)bongo.freakout.de> >> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg= 00079.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=20 >> pathname >> + expansion. */ >> +! if (!matches && glob_pattern_p (text)) >> + { >> + matches =3D rl_completion_matches (text, glob_complete_word); >> +--- 1743,1747 ---- >> + /* This could be a globbing pattern, so try to expand it using=20 >> pathname >> + expansion. */ >> +! if (!matches && completion_glob_pattern ((char *)text)) >> + { >> + matches =3D rl_completion_matches (text, glob_complete_word); >> +*************** >> +*** 1851,1855 **** >> + } >> + >> +! globpat =3D glob_pattern_p (hint_text); >> + >> + /* If this is an absolute program name, do not check it=20 >> against >> +--- 1852,1856 ---- >> + } >> + >> +! globpat =3D completion_glob_pattern ((char *)hint_text); >> + >> + /* If this is an absolute program name, do not check it=20 >> against >> +*************** >> +*** 3714,3717 **** >> +--- 3715,3773 ---- >> + } >> + >> ++ static int >> ++ completion_glob_pattern (string) >> ++ char *string; >> ++ { >> ++ register int c; >> ++ char *send; >> ++ int open; >> ++ >> ++ DECLARE_MBSTATE; >> ++ >> ++ open =3D 0; >> ++ send =3D string + strlen (string); >> ++ >> ++ while (c =3D *string++) >> ++ { >> ++ switch (c) >> ++ { >> ++ case '?': >> ++ case '*': >> ++ return (1); >> ++ >> ++ case '[': >> ++ open++; >> ++ continue; >> ++ >> ++ case ']': >> ++ if (open) >> ++ return (1); >> ++ continue; >> ++ >> ++ case '+': >> ++ case '@': >> ++ case '!': >> ++ if (*string =3D=3D '(') /*)*/ >> ++ return (1); >> ++ continue; >> ++ >> ++ case '\\': >> ++ if (*string =3D=3D 0) >> ++ return (0); >> ++ } >> ++ >> ++ /* Advance one fewer byte than an entire multibyte character=20 >> 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) =3D=3D 0) >> + rl_explicit_arg =3D 1; /* XXX - force glob_complete_word to=20 >> append `*' */ >> + FREE (t); >> +--- 3934,3938 ---- >> + } >> + >> +! if (t && completion_glob_pattern (t) =3D=3D 0) >> + rl_explicit_arg =3D 1; /* XXX - force glob_complete_word to=20 >> append `*' */ >> + FREE (t); >> +*** ../bash-5.0/lib/glob/glob_loop.c 2018-12-31 13:35:15.000000000=20 >> -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=20 >> match >> + if the pattern ends in a backslash anyway), but otherwise=20 >> return 1, >> +--- 55,58 ---- >> +*************** >> +*** 61,69 **** >> + and it can be removed. */ >> + return (*p !=3D L('\0')); >> +- #else >> +- /* The pattern may not end with a backslash. */ >> +- if (*p++ =3D=3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 0 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +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/msg= 00095.html >> + >> +Bug-Description: >> + >> +When an alias value ends with an unquoted literal tab (not part of a=20 >> quoted >> +string or comment), alias expansion cannot correctly detect the end=20 >> 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=20 >> preceding a simple command name */ >> + #define PST_COMMENT 0x100000 /* parsing a shell comment; used by=20 >> aliases */ >> ++ #define PST_ENDALIAS 0x200000 /* just finished expanding and=20 >> consuming an alias */ >> + >> + /* Definition of the delimiter stack. Needed by parse.y and=20 >> 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 !=3D PSH_DPAREN && >> + (parser_state & PST_COMMENT) =3D=3D 0 && >> + shell_input_line_index > 0 && >> +! shell_input_line[shell_input_line_index-1] !=3D ' ' && >> + shell_input_line[shell_input_line_index-1] !=3D '\n' && >> + shellmeta (shell_input_line[shell_input_line_index-1]) =3D=3D 0=20 >> && >> + (current_delimiter (dstack) !=3D '\'' && current_delimiter=20 >> (dstack) !=3D '"')) >> + { >> + return ' '; /* END_ALIAS */ >> + } >> +--- 2558,2569 ---- >> + pushed_string_list->flags !=3D PSH_DPAREN && >> + (parser_state & PST_COMMENT) =3D=3D 0 && >> ++ (parser_state & PST_ENDALIAS) =3D=3D 0 && /* only once */ >> + shell_input_line_index > 0 && >> +! shellblank (shell_input_line[shell_input_line_index-1]) =3D=3D 0 = >> && >> + shell_input_line[shell_input_line_index-1] !=3D '\n' && >> + shellmeta (shell_input_line[shell_input_line_index-1]) =3D=3D 0=20 >> && >> + (current_delimiter (dstack) !=3D '\'' && current_delimiter=20 >> (dstack) !=3D '"')) >> + { >> ++ parser_state |=3D PST_ENDALIAS; >> + return ' '; /* END_ALIAS */ >> + } >> +*************** >> +*** 2572,2575 **** >> +--- 2574,2578 ---- >> + if (uc =3D=3D 0 && pushed_string_list && pushed_string_list->flags != =3D=20 >> PSH_SOURCE) >> + { >> ++ parser_state &=3D ~PST_ENDALIAS; >> + pop_string (); >> + uc =3D 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 !=3D PSH_DPAREN && >> + (parser_state & PST_COMMENT) =3D=3D 0 && >> + shell_input_line_index > 0 && >> +! shell_input_line[shell_input_line_index-1] !=3D ' ' && >> + shell_input_line[shell_input_line_index-1] !=3D '\n' && >> + shellmeta (shell_input_line[shell_input_line_index-1]) =3D=3D 0=20 >> && >> + (current_delimiter (dstack) !=3D '\'' && current_delimiter=20 >> (dstack) !=3D '"')) >> + { >> + return ' '; /* END_ALIAS */ >> + } >> +--- 4874,4885 ---- >> + pushed_string_list->flags !=3D PSH_DPAREN && >> + (parser_state & PST_COMMENT) =3D=3D 0 && >> ++ (parser_state & PST_ENDALIAS) =3D=3D 0 && /* only once */ >> + shell_input_line_index > 0 && >> +! shellblank (shell_input_line[shell_input_line_index-1]) =3D=3D 0 = >> && >> + shell_input_line[shell_input_line_index-1] !=3D '\n' && >> + shellmeta (shell_input_line[shell_input_line_index-1]) =3D=3D 0=20 >> && >> + (current_delimiter (dstack) !=3D '\'' && current_delimiter=20 >> (dstack) !=3D '"')) >> + { >> ++ parser_state |=3D PST_ENDALIAS; >> + return ' '; /* END_ALIAS */ >> + } >> +*************** >> +*** 4888,4891 **** >> +--- 4890,4894 ---- >> + if (uc =3D=3D 0 && pushed_string_list && pushed_string_list->flags != =3D=20 >> PSH_SOURCE) >> + { >> ++ parser_state &=3D ~PST_ENDALIAS; >> + pop_string (); >> + uc =3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 1 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-003 >> + >> +Bug-Reported-by: Andrew Church >> +Bug-Reference-ID: <5c534aa2.04371(a)msgid.achurch.org> >> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg= 00276.html >> + >> +Bug-Description: >> + >> +There are several incompatibilities in how bash-5.0 processes=20 >> pathname >> +expansion (globbing) of filename arguments that have backslashes in=20 >> the >> +directory portion. >> + >> +Patch (apply with `patch -p0'): >> + >> +*** ../bash-5.0-patched/lib/glob/glob_loop.c 2019-01-16=20 >> 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 =3D pattern; >> +! bopen =3D 0; >> + >> + while ((c =3D *p++) !=3D L('\0')) >> +--- 27,34 ---- >> + register const GCHAR *p; >> + register GCHAR c; >> +! int bopen, bsquote; >> + >> + p =3D pattern; >> +! bopen =3D bsquote =3D 0; >> + >> + while ((c =3D *p++) !=3D L('\0')) >> +*************** >> +*** 56,66 **** >> + case L('\\'): >> + /* Don't let the pattern end in a backslash (GMATCH returns no=20 >> match >> +! if the pattern ends in a backslash anyway), but otherwise=20 >> return 1, >> +! since the matching engine uses backslash as an escape character >> +! and it can be removed. */ >> +! return (*p !=3D L('\0')); >> + } >> + >> +! return 0; >> + } >> + >> +--- 56,75 ---- >> + case L('\\'): >> + /* Don't let the pattern end in a backslash (GMATCH returns no=20 >> match >> +! if the pattern ends in a backslash anyway), but otherwise note=20 >> that >> +! we have seen this, since the matching engine uses backslash as=20 >> an >> +! escape character and it can be removed. We return 2 later if we >> +! have seen only backslash-escaped characters, so interested=20 >> callers >> +! know they can shortcut and just dequote the pathname. */ >> +! if (*p !=3D L('\0')) >> +! { >> +! p++; >> +! bsquote =3D 1; >> +! continue; >> +! } >> +! else /* (*p =3D=3D L('\0')) */ >> +! return 0; >> + } >> + >> +! return bsquote ? 2 : 0; >> + } >> + >> +*** ../bash-5.0-patched/lib/glob/glob.h 2013-10-28 14:46:12.000000000=20 >> -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=20 >> */ >> + #define GX_GLOBSTAR 0x400 /* turn on special handling of ** */ >> ++ #define GX_RECURSE 0x800 /* internal -- glob_filename called=20 >> recursively */ >> + >> + extern int glob_pattern_p __P((const char *)); >> +*** ../bash-5.0-patched/lib/glob/glob.c 2018-09-20 10:53:23.000000000=20 >> -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 =3D (char **) malloc (sizeof (char *)); >> +--- 1078,1082 ---- >> + unsigned int directory_len; >> + int free_dirname; /* flag */ >> +! int dflags, hasglob; >> + >> + result =3D (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 =3D 0; >> + /* If directory_name contains globbing characters, then we >> +! have to expand the previous levels. Just recurse. >> +! If glob_pattern_p returns !=3D [0,1] we have a pattern that has=20 >> backslash >> +! quotes but no unquoted glob pattern characters. We dequote it=20 >> below. */ >> +! if (directory_len > 0 && (hasglob =3D glob_pattern_p=20 >> (directory_name)) =3D=3D 1) >> + { >> + char **directories, *d, *p; >> +*************** >> +*** 1176,1180 **** >> + d[directory_len - 1] =3D '\0'; >> + >> +! directories =3D glob_filename (d, dflags); >> + >> + if (free_dirname) >> +--- 1195,1199 ---- >> + d[directory_len - 1] =3D '\0'; >> + >> +! directories =3D 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=20 >> are >> ++ being called recursively to glob the directory portion of a=20 >> pathname, >> ++ we need to dequote the directory name before returning it so the >> ++ caller can read the directory */ >> ++ if (directory_len > 0 && hasglob =3D=3D 2 && (flags & GX_RECURSE)= =20 >> !=3D 0) >> ++ { >> ++ dequote_pathname (directory_name); >> ++ directory_len =3D strlen (directory_name); >> ++ } >> ++ >> ++ /* We could check whether or not the dequoted directory_name=20 >> is a >> ++ directory and return it here, returning the original=20 >> directory_name >> ++ if not, but we don't do that yet. I'm not sure it matters. */ >> ++ >> + /* Handle GX_MARKDIRS here. */ >> + result[0] =3D (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 =3D 0; >> + send =3D string + strlen (string); >> + >> +--- 66,74 ---- >> + register int c; >> + char *send; >> +! int open, bsquote; >> + >> + DECLARE_MBSTATE; >> + >> +! open =3D bsquote =3D 0; >> + send =3D string + strlen (string); >> + >> +*************** >> +*** 101,105 **** >> + globbing. */ >> + case '\\': >> +! return (*string !=3D 0); >> + >> + case CTLESC: >> +--- 101,112 ---- >> + globbing. */ >> + case '\\': >> +! if (*string !=3D '\0' && *string !=3D '/') >> +! { >> +! bsquote =3D 1; >> +! string++; >> +! continue; >> +! } >> +! else if (*string =3D=3D 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=20 >> -0500 >> +--- bashline.c 2019-02-22 09:29:08.000000000 -0500 >> +*************** >> +*** 3753,3757 **** >> + >> + case '\\': >> +! if (*string =3D=3D 0) >> + return (0); >> + } >> +--- 3766,3770 ---- >> + >> + case '\\': >> +! if (*string++ =3D=3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 2 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-004 >> + >> +Bug-Reported-by: Daniel Kahn Gillmor >> +Bug-Reference-ID: <87lg0g8aiw.fsf(a)fifthhorseman.net> >> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-04/msg= 00076.html >> + >> +Bug-Description: >> + >> +In bash-5.0, the `wait' builtin without arguments waits for all=20 >> children of the >> +shell. This includes children it `inherited' at shell invocation=20 >> time. This >> +patch modifies the behavior to not wait for these inherited children,=20 >> 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=20 >> children. */ >> +- /* XXX - should add a loop that goes through the list of process >> +- substitutions and waits for each proc in turn before this=20 >> code. */ >> + if (any_stopped =3D=3D 0) >> + { >> +--- 2490,2495 ---- >> + wait_procsubs (); >> + reap_procsubs (); >> +! #if 0 >> + /* We don't want to wait indefinitely if we have stopped=20 >> children. */ >> + if (any_stopped =3D=3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 3 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-005 >> + >> +Bug-Reported-by: Brad Spencer >> +Bug-Reference-ID: <1b993ff2-ce4f-662a-6be4-393457362e47(a)blackberry.com> >> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2019-01/msg= 00250.html >> + >> +Bug-Description: >> + >> +In certain cases, bash optimizes out a fork() call too early and=20 >> 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=20 >> lookup */ >> ++ #define CMD_TRY_OPTIMIZING 0x8000 /* try to optimize this simple=20 >> command */ >> + >> + /* What a command looks like. */ >> +*** ../bash-5.0-patched/builtins/evalstring.c 2018-12-26=20 >> 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 =3D=3D '\0' && >> ++ (command->value.Connection->connector =3D=3D AND_AND ||=20 >> command->value.Connection->connector =3D=3D OR_OR ||=20 >> command->value.Connection->connector =3D=3D ';') && >> ++ command->value.Connection->second->type =3D=3D cm_simple); >> ++ } >> ++ >> + void >> + optimize_fork (command) >> +*************** >> +*** 106,110 **** >> + { >> + if (command->type =3D=3D cm_connection && >> +! (command->value.Connection->connector =3D=3D AND_AND ||=20 >> command->value.Connection->connector =3D=3D OR_OR) && >> + should_suppress_fork (command->value.Connection->second)) >> + { >> +--- 115,120 ---- >> + { >> + if (command->type =3D=3D cm_connection && >> +! (command->value.Connection->connector =3D=3D AND_AND ||=20 >> command->value.Connection->connector =3D=3D OR_OR ||=20 >> command->value.Connection->connector =3D=3D ';') && >> +! (command->value.Connection->second->flags &=20 >> CMD_TRY_OPTIMIZING) && >> + should_suppress_fork (command->value.Connection->second)) >> + { >> +*************** >> +*** 413,418 **** >> + command->value.Simple->flags |=3D CMD_NO_FORK; >> + } >> +! else if (command->type =3D=3D cm_connection) >> +! optimize_fork (command); >> + #endif /* ONESHOT */ >> + >> +--- 423,438 ---- >> + command->value.Simple->flags |=3D CMD_NO_FORK; >> + } >> +! >> +! /* Can't optimize forks out here execept for simple=20 >> 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 =3D=3D cm_connection &&=20 >> can_optimize_connection (command)) >> +! { >> +! command->value.Connection->second->flags |=3D CMD_TRY_OPTIMIZING; >> +! command->value.Connection->second->value.Simple->flags |=3D=20 >> CMD_TRY_OPTIMIZING; >> +! } >> + #endif /* ONESHOT */ >> + >> +*** ../bash-5.0-patched/execute_cmd.c 2018-12-05 09:05:14.000000000=20 >> -0500 >> +--- execute_cmd.c 2019-01-25 15:59:00.000000000 -0500 >> +*************** >> +*** 2768,2771 **** >> +--- 2768,2773 ---- >> + (exec_result !=3D EXECUTION_SUCCESS))) >> + { >> ++ optimize_fork (command); >> ++ >> + second =3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 4 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +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/msg= 00037.html >> + >> +Bug-Description: >> + >> +Bash-5.0 did not build successfully if SYSLOG_HISTORY was defined=20 >> without >> +also defining SYSLOG_SHOPT. >> + >> +Patch (apply with `patch -p0'): >> + >> +*** ../bash-5.0-patched/builtins/shopt.def 2018-10-05=20 >> 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).=20 >> */ >> + >> +! #define PATCHLEVEL 5 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +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/msg= 00067.html >> + >> +Bug-Description: >> + >> +Running `exec' when job control was disabled, even temporarily, but=20 >> after it >> +had been initialized, could leave the terminal in the wrong process=20 >> 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 >=3D 0) >> +! give_terminal_to (original_pgrp, 1); >> +! } >> + >> +! if (original_pgrp >=3D 0) >> +! setpgid (0, original_pgrp); >> + } >> + >> +--- 4838,4848 ---- >> + { >> + if (job_control) >> +! terminate_stopped_jobs (); >> + >> +! if (original_pgrp >=3D 0 && terminal_pgrp !=3D original_pgrp) >> +! give_terminal_to (original_pgrp, 1); >> + >> +! if (original_pgrp >=3D 0 && setpgid (0, original_pgrp) =3D=3D 0) >> +! shell_pgrp =3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 6 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-008 >> + >> +Bug-Reported-by: Michael Albinus >> +Bug-Reference-ID: <87bm36k3kz.fsf(a)gmx.de> >> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-02/ms= g00111.html >> + >> +Bug-Description: >> + >> +When HISTSIZE is set to 0, history expansion can leave the history=20 >> length >> +set to an incorrect value, leading to subsequent attempts to access=20 >> invalid >> +memory. >> + >> +Patch (apply with `patch -p0'): >> + >> +*** ../bash-5.0-patched/bashhist.c 2018-07-05 22:41:14.000000000=20 >> -0400 >> +--- bashhist.c 2019-02-20 16:20:04.000000000 -0500 >> +*************** >> +*** 561,573 **** >> + if (!history_expansion_inhibited && history_expansion &&=20 >> history_expansion_p (line)) >> + { >> + /* If we are expanding the second or later line of a=20 >> multi-line >> + command, decrease history_length so references to history=20 >> expansions >> + in these lines refer to the previous history entry and not the >> + current command. */ >> + if (history_length > 0 && command_oriented_history &&=20 >> current_command_first_line_saved && current_command_line_count > 1) >> + history_length--; >> + expanded =3D history_expand (line, &history_value); >> + if (history_length >=3D 0 && command_oriented_history &&=20 >> current_command_first_line_saved && current_command_line_count > 1) >> +! history_length++; >> + >> + if (expanded) >> +--- 561,576 ---- >> + if (!history_expansion_inhibited && history_expansion &&=20 >> history_expansion_p (line)) >> + { >> ++ int old_len; >> ++ >> + /* If we are expanding the second or later line of a=20 >> multi-line >> + command, decrease history_length so references to history=20 >> expansions >> + in these lines refer to the previous history entry and not the >> + current command. */ >> ++ old_len =3D history_length; >> + if (history_length > 0 && command_oriented_history &&=20 >> current_command_first_line_saved && current_command_line_count > 1) >> + history_length--; >> + expanded =3D history_expand (line, &history_value); >> + if (history_length >=3D 0 && command_oriented_history &&=20 >> current_command_first_line_saved && current_command_line_count > 1) >> +! history_length =3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 7 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-009 >> + >> +Bug-Reported-by: chet.ramey(a)case.edu >> +Bug-Reference-ID: >> +Bug-Reference-URL: >> + >> +Bug-Description: >> + >> +The history file reading code doesn't close the file descriptor open=20 >> 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=20 >> 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).=20 >> */ >> + >> +! #define PATCHLEVEL 8 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +Bash-Release: 5.0 >> +Patch-ID: bash50-010 >> + >> +Bug-Reported-by: Thorsten Glaser >> +Bug-Reference-ID: <156622962831.19438.16374961114836556294.reportbug(a)tg= lase.lan.tarent.de> >> +Bug-Reference-URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D93= 5115 >> + >> +Bug-Description: >> + >> +Bash-5.0 changed the way assignment statements preceding special=20 >> builtins >> +and shell functions were handled in posix mode. They automatically=20 >> created >> +or modified global variables instead of modifying existing local=20 >> variables >> +as in bash-4.4. >> + >> +The bash-4.4 posix-mode semantics were buggy, and resulted in=20 >> creating >> +local variables where they were not intended and modifying global=20 >> variables >> +and local variables simultaneously. >> + >> +The bash-5.0 changes were intended to fix this issue, but did not=20 >> preserve >> +enough backwards compatibility. The posix standard also changed what=20 >> it >> +required in these cases, so bash-5.0 is not bound by the strict=20 >> conformance >> +requirements that existed in previous issues of the standard. >> + >> +This patch modifies the bash-5.0 posix mode behavior in an effort to=20 >> restore >> +some backwards compatibility and rationalize the behavior in the=20 >> presence of >> +local variables. It >> + >> +1. Changes the assignment semantics to be more similar to standalone=20 >> assignment >> + statements: assignments preceding a function call or special=20 >> builtin while >> + executing in a shell function will modify the value of a local=20 >> variable >> + with the same name for the duration of the function's execution; >> + >> +2. Changes assignments preceding shell function calls or special=20 >> builtins >> + from within a shell function to no longer create or modify global=20 >> variables >> + in the presence of a local variable with the same name; >> + >> +3. Assignment statements preceding a shell function call or special=20 >> builtin >> + at the global scope continue to modify the (global) calling=20 >> environment, >> + but are unaffected by assignments preceding function calls or=20 >> special >> + builtins within a function, as described in item 2. This is also=20 >> 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=20 >> -0500 >> +--- variables.c 2019-08-22 10:53:44.000000000 -0400 >> +*************** >> +*** 4461,4467 **** >> + >> + /* Take a variable from an assignment statement preceding a posix=20 >> special >> +! builtin (including `return') and create a global variable from=20 >> it. This >> +! is called from merge_temporary_env, which is only called when in=20 >> posix >> +! mode. */ >> + static void >> + push_posix_temp_var (data) >> +--- 4461,4467 ---- >> + >> + /* Take a variable from an assignment statement preceding a posix=20 >> special >> +! builtin (including `return') and create a variable from it as if=20 >> a >> +! standalone assignment statement had been performed. This is=20 >> called from >> +! merge_temporary_env, which is only called when in posix mode. */ >> + static void >> + push_posix_temp_var (data) >> +*************** >> +*** 4473,4486 **** >> + var =3D (SHELL_VAR *)data; >> + >> +! binding_table =3D global_variables->table; >> +! if (binding_table =3D=3D 0) >> +! binding_table =3D global_variables->table =3D hash_create=20 >> (VARIABLES_HASH_BUCKETS); >> +! >> +! v =3D bind_variable_internal (var->name, value_cell (var),=20 >> binding_table, 0, ASS_FORCE|ASS_NOLONGJMP); >> + >> + /* global variables are no longer temporary and don't need=20 >> propagating. */ >> +! var->attributes &=3D ~(att_tempvar|att_propagate); >> + if (v) >> +! v->attributes |=3D var->attributes; >> + >> + if (find_special_var (var->name) >=3D 0) >> +--- 4473,4497 ---- >> + var =3D (SHELL_VAR *)data; >> + >> +! /* Just like do_assignment_internal(). This makes assignments=20 >> preceding >> +! special builtins act like standalone assignment statements=20 >> when in >> +! posix mode, satisfying the posix requirement that this affect=20 >> the >> +! "current execution environment." */ >> +! v =3D bind_variable (var->name, value_cell (var),=20 >> ASS_FORCE|ASS_NOLONGJMP); >> +! >> +! /* If this modifies an existing local variable, v->context will=20 >> be non-zero. >> +! If it comes back with v->context =3D=3D 0, we bound at the global = >> context. >> +! Set binding_table appropriately. It doesn't matter whether=20 >> it's correct >> +! if the variable is local, only that it's not=20 >> global_variables->table */ >> +! binding_table =3D v->context ? shell_variables->table :=20 >> global_variables->table; >> + >> + /* global variables are no longer temporary and don't need=20 >> propagating. */ >> +! if (binding_table =3D=3D global_variables->table) >> +! var->attributes &=3D ~(att_tempvar|att_propagate); >> +! >> + if (v) >> +! { >> +! v->attributes |=3D var->attributes; >> +! v->attributes &=3D ~att_tempvar; /* not a temp var now */ >> +! } >> + >> + if (find_special_var (var->name) >=3D 0) >> +*************** >> +*** 4576,4587 **** >> + { >> + int i; >> + >> + tempvar_list =3D strvec_create (HASH_ENTRIES (temporary_env) + 1); >> + tempvar_list[tvlist_ind =3D 0] =3D 0; >> +! >> +! hash_flush (temporary_env, pushf); >> +! hash_dispose (temporary_env); >> + temporary_env =3D (HASH_TABLE *)NULL; >> + >> + tempvar_list[tvlist_ind] =3D 0; >> + >> +--- 4587,4601 ---- >> + { >> + int i; >> ++ HASH_TABLE *disposer; >> + >> + tempvar_list =3D strvec_create (HASH_ENTRIES (temporary_env) + 1); >> + tempvar_list[tvlist_ind =3D 0] =3D 0; >> +! >> +! disposer =3D temporary_env; >> + temporary_env =3D (HASH_TABLE *)NULL; >> + >> ++ hash_flush (disposer, pushf); >> ++ hash_dispose (disposer); >> ++ >> + tempvar_list[tvlist_ind] =3D 0; >> + >> +*** ../bash-5.0-patched/tests/varenv.right 2018-12-17=20 >> 15:39:48.000000000 -0500 >> +--- tests/varenv.right 2019-08-22 16:05:25.000000000 -0400 >> +*************** >> +*** 147,153 **** >> + outside: declare -- var=3D"one" >> + inside: declare -x var=3D"value" >> +! outside: declare -x var=3D"value" >> +! inside: declare -- var=3D"local" >> +! outside: declare -x var=3D"global" >> + foo=3D environment foo=3D >> + foo=3Dfoo environment foo=3Dfoo >> +--- 147,153 ---- >> + outside: declare -- var=3D"one" >> + inside: declare -x var=3D"value" >> +! outside: declare -- var=3D"outside" >> +! inside: declare -x var=3D"global" >> +! outside: declare -- var=3D"outside" >> + foo=3D environment foo=3D >> + foo=3Dfoo environment foo=3Dfoo >> +*** ../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).=20 >> */ >> + >> +! #define PATCHLEVEL 9 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #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 >> + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> + >> +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=20 >> 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 =3D~ operator, and=20 >> should >> + be quoted appropriately for regcomp/regexec. The caller is=20 >> responsible >> +! for removing the backslashes if the unquoted word is needed=20 >> later. */ >> + char * >> + cond_expand_word (w, special) >> +--- 3642,3648 ---- >> + SPECIAL is 2, this is an rhs argument for the =3D~ operator, and=20 >> should >> + be quoted appropriately for regcomp/regexec. The caller is=20 >> responsible >> +! for removing the backslashes if the unquoted word is needed=20 >> later. In >> +! any case, since we don't perform word splitting, we need to do=20 >> quoted >> +! null character removal. */ >> + char * >> + cond_expand_word (w, special) >> +*************** >> +*** 3647,3650 **** >> +--- 3665,3670 ---- >> + if (special =3D=3D 0) /* LHS */ >> + { >> ++ if (l->word) >> ++ word_list_remove_quoted_nulls (l); >> + dequote_list (l); >> + r =3D 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).=20 >> */ >> + >> +! #define PATCHLEVEL 10 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> +--- 26,30 ---- >> + looks for to find the patch level (for the sccs version string).=20 >> */ >> + >> +! #define PATCHLEVEL 11 >> + >> + #endif /* _PATCHLEVEL_H_ */ >> -- >> 2.16.4 --===============8767259049801396249==--