Fixed bug with repeated \e in psql (failed to clear buffers correctly)
authorPeter Eisentraut
Mon, 27 Mar 2000 21:11:37 +0000 (21:11 +0000)
committerPeter Eisentraut
Mon, 27 Mar 2000 21:11:37 +0000 (21:11 +0000)
src/bin/psql/command.c
src/bin/psql/mainloop.c

index db250f02b6e225dec4c8e2fdc03684d849d01d26..5c6929a7192bf8edae9f9015014d8886eefa3756 100644 (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;
 }
 
index eadd50e94af520bdde96313ce3b4604b07294088..b27d344a78160c1d2ac781ca85259d2ab56340c4 100644 (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');