diff options
Diffstat (limited to 'pc')
-rw-r--r-- | pc/ChangeLog | 5 | ||||
-rw-r--r-- | pc/gawkmisc.pc | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/pc/ChangeLog b/pc/ChangeLog index 43221928..28dfb72b 100644 --- a/pc/ChangeLog +++ b/pc/ChangeLog @@ -1,3 +1,8 @@ +2012-07-29 Arnold D. Robbins <arnold@skeeve.com> + + * gawkmisc.c (os_isreadable): Add isdir pointer parameter to be + set to true if fd is for a directory. + 2012-07-26 Arnold D. Robbins <arnold@skeeve.com> * gawkmisc.pc (os_isreadable): New function. diff --git a/pc/gawkmisc.pc b/pc/gawkmisc.pc index 999167ca..d79a3207 100644 --- a/pc/gawkmisc.pc +++ b/pc/gawkmisc.pc @@ -235,10 +235,12 @@ 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; @@ -252,6 +254,9 @@ os_isreadable(int fd) case S_IFIFO: #endif return true; + case S_IFDIR: + *isdir = true; + /* fall through */ default: return false; } |