diff options
author | Jari Aalto <jari.aalto@cante.net> | 1997-09-22 20:22:27 +0000 |
---|---|---|
committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:51 +0000 |
commit | e8ce775db824de329b81293b4e5d8fbd65624528 (patch) | |
tree | 4b20c4dc766f5172b65ca1bc16ae1b6d48920fa1 /y.tab.c | |
parent | d166f048818e10cf3799aa24a174fb22835f1acc (diff) | |
download | bash-e8ce775db824de329b81293b4e5d8fbd65624528.tar.gz |
Imported from ../bash-2.01.1.tar.gz.
Diffstat (limited to 'y.tab.c')
-rw-r--r-- | y.tab.c | 247 |
1 files changed, 128 insertions, 119 deletions
@@ -1,5 +1,5 @@ -/* A Bison parser, made from ./parse.y +/* A Bison parser, made from /usr/homes/chet/src/bash/bash-2.01.1/parse.y by GNU Bison version 1.25 */ @@ -39,7 +39,7 @@ #define GREATER_BAR 289 #define yacc_EOF 290 -#line 21 "./parse.y" +#line 21 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" #include "config.h" @@ -189,7 +189,7 @@ static int function_bstart; static REDIRECTEE redir; -#line 171 "./parse.y" +#line 171 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" typedef union { WORD_DESC *word; /* the word that we read. */ int number; /* the number that we read. */ @@ -1071,7 +1071,7 @@ yyreduce: switch (yyn) { case 1: -#line 215 "./parse.y" +#line 215 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of regular command. Discard the error safety net,and return the command just parsed. */ @@ -1082,7 +1082,7 @@ case 1: ; break;} case 2: -#line 224 "./parse.y" +#line 224 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of regular command, but not a very interesting one. Return a NULL command. */ @@ -1091,7 +1091,7 @@ case 2: ; break;} case 3: -#line 231 "./parse.y" +#line 231 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Error during parsing. Return NULL command. */ global_command = (COMMAND *)NULL; @@ -1108,7 +1108,7 @@ case 3: ; break;} case 4: -#line 246 "./parse.y" +#line 246 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { /* Case of EOF seen by itself. Do ignoreeof or not. */ @@ -1118,57 +1118,57 @@ case 4: ; break;} case 5: -#line 256 "./parse.y" +#line 256 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; break;} case 6: -#line 258 "./parse.y" +#line 258 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-1].word_list); ; break;} case 7: -#line 262 "./parse.y" +#line 262 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (1, r_output_direction, redir); ; break;} case 8: -#line 267 "./parse.y" +#line 267 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (0, r_input_direction, redir); ; break;} case 9: -#line 272 "./parse.y" +#line 272 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_output_direction, redir); ; break;} case 10: -#line 277 "./parse.y" +#line 277 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_input_direction, redir); ; break;} case 11: -#line 282 "./parse.y" +#line 282 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (1, r_appending_to, redir); ; break;} case 12: -#line 287 "./parse.y" +#line 287 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_appending_to, redir); ; break;} case 13: -#line 292 "./parse.y" +#line 292 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (0, r_reading_until, redir); @@ -1176,7 +1176,7 @@ case 13: ; break;} case 14: -#line 298 "./parse.y" +#line 298 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_reading_until, redir); @@ -1184,63 +1184,63 @@ case 14: ; break;} case 15: -#line 304 "./parse.y" +#line 304 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; yyval.redirect = make_redirection (0, r_duplicating_input, redir); ; break;} case 16: -#line 309 "./parse.y" +#line 309 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input, redir); ; break;} case 17: -#line 314 "./parse.y" +#line 314 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; yyval.redirect = make_redirection (1, r_duplicating_output, redir); ; break;} case 18: -#line 319 "./parse.y" +#line 319 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = yyvsp[0].number; yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output, redir); ; break;} case 19: -#line 324 "./parse.y" +#line 324 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (0, r_duplicating_input_word, redir); ; break;} case 20: -#line 329 "./parse.y" +#line 329 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_input_word, redir); ; break;} case 21: -#line 334 "./parse.y" +#line 334 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (1, r_duplicating_output_word, redir); ; break;} case 22: -#line 339 "./parse.y" +#line 339 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_duplicating_output_word, redir); ; break;} case 23: -#line 344 "./parse.y" +#line 344 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection @@ -1249,7 +1249,7 @@ case 23: ; break;} case 24: -#line 351 "./parse.y" +#line 351 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection @@ -1258,88 +1258,88 @@ case 24: ; break;} case 25: -#line 358 "./parse.y" +#line 358 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; yyval.redirect = make_redirection (1, r_close_this, redir); ; break;} case 26: -#line 363 "./parse.y" +#line 363 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir); ; break;} case 27: -#line 368 "./parse.y" +#line 368 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; yyval.redirect = make_redirection (0, r_close_this, redir); ; break;} case 28: -#line 373 "./parse.y" +#line 373 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.dest = 0L; yyval.redirect = make_redirection (yyvsp[-2].number, r_close_this, redir); ; break;} case 29: -#line 378 "./parse.y" +#line 378 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (1, r_err_and_out, redir); ; break;} case 30: -#line 383 "./parse.y" +#line 383 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_input_output, redir); ; break;} case 31: -#line 388 "./parse.y" +#line 388 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (0, r_input_output, redir); ; break;} case 32: -#line 393 "./parse.y" +#line 393 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (1, r_output_force, redir); ; break;} case 33: -#line 398 "./parse.y" +#line 398 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { redir.filename = yyvsp[0].word; yyval.redirect = make_redirection (yyvsp[-2].number, r_output_force, redir); ; break;} case 34: -#line 405 "./parse.y" +#line 405 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; break;} case 35: -#line 407 "./parse.y" +#line 407 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.element.word = yyvsp[0].word; yyval.element.redirect = 0; ; break;} case 36: -#line 409 "./parse.y" +#line 409 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.element.redirect = yyvsp[0].redirect; yyval.element.word = 0; ; break;} case 37: -#line 413 "./parse.y" +#line 413 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.redirect = yyvsp[0].redirect; ; break;} case 38: -#line 417 "./parse.y" +#line 417 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { register REDIRECT *t; @@ -1350,23 +1350,23 @@ case 38: ; break;} case 39: -#line 428 "./parse.y" +#line 428 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_simple_command (yyvsp[0].element, (COMMAND *)NULL); ; break;} case 40: -#line 430 "./parse.y" +#line 430 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_simple_command (yyvsp[0].element, yyvsp[-1].command); ; break;} case 41: -#line 434 "./parse.y" +#line 434 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = clean_simple_command (yyvsp[0].command); ; break;} case 42: -#line 436 "./parse.y" +#line 436 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 43: -#line 438 "./parse.y" +#line 438 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { COMMAND *tc; @@ -1395,191 +1395,191 @@ case 43: ; break;} case 44: -#line 467 "./parse.y" +#line 467 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 45: -#line 469 "./parse.y" +#line 469 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 46: -#line 471 "./parse.y" +#line 471 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_while_command (yyvsp[-3].command, yyvsp[-1].command); ; break;} case 47: -#line 473 "./parse.y" +#line 473 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_until_command (yyvsp[-3].command, yyvsp[-1].command); ; break;} case 48: -#line 475 "./parse.y" +#line 475 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 49: -#line 477 "./parse.y" +#line 477 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 50: -#line 479 "./parse.y" +#line 479 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 51: -#line 481 "./parse.y" +#line 481 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 52: -#line 483 "./parse.y" +#line 483 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 53: -#line 487 "./parse.y" +#line 487 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 54: -#line 489 "./parse.y" +#line 489 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-4].word, add_string_to_list ("$@", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 55: -#line 491 "./parse.y" +#line 491 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 56: -#line 493 "./parse.y" +#line 493 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 57: -#line 495 "./parse.y" +#line 495 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command); ; break;} case 58: -#line 497 "./parse.y" +#line 497 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_for_command (yyvsp[-8].word, REVERSE_LIST (yyvsp[-5].word_list, WORD_LIST *), yyvsp[-1].command); ; break;} case 59: -#line 501 "./parse.y" +#line 501 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 60: -#line 505 "./parse.y" +#line 505 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-4].word, add_string_to_list ("$@", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 61: -#line 509 "./parse.y" +#line 509 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 62: -#line 513 "./parse.y" +#line 513 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-5].word, add_string_to_list ("\"$@\"", (WORD_LIST *)NULL), yyvsp[-1].command); ; break;} case 63: -#line 517 "./parse.y" +#line 517 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command); ; break;} case 64: -#line 521 "./parse.y" +#line 521 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_select_command (yyvsp[-8].word, (WORD_LIST *)reverse_list (yyvsp[-5].word_list), yyvsp[-1].command); ; break;} case 65: -#line 527 "./parse.y" +#line 527 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_case_command (yyvsp[-4].word, (PATTERN_LIST *)NULL); ; break;} case 66: -#line 529 "./parse.y" +#line 529 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_case_command (yyvsp[-5].word, yyvsp[-2].pattern); ; break;} case 67: -#line 531 "./parse.y" +#line 531 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_case_command (yyvsp[-4].word, yyvsp[-1].pattern); ; break;} case 68: -#line 535 "./parse.y" +#line 535 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 69: -#line 539 "./parse.y" +#line 539 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_function_def (yyvsp[-4].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 70: -#line 542 "./parse.y" +#line 542 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_function_def (yyvsp[-2].word, yyvsp[0].command, function_dstart, function_bstart); ; break;} case 71: -#line 546 "./parse.y" +#line 546 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[-1].command->flags |= CMD_WANT_SUBSHELL; yyval.command = yyvsp[-1].command; ; break;} case 72: -#line 550 "./parse.y" +#line 550 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, (COMMAND *)NULL); ; break;} case 73: -#line 552 "./parse.y" +#line 552 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-5].command, yyvsp[-3].command, yyvsp[-1].command); ; break;} case 74: -#line 554 "./parse.y" +#line 554 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[-1].command); ; break;} case 75: -#line 559 "./parse.y" +#line 559 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_group_command (yyvsp[-1].command); ; break;} case 76: -#line 563 "./parse.y" +#line 563 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-2].command, yyvsp[0].command, (COMMAND *)NULL); ; break;} case 77: -#line 565 "./parse.y" +#line 565 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-4].command, yyvsp[-2].command, yyvsp[0].command); ; break;} case 78: -#line 567 "./parse.y" +#line 567 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = make_if_command (yyvsp[-3].command, yyvsp[-1].command, yyvsp[0].command); ; break;} case 80: -#line 572 "./parse.y" +#line 572 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].pattern->next = yyvsp[-1].pattern; yyval.pattern = yyvsp[0].pattern; ; break;} case 81: -#line 576 "./parse.y" +#line 576 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; break;} case 82: -#line 578 "./parse.y" +#line 578 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; break;} case 83: -#line 580 "./parse.y" +#line 580 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, yyvsp[0].command); ; break;} case 84: -#line 582 "./parse.y" +#line 582 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.pattern = make_pattern_list (yyvsp[-2].word_list, (COMMAND *)NULL); ; break;} case 86: -#line 587 "./parse.y" +#line 587 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[-1].pattern->next = yyvsp[-2].pattern; yyval.pattern = yyvsp[-1].pattern; ; break;} case 87: -#line 591 "./parse.y" +#line 591 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, (WORD_LIST *)NULL); ; break;} case 88: -#line 593 "./parse.y" +#line 593 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.word_list = make_word_list (yyvsp[0].word, yyvsp[-2].word_list); ; break;} case 89: -#line 602 "./parse.y" +#line 602 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; if (need_here_doc) @@ -1587,13 +1587,13 @@ case 89: ; break;} case 91: -#line 611 "./parse.y" +#line 611 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 93: -#line 618 "./parse.y" +#line 618 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-2].command->type == cm_connection) yyval.command = connect_async_list (yyvsp[-2].command, (COMMAND *)NULL, '&'); @@ -1602,15 +1602,15 @@ case 93: ; break;} case 95: -#line 629 "./parse.y" +#line 629 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; break;} case 96: -#line 631 "./parse.y" +#line 631 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; break;} case 97: -#line 633 "./parse.y" +#line 633 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-3].command->type == cm_connection) yyval.command = connect_async_list (yyvsp[-3].command, yyvsp[0].command, '&'); @@ -1619,19 +1619,19 @@ case 97: ; break;} case 98: -#line 640 "./parse.y" +#line 640 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; break;} case 99: -#line 642 "./parse.y" +#line 642 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, ';'); ; break;} case 100: -#line 644 "./parse.y" +#line 644 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 106: -#line 663 "./parse.y" +#line 663 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; if (need_here_doc) @@ -1639,7 +1639,7 @@ case 106: ; break;} case 107: -#line 669 "./parse.y" +#line 669 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-1].command->type == cm_connection) yyval.command = connect_async_list (yyvsp[-1].command, (COMMAND *)NULL, '&'); @@ -1650,7 +1650,7 @@ case 107: ; break;} case 108: -#line 678 "./parse.y" +#line 678 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[-1].command; if (need_here_doc) @@ -1658,15 +1658,15 @@ case 108: ; break;} case 109: -#line 686 "./parse.y" +#line 686 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, AND_AND); ; break;} case 110: -#line 688 "./parse.y" +#line 688 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, OR_OR); ; break;} case 111: -#line 690 "./parse.y" +#line 690 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { if (yyvsp[-2].command->type == cm_connection) yyval.command = connect_async_list (yyvsp[-2].command, yyvsp[0].command, '&'); @@ -1675,59 +1675,59 @@ case 111: ; break;} case 112: -#line 697 "./parse.y" +#line 697 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-2].command, yyvsp[0].command, ';'); ; break;} case 113: -#line 700 "./parse.y" +#line 700 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 114: -#line 704 "./parse.y" +#line 704 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 115: -#line 706 "./parse.y" +#line 706 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= CMD_INVERT_RETURN; yyval.command = yyvsp[0].command; ; break;} case 116: -#line 711 "./parse.y" +#line 711 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number; yyval.command = yyvsp[0].command; ; break;} case 117: -#line 716 "./parse.y" +#line 716 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-2].number; yyval.command = yyvsp[0].command; ; break;} case 118: -#line 721 "./parse.y" +#line 721 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyvsp[0].command->flags |= yyvsp[-1].number|CMD_INVERT_RETURN; yyval.command = yyvsp[0].command; ; break;} case 119: -#line 729 "./parse.y" +#line 729 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = command_connect (yyvsp[-3].command, yyvsp[0].command, '|'); ; break;} case 120: -#line 731 "./parse.y" +#line 731 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.command = yyvsp[0].command; ; break;} case 121: -#line 735 "./parse.y" +#line 735 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.number = CMD_TIME_PIPELINE; ; break;} case 122: -#line 737 "./parse.y" +#line 737 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" { yyval.number = CMD_TIME_PIPELINE|CMD_TIME_POSIX; ; break;} } @@ -1928,7 +1928,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 739 "./parse.y" +#line 739 "/usr/homes/chet/src/bash/bash-2.01.1/parse.y" /* Possible states for the parser that require it to do special things. */ @@ -3722,7 +3722,7 @@ read_token_word (character) #if defined (ARRAY_VARS) /* Identify possible compound array variable assignment. */ - else if (character == '=') + else if (character == '=' && token_index > 0) { peek_char = shell_getc (1); if (peek_char == '(') /* ) */ @@ -4270,6 +4270,7 @@ decode_prompt_string (string) { /* Use the value of PWD because it is much more efficient. */ char t_string[PATH_MAX]; + int tlen; temp = get_string_value ("PWD"); @@ -4278,11 +4279,17 @@ decode_prompt_string (string) if (getcwd (t_string, sizeof(t_string)) == 0) { t_string[0] = '.'; - t_string[1] = '\0'; + tlen = 1; } + else + tlen = strlen (t_string); } else - strcpy (t_string, temp); + { + tlen = sizeof (t_string) - 1; + strncpy (t_string, temp, tlen); + } + t_string[tlen] = '\0'; if (c == 'W') { @@ -4291,6 +4298,8 @@ decode_prompt_string (string) strcpy (t_string, t + 1); } else + /* polite_directory_format is guaranteed to return a string + no longer than PATH_MAX - 1 characters. */ strcpy (t_string, polite_directory_format (t_string)); /* If we're going to be expanding the prompt string later, |