cloexec: preserve text vs. binary across dup_cloexec
authorEric Blake <ebb9@byu.net>
Mon, 7 Dec 2009 13:53:59 +0000 (06:53 -0700)
committerEric Blake <ebb9@byu.net>
Mon, 7 Dec 2009 13:55:09 +0000 (06:55 -0700)
commit73da5fb7e129f1fa540e040582cda710b8c2cce4
treeffc2a62ecc40ef03a476c0923c4839bf656cb42a
parentb1ab442e6db76de2a7315531f6f0ec59c5934368
cloexec: preserve text vs. binary across dup_cloexec

On mingw, dup_cloexec mistakenly converted a text fd into a
binary fd.  Cygwin copied the source mode.  Most other platforms
don't distinguish between modes.

* lib/cloexec.c (dup_cloexec) [W32]: Query and use translation
mode.
* modules/dup2-tests (Depends-on): Add binary-io.
* modules/cloexec-tests (Depends-on): Likewise.
* tests/test-dup2.c (setmode, is_mode): New helpers.
(main): Add tests that translation mode is preserved.
* tests/test-cloexec.c (setmode, is_mode, main): Likewise.
Reported by Bruno Haible.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
lib/cloexec.c
modules/cloexec-tests
modules/dup2-tests
tests/test-cloexec.c
tests/test-dup2.c