Commit 98e9775a authored by Bruce Momjian's avatar Bruce Momjian

Use standard macro for psql binary file open. Add comment explaining

control-z requirement.
parent c8c40bbc
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2003, PostgreSQL Global Development Group * Copyright (c) 2000-2003, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.118 2004/07/11 00:54:55 momjian Exp $ * $PostgreSQL: pgsql/src/bin/psql/command.c,v 1.119 2004/07/11 13:29:15 momjian Exp $
*/ */
#include "postgres_fe.h" #include "postgres_fe.h"
#include "command.h" #include "command.h"
...@@ -1197,7 +1197,7 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf) ...@@ -1197,7 +1197,7 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf)
if (!error) if (!error)
{ {
#endif #endif
stream = fopen(fname, R_TEXTFILE); stream = fopen(fname, PG_BINARY_R);
if (!stream) if (!stream)
{ {
psql_error("%s: %s\n", fname, strerror(errno)); psql_error("%s: %s\n", fname, strerror(errno));
...@@ -1262,7 +1262,7 @@ process_file(char *filename) ...@@ -1262,7 +1262,7 @@ process_file(char *filename)
if (!filename) if (!filename)
return false; return false;
fd = fopen(filename, R_TEXTFILE); fd = fopen(filename, PG_BINARY_R);
if (!fd) if (!fd)
{ {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2003, PostgreSQL Global Development Group * Copyright (c) 2000-2003, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.36 2004/07/11 00:54:55 momjian Exp $ * $PostgreSQL: pgsql/src/bin/psql/common.h,v 1.37 2004/07/11 13:29:15 momjian Exp $
*/ */
#ifndef COMMON_H #ifndef COMMON_H
#define COMMON_H #define COMMON_H
...@@ -62,16 +62,4 @@ extern char parse_char(char **buf); ...@@ -62,16 +62,4 @@ extern char parse_char(char **buf);
extern char *expand_tilde(char **filename); extern char *expand_tilde(char **filename);
/*
* WIN32 treats Control-Z as EOF in files opened in text mode.
* Therefore, we open files in binary mode on Win32 so we can read
* literal control-Z. The other affect is that we see CRLF, but
* that is OK because we can already handle those cleanly.
*/
#ifndef WIN32
#define R_TEXTFILE "r"
#else
#define R_TEXTFILE "rb"
#endif
#endif /* COMMON_H */ #endif /* COMMON_H */
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* *
* Copyright (c) 2000-2003, PostgreSQL Global Development Group * Copyright (c) 2000-2003, PostgreSQL Global Development Group
* *
* $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.48 2004/07/11 00:54:55 momjian Exp $ * $PostgreSQL: pgsql/src/bin/psql/copy.c,v 1.49 2004/07/11 13:29:15 momjian Exp $
*/ */
#include "postgres_fe.h" #include "postgres_fe.h"
#include "copy.h" #include "copy.h"
...@@ -516,7 +516,7 @@ do_copy(const char *args) ...@@ -516,7 +516,7 @@ do_copy(const char *args)
if (options->from) if (options->from)
{ {
if (options->file) if (options->file)
copystream = fopen(options->file, R_TEXTFILE); copystream = fopen(options->file, PG_BINARY_R);
else if (!options->psql_inout) else if (!options->psql_inout)
copystream = pset.cur_cmd_source; copystream = pset.cur_cmd_source;
else else
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.4 2004/07/11 00:54:55 momjian Exp $ * $PostgreSQL: pgsql/src/bin/psql/psqlscan.l,v 1.5 2004/07/11 13:29:15 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -1284,7 +1284,7 @@ psql_scan_slash_option(PsqlScanState state, ...@@ -1284,7 +1284,7 @@ psql_scan_slash_option(PsqlScanState state,
char buf[512]; char buf[512];
size_t result; size_t result;
fd = popen(cmd, R_TEXTFILE); fd = popen(cmd, PG_BINARY_R);
if (!fd) if (!fd)
{ {
psql_error("%s: %s\n", cmd, strerror(errno)); psql_error("%s: %s\n", cmd, strerror(errno));
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* $PostgreSQL: pgsql/src/include/c.h,v 1.165 2004/05/21 05:08:03 tgl Exp $ * $PostgreSQL: pgsql/src/include/c.h,v 1.166 2004/07/11 13:29:16 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -671,6 +671,13 @@ typedef NameData *Name; ...@@ -671,6 +671,13 @@ typedef NameData *Name;
* ---------------------------------------------------------------- * ----------------------------------------------------------------
*/ */
/*
* NOTE: this is also used for opening text files.
* WIN32 treats Control-Z as EOF in files opened in text mode.
* Therefore, we open files in binary mode on Win32 so we can read
* literal control-Z. The other affect is that we see CRLF, but
* that is OK because we can already handle those cleanly.
*/
#if defined(__CYGWIN__) || defined(WIN32) #if defined(__CYGWIN__) || defined(WIN32)
#define PG_BINARY O_BINARY #define PG_BINARY O_BINARY
#define PG_BINARY_R "rb" #define PG_BINARY_R "rb"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment