source: npl/system/bash/bash-4.3-patches/bash43-030 @ b4abfab

perl-5.22
Last change on this file since b4abfab was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 61.7 KB
Line 
1                             BASH PATCH REPORT
2                             =================
3
4Bash-Release:   4.3
5Patch-ID:       bash43-030
6
7Bug-Reported-by:        Michal Zalewski <lcamtuf@coredump.cx>
8Bug-Reference-ID:
9Bug-Reference-URL:
10
11Bug-Description:
12
13A combination of nested command substitutions and function importing from
14the environment can cause bash to execute code appearing in the environment
15variable value following the function definition.
16
17Patch (apply with `patch -p0'):
18
19*** ../bash-4.3.29/builtins/evalstring.c        2014-10-01 12:57:47.000000000 -0400
20--- builtins/evalstring.c       2014-10-03 11:57:04.000000000 -0400
21***************
22*** 309,318 ****
23              struct fd_bitmap *bitmap;
24 
25!             if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
26                {
27!                 internal_warning ("%s: ignoring function definition attempt", from_file);
28!                 should_jump_to_top_level = 0;
29!                 last_result = last_command_exit_value = EX_BADUSAGE;
30!                 break;
31                }
32 
33--- 313,335 ----
34              struct fd_bitmap *bitmap;
35 
36!             if (flags & SEVAL_FUNCDEF)
37                {
38!                 char *x;
39!
40!                 /* If the command parses to something other than a straight
41!                    function definition, or if we have not consumed the entire
42!                    string, or if the parser has transformed the function
43!                    name (as parsing will if it begins or ends with shell
44!                    whitespace, for example), reject the attempt */
45!                 if (command->type != cm_function_def ||
46!                     ((x = parser_remaining_input ()) && *x) ||
47!                     (STREQ (from_file, command->value.Function_def->name->word) == 0))
48!                   {
49!                     internal_warning (_("%s: ignoring function definition attempt"), from_file);
50!                     should_jump_to_top_level = 0;
51!                     last_result = last_command_exit_value = EX_BADUSAGE;
52!                     reset_parser ();
53!                     break;
54!                   }
55                }
56 
57***************
58*** 379,383 ****
59 
60              if (flags & SEVAL_ONECMD)
61!               break;
62            }
63        }
64--- 396,403 ----
65 
66              if (flags & SEVAL_ONECMD)
67!               {
68!                 reset_parser ();
69!                 break;
70!               }
71            }
72        }
73*** ../bash-4.3.29/parse.y      2014-10-01 12:58:43.000000000 -0400
74--- parse.y     2014-10-03 14:48:59.000000000 -0400
75***************
76*** 2539,2542 ****
77--- 2539,2552 ----
78  }
79 
80+ char *
81+ parser_remaining_input ()
82+ {
83+   if (shell_input_line == 0)
84+     return 0;
85+   if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
86+     return '\0';      /* XXX */
87+   return (shell_input_line + shell_input_line_index);
88+ }
89+
90  #ifdef INCLUDE_UNUSED
91  /* Back the input pointer up by one, effectively `ungetting' a character. */
92***************
93*** 4028,4033 ****
94    /* reset_parser clears shell_input_line and associated variables */
95    restore_input_line_state (&ls);
96!   if (interactive)
97!     token_to_read = 0;
98 
99    /* Need to find how many characters parse_and_execute consumed, update
100--- 4053,4058 ----
101    /* reset_parser clears shell_input_line and associated variables */
102    restore_input_line_state (&ls);
103!
104!   token_to_read = 0;
105 
106    /* Need to find how many characters parse_and_execute consumed, update
107*** ../bash-4.3.29/shell.h      2014-10-01 12:57:39.000000000 -0400
108--- shell.h     2014-10-03 14:49:12.000000000 -0400
109***************
110*** 181,184 ****
111--- 181,186 ----
112 
113  /* Let's try declaring these here. */
114+ extern char *parser_remaining_input __P((void));
115+
116  extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
117  extern void restore_parser_state __P((sh_parser_state_t *));
118*** ../bash-4.3.28/y.tab.c      2014-10-01 13:09:46.000000000 -0400
119--- y.tab.c     2014-10-04 19:26:22.000000000 -0400
120***************
121*** 169,173 ****
122 
123  /* Copy the first part of user declarations.  */
124! #line 21 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
125 
126  #include "config.h"
127--- 169,173 ----
128 
129  /* Copy the first part of user declarations.  */
130! #line 21 "/usr/src/local/bash/bash-4.3-patched/parse.y"
131 
132  #include "config.h"
133***************
134*** 498,502 ****
135  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
136  typedef union YYSTYPE
137! #line 329 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
138  {
139    WORD_DESC *word;            /* the word that we read. */
140--- 498,502 ----
141  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
142  typedef union YYSTYPE
143! #line 329 "/usr/src/local/bash/bash-4.3-patched/parse.y"
144  {
145    WORD_DESC *word;            /* the word that we read. */
146***************
147*** 2099,2103 ****
148      {
149          case 2:
150! #line 383 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
151      {
152                          /* Case of regular command.  Discard the error
153--- 2099,2103 ----
154      {
155          case 2:
156! #line 383 "/usr/src/local/bash/bash-4.3-patched/parse.y"
157      {
158                          /* Case of regular command.  Discard the error
159***************
160*** 2113,2117 ****
161 
162    case 3:
163! #line 394 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
164      {
165                          /* Case of regular command, but not a very
166--- 2113,2117 ----
167 
168    case 3:
169! #line 394 "/usr/src/local/bash/bash-4.3-patched/parse.y"
170      {
171                          /* Case of regular command, but not a very
172***************
173*** 2125,2129 ****
174 
175    case 4:
176! #line 403 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
177      {
178                          /* Error during parsing.  Return NULL command. */
179--- 2125,2129 ----
180 
181    case 4:
182! #line 403 "/usr/src/local/bash/bash-4.3-patched/parse.y"
183      {
184                          /* Error during parsing.  Return NULL command. */
185***************
186*** 2143,2147 ****
187 
188    case 5:
189! #line 418 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
190      {
191                          /* Case of EOF seen by itself.  Do ignoreeof or
192--- 2143,2147 ----
193 
194    case 5:
195! #line 418 "/usr/src/local/bash/bash-4.3-patched/parse.y"
196      {
197                          /* Case of EOF seen by itself.  Do ignoreeof or
198***************
199*** 2154,2168 ****
200 
201    case 6:
202! #line 428 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
203      { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
204      break;
205 
206    case 7:
207! #line 430 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
208      { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); }
209      break;
210 
211    case 8:
212! #line 434 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
213      {
214                          source.dest = 1;
215--- 2154,2168 ----
216 
217    case 6:
218! #line 428 "/usr/src/local/bash/bash-4.3-patched/parse.y"
219      { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
220      break;
221 
222    case 7:
223! #line 430 "/usr/src/local/bash/bash-4.3-patched/parse.y"
224      { (yyval.word_list) = make_word_list ((yyvsp[(2) - (2)].word), (yyvsp[(1) - (2)].word_list)); }
225      break;
226 
227    case 8:
228! #line 434 "/usr/src/local/bash/bash-4.3-patched/parse.y"
229      {
230                          source.dest = 1;
231***************
232*** 2173,2177 ****
233 
234    case 9:
235! #line 440 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
236      {
237                          source.dest = 0;
238--- 2173,2177 ----
239 
240    case 9:
241! #line 440 "/usr/src/local/bash/bash-4.3-patched/parse.y"
242      {
243                          source.dest = 0;
244***************
245*** 2182,2186 ****
246 
247    case 10:
248! #line 446 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
249      {
250                          source.dest = (yyvsp[(1) - (3)].number);
251--- 2182,2186 ----
252 
253    case 10:
254! #line 446 "/usr/src/local/bash/bash-4.3-patched/parse.y"
255      {
256                          source.dest = (yyvsp[(1) - (3)].number);
257***************
258*** 2191,2195 ****
259 
260    case 11:
261! #line 452 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
262      {
263                          source.dest = (yyvsp[(1) - (3)].number);
264--- 2191,2195 ----
265 
266    case 11:
267! #line 452 "/usr/src/local/bash/bash-4.3-patched/parse.y"
268      {
269                          source.dest = (yyvsp[(1) - (3)].number);
270***************
271*** 2200,2204 ****
272 
273    case 12:
274! #line 458 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
275      {
276                          source.filename = (yyvsp[(1) - (3)].word);
277--- 2200,2204 ----
278 
279    case 12:
280! #line 458 "/usr/src/local/bash/bash-4.3-patched/parse.y"
281      {
282                          source.filename = (yyvsp[(1) - (3)].word);
283***************
284*** 2209,2213 ****
285 
286    case 13:
287! #line 464 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
288      {
289                          source.filename = (yyvsp[(1) - (3)].word);
290--- 2209,2213 ----
291 
292    case 13:
293! #line 464 "/usr/src/local/bash/bash-4.3-patched/parse.y"
294      {
295                          source.filename = (yyvsp[(1) - (3)].word);
296***************
297*** 2218,2222 ****
298 
299    case 14:
300! #line 470 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
301      {
302                          source.dest = 1;
303--- 2218,2222 ----
304 
305    case 14:
306! #line 470 "/usr/src/local/bash/bash-4.3-patched/parse.y"
307      {
308                          source.dest = 1;
309***************
310*** 2227,2231 ****
311 
312    case 15:
313! #line 476 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
314      {
315                          source.dest = (yyvsp[(1) - (3)].number);
316--- 2227,2231 ----
317 
318    case 15:
319! #line 476 "/usr/src/local/bash/bash-4.3-patched/parse.y"
320      {
321                          source.dest = (yyvsp[(1) - (3)].number);
322***************
323*** 2236,2240 ****
324 
325    case 16:
326! #line 482 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
327      {
328                          source.filename = (yyvsp[(1) - (3)].word);
329--- 2236,2240 ----
330 
331    case 16:
332! #line 482 "/usr/src/local/bash/bash-4.3-patched/parse.y"
333      {
334                          source.filename = (yyvsp[(1) - (3)].word);
335***************
336*** 2245,2249 ****
337 
338    case 17:
339! #line 488 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
340      {
341                          source.dest = 1;
342--- 2245,2249 ----
343 
344    case 17:
345! #line 488 "/usr/src/local/bash/bash-4.3-patched/parse.y"
346      {
347                          source.dest = 1;
348***************
349*** 2254,2258 ****
350 
351    case 18:
352! #line 494 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
353      {
354                          source.dest = (yyvsp[(1) - (3)].number);
355--- 2254,2258 ----
356 
357    case 18:
358! #line 494 "/usr/src/local/bash/bash-4.3-patched/parse.y"
359      {
360                          source.dest = (yyvsp[(1) - (3)].number);
361***************
362*** 2263,2267 ****
363 
364    case 19:
365! #line 500 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
366      {
367                          source.filename = (yyvsp[(1) - (3)].word);
368--- 2263,2267 ----
369 
370    case 19:
371! #line 500 "/usr/src/local/bash/bash-4.3-patched/parse.y"
372      {
373                          source.filename = (yyvsp[(1) - (3)].word);
374***************
375*** 2272,2276 ****
376 
377    case 20:
378! #line 506 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
379      {
380                          source.dest = 0;
381--- 2272,2276 ----
382 
383    case 20:
384! #line 506 "/usr/src/local/bash/bash-4.3-patched/parse.y"
385      {
386                          source.dest = 0;
387***************
388*** 2281,2285 ****
389 
390    case 21:
391! #line 512 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
392      {
393                          source.dest = (yyvsp[(1) - (3)].number);
394--- 2281,2285 ----
395 
396    case 21:
397! #line 512 "/usr/src/local/bash/bash-4.3-patched/parse.y"
398      {
399                          source.dest = (yyvsp[(1) - (3)].number);
400***************
401*** 2290,2294 ****
402 
403    case 22:
404! #line 518 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
405      {
406                          source.filename = (yyvsp[(1) - (3)].word);
407--- 2290,2294 ----
408 
409    case 22:
410! #line 518 "/usr/src/local/bash/bash-4.3-patched/parse.y"
411      {
412                          source.filename = (yyvsp[(1) - (3)].word);
413***************
414*** 2299,2303 ****
415 
416    case 23:
417! #line 524 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
418      {
419                          source.dest = 0;
420--- 2299,2303 ----
421 
422    case 23:
423! #line 524 "/usr/src/local/bash/bash-4.3-patched/parse.y"
424      {
425                          source.dest = 0;
426***************
427*** 2309,2313 ****
428 
429    case 24:
430! #line 531 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
431      {
432                          source.dest = (yyvsp[(1) - (3)].number);
433--- 2309,2313 ----
434 
435    case 24:
436! #line 531 "/usr/src/local/bash/bash-4.3-patched/parse.y"
437      {
438                          source.dest = (yyvsp[(1) - (3)].number);
439***************
440*** 2319,2323 ****
441 
442    case 25:
443! #line 538 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
444      {
445                          source.filename = (yyvsp[(1) - (3)].word);
446--- 2319,2323 ----
447 
448    case 25:
449! #line 538 "/usr/src/local/bash/bash-4.3-patched/parse.y"
450      {
451                          source.filename = (yyvsp[(1) - (3)].word);
452***************
453*** 2329,2333 ****
454 
455    case 26:
456! #line 545 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
457      {
458                          source.dest = 0;
459--- 2329,2333 ----
460 
461    case 26:
462! #line 545 "/usr/src/local/bash/bash-4.3-patched/parse.y"
463      {
464                          source.dest = 0;
465***************
466*** 2339,2343 ****
467 
468    case 27:
469! #line 552 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
470      {
471                          source.dest = (yyvsp[(1) - (3)].number);
472--- 2339,2343 ----
473 
474    case 27:
475! #line 552 "/usr/src/local/bash/bash-4.3-patched/parse.y"
476      {
477                          source.dest = (yyvsp[(1) - (3)].number);
478***************
479*** 2349,2353 ****
480 
481    case 28:
482! #line 559 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
483      {
484                          source.filename = (yyvsp[(1) - (3)].word);
485--- 2349,2353 ----
486 
487    case 28:
488! #line 559 "/usr/src/local/bash/bash-4.3-patched/parse.y"
489      {
490                          source.filename = (yyvsp[(1) - (3)].word);
491***************
492*** 2359,2363 ****
493 
494    case 29:
495! #line 566 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
496      {
497                          source.dest = 0;
498--- 2359,2363 ----
499 
500    case 29:
501! #line 566 "/usr/src/local/bash/bash-4.3-patched/parse.y"
502      {
503                          source.dest = 0;
504***************
505*** 2368,2372 ****
506 
507    case 30:
508! #line 572 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
509      {
510                          source.dest = (yyvsp[(1) - (3)].number);
511--- 2368,2372 ----
512 
513    case 30:
514! #line 572 "/usr/src/local/bash/bash-4.3-patched/parse.y"
515      {
516                          source.dest = (yyvsp[(1) - (3)].number);
517***************
518*** 2377,2381 ****
519 
520    case 31:
521! #line 578 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
522      {
523                          source.filename = (yyvsp[(1) - (3)].word);
524--- 2377,2381 ----
525 
526    case 31:
527! #line 578 "/usr/src/local/bash/bash-4.3-patched/parse.y"
528      {
529                          source.filename = (yyvsp[(1) - (3)].word);
530***************
531*** 2386,2390 ****
532 
533    case 32:
534! #line 584 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
535      {
536                          source.dest = 0;
537--- 2386,2390 ----
538 
539    case 32:
540! #line 584 "/usr/src/local/bash/bash-4.3-patched/parse.y"
541      {
542                          source.dest = 0;
543***************
544*** 2395,2399 ****
545 
546    case 33:
547! #line 590 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
548      {
549                          source.dest = (yyvsp[(1) - (3)].number);
550--- 2395,2399 ----
551 
552    case 33:
553! #line 590 "/usr/src/local/bash/bash-4.3-patched/parse.y"
554      {
555                          source.dest = (yyvsp[(1) - (3)].number);
556***************
557*** 2404,2408 ****
558 
559    case 34:
560! #line 596 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
561      {
562                          source.filename = (yyvsp[(1) - (3)].word);
563--- 2404,2408 ----
564 
565    case 34:
566! #line 596 "/usr/src/local/bash/bash-4.3-patched/parse.y"
567      {
568                          source.filename = (yyvsp[(1) - (3)].word);
569***************
570*** 2413,2417 ****
571 
572    case 35:
573! #line 602 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
574      {
575                          source.dest = 1;
576--- 2413,2417 ----
577 
578    case 35:
579! #line 602 "/usr/src/local/bash/bash-4.3-patched/parse.y"
580      {
581                          source.dest = 1;
582***************
583*** 2422,2426 ****
584 
585    case 36:
586! #line 608 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
587      {
588                          source.dest = (yyvsp[(1) - (3)].number);
589--- 2422,2426 ----
590 
591    case 36:
592! #line 608 "/usr/src/local/bash/bash-4.3-patched/parse.y"
593      {
594                          source.dest = (yyvsp[(1) - (3)].number);
595***************
596*** 2431,2435 ****
597 
598    case 37:
599! #line 614 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
600      {
601                          source.filename = (yyvsp[(1) - (3)].word);
602--- 2431,2435 ----
603 
604    case 37:
605! #line 614 "/usr/src/local/bash/bash-4.3-patched/parse.y"
606      {
607                          source.filename = (yyvsp[(1) - (3)].word);
608***************
609*** 2440,2444 ****
610 
611    case 38:
612! #line 620 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
613      {
614                          source.dest = 0;
615--- 2440,2444 ----
616 
617    case 38:
618! #line 620 "/usr/src/local/bash/bash-4.3-patched/parse.y"
619      {
620                          source.dest = 0;
621***************
622*** 2449,2453 ****
623 
624    case 39:
625! #line 626 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
626      {
627                          source.dest = (yyvsp[(1) - (3)].number);
628--- 2449,2453 ----
629 
630    case 39:
631! #line 626 "/usr/src/local/bash/bash-4.3-patched/parse.y"
632      {
633                          source.dest = (yyvsp[(1) - (3)].number);
634***************
635*** 2458,2462 ****
636 
637    case 40:
638! #line 632 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
639      {
640                          source.filename = (yyvsp[(1) - (3)].word);
641--- 2458,2462 ----
642 
643    case 40:
644! #line 632 "/usr/src/local/bash/bash-4.3-patched/parse.y"
645      {
646                          source.filename = (yyvsp[(1) - (3)].word);
647***************
648*** 2467,2471 ****
649 
650    case 41:
651! #line 638 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
652      {
653                          source.dest = 1;
654--- 2467,2471 ----
655 
656    case 41:
657! #line 638 "/usr/src/local/bash/bash-4.3-patched/parse.y"
658      {
659                          source.dest = 1;
660***************
661*** 2476,2480 ****
662 
663    case 42:
664! #line 644 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
665      {
666                          source.dest = (yyvsp[(1) - (3)].number);
667--- 2476,2480 ----
668 
669    case 42:
670! #line 644 "/usr/src/local/bash/bash-4.3-patched/parse.y"
671      {
672                          source.dest = (yyvsp[(1) - (3)].number);
673***************
674*** 2485,2489 ****
675 
676    case 43:
677! #line 650 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
678      {
679                          source.filename = (yyvsp[(1) - (3)].word);
680--- 2485,2489 ----
681 
682    case 43:
683! #line 650 "/usr/src/local/bash/bash-4.3-patched/parse.y"
684      {
685                          source.filename = (yyvsp[(1) - (3)].word);
686***************
687*** 2494,2498 ****
688 
689    case 44:
690! #line 656 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
691      {
692                          source.dest = 1;
693--- 2494,2498 ----
694 
695    case 44:
696! #line 656 "/usr/src/local/bash/bash-4.3-patched/parse.y"
697      {
698                          source.dest = 1;
699***************
700*** 2503,2507 ****
701 
702    case 45:
703! #line 662 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
704      {
705                          source.dest = (yyvsp[(1) - (3)].number);
706--- 2503,2507 ----
707 
708    case 45:
709! #line 662 "/usr/src/local/bash/bash-4.3-patched/parse.y"
710      {
711                          source.dest = (yyvsp[(1) - (3)].number);
712***************
713*** 2512,2516 ****
714 
715    case 46:
716! #line 668 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
717      {
718                          source.filename = (yyvsp[(1) - (3)].word);
719--- 2512,2516 ----
720 
721    case 46:
722! #line 668 "/usr/src/local/bash/bash-4.3-patched/parse.y"
723      {
724                          source.filename = (yyvsp[(1) - (3)].word);
725***************
726*** 2521,2525 ****
727 
728    case 47:
729! #line 674 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
730      {
731                          source.dest = 0;
732--- 2521,2525 ----
733 
734    case 47:
735! #line 674 "/usr/src/local/bash/bash-4.3-patched/parse.y"
736      {
737                          source.dest = 0;
738***************
739*** 2530,2534 ****
740 
741    case 48:
742! #line 680 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
743      {
744                          source.dest = (yyvsp[(1) - (3)].number);
745--- 2530,2534 ----
746 
747    case 48:
748! #line 680 "/usr/src/local/bash/bash-4.3-patched/parse.y"
749      {
750                          source.dest = (yyvsp[(1) - (3)].number);
751***************
752*** 2539,2543 ****
753 
754    case 49:
755! #line 686 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
756      {
757                          source.filename = (yyvsp[(1) - (3)].word);
758--- 2539,2543 ----
759 
760    case 49:
761! #line 686 "/usr/src/local/bash/bash-4.3-patched/parse.y"
762      {
763                          source.filename = (yyvsp[(1) - (3)].word);
764***************
765*** 2548,2552 ****
766 
767    case 50:
768! #line 692 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
769      {
770                          source.dest = 1;
771--- 2548,2552 ----
772 
773    case 50:
774! #line 692 "/usr/src/local/bash/bash-4.3-patched/parse.y"
775      {
776                          source.dest = 1;
777***************
778*** 2557,2561 ****
779 
780    case 51:
781! #line 698 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
782      {
783                          source.dest = 1;
784--- 2557,2561 ----
785 
786    case 51:
787! #line 698 "/usr/src/local/bash/bash-4.3-patched/parse.y"
788      {
789                          source.dest = 1;
790***************
791*** 2566,2585 ****
792 
793    case 52:
794! #line 706 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
795      { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
796      break;
797 
798    case 53:
799! #line 708 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
800      { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
801      break;
802 
803    case 54:
804! #line 710 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
805      { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; }
806      break;
807 
808    case 55:
809! #line 714 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
810      {
811                          (yyval.redirect) = (yyvsp[(1) - (1)].redirect);
812--- 2566,2585 ----
813 
814    case 52:
815! #line 706 "/usr/src/local/bash/bash-4.3-patched/parse.y"
816      { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
817      break;
818 
819    case 53:
820! #line 708 "/usr/src/local/bash/bash-4.3-patched/parse.y"
821      { (yyval.element).word = (yyvsp[(1) - (1)].word); (yyval.element).redirect = 0; }
822      break;
823 
824    case 54:
825! #line 710 "/usr/src/local/bash/bash-4.3-patched/parse.y"
826      { (yyval.element).redirect = (yyvsp[(1) - (1)].redirect); (yyval.element).word = 0; }
827      break;
828 
829    case 55:
830! #line 714 "/usr/src/local/bash/bash-4.3-patched/parse.y"
831      {
832                          (yyval.redirect) = (yyvsp[(1) - (1)].redirect);
833***************
834*** 2588,2592 ****
835 
836    case 56:
837! #line 718 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
838      {
839                          register REDIRECT *t;
840--- 2588,2592 ----
841 
842    case 56:
843! #line 718 "/usr/src/local/bash/bash-4.3-patched/parse.y"
844      {
845                          register REDIRECT *t;
846***************
847*** 2600,2624 ****
848 
849    case 57:
850! #line 729 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
851      { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); }
852      break;
853 
854    case 58:
855! #line 731 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
856      { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); }
857      break;
858 
859    case 59:
860! #line 735 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
861      { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); }
862      break;
863 
864    case 60:
865! #line 737 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
866      { (yyval.command) = (yyvsp[(1) - (1)].command); }
867      break;
868 
869    case 61:
870! #line 739 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
871      {
872                          COMMAND *tc;
873--- 2600,2624 ----
874 
875    case 57:
876! #line 729 "/usr/src/local/bash/bash-4.3-patched/parse.y"
877      { (yyval.command) = make_simple_command ((yyvsp[(1) - (1)].element), (COMMAND *)NULL); }
878      break;
879 
880    case 58:
881! #line 731 "/usr/src/local/bash/bash-4.3-patched/parse.y"
882      { (yyval.command) = make_simple_command ((yyvsp[(2) - (2)].element), (yyvsp[(1) - (2)].command)); }
883      break;
884 
885    case 59:
886! #line 735 "/usr/src/local/bash/bash-4.3-patched/parse.y"
887      { (yyval.command) = clean_simple_command ((yyvsp[(1) - (1)].command)); }
888      break;
889 
890    case 60:
891! #line 737 "/usr/src/local/bash/bash-4.3-patched/parse.y"
892      { (yyval.command) = (yyvsp[(1) - (1)].command); }
893      break;
894 
895    case 61:
896! #line 739 "/usr/src/local/bash/bash-4.3-patched/parse.y"
897      {
898                          COMMAND *tc;
899***************
900*** 2639,2708 ****
901 
902    case 62:
903! #line 755 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
904      { (yyval.command) = (yyvsp[(1) - (1)].command); }
905      break;
906 
907    case 63:
908! #line 757 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
909      { (yyval.command) = (yyvsp[(1) - (1)].command); }
910      break;
911 
912    case 64:
913! #line 761 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
914      { (yyval.command) = (yyvsp[(1) - (1)].command); }
915      break;
916 
917    case 65:
918! #line 763 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
919      { (yyval.command) = (yyvsp[(1) - (1)].command); }
920      break;
921 
922    case 66:
923! #line 765 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
924      { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
925      break;
926 
927    case 67:
928! #line 767 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
929      { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
930      break;
931 
932    case 68:
933! #line 769 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
934      { (yyval.command) = (yyvsp[(1) - (1)].command); }
935      break;
936 
937    case 69:
938! #line 771 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
939      { (yyval.command) = (yyvsp[(1) - (1)].command); }
940      break;
941 
942    case 70:
943! #line 773 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
944      { (yyval.command) = (yyvsp[(1) - (1)].command); }
945      break;
946 
947    case 71:
948! #line 775 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
949      { (yyval.command) = (yyvsp[(1) - (1)].command); }
950      break;
951 
952    case 72:
953! #line 777 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
954      { (yyval.command) = (yyvsp[(1) - (1)].command); }
955      break;
956 
957    case 73:
958! #line 779 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
959      { (yyval.command) = (yyvsp[(1) - (1)].command); }
960      break;
961 
962    case 74:
963! #line 781 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
964      { (yyval.command) = (yyvsp[(1) - (1)].command); }
965      break;
966 
967    case 75:
968! #line 785 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
969      {
970                          (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
971--- 2639,2708 ----
972 
973    case 62:
974! #line 755 "/usr/src/local/bash/bash-4.3-patched/parse.y"
975      { (yyval.command) = (yyvsp[(1) - (1)].command); }
976      break;
977 
978    case 63:
979! #line 757 "/usr/src/local/bash/bash-4.3-patched/parse.y"
980      { (yyval.command) = (yyvsp[(1) - (1)].command); }
981      break;
982 
983    case 64:
984! #line 761 "/usr/src/local/bash/bash-4.3-patched/parse.y"
985      { (yyval.command) = (yyvsp[(1) - (1)].command); }
986      break;
987 
988    case 65:
989! #line 763 "/usr/src/local/bash/bash-4.3-patched/parse.y"
990      { (yyval.command) = (yyvsp[(1) - (1)].command); }
991      break;
992 
993    case 66:
994! #line 765 "/usr/src/local/bash/bash-4.3-patched/parse.y"
995      { (yyval.command) = make_while_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
996      break;
997 
998    case 67:
999! #line 767 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1000      { (yyval.command) = make_until_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command)); }
1001      break;
1002 
1003    case 68:
1004! #line 769 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1005      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1006      break;
1007 
1008    case 69:
1009! #line 771 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1010      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1011      break;
1012 
1013    case 70:
1014! #line 773 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1015      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1016      break;
1017 
1018    case 71:
1019! #line 775 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1020      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1021      break;
1022 
1023    case 72:
1024! #line 777 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1025      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1026      break;
1027 
1028    case 73:
1029! #line 779 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1030      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1031      break;
1032 
1033    case 74:
1034! #line 781 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1035      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1036      break;
1037 
1038    case 75:
1039! #line 785 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1040      {
1041                          (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1042***************
1043*** 2712,2716 ****
1044 
1045    case 76:
1046! #line 790 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1047      {
1048                          (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1049--- 2712,2716 ----
1050 
1051    case 76:
1052! #line 790 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1053      {
1054                          (yyval.command) = make_for_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1055***************
1056*** 2720,2724 ****
1057 
1058    case 77:
1059! #line 795 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1060      {
1061                          (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1062--- 2720,2724 ----
1063 
1064    case 77:
1065! #line 795 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1066      {
1067                          (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1068***************
1069*** 2728,2732 ****
1070 
1071    case 78:
1072! #line 800 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1073      {
1074                          (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1075--- 2728,2732 ----
1076 
1077    case 78:
1078! #line 800 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1079      {
1080                          (yyval.command) = make_for_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1081***************
1082*** 2736,2740 ****
1083 
1084    case 79:
1085! #line 805 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1086      {
1087                          (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]);
1088--- 2736,2740 ----
1089 
1090    case 79:
1091! #line 805 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1092      {
1093                          (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]);
1094***************
1095*** 2744,2748 ****
1096 
1097    case 80:
1098! #line 810 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1099      {
1100                          (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]);
1101--- 2744,2748 ----
1102 
1103    case 80:
1104! #line 810 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1105      {
1106                          (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]);
1107***************
1108*** 2752,2756 ****
1109 
1110    case 81:
1111! #line 815 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1112      {
1113                          (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
1114--- 2752,2756 ----
1115 
1116    case 81:
1117! #line 815 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1118      {
1119                          (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
1120***************
1121*** 2760,2764 ****
1122 
1123    case 82:
1124! #line 820 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1125      {
1126                          (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
1127--- 2760,2764 ----
1128 
1129    case 82:
1130! #line 820 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1131      {
1132                          (yyval.command) = make_for_command ((yyvsp[(2) - (9)].word), (WORD_LIST *)NULL, (yyvsp[(8) - (9)].command), word_lineno[word_top]);
1133***************
1134*** 2768,2772 ****
1135 
1136    case 83:
1137! #line 827 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1138      {
1139                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
1140--- 2768,2772 ----
1141 
1142    case 83:
1143! #line 827 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1144      {
1145                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
1146***************
1147*** 2776,2780 ****
1148 
1149    case 84:
1150! #line 832 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1151      {
1152                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
1153--- 2776,2780 ----
1154 
1155    case 84:
1156! #line 832 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1157      {
1158                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (7)].word_list), (yyvsp[(6) - (7)].command), arith_for_lineno);
1159***************
1160*** 2784,2788 ****
1161 
1162    case 85:
1163! #line 837 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1164      {
1165                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
1166--- 2784,2788 ----
1167 
1168    case 85:
1169! #line 837 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1170      {
1171                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
1172***************
1173*** 2792,2796 ****
1174 
1175    case 86:
1176! #line 842 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1177      {
1178                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
1179--- 2792,2796 ----
1180 
1181    case 86:
1182! #line 842 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1183      {
1184                                  (yyval.command) = make_arith_for_command ((yyvsp[(2) - (5)].word_list), (yyvsp[(4) - (5)].command), arith_for_lineno);
1185***************
1186*** 2800,2804 ****
1187 
1188    case 87:
1189! #line 849 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1190      {
1191                          (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1192--- 2800,2804 ----
1193 
1194    case 87:
1195! #line 849 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1196      {
1197                          (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1198***************
1199*** 2808,2812 ****
1200 
1201    case 88:
1202! #line 854 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1203      {
1204                          (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1205--- 2808,2812 ----
1206 
1207    case 88:
1208! #line 854 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1209      {
1210                          (yyval.command) = make_select_command ((yyvsp[(2) - (6)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(5) - (6)].command), word_lineno[word_top]);
1211***************
1212*** 2816,2820 ****
1213 
1214    case 89:
1215! #line 859 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1216      {
1217                          (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1218--- 2816,2820 ----
1219 
1220    case 89:
1221! #line 859 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1222      {
1223                          (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1224***************
1225*** 2824,2828 ****
1226 
1227    case 90:
1228! #line 864 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1229      {
1230                          (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1231--- 2824,2828 ----
1232 
1233    case 90:
1234! #line 864 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1235      {
1236                          (yyval.command) = make_select_command ((yyvsp[(2) - (7)].word), add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), (yyvsp[(6) - (7)].command), word_lineno[word_top]);
1237***************
1238*** 2832,2836 ****
1239 
1240    case 91:
1241! #line 869 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1242      {
1243                          (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]);
1244--- 2832,2836 ----
1245 
1246    case 91:
1247! #line 869 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1248      {
1249                          (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]);
1250***************
1251*** 2840,2844 ****
1252 
1253    case 92:
1254! #line 874 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1255      {
1256                          (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]);
1257--- 2840,2844 ----
1258 
1259    case 92:
1260! #line 874 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1261      {
1262                          (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]);
1263***************
1264*** 2848,2852 ****
1265 
1266    case 93:
1267! #line 881 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1268      {
1269                          (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]);
1270--- 2848,2852 ----
1271 
1272    case 93:
1273! #line 881 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1274      {
1275                          (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (PATTERN_LIST *)NULL, word_lineno[word_top]);
1276***************
1277*** 2856,2860 ****
1278 
1279    case 94:
1280! #line 886 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1281      {
1282                          (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]);
1283--- 2856,2860 ----
1284 
1285    case 94:
1286! #line 886 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1287      {
1288                          (yyval.command) = make_case_command ((yyvsp[(2) - (7)].word), (yyvsp[(5) - (7)].pattern), word_lineno[word_top]);
1289***************
1290*** 2864,2868 ****
1291 
1292    case 95:
1293! #line 891 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1294      {
1295                          (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]);
1296--- 2864,2868 ----
1297 
1298    case 95:
1299! #line 891 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1300      {
1301                          (yyval.command) = make_case_command ((yyvsp[(2) - (6)].word), (yyvsp[(5) - (6)].pattern), word_lineno[word_top]);
1302***************
1303*** 2872,2896 ****
1304 
1305    case 96:
1306! #line 898 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1307      { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); }
1308      break;
1309 
1310    case 97:
1311! #line 901 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1312      { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); }
1313      break;
1314 
1315    case 98:
1316! #line 904 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1317      { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); }
1318      break;
1319 
1320    case 99:
1321! #line 908 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1322      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1323      break;
1324 
1325    case 100:
1326! #line 910 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1327      {
1328                          COMMAND *tc;
1329--- 2872,2896 ----
1330 
1331    case 96:
1332! #line 898 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1333      { (yyval.command) = make_function_def ((yyvsp[(1) - (5)].word), (yyvsp[(5) - (5)].command), function_dstart, function_bstart); }
1334      break;
1335 
1336    case 97:
1337! #line 901 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1338      { (yyval.command) = make_function_def ((yyvsp[(2) - (6)].word), (yyvsp[(6) - (6)].command), function_dstart, function_bstart); }
1339      break;
1340 
1341    case 98:
1342! #line 904 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1343      { (yyval.command) = make_function_def ((yyvsp[(2) - (4)].word), (yyvsp[(4) - (4)].command), function_dstart, function_bstart); }
1344      break;
1345 
1346    case 99:
1347! #line 908 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1348      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1349      break;
1350 
1351    case 100:
1352! #line 910 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1353      {
1354                          COMMAND *tc;
1355***************
1356*** 2924,2928 ****
1357 
1358    case 101:
1359! #line 941 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1360      {
1361                          (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command));
1362--- 2924,2928 ----
1363 
1364    case 101:
1365! #line 941 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1366      {
1367                          (yyval.command) = make_subshell_command ((yyvsp[(2) - (3)].command));
1368***************
1369*** 2932,2936 ****
1370 
1371    case 102:
1372! #line 948 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1373      {
1374                          (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command));
1375--- 2932,2936 ----
1376 
1377    case 102:
1378! #line 948 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1379      {
1380                          (yyval.command) = make_coproc_command ("COPROC", (yyvsp[(2) - (2)].command));
1381***************
1382*** 2940,2944 ****
1383 
1384    case 103:
1385! #line 953 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1386      {
1387                          COMMAND *tc;
1388--- 2940,2944 ----
1389 
1390    case 103:
1391! #line 953 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1392      {
1393                          COMMAND *tc;
1394***************
1395*** 2960,2964 ****
1396 
1397    case 104:
1398! #line 970 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1399      {
1400                          (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command));
1401--- 2960,2964 ----
1402 
1403    case 104:
1404! #line 970 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1405      {
1406                          (yyval.command) = make_coproc_command ((yyvsp[(2) - (3)].word)->word, (yyvsp[(3) - (3)].command));
1407***************
1408*** 2968,2972 ****
1409 
1410    case 105:
1411! #line 975 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1412      {
1413                          COMMAND *tc;
1414--- 2968,2972 ----
1415 
1416    case 105:
1417! #line 975 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1418      {
1419                          COMMAND *tc;
1420***************
1421*** 2988,2992 ****
1422 
1423    case 106:
1424! #line 992 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1425      {
1426                          (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command)));
1427--- 2988,2992 ----
1428 
1429    case 106:
1430! #line 992 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1431      {
1432                          (yyval.command) = make_coproc_command ("COPROC", clean_simple_command ((yyvsp[(2) - (2)].command)));
1433***************
1434*** 2996,3110 ****
1435 
1436    case 107:
1437! #line 999 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1438      { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); }
1439      break;
1440 
1441    case 108:
1442! #line 1001 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1443      { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); }
1444      break;
1445 
1446    case 109:
1447! #line 1003 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1448      { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); }
1449      break;
1450 
1451    case 110:
1452! #line 1008 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1453      { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); }
1454      break;
1455 
1456    case 111:
1457! #line 1012 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1458      { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); }
1459      break;
1460 
1461    case 112:
1462! #line 1016 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1463      { (yyval.command) = (yyvsp[(2) - (3)].command); }
1464      break;
1465 
1466    case 113:
1467! #line 1020 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1468      { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); }
1469      break;
1470 
1471    case 114:
1472! #line 1022 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1473      { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); }
1474      break;
1475 
1476    case 115:
1477! #line 1024 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1478      { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); }
1479      break;
1480 
1481    case 117:
1482! #line 1029 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1483      { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); }
1484      break;
1485 
1486    case 118:
1487! #line 1033 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1488      { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); }
1489      break;
1490 
1491    case 119:
1492! #line 1035 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1493      { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); }
1494      break;
1495 
1496    case 120:
1497! #line 1037 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1498      { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); }
1499      break;
1500 
1501    case 121:
1502! #line 1039 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1503      { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); }
1504      break;
1505 
1506    case 122:
1507! #line 1043 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1508      { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1509      break;
1510 
1511    case 123:
1512! #line 1045 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1513      { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1514      break;
1515 
1516    case 124:
1517! #line 1047 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1518      { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1519      break;
1520 
1521    case 125:
1522! #line 1049 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1523      { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1524      break;
1525 
1526    case 126:
1527! #line 1051 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1528      { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1529      break;
1530 
1531    case 127:
1532! #line 1053 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1533      { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1534      break;
1535 
1536    case 128:
1537! #line 1057 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1538      { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
1539      break;
1540 
1541    case 129:
1542! #line 1059 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1543      { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); }
1544      break;
1545 
1546    case 130:
1547! #line 1068 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1548      {
1549                          (yyval.command) = (yyvsp[(2) - (2)].command);
1550--- 2996,3110 ----
1551 
1552    case 107:
1553! #line 999 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1554      { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (COMMAND *)NULL); }
1555      break;
1556 
1557    case 108:
1558! #line 1001 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1559      { (yyval.command) = make_if_command ((yyvsp[(2) - (7)].command), (yyvsp[(4) - (7)].command), (yyvsp[(6) - (7)].command)); }
1560      break;
1561 
1562    case 109:
1563! #line 1003 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1564      { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(5) - (6)].command)); }
1565      break;
1566 
1567    case 110:
1568! #line 1008 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1569      { (yyval.command) = make_group_command ((yyvsp[(2) - (3)].command)); }
1570      break;
1571 
1572    case 111:
1573! #line 1012 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1574      { (yyval.command) = make_arith_command ((yyvsp[(1) - (1)].word_list)); }
1575      break;
1576 
1577    case 112:
1578! #line 1016 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1579      { (yyval.command) = (yyvsp[(2) - (3)].command); }
1580      break;
1581 
1582    case 113:
1583! #line 1020 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1584      { (yyval.command) = make_if_command ((yyvsp[(2) - (4)].command), (yyvsp[(4) - (4)].command), (COMMAND *)NULL); }
1585      break;
1586 
1587    case 114:
1588! #line 1022 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1589      { (yyval.command) = make_if_command ((yyvsp[(2) - (6)].command), (yyvsp[(4) - (6)].command), (yyvsp[(6) - (6)].command)); }
1590      break;
1591 
1592    case 115:
1593! #line 1024 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1594      { (yyval.command) = make_if_command ((yyvsp[(2) - (5)].command), (yyvsp[(4) - (5)].command), (yyvsp[(5) - (5)].command)); }
1595      break;
1596 
1597    case 117:
1598! #line 1029 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1599      { (yyvsp[(2) - (2)].pattern)->next = (yyvsp[(1) - (2)].pattern); (yyval.pattern) = (yyvsp[(2) - (2)].pattern); }
1600      break;
1601 
1602    case 118:
1603! #line 1033 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1604      { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (yyvsp[(4) - (4)].command)); }
1605      break;
1606 
1607    case 119:
1608! #line 1035 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1609      { (yyval.pattern) = make_pattern_list ((yyvsp[(2) - (4)].word_list), (COMMAND *)NULL); }
1610      break;
1611 
1612    case 120:
1613! #line 1037 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1614      { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (yyvsp[(5) - (5)].command)); }
1615      break;
1616 
1617    case 121:
1618! #line 1039 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1619      { (yyval.pattern) = make_pattern_list ((yyvsp[(3) - (5)].word_list), (COMMAND *)NULL); }
1620      break;
1621 
1622    case 122:
1623! #line 1043 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1624      { (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1625      break;
1626 
1627    case 123:
1628! #line 1045 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1629      { (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1630      break;
1631 
1632    case 124:
1633! #line 1047 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1634      { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1635      break;
1636 
1637    case 125:
1638! #line 1049 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1639      { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_FALLTHROUGH; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1640      break;
1641 
1642    case 126:
1643! #line 1051 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1644      { (yyvsp[(1) - (2)].pattern)->flags |= CASEPAT_TESTNEXT; (yyval.pattern) = (yyvsp[(1) - (2)].pattern); }
1645      break;
1646 
1647    case 127:
1648! #line 1053 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1649      { (yyvsp[(2) - (3)].pattern)->flags |= CASEPAT_TESTNEXT; (yyvsp[(2) - (3)].pattern)->next = (yyvsp[(1) - (3)].pattern); (yyval.pattern) = (yyvsp[(2) - (3)].pattern); }
1650      break;
1651 
1652    case 128:
1653! #line 1057 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1654      { (yyval.word_list) = make_word_list ((yyvsp[(1) - (1)].word), (WORD_LIST *)NULL); }
1655      break;
1656 
1657    case 129:
1658! #line 1059 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1659      { (yyval.word_list) = make_word_list ((yyvsp[(3) - (3)].word), (yyvsp[(1) - (3)].word_list)); }
1660      break;
1661 
1662    case 130:
1663! #line 1068 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1664      {
1665                          (yyval.command) = (yyvsp[(2) - (2)].command);
1666***************
1667*** 3115,3119 ****
1668 
1669    case 132:
1670! #line 1077 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1671      {
1672                          (yyval.command) = (yyvsp[(2) - (2)].command);
1673--- 3115,3119 ----
1674 
1675    case 132:
1676! #line 1077 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1677      {
1678                          (yyval.command) = (yyvsp[(2) - (2)].command);
1679***************
1680*** 3122,3126 ****
1681 
1682    case 134:
1683! #line 1084 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1684      {
1685                          if ((yyvsp[(1) - (3)].command)->type == cm_connection)
1686--- 3122,3126 ----
1687 
1688    case 134:
1689! #line 1084 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1690      {
1691                          if ((yyvsp[(1) - (3)].command)->type == cm_connection)
1692***************
1693*** 3132,3146 ****
1694 
1695    case 136:
1696! #line 1095 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1697      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
1698      break;
1699 
1700    case 137:
1701! #line 1097 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1702      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
1703      break;
1704 
1705    case 138:
1706! #line 1099 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1707      {
1708                          if ((yyvsp[(1) - (4)].command)->type == cm_connection)
1709--- 3132,3146 ----
1710 
1711    case 136:
1712! #line 1095 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1713      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
1714      break;
1715 
1716    case 137:
1717! #line 1097 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1718      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
1719      break;
1720 
1721    case 138:
1722! #line 1099 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1723      {
1724                          if ((yyvsp[(1) - (4)].command)->type == cm_connection)
1725***************
1726*** 3152,3186 ****
1727 
1728    case 139:
1729! #line 1106 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1730      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1731      break;
1732 
1733    case 140:
1734! #line 1108 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1735      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1736      break;
1737 
1738    case 141:
1739! #line 1110 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1740      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1741      break;
1742 
1743    case 144:
1744! #line 1118 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1745      { (yyval.number) = '\n'; }
1746      break;
1747 
1748    case 145:
1749! #line 1120 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1750      { (yyval.number) = ';'; }
1751      break;
1752 
1753    case 146:
1754! #line 1122 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1755      { (yyval.number) = yacc_EOF; }
1756      break;
1757 
1758    case 149:
1759! #line 1136 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1760      {
1761                          (yyval.command) = (yyvsp[(1) - (1)].command);
1762--- 3152,3186 ----
1763 
1764    case 139:
1765! #line 1106 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1766      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1767      break;
1768 
1769    case 140:
1770! #line 1108 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1771      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), ';'); }
1772      break;
1773 
1774    case 141:
1775! #line 1110 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1776      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1777      break;
1778 
1779    case 144:
1780! #line 1118 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1781      { (yyval.number) = '\n'; }
1782      break;
1783 
1784    case 145:
1785! #line 1120 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1786      { (yyval.number) = ';'; }
1787      break;
1788 
1789    case 146:
1790! #line 1122 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1791      { (yyval.number) = yacc_EOF; }
1792      break;
1793 
1794    case 149:
1795! #line 1136 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1796      {
1797                          (yyval.command) = (yyvsp[(1) - (1)].command);
1798***************
1799*** 3198,3202 ****
1800 
1801    case 150:
1802! #line 1149 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1803      {
1804                          if ((yyvsp[(1) - (2)].command)->type == cm_connection)
1805--- 3198,3202 ----
1806 
1807    case 150:
1808! #line 1149 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1809      {
1810                          if ((yyvsp[(1) - (2)].command)->type == cm_connection)
1811***************
1812*** 3217,3221 ****
1813 
1814    case 151:
1815! #line 1165 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1816      {
1817                          (yyval.command) = (yyvsp[(1) - (2)].command);
1818--- 3217,3221 ----
1819 
1820    case 151:
1821! #line 1165 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1822      {
1823                          (yyval.command) = (yyvsp[(1) - (2)].command);
1824***************
1825*** 3233,3247 ****
1826 
1827    case 152:
1828! #line 1180 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1829      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
1830      break;
1831 
1832    case 153:
1833! #line 1182 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1834      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
1835      break;
1836 
1837    case 154:
1838! #line 1184 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1839      {
1840                          if ((yyvsp[(1) - (3)].command)->type == cm_connection)
1841--- 3233,3247 ----
1842 
1843    case 152:
1844! #line 1180 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1845      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), AND_AND); }
1846      break;
1847 
1848    case 153:
1849! #line 1182 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1850      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), OR_OR); }
1851      break;
1852 
1853    case 154:
1854! #line 1184 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1855      {
1856                          if ((yyvsp[(1) - (3)].command)->type == cm_connection)
1857***************
1858*** 3253,3272 ****
1859 
1860    case 155:
1861! #line 1191 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1862      { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); }
1863      break;
1864 
1865    case 156:
1866! #line 1194 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1867      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1868      break;
1869 
1870    case 157:
1871! #line 1198 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1872      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1873      break;
1874 
1875    case 158:
1876! #line 1200 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1877      {
1878                          if ((yyvsp[(2) - (2)].command))
1879--- 3253,3272 ----
1880 
1881    case 155:
1882! #line 1191 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1883      { (yyval.command) = command_connect ((yyvsp[(1) - (3)].command), (yyvsp[(3) - (3)].command), ';'); }
1884      break;
1885 
1886    case 156:
1887! #line 1194 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1888      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1889      break;
1890 
1891    case 157:
1892! #line 1198 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1893      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1894      break;
1895 
1896    case 158:
1897! #line 1200 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1898      {
1899                          if ((yyvsp[(2) - (2)].command))
1900***************
1901*** 3277,3281 ****
1902 
1903    case 159:
1904! #line 1206 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1905      {
1906                          if ((yyvsp[(2) - (2)].command))
1907--- 3277,3281 ----
1908 
1909    case 159:
1910! #line 1206 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1911      {
1912                          if ((yyvsp[(2) - (2)].command))
1913***************
1914*** 3286,3290 ****
1915 
1916    case 160:
1917! #line 1212 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1918      {
1919                          ELEMENT x;
1920--- 3286,3290 ----
1921 
1922    case 160:
1923! #line 1212 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1924      {
1925                          ELEMENT x;
1926***************
1927*** 3306,3310 ****
1928 
1929    case 161:
1930! #line 1229 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1931      {
1932                          ELEMENT x;
1933--- 3306,3310 ----
1934 
1935    case 161:
1936! #line 1229 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1937      {
1938                          ELEMENT x;
1939***************
1940*** 3327,3336 ****
1941 
1942    case 162:
1943! #line 1249 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1944      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); }
1945      break;
1946 
1947    case 163:
1948! #line 1251 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1949      {
1950                          /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */
1951--- 3327,3336 ----
1952 
1953    case 162:
1954! #line 1249 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1955      { (yyval.command) = command_connect ((yyvsp[(1) - (4)].command), (yyvsp[(4) - (4)].command), '|'); }
1956      break;
1957 
1958    case 163:
1959! #line 1251 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1960      {
1961                          /* Make cmd1 |& cmd2 equivalent to cmd1 2>&1 | cmd2 */
1962***************
1963*** 3358,3377 ****
1964 
1965    case 164:
1966! #line 1274 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1967      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1968      break;
1969 
1970    case 165:
1971! #line 1278 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1972      { (yyval.number) = CMD_TIME_PIPELINE; }
1973      break;
1974 
1975    case 166:
1976! #line 1280 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1977      { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
1978      break;
1979 
1980    case 167:
1981! #line 1282 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
1982      { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
1983      break;
1984--- 3358,3377 ----
1985 
1986    case 164:
1987! #line 1274 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1988      { (yyval.command) = (yyvsp[(1) - (1)].command); }
1989      break;
1990 
1991    case 165:
1992! #line 1278 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1993      { (yyval.number) = CMD_TIME_PIPELINE; }
1994      break;
1995 
1996    case 166:
1997! #line 1280 "/usr/src/local/bash/bash-4.3-patched/parse.y"
1998      { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
1999      break;
2000 
2001    case 167:
2002! #line 1282 "/usr/src/local/bash/bash-4.3-patched/parse.y"
2003      { (yyval.number) = CMD_TIME_PIPELINE|CMD_TIME_POSIX; }
2004      break;
2005***************
2006*** 3593,3597 ****
2007 
2008 
2009! #line 1284 "/usr/src/local/chet/src/bash/bash-4.3.28/parse.y"
2010 
2011 
2012--- 3593,3597 ----
2013 
2014 
2015! #line 1284 "/usr/src/local/bash/bash-4.3-patched/parse.y"
2016 
2017 
2018***************
2019*** 4851,4854 ****
2020--- 4851,4864 ----
2021  }
2022 
2023+ char *
2024+ parser_remaining_input ()
2025+ {
2026+   if (shell_input_line == 0)
2027+     return 0;
2028+   if (shell_input_line_index < 0 || shell_input_line_index >= shell_input_line_len)
2029+     return '\0';      /* XXX */
2030+   return (shell_input_line + shell_input_line_index);
2031+ }
2032+
2033  #ifdef INCLUDE_UNUSED
2034  /* Back the input pointer up by one, effectively `ungetting' a character. */
2035***************
2036*** 6340,6345 ****
2037    /* reset_parser clears shell_input_line and associated variables */
2038    restore_input_line_state (&ls);
2039!   if (interactive)
2040!     token_to_read = 0;
2041 
2042    /* Need to find how many characters parse_and_execute consumed, update
2043--- 6350,6355 ----
2044    /* reset_parser clears shell_input_line and associated variables */
2045    restore_input_line_state (&ls);
2046!
2047!   token_to_read = 0;
2048 
2049    /* Need to find how many characters parse_and_execute consumed, update
2050*** ../bash-4.3/patchlevel.h    2012-12-29 10:47:57.000000000 -0500
2051--- patchlevel.h        2014-03-20 20:01:28.000000000 -0400
2052***************
2053*** 26,30 ****
2054     looks for to find the patch level (for the sccs version string). */
2055 
2056! #define PATCHLEVEL 29
2057 
2058  #endif /* _PATCHLEVEL_H_ */
2059--- 26,30 ----
2060     looks for to find the patch level (for the sccs version string). */
2061 
2062! #define PATCHLEVEL 30
2063 
2064  #endif /* _PATCHLEVEL_H_ */
Note: See TracBrowser for help on using the repository browser.