Fixed bug with repeated \e in psql (failed to clear buffers correctly)

This commit is contained in:
Peter Eisentraut 2000-03-27 21:11:37 +00:00
parent 39f69bc38f
commit a9f37f16d2
2 changed files with 12 additions and 16 deletions

View File

@ -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;
}

View File

@ -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');