Index: src/backend/postmaster/postmaster.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/postmaster/postmaster.c,v
retrieving revision 1.535
diff -c -r1.535 postmaster.c
*** src/backend/postmaster/postmaster.c	24 Jul 2007 04:54:09 -0000	1.535
--- src/backend/postmaster/postmaster.c	30 Jul 2007 12:30:28 -0000
***************
*** 3385,3390 ****
--- 3385,3394 ----
  
  	MyProcPid = getpid();		/* reset MyProcPid */
  
+ #ifdef WIN32
+ 	_setmode(fileno(stderr),_O_BINARY);
+ #endif
+ 
  	/* Lose the postmaster's on-exit routines (really a no-op) */
  	on_exit_reset();
  
Index: src/backend/postmaster/syslogger.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/postmaster/syslogger.c,v
retrieving revision 1.33
diff -c -r1.33 syslogger.c
*** src/backend/postmaster/syslogger.c	19 Jul 2007 19:13:43 -0000	1.33
--- src/backend/postmaster/syslogger.c	30 Jul 2007 12:30:28 -0000
***************
*** 162,167 ****
--- 162,171 ----
  
  	MyProcPid = getpid();		/* reset MyProcPid */
  
+ #ifdef WIN32
+ 	_setmode(_fileno(stderr),_O_TEXT);
+ #endif
+ 
  #ifdef EXEC_BACKEND
  	syslogger_parseArgs(argc, argv);
  #endif   /* EXEC_BACKEND */
***************
*** 533,544 ****
  
  				fflush(stderr);
  				fd = _open_osfhandle((long) syslogPipe[1],
! 									 _O_APPEND | _O_TEXT);
  				if (dup2(fd, _fileno(stderr)) < 0)
  					ereport(FATAL,
  							(errcode_for_file_access(),
  							 errmsg("could not redirect stderr: %m")));
  				close(fd);
  				/* Now we are done with the write end of the pipe. */
  				CloseHandle(syslogPipe[1]);
  				syslogPipe[1] = 0;
--- 537,549 ----
  
  				fflush(stderr);
  				fd = _open_osfhandle((long) syslogPipe[1],
! 									 _O_APPEND | _O_BINARY);
  				if (dup2(fd, _fileno(stderr)) < 0)
  					ereport(FATAL,
  							(errcode_for_file_access(),
  							 errmsg("could not redirect stderr: %m")));
  				close(fd);
+ 				_setmode(_fileno(stderr),_O_BINARY);
  				/* Now we are done with the write end of the pipe. */
  				CloseHandle(syslogPipe[1]);
  				syslogPipe[1] = 0;
***************
*** 626,632 ****
  	fd = atoi(*argv++);
  	if (fd != 0)
  	{
! 		fd = _open_osfhandle(fd, _O_APPEND);
  		if (fd > 0)
  		{
  			syslogFile = fdopen(fd, "a");
--- 631,637 ----
  	fd = atoi(*argv++);
  	if (fd != 0)
  	{
! 		fd = _open_osfhandle(fd, _O_APPEND | _O_TEXT);
  		if (fd > 0)
  		{
  			syslogFile = fdopen(fd, "a");
***************
*** 990,995 ****
--- 995,1001 ----
  
  	/* On Windows, need to interlock against data-transfer thread */
  #ifdef WIN32
+ 	_setmode(_fileno(fh), _O_TEXT); /* use CRLF line endings on Windows */
  	EnterCriticalSection(&sysfileSection);
  #endif
  	fclose(syslogFile);
