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