diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c new file mode 100644 index b5664df..d5793f2 *** a/src/bin/psql/startup.c --- b/src/bin/psql/startup.c *************** PsqlSettings pset; *** 42,48 **** #define SYSPSQLRC "psqlrc" #define PSQLRC "psqlrc.conf" #endif ! /* * Structures to pass information between the option parsing routine * and the main function --- 42,48 ---- #define SYSPSQLRC "psqlrc" #define PSQLRC "psqlrc.conf" #endif ! #define NUM_FILES 50 /* * Structures to pass information between the option parsing routine * and the main function *************** struct adhoc_opts *** 64,70 **** char *username; char *logfilename; enum _actions action; ! char *action_string; bool no_readline; bool no_psqlrc; bool single_txn; --- 64,70 ---- char *username; char *logfilename; enum _actions action; ! char *action_string[NUM_FILES]; bool no_readline; bool no_psqlrc; bool single_txn; *************** main(int argc, char *argv[]) *** 90,95 **** --- 90,96 ---- char *password = NULL; char *password_prompt = NULL; bool new_pass; + int i = 0; set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("psql")); *************** main(int argc, char *argv[]) *** 264,270 **** if (!options.no_psqlrc) process_psqlrc(argv[0]); ! successResult = process_file(options.action_string, options.single_txn, false); } /* --- 265,274 ---- if (!options.no_psqlrc) process_psqlrc(argv[0]); ! for (i=0; i< argc; i++) ! { ! successResult = process_file(options.action_string[i], options.single_txn,false); ! } } /* *************** parse_psql_options(int argc, char *argv[ *** 377,382 **** --- 381,387 ---- extern char *optarg; extern int optind; int c; + static int fileindex = 0; memset(options, 0, sizeof *options); *************** parse_psql_options(int argc, char *argv[ *** 392,402 **** pset.popt.topt.format = PRINT_UNALIGNED; break; case 'c': ! options->action_string = optarg; if (optarg[0] == '\\') { options->action = ACT_SINGLE_SLASH; ! options->action_string++; } else options->action = ACT_SINGLE_QUERY; --- 397,407 ---- pset.popt.topt.format = PRINT_UNALIGNED; break; case 'c': ! options->action_string[0] = optarg; if (optarg[0] == '\\') { options->action = ACT_SINGLE_SLASH; ! options->action_string[0]++; } else options->action = ACT_SINGLE_QUERY; *************** parse_psql_options(int argc, char *argv[ *** 412,418 **** break; case 'f': options->action = ACT_FILE; ! options->action_string = optarg; break; case 'F': pset.popt.topt.fieldSep.separator = pg_strdup(optarg); --- 417,423 ---- break; case 'f': options->action = ACT_FILE; ! options->action_string[fileindex++] = optarg; break; case 'F': pset.popt.topt.fieldSep.separator = pg_strdup(optarg);