diff options
Diffstat (limited to 'posix/gawkmisc.c')
-rw-r--r-- | posix/gawkmisc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/posix/gawkmisc.c b/posix/gawkmisc.c index 87a6747c..a5c3a619 100644 --- a/posix/gawkmisc.c +++ b/posix/gawkmisc.c @@ -207,10 +207,12 @@ os_isdir(int fd) /* os_isreadable --- fd can be read from */ int -os_isreadable(int fd) +os_isreadable(int fd, bool *isdir) { struct stat sbuf; + *isdir = false; + if (fstat(fd, &sbuf) != 0) return false; @@ -224,6 +226,9 @@ os_isreadable(int fd) case S_IFIFO: #endif return true; + case S_IFDIR: + *isdir = true; + /* fall through */ default: return false; } |