From 0f262e8a3f022e576206675767d87fc99df69ed7 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Sun, 6 May 2007 12:01:37 +1000 Subject: [REDIR] Remove EMFILE special case No caller of copyfd need to ignore EMFILE so we can remove the special case and just let it call sh_error on any error. --- src/input.c | 2 -- src/redir.c | 13 +++---------- 2 files changed, 3 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/input.c b/src/input.c index 057da71..49a2972 100644 --- a/src/input.c +++ b/src/input.c @@ -439,8 +439,6 @@ setinputfile(const char *fname, int flags) if (fd < 10) { fd2 = copyfd(fd, 10); close(fd); - if (fd2 < 0) - sh_error("Out of file descriptors"); fd = fd2; } setinputfd(fd, flags & INPUT_PUSH_FILE); diff --git a/src/redir.c b/src/redir.c index 2bd8e9f..aab1585 100644 --- a/src/redir.c +++ b/src/redir.c @@ -372,9 +372,7 @@ clearredir(int drop) /* - * Copy a file descriptor to be >= to. Returns -1 - * if the source file descriptor is closed, EMPTY if there are no unused - * file descriptors left. + * Copy a file descriptor to be >= to. Invokes sh_error on error. */ int @@ -383,13 +381,8 @@ copyfd(int from, int to) int newfd; newfd = fcntl(from, F_DUPFD, to); - if (newfd < 0) { - int errno2 = errno; - if (errno2 == EMFILE) - return EMPTY; - else - sh_error("%d: %s", from, strerror(errno2)); - } + if (newfd < 0) + sh_error("%d: %s", from, strerror(errno)); return newfd; } -- cgit 1.4.1