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