|
1 BASH PATCH REPORT |
|
2 ================= |
|
3 |
|
4 Bash-Release: 4.3 |
|
5 Patch-ID: bash43-028 |
|
6 |
|
7 Bug-Reported-by: Florian Weimer <[email protected]> |
|
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_ */ |