From: Tom Lane Date: Sun, 11 Sep 2005 00:36:14 +0000 (+0000) Subject: Avoid changing stdin/stdout to binary mode on Windows unless that is X-Git-Tag: REL8_1_0BETA2~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e1a7d1b9f3d33344b2eb09d94db1a62a93b29b30;p=thirdparty%2Fpostgresql.git 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. --- 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);