]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - src/patches/bash/bash43-028
readline: add patch 001 for version 8.0
[people/pmueller/ipfire-2.x.git] / src / patches / bash / bash43-028
1 BASH PATCH REPORT
2 =================
3
4 Bash-Release: 4.3
5 Patch-ID: bash43-028
6
7 Bug-Reported-by: Florian Weimer <fweimer@redhat.com>
8 Bug-Reference-ID:
9 Bug-Reference-URL:
10
11 Bug-Description:
12
13 There are two local buffer overflows in parse.y that can cause the shell
14 to dump core when given many here-documents attached to a single command
15 or many nested loops.
16
17 Patch (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_ */