aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-10-24 18:55:33 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-10-24 19:15:54 +0300
commit22b743b2ca18a692ba8d91bc18e7c42a8b7941ad (patch)
treefe37546032cdf450bdfa6d7567c41064040df25f
parent85bb81de530aed08888f4fc3dec85c5cfbd3befd (diff)
downloadpostgresql-22b743b2ca18a692ba8d91bc18e7c42a8b7941ad.tar.gz
postgresql-22b743b2ca18a692ba8d91bc18e7c42a8b7941ad.zip
Oops, the commit accept pg_controldata -D datadir missed code changes.
I updated the docs and usage blurp, but forgot to commit the code changes required. Spotted by Michael Paquier.
-rw-r--r--src/bin/pg_controldata/pg_controldata.c29
1 files changed, 24 insertions, 5 deletions
diff --git a/src/bin/pg_controldata/pg_controldata.c b/src/bin/pg_controldata/pg_controldata.c
index 118e653b797..dd68f793c3d 100644
--- a/src/bin/pg_controldata/pg_controldata.c
+++ b/src/bin/pg_controldata/pg_controldata.c
@@ -90,7 +90,7 @@ main(int argc, char *argv[])
ControlFileData ControlFile;
int fd;
char ControlFilePath[MAXPGPATH];
- char *DataDir;
+ char *DataDir = NULL;
pg_crc32 crc;
time_t time_tmp;
char pgctime_str[128];
@@ -100,6 +100,7 @@ main(int argc, char *argv[])
const char *progname;
XLogSegNo segno;
char xlogfilename[MAXFNAMELEN];
+ int c;
set_pglocale_pgservice(argv[0], PG_TEXTDOMAIN("pg_controldata"));
@@ -119,10 +120,28 @@ main(int argc, char *argv[])
}
}
- if (argc > 1)
- DataDir = argv[1];
- else
- DataDir = getenv("PGDATA");
+ while ((c = getopt(argc, argv, "D:")) != -1)
+ {
+ switch (c)
+ {
+ case 'D':
+ DataDir = optarg;
+ break;
+
+ default:
+ fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
+ exit(1);
+ }
+ }
+
+ if (DataDir == NULL)
+ {
+ if (optind < argc)
+ DataDir = argv[optind++];
+ else
+ DataDir = getenv("PGDATA");
+ }
+
if (DataDir == NULL)
{
fprintf(stderr, _("%s: no data directory specified\n"), progname);