]>
Commit | Line | Data |
---|---|---|
d19c8267 AF |
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_ */ |