aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2005-09-11 00:36:14 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2005-09-11 00:36:14 +0000
commite1a7d1b9f3d33344b2eb09d94db1a62a93b29b30 (patch)
tree2ae9102e94e3e3b01de5f47d3b8590435a6d2d0f /src
parentd1348895a7e1bf8cac4b4b10def6ce14b3885120 (diff)
downloadpostgresql-e1a7d1b9f3d33344b2eb09d94db1a62a93b29b30.tar.gz
postgresql-e1a7d1b9f3d33344b2eb09d94db1a62a93b29b30.zip
Avoid changing stdin/stdout to binary mode on Windows unless that is
really the source or destination of the archive. I think this will resolve recent complaints that password prompting is broken in pg_restore on Windows. Note that password prompting and reading from stdin is an unworkable combination on Windows ... but that was true anyway.
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_backup_archiver.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
index e956bac4651..f03f2c2d4e1 100644
--- a/src/bin/pg_dump/pg_backup_archiver.c
+++ b/src/bin/pg_dump/pg_backup_archiver.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.114 2005/08/23 22:40:31 tgl Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.115 2005/09/11 00:36:14 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1601,11 +1601,12 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
/*
* On Windows, we need to use binary mode to read/write non-text archive
- * formats. Force stdin/stdout into binary mode in case that is what
+ * formats. Force stdin/stdout into binary mode if that is what
* we are using.
*/
#ifdef WIN32
- if (fmt != archNull)
+ if (fmt != archNull &&
+ (AH->fSpec == NULL || strcmp(AH->fSpec, "") == 0))
{
if (mode == archModeWrite)
setmode(fileno(stdout), O_BINARY);