This patch contains statements that add references to the patch directory, "bash-4.3-patched". You should reissue the patch without such statements if you find it feasible to do so.
-- Sent from my iPad > On Oct 5, 2014, at 4:06 PM, Chet Ramey <chet.ra...@case.edu> wrote: > > BASH PATCH REPORT > ================= > > Bash-Release: 4.3 > Patch-ID: bash43-030 > > Bug-Reported-by: Michal Zalewski <lcam...@coredump.cx> > Bug-Reference-ID: > Bug-Reference-URL: > > Bug-Description: > > A combination of nested command substitutions and function importing from > the environment can cause bash to execute code appearing in the environment > variable value following the function definition. > > Patch (apply with `patch -p0'): > > *** ../bash-4.3.29/builtins/evalstring.c 2014-10-01 12:57:47.000000000 > -0400 > --- builtins/evalstring.c 2014-10-03 11:57:04.000000000 -0400 > *************** > *** 309,318 **** > struct fd_bitmap *bitmap; > > ! if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) > { > ! internal_warning ("%s: ignoring function definition attempt", > from_file); > ! should_jump_to_top_level = 0; > ! last_result = last_command_exit_value = EX_BADUSAGE; > ! break; > } > > --- 313,335 ---- > struct fd_bitmap *bitmap; > > ! if (flags & SEVAL_FUNCDEF) > { > ! char *x; > ! > ! /* If the command parses to something other than a straight > ! function definition, or if we have not consumed the entire > ! string, or if the parser has transformed the function > ! name (as parsing will if it begins or ends with shell > ! whitespace, for example), reject the attempt */ > ! if (command->type != cm_function_def || > ! ((x = parser_remaining_input ()) && *x) || > ! (STREQ (from_file, command->value.Function_def->name->word) == > 0)) > ! { > ! internal_warning (_("%s: ignoring function definition > attempt"), from_file); > ! should_jump_to_top_level = 0; > ! last_result = last_command_exit_value = EX_BADUSAGE; > ! reset_parser (); > ! break; > ! } > } > > *************** > *** 379,383 **** > > if (flags & SEVAL_ONECMD) > ! break; > } > } > --- 396,403 ---- > > if (flags & SEVAL_ONECMD) > ! { > ! reset_parser (); > ! break; > ! } > } > } > *** ../bash-4.3.29/parse.y 2014-10-01 12:58:43.000000000 -0400 > --- parse.y 2014-10-03 14:48:59.000000000 -0400 > *************** > *** 2539,2542 **** > --- 2539,2552 ---- > } > > + char * > + parser_remaining_input () > + { > + if (shell_input_line == 0) > + return 0; > + if (shell_input_line_index < 0 || shell_input_line_index >= > shell_input_line_len) > + return '\0'; /* XXX */ > + return (shell_input_line + shell_input_line_index); > + } > + > #ifdef INCLUDE_UNUSED > /* Back the input pointer up by one, effectively `ungetting' a character. */ > *************** > *** 4028,4033 **** > /* reset_parser clears shell_input_line and associated variables */ > restore_input_line_state (&ls); > ! if (interactive) > ! token_to_read = 0; > > /* Need to find how many characters parse_and_execute consumed, update > --- 4053,4058 ---- > /* reset_parser clears shell_input_line and associated variables */ > restore_input_line_state (&ls); > ! > ! token_to_read = 0; > > /* Need to find how many characters parse_and_execute consumed, update > *** ../bash-4.3.29/shell.h 2014-10-01 12:57:39.000000000 -0400 > --- shell.h 2014-10-03 14:49:12.000000000 -0400 > *************** > *** 181,184 **** > --- 181,186 ---- > > /* Let's try declaring these here. */ > + extern char *parser_remaining_input __P((void)); > + > extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *)); > extern void restore_parser_state __P((sh_parser_state_t *)); > *** ../bash-4.3.28/y.tab.c 2014-10-01 13:09:46.000000000 -0400 > --- y.tab.c 2014-10-04 19:26:22.000000000 -0400 > *************** > *** 169,173 **** > > /* Copy the first part of user declarations. */ > ! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > > #include "config.h" > --- 169,173 ---- > > /* Copy the first part of user declarations. */ > ! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y" > > #include "config.h" > *************** > *** 498,502 **** > #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED > typedef union YYSTYPE > ! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > WORD_DESC *word; /* the word that we read. */ > --- 498,502 ---- > #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED > typedef union YYSTYPE > ! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > WORD_DESC *word; /* the word that we read. */ > *************** > *** 2099,2103 **** > { > case 2: > ! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > /* Case of regular command. Discard the error > --- 2099,2103 ---- > { > case 2: > ! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > /* Case of regular command. Discard the error > *************** > *** 2113,2117 **** > > case 3: > ! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > /* Case of regular command, but not a very > --- 2113,2117 ---- > > case 3: > ! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > /* Case of regular command, but not a very > *************** > *** 2125,2129 **** > > case 4: > ! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > /* Error during parsing. Return NULL command. */ > --- 2125,2129 ---- > > case 4: > ! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > /* Error during parsing. Return NULL command. */ > *************** > *** 2143,2147 **** > > case 5: > ! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > /* Case of EOF seen by itself. Do ignoreeof or > --- 2143,2147 ---- > > case 5: > ! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > /* Case of EOF seen by itself. Do ignoreeof or > *************** > *** 2154,2168 **** > > case 6: > ! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), > (WORD_LIST *)NULL); } > break; > > case 7: > ! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), > (yyvsp[(1) - (2)].word_list)); } > break; > > case 8: > ! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2154,2168 ---- > > case 6: > ! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), > (WORD_LIST *)NULL); } > break; > > case 7: > ! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), > (yyvsp[(1) - (2)].word_list)); } > break; > > case 8: > ! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2173,2177 **** > > case 9: > ! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2173,2177 ---- > > case 9: > ! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2182,2186 **** > > case 10: > ! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2182,2186 ---- > > case 10: > ! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2191,2195 **** > > case 11: > ! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2191,2195 ---- > > case 11: > ! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2200,2204 **** > > case 12: > ! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2200,2204 ---- > > case 12: > ! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2209,2213 **** > > case 13: > ! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2209,2213 ---- > > case 13: > ! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2218,2222 **** > > case 14: > ! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2218,2222 ---- > > case 14: > ! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2227,2231 **** > > case 15: > ! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2227,2231 ---- > > case 15: > ! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2236,2240 **** > > case 16: > ! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2236,2240 ---- > > case 16: > ! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2245,2249 **** > > case 17: > ! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2245,2249 ---- > > case 17: > ! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2254,2258 **** > > case 18: > ! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2254,2258 ---- > > case 18: > ! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2263,2267 **** > > case 19: > ! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2263,2267 ---- > > case 19: > ! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2272,2276 **** > > case 20: > ! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2272,2276 ---- > > case 20: > ! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2281,2285 **** > > case 21: > ! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2281,2285 ---- > > case 21: > ! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2290,2294 **** > > case 22: > ! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2290,2294 ---- > > case 22: > ! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2299,2303 **** > > case 23: > ! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2299,2303 ---- > > case 23: > ! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2309,2313 **** > > case 24: > ! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2309,2313 ---- > > case 24: > ! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2319,2323 **** > > case 25: > ! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2319,2323 ---- > > case 25: > ! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2329,2333 **** > > case 26: > ! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2329,2333 ---- > > case 26: > ! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2339,2343 **** > > case 27: > ! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2339,2343 ---- > > case 27: > ! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2349,2353 **** > > case 28: > ! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2349,2353 ---- > > case 28: > ! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2359,2363 **** > > case 29: > ! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2359,2363 ---- > > case 29: > ! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2368,2372 **** > > case 30: > ! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2368,2372 ---- > > case 30: > ! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2377,2381 **** > > case 31: > ! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2377,2381 ---- > > case 31: > ! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2386,2390 **** > > case 32: > ! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2386,2390 ---- > > case 32: > ! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2395,2399 **** > > case 33: > ! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2395,2399 ---- > > case 33: > ! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2404,2408 **** > > case 34: > ! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2404,2408 ---- > > case 34: > ! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2413,2417 **** > > case 35: > ! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2413,2417 ---- > > case 35: > ! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2422,2426 **** > > case 36: > ! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2422,2426 ---- > > case 36: > ! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2431,2435 **** > > case 37: > ! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2431,2435 ---- > > case 37: > ! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2440,2444 **** > > case 38: > ! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2440,2444 ---- > > case 38: > ! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2449,2453 **** > > case 39: > ! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2449,2453 ---- > > case 39: > ! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2458,2462 **** > > case 40: > ! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2458,2462 ---- > > case 40: > ! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2467,2471 **** > > case 41: > ! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2467,2471 ---- > > case 41: > ! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2476,2480 **** > > case 42: > ! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2476,2480 ---- > > case 42: > ! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2485,2489 **** > > case 43: > ! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2485,2489 ---- > > case 43: > ! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2494,2498 **** > > case 44: > ! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2494,2498 ---- > > case 44: > ! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2503,2507 **** > > case 45: > ! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2503,2507 ---- > > case 45: > ! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2512,2516 **** > > case 46: > ! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2512,2516 ---- > > case 46: > ! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2521,2525 **** > > case 47: > ! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 0; > --- 2521,2525 ---- > > case 47: > ! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 0; > *************** > *** 2530,2534 **** > > case 48: > ! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > --- 2530,2534 ---- > > case 48: > ! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = (yyvsp[(1) - (3)].number); > *************** > *** 2539,2543 **** > > case 49: > ! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > --- 2539,2543 ---- > > case 49: > ! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.filename = (yyvsp[(1) - (3)].word); > *************** > *** 2548,2552 **** > > case 50: > ! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2548,2552 ---- > > case 50: > ! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2557,2561 **** > > case 51: > ! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > source.dest = 1; > --- 2557,2561 ---- > > case 51: > ! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > source.dest = 1; > *************** > *** 2566,2585 **** > > case 52: > ! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.element).word = (yyvsp[(1) - (1)].word); > (yyval.element).redirect = 0; } > break; > > case 53: > ! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.element).word = (yyvsp[(1) - (1)].word); > (yyval.element).redirect = 0; } > break; > > case 54: > ! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); > (yyval.element).word = 0; } > break; > > case 55: > ! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.redirect) = (yyvsp[(1) - (1)].redirect); > --- 2566,2585 ---- > > case 52: > ! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.element).word = (yyvsp[(1) - (1)].word); > (yyval.element).redirect = 0; } > break; > > case 53: > ! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.element).word = (yyvsp[(1) - (1)].word); > (yyval.element).redirect = 0; } > break; > > case 54: > ! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); > (yyval.element).word = 0; } > break; > > case 55: > ! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.redirect) = (yyvsp[(1) - (1)].redirect); > *************** > *** 2588,2592 **** > > case 56: > ! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > register REDIRECT *t; > --- 2588,2592 ---- > > case 56: > ! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > register REDIRECT *t; > *************** > *** 2600,2624 **** > > case 57: > ! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), > (COMMAND *)NULL); } > break; > > case 58: > ! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), > (yyvsp[(1) - (2)].command)); } > break; > > case 59: > ! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } > break; > > case 60: > ! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 61: > ! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > COMMAND *tc; > --- 2600,2624 ---- > > case 57: > ! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), > (COMMAND *)NULL); } > break; > > case 58: > ! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), > (yyvsp[(1) - (2)].command)); } > break; > > case 59: > ! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); } > break; > > case 60: > ! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 61: > ! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > COMMAND *tc; > *************** > *** 2639,2708 **** > > case 62: > ! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 63: > ! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 64: > ! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 65: > ! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 66: > ! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command)); } > break; > > case 67: > ! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command)); } > break; > > case 68: > ! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 69: > ! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 70: > ! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 71: > ! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 72: > ! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 73: > ! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 74: > ! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 75: > ! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), > word_lineno[word_top]); > --- 2639,2708 ---- > > case 62: > ! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 63: > ! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 64: > ! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 65: > ! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 66: > ! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command)); } > break; > > case 67: > ! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command)); } > break; > > case 68: > ! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 69: > ! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 70: > ! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 71: > ! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 72: > ! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 73: > ! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 74: > ! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 75: > ! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), > word_lineno[word_top]); > *************** > *** 2712,2716 **** > > case 76: > ! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), > word_lineno[word_top]); > --- 2712,2716 ---- > > case 76: > ! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), > word_lineno[word_top]); > *************** > *** 2720,2724 **** > > case 77: > ! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), > word_lineno[word_top]); > --- 2720,2724 ---- > > case 77: > ! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), > word_lineno[word_top]); > *************** > *** 2728,2732 **** > > case 78: > ! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), > word_lineno[word_top]); > --- 2728,2732 ---- > > case 78: > ! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), > add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), > word_lineno[word_top]); > *************** > *** 2736,2740 **** > > case 79: > ! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), > REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - > (10)].command), word_lineno[word_top]); > --- 2736,2740 ---- > > case 79: > ! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), > REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - > (10)].command), word_lineno[word_top]); > *************** > *** 2744,2748 **** > > case 80: > ! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), > REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - > (10)].command), word_lineno[word_top]); > --- 2744,2748 ---- > > case 80: > ! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (10)].word), > REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), (yyvsp[(9) - > (10)].command), word_lineno[word_top]); > *************** > *** 2752,2756 **** > > case 81: > ! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), > (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); > --- 2752,2756 ---- > > case 81: > ! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), > (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); > *************** > *** 2760,2764 **** > > case 82: > ! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), > (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); > --- 2760,2764 ---- > > case 82: > ! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), > (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]); > *************** > *** 2768,2772 **** > > case 83: > ! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); > --- 2768,2772 ---- > > case 83: > ! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); > *************** > *** 2776,2780 **** > > case 84: > ! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); > --- 2776,2780 ---- > > case 84: > ! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno); > *************** > *** 2784,2788 **** > > case 85: > ! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); > --- 2784,2788 ---- > > case 85: > ! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); > *************** > *** 2792,2796 **** > > case 86: > ! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); > --- 2792,2796 ---- > > case 86: > ! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_arith_for_command ((yyvsp[(2) - > (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno); > *************** > *** 2800,2804 **** > > case 87: > ! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - > (6)].command), word_lineno[word_top]); > --- 2800,2804 ---- > > case 87: > ! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - > (6)].command), word_lineno[word_top]); > *************** > *** 2808,2812 **** > > case 88: > ! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - > (6)].command), word_lineno[word_top]); > --- 2808,2812 ---- > > case 88: > ! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - > (6)].command), word_lineno[word_top]); > *************** > *** 2816,2820 **** > > case 89: > ! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - > (7)].command), word_lineno[word_top]); > --- 2816,2820 ---- > > case 89: > ! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - > (7)].command), word_lineno[word_top]); > *************** > *** 2824,2828 **** > > case 90: > ! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - > (7)].command), word_lineno[word_top]); > --- 2824,2828 ---- > > case 90: > ! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - > (7)].command), word_lineno[word_top]); > *************** > *** 2832,2836 **** > > case 91: > ! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), > (yyvsp[(9) - (10)].command), word_lineno[word_top]); > --- 2832,2836 ---- > > case 91: > ! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), > (yyvsp[(9) - (10)].command), word_lineno[word_top]); > *************** > *** 2840,2844 **** > > case 92: > ! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), > (yyvsp[(9) - (10)].command), word_lineno[word_top]); > --- 2840,2844 ---- > > case 92: > ! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_select_command ((yyvsp[(2) - > (10)].word), REVERSE_LIST ((yyvsp[(5) - (10)].word_list), WORD_LIST *), > (yyvsp[(9) - (10)].command), word_lineno[word_top]); > *************** > *** 2848,2852 **** > > case 93: > ! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), > (PATTERN_LIST *)NULL, word_lineno[word_top]); > --- 2848,2852 ---- > > case 93: > ! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), > (PATTERN_LIST *)NULL, word_lineno[word_top]); > *************** > *** 2856,2860 **** > > case 94: > ! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), > (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); > --- 2856,2860 ---- > > case 94: > ! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), > (yyvsp[(5) - (7)].pattern), word_lineno[word_top]); > *************** > *** 2864,2868 **** > > case 95: > ! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), > (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); > --- 2864,2868 ---- > > case 95: > ! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), > (yyvsp[(5) - (6)].pattern), word_lineno[word_top]); > *************** > *** 2872,2896 **** > > case 96: > ! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), > (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } > break; > > case 97: > ! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), > (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } > break; > > case 98: > ! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), > (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } > break; > > case 99: > ! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 100: > ! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > COMMAND *tc; > --- 2872,2896 ---- > > case 96: > ! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), > (yyvsp[(5) - (5)].command), function_dstart, function_bstart); } > break; > > case 97: > ! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), > (yyvsp[(6) - (6)].command), function_dstart, function_bstart); } > break; > > case 98: > ! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), > (yyvsp[(4) - (4)].command), function_dstart, function_bstart); } > break; > > case 99: > ! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 100: > ! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > COMMAND *tc; > *************** > *** 2924,2928 **** > > case 101: > ! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_subshell_command ((yyvsp[(2) - > (3)].command)); > --- 2924,2928 ---- > > case 101: > ! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_subshell_command ((yyvsp[(2) - > (3)].command)); > *************** > *** 2932,2936 **** > > case 102: > ! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - > (2)].command)); > --- 2932,2936 ---- > > case 102: > ! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - > (2)].command)); > *************** > *** 2940,2944 **** > > case 103: > ! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > COMMAND *tc; > --- 2940,2944 ---- > > case 103: > ! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > COMMAND *tc; > *************** > *** 2960,2964 **** > > case 104: > ! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_coproc_command ((yyvsp[(2) - > (3)].word)->word, (yyvsp[(3) - (3)].command)); > --- 2960,2964 ---- > > case 104: > ! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_coproc_command ((yyvsp[(2) - > (3)].word)->word, (yyvsp[(3) - (3)].command)); > *************** > *** 2968,2972 **** > > case 105: > ! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > COMMAND *tc; > --- 2968,2972 ---- > > case 105: > ! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > COMMAND *tc; > *************** > *** 2988,2992 **** > > case 106: > ! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = make_coproc_command ("COPROC", > clean_simple_command ((yyvsp[(2) - (2)].command))); > --- 2988,2992 ---- > > case 106: > ! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = make_coproc_command ("COPROC", > clean_simple_command ((yyvsp[(2) - (2)].command))); > *************** > *** 2996,3110 **** > > case 107: > ! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } > break; > > case 108: > ! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), > (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } > break; > > case 109: > ! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), > (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } > break; > > case 110: > ! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } > break; > > case 111: > ! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } > break; > > case 112: > ! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(2) - (3)].command); } > break; > > case 113: > ! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), > (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } > break; > > case 114: > ! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), > (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } > break; > > case 115: > ! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } > break; > > case 117: > ! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); > (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } > break; > > case 118: > ! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), > (yyvsp[(4) - (4)].command)); } > break; > > case 119: > ! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), > (COMMAND *)NULL); } > break; > > case 120: > ! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), > (yyvsp[(5) - (5)].command)); } > break; > > case 121: > ! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), > (COMMAND *)NULL); } > break; > > case 122: > ! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } > break; > > case 123: > ! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); > (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } > break; > > case 124: > ! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; > (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } > break; > > case 125: > ! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - > (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = > (yyvsp[(2) - (3)].pattern); } > break; > > case 126: > ! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) > = (yyvsp[(1) - (2)].pattern); } > break; > > case 127: > ! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - > (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = > (yyvsp[(2) - (3)].pattern); } > break; > > case 128: > ! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), > (WORD_LIST *)NULL); } > break; > > case 129: > ! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), > (yyvsp[(1) - (3)].word_list)); } > break; > > case 130: > ! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = (yyvsp[(2) - (2)].command); > --- 2996,3110 ---- > > case 107: > ! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command), (COMMAND *)NULL); } > break; > > case 108: > ! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), > (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); } > break; > > case 109: > ! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), > (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); } > break; > > case 110: > ! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); } > break; > > case 111: > ! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); } > break; > > case 112: > ! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(2) - (3)].command); } > break; > > case 113: > ! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), > (yyvsp[(4) - (4)].command), (COMMAND *)NULL); } > break; > > case 114: > ! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), > (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); } > break; > > case 115: > ! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), > (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); } > break; > > case 117: > ! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); > (yyval.pattern) = (yyvsp[(2) - (2)].pattern); } > break; > > case 118: > ! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), > (yyvsp[(4) - (4)].command)); } > break; > > case 119: > ! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), > (COMMAND *)NULL); } > break; > > case 120: > ! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), > (yyvsp[(5) - (5)].command)); } > break; > > case 121: > ! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), > (COMMAND *)NULL); } > break; > > case 122: > ! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } > break; > > case 123: > ! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); > (yyval.pattern) = (yyvsp[(2) - (3)].pattern); } > break; > > case 124: > ! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; > (yyval.pattern) = (yyvsp[(1) - (2)].pattern); } > break; > > case 125: > ! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - > (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = > (yyvsp[(2) - (3)].pattern); } > break; > > case 126: > ! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) > = (yyvsp[(1) - (2)].pattern); } > break; > > case 127: > ! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - > (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = > (yyvsp[(2) - (3)].pattern); } > break; > > case 128: > ! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), > (WORD_LIST *)NULL); } > break; > > case 129: > ! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), > (yyvsp[(1) - (3)].word_list)); } > break; > > case 130: > ! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = (yyvsp[(2) - (2)].command); > *************** > *** 3115,3119 **** > > case 132: > ! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = (yyvsp[(2) - (2)].command); > --- 3115,3119 ---- > > case 132: > ! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = (yyvsp[(2) - (2)].command); > *************** > *** 3122,3126 **** > > case 134: > ! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(1) - (3)].command)->type == cm_connection) > --- 3122,3126 ---- > > case 134: > ! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(1) - (3)].command)->type == cm_connection) > *************** > *** 3132,3146 **** > > case 136: > ! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), AND_AND); } > break; > > case 137: > ! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), OR_OR); } > break; > > case 138: > ! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(1) - (4)].command)->type == cm_connection) > --- 3132,3146 ---- > > case 136: > ! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), AND_AND); } > break; > > case 137: > ! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), OR_OR); } > break; > > case 138: > ! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(1) - (4)].command)->type == cm_connection) > *************** > *** 3152,3186 **** > > case 139: > ! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), ';'); } > break; > > case 140: > ! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), ';'); } > break; > > case 141: > ! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 144: > ! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = '\n'; } > break; > > case 145: > ! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = ';'; } > break; > > case 146: > ! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = yacc_EOF; } > break; > > case 149: > ! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = (yyvsp[(1) - (1)].command); > --- 3152,3186 ---- > > case 139: > ! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), ';'); } > break; > > case 140: > ! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), ';'); } > break; > > case 141: > ! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 144: > ! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = '\n'; } > break; > > case 145: > ! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = ';'; } > break; > > case 146: > ! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = yacc_EOF; } > break; > > case 149: > ! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = (yyvsp[(1) - (1)].command); > *************** > *** 3198,3202 **** > > case 150: > ! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(1) - (2)].command)->type == cm_connection) > --- 3198,3202 ---- > > case 150: > ! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(1) - (2)].command)->type == cm_connection) > *************** > *** 3217,3221 **** > > case 151: > ! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > (yyval.command) = (yyvsp[(1) - (2)].command); > --- 3217,3221 ---- > > case 151: > ! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > (yyval.command) = (yyvsp[(1) - (2)].command); > *************** > *** 3233,3247 **** > > case 152: > ! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), AND_AND); } > break; > > case 153: > ! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), OR_OR); } > break; > > case 154: > ! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(1) - (3)].command)->type == cm_connection) > --- 3233,3247 ---- > > case 152: > ! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), AND_AND); } > break; > > case 153: > ! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), OR_OR); } > break; > > case 154: > ! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(1) - (3)].command)->type == cm_connection) > *************** > *** 3253,3272 **** > > case 155: > ! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), > (yyvsp[(3) - (3)].command), ';'); } > break; > > case 156: > ! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 157: > ! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 158: > ! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(2) - (2)].command)) > --- 3253,3272 ---- > > case 155: > ! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), > (yyvsp[(3) - (3)].command), ';'); } > break; > > case 156: > ! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 157: > ! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 158: > ! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(2) - (2)].command)) > *************** > *** 3277,3281 **** > > case 159: > ! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > if ((yyvsp[(2) - (2)].command)) > --- 3277,3281 ---- > > case 159: > ! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > if ((yyvsp[(2) - (2)].command)) > *************** > *** 3286,3290 **** > > case 160: > ! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > ELEMENT x; > --- 3286,3290 ---- > > case 160: > ! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > ELEMENT x; > *************** > *** 3306,3310 **** > > case 161: > ! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > ELEMENT x; > --- 3306,3310 ---- > > case 161: > ! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > ELEMENT x; > *************** > *** 3327,3336 **** > > case 162: > ! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), '|'); } > break; > > case 163: > ! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { > /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ > --- 3327,3336 ---- > > case 162: > ! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), > (yyvsp[(4) - (4)].command), '|'); } > break; > > case 163: > ! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { > /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */ > *************** > *** 3358,3377 **** > > case 164: > ! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 165: > ! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE; } > break; > > case 166: > ! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } > break; > > case 167: > ! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } > break; > --- 3358,3377 ---- > > case 164: > ! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.command) = (yyvsp[(1) - (1)].command); } > break; > > case 165: > ! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE; } > break; > > case 166: > ! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } > break; > > case 167: > ! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y" > { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; } > break; > *************** > *** 3593,3597 **** > > > ! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y" > > > --- 3593,3597 ---- > > > ! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y" > > > *************** > *** 4851,4854 **** > --- 4851,4864 ---- > } > > + char * > + parser_remaining_input () > + { > + if (shell_input_line == 0) > + return 0; > + if (shell_input_line_index < 0 || shell_input_line_index >= > shell_input_line_len) > + return '\0'; /* XXX */ > + return (shell_input_line + shell_input_line_index); > + } > + > #ifdef INCLUDE_UNUSED > /* Back the input pointer up by one, effectively `ungetting' a character. */ > *************** > *** 6340,6345 **** > /* reset_parser clears shell_input_line and associated variables */ > restore_input_line_state (&ls); > ! if (interactive) > ! token_to_read = 0; > > /* Need to find how many characters parse_and_execute consumed, update > --- 6350,6355 ---- > /* reset_parser clears shell_input_line and associated variables */ > restore_input_line_state (&ls); > ! > ! token_to_read = 0; > > /* Need to find how many characters parse_and_execute consumed, update > *** ../bash-4.3/patchlevel.h 2012-12-29 10:47:57.000000000 -0500 > --- patchlevel.h 2014-03-20 20:01:28.000000000 -0400 > *************** > *** 26,30 **** > looks for to find the patch level (for the sccs version string). */ > > ! #define PATCHLEVEL 29 > > #endif /* _PATCHLEVEL_H_ */ > --- 26,30 ---- > looks for to find the patch level (for the sccs version string). */ > > ! #define PATCHLEVEL 30 > > #endif /* _PATCHLEVEL_H_ */ > > -- > ``The lyf so short, the craft so long to lerne.'' - Chaucer > ``Ars longa, vita brevis'' - Hippocrates > Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/ >