Fix pg_current_logfile() to not emit a carriage return on Windows.
authorTom Lane <[email protected]>
Thu, 9 Jul 2020 20:02:23 +0000 (16:02 -0400)
committerTom Lane <[email protected]>
Thu, 9 Jul 2020 20:02:23 +0000 (16:02 -0400)
commit765ad260a18fc65003ef244b401ef83525ff3da4
tree6c2bbfd468f8ada8399792b5ba28f8a8c671cc1b
parentf03a34ad2cf3e17fe9b3aef53e97e0fae60a3a20
Fix pg_current_logfile() to not emit a carriage return on Windows.

Due to not having our signals straight about CRLF vs. LF line
termination, the output of pg_current_logfile() included a trailing
\r on Windows.  To fix, force the file descriptor it uses into text
mode.

While here, move a couple of local variable declarations to make
the function's logic clearer.

In v12 and v13, also back-patch the test added by 1c4e88e2f so that
this function has some test coverage.  However, the 004_logrotate.pl
test script doesn't exist before v12, and it didn't seem worth adding
to older branches just for this.

Per report from Thomas Kellerer.  Back-patch to v10 where this
function was added.

Discussion: https://postgr.es/m/412ae8da-76bb-640f-039a-f3513499e53d@gmx.net
src/backend/utils/adt/misc.c