aboutsummaryrefslogtreecommitdiff
path: root/src/bin/psql/startup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/psql/startup.c')
-rw-r--r--src/bin/psql/startup.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 9e27b8c002b..ff8a5c2431b 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2005, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.116 2005/06/13 06:36:22 neilc Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.117 2005/06/14 02:57:41 momjian Exp $
*/
#include "postgres_fe.h"
@@ -71,6 +71,7 @@ struct adhoc_opts
char *host;
char *port;
char *username;
+ char *logfilename;
enum _actions action;
char *action_string;
bool no_readline;
@@ -109,8 +110,6 @@ main(int argc, char *argv[])
set_pglocale_pgservice(argv[0], "psql");
- pset.progname = get_progname(argv[0]);
-
if (argc > 1)
{
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
@@ -125,6 +124,8 @@ main(int argc, char *argv[])
}
}
+ pset.progname = get_progname(argv[0]);
+
#ifdef WIN32
setvbuf(stderr, NULL, _IONBF, 0);
setup_win32_locks();
@@ -234,6 +235,13 @@ main(int argc, char *argv[])
exit(success ? EXIT_SUCCESS : EXIT_FAILURE);
}
+ if (options.logfilename)
+ {
+ pset.logfile = fopen(options.logfilename, "a");
+ if (!pset.logfile)
+ fprintf(stderr, gettext("logfile open failed for %s\n\n"), options.logfilename);
+ }
+
/*
* Now find something to do
*/
@@ -316,6 +324,8 @@ main(int argc, char *argv[])
}
/* clean up */
+ if (pset.logfile)
+ fclose(pset.logfile);
PQfinish(pset.db);
setQFout(NULL);
@@ -344,6 +354,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
{"host", required_argument, NULL, 'h'},
{"html", no_argument, NULL, 'H'},
{"list", no_argument, NULL, 'l'},
+ {"log", required_argument, NULL, 'L'},
{"no-readline", no_argument, NULL, 'n'},
{"output", required_argument, NULL, 'o'},
{"port", required_argument, NULL, 'p'},
@@ -373,7 +384,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
memset(options, 0, sizeof *options);
- while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:Hlno:p:P:qR:sStT:uU:v:VWxX?",
+ while ((c = getopt_long(argc, argv, "aAc:d:eEf:F:h:HlL:no:p:P:qR:sStT:uU:v:VWxX?",
long_options, &optindex)) != -1)
{
switch (c)
@@ -419,6 +430,9 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts * options)
case 'l':
options->action = ACT_LIST_DB;
break;
+ case 'L':
+ options->logfilename = optarg;
+ break;
case 'n':
options->no_readline = true;
break;