diff options
Diffstat (limited to 'coreutils/printf.c')
-rw-r--r-- | coreutils/printf.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/coreutils/printf.c b/coreutils/printf.c index 72acbc751..76524f706 100644 --- a/coreutils/printf.c +++ b/coreutils/printf.c | |||
@@ -348,8 +348,11 @@ int printf_main(int argc UNUSED_PARAM, char **argv) | |||
348 | * even if libc receives EBADF on write attempts, it feels determined | 348 | * even if libc receives EBADF on write attempts, it feels determined |
349 | * to output data no matter what. So it will try later, | 349 | * to output data no matter what. So it will try later, |
350 | * and possibly will clobber future output. Not good. */ | 350 | * and possibly will clobber future output. Not good. */ |
351 | if (dup2(1, 1) != 1) | 351 | // TODO: check fcntl() & O_ACCMODE == O_WRONLY or O_RDWR? |
352 | return -1; | 352 | if (fcntl(1, F_GETFL) == -1) |
353 | return 1; /* match coreutils 6.10 (sans error msg to stderr) */ | ||
354 | //if (dup2(1, 1) != 1) - old way | ||
355 | // return 1; | ||
353 | 356 | ||
354 | /* bash builtin errors out on "printf '-%s-\n' foo", | 357 | /* bash builtin errors out on "printf '-%s-\n' foo", |
355 | * coreutils-6.9 works. Both work with "printf -- '-%s-\n' foo". | 358 | * coreutils-6.9 works. Both work with "printf -- '-%s-\n' foo". |