Ticket #45234: bash43-028

File bash43-028, 68.3 KB (added by steven@…, 10 years ago)

/opt/local/var/macports/distfiles/bash/bash43-028

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