From a9f37f16d200076c2ccdba621465e4f8d7d9316f Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Mon, 27 Mar 2000 21:11:37 +0000 Subject: [PATCH] Fixed bug with repeated \e in psql (failed to clear buffers correctly) --- src/bin/psql/command.c | 24 ++++++++++-------------- src/bin/psql/mainloop.c | 4 ++-- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index db250f02b6..5c6929a719 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.25 2000/03/18 22:48:29 petere Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.26 2000/03/27 21:11:37 petere Exp $ */ #include "postgres.h" #include "command.h" @@ -1442,21 +1442,16 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf) { /* read file back in */ char line[1024]; - size_t result; resetPQExpBuffer(query_buf); - do - { - result = fread(line, 1, 1024, stream); - if (ferror(stream)) - { - psql_error("%s: %s\n", fname, strerror(errno)); - error = true; - break; - } - appendBinaryPQExpBuffer(query_buf, line, result); - } while (!feof(stream)); - appendPQExpBufferChar(query_buf, '\0'); + while (fgets(line, 1024, stream)) + appendPQExpBufferStr(query_buf, line); + + if (ferror(stream)) + { + psql_error("%s: %s\n", fname, strerror(errno)); + error = true; + } fclose(stream); } @@ -1471,6 +1466,7 @@ do_edit(const char *filename_arg, PQExpBuffer query_buf) } } } + return !error; } diff --git a/src/bin/psql/mainloop.c b/src/bin/psql/mainloop.c index eadd50e94a..b27d344a78 100644 --- a/src/bin/psql/mainloop.c +++ b/src/bin/psql/mainloop.c @@ -3,7 +3,7 @@ * * Copyright 2000 by PostgreSQL Global Development Group * - * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.26 2000/03/18 18:03:11 tgl Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/mainloop.c,v 1.27 2000/03/27 21:11:37 petere Exp $ */ #include "postgres.h" #include "mainloop.h" @@ -481,7 +481,7 @@ MainLoop(FILE *source) /* Put the rest of the line in the query buffer. */ - if (line[query_start + strspn(line + query_start, " \t")] != '\0') + if (line[query_start + strspn(line + query_start, " \t\n")] != '\0') { if (query_buf->len > 0) appendPQExpBufferChar(query_buf, '\n');