Fixed bug with repeated \e in psql (failed to clear buffers correctly)
authorPeter Eisentraut <[email protected]>
Mon, 27 Mar 2000 21:11:37 +0000 (21:11 +0000)
committerPeter Eisentraut <[email protected]>
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');