*
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/exec.c,v 1.18 2004/08/08 02:22:55 momjian Exp $
+ *   $PostgreSQL: pgsql/src/port/exec.c,v 1.19 2004/08/08 03:21:39 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
            CloseHandle(childstdoutrddup);
            return NULL;
        }
-       
-       
+
        /* We try just once */
        if (ReadFile(childstdoutrddup, line, maxsize, &bytesread, NULL) &&
            bytesread > 0)
            /* So we read some data */
            retval = line;
 
+           /*
+            *  Sometime the child returns "\r\n", which doesn't match
+            *  our version string.  The backend uses
+            *  setvbuf(stdout, NULL, _IONBF, 0), but pg_dump doesn't
+            *  so we have to fix it here.
+            */
+           if (strlen(line) >= 2 &&
+               line[strlen(line)-2] == '\r' &&
+               line[strlen(line)-1] == '\n')
+           {
+               line[strlen(line)-2] == '\n';
+               line[strlen(line)-1] == '\0';
+           }
+
            /*
             *  We emulate fgets() behaviour. So if there is no newline
             *  at the end, we add one...