From ab19ede65595f6c0daba1e9b6c7c0a2ede341fec Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 11 Nov 2009 21:05:42 +0100 Subject: tidy up O_NONBLOCK usage. use libbb functions in stty. Added O_RDONLY where improves readability. Note: O_RDONLY == 0, so it is there even if not specified. function old new delta stty_main 1289 1235 -54 Signed-off-by: Denys Vlasenko --- libbb/read.c | 6 +++--- libbb/xfuncs.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'libbb') diff --git a/libbb/read.c b/libbb/read.c index b93a695b5..06ce29718 100644 --- a/libbb/read.c +++ b/libbb/read.c @@ -39,18 +39,18 @@ ssize_t FAST_FUNC safe_read(int fd, void *buf, size_t count) * *** BIG SURPRISE! It stays even after child exits! *** * * This is a design bug in UNIX API. - * fcntl(0, F_SETFL, fcntl(0, F_GETFL, 0) | O_NONBLOCK); + * fcntl(0, F_SETFL, fcntl(0, F_GETFL) | O_NONBLOCK); * will set nonblocking mode not only on _your_ stdin, but * also on stdin of your parent, etc. * * In general, * fd2 = dup(fd1); - * fcntl(fd2, F_SETFL, fcntl(fd2, F_GETFL, 0) | O_NONBLOCK); + * fcntl(fd2, F_SETFL, fcntl(fd2, F_GETFL) | O_NONBLOCK); * sets both fd1 and fd2 to O_NONBLOCK. This includes cases * where duping is done implicitly by fork() etc. * * We need - * fcntl(fd2, F_SETFD, fcntl(fd2, F_GETFD, 0) | O_NONBLOCK); + * fcntl(fd2, F_SETFD, fcntl(fd2, F_GETFD) | O_NONBLOCK); * (note SETFD, not SETFL!) but such thing doesn't exist. * * Alternatively, we need nonblocking_read(fd, ...) which doesn't diff --git a/libbb/xfuncs.c b/libbb/xfuncs.c index e47b01dc1..aac46f414 100644 --- a/libbb/xfuncs.c +++ b/libbb/xfuncs.c @@ -27,12 +27,12 @@ /* Turn on nonblocking I/O on a fd */ int FAST_FUNC ndelay_on(int fd) { - return fcntl(fd, F_SETFL, fcntl(fd,F_GETFL) | O_NONBLOCK); + return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); } int FAST_FUNC ndelay_off(int fd) { - return fcntl(fd, F_SETFL, fcntl(fd,F_GETFL) & ~O_NONBLOCK); + return fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) & ~O_NONBLOCK); } int FAST_FUNC close_on_exec_on(int fd) -- cgit v1.2.3