aboutsummaryrefslogtreecommitdiffstats
path: root/extension/readdir.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2012-09-11 22:16:38 +0300
committerArnold D. Robbins <arnold@skeeve.com>2012-09-11 22:16:38 +0300
commitc2db2b9ff8465cb5044e6f22beb229336479be57 (patch)
tree102cc516d09c1af32e083a034882d5e49e2c2006 /extension/readdir.c
parent47f2bd34643ceda78773e5abbfa466c2f898a815 (diff)
downloadegawk-c2db2b9ff8465cb5044e6f22beb229336479be57.tar.gz
egawk-c2db2b9ff8465cb5044e6f22beb229336479be57.tar.bz2
egawk-c2db2b9ff8465cb5044e6f22beb229336479be57.zip
Make readdir set ERRNO more.
Diffstat (limited to 'extension/readdir.c')
-rw-r--r--extension/readdir.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/extension/readdir.c b/extension/readdir.c
index 49a6bf6a..7140b72b 100644
--- a/extension/readdir.c
+++ b/extension/readdir.c
@@ -111,6 +111,7 @@ ftype(struct dirent *entry)
*/
return NULL;
+ /* Should we set ERRNO here? */
if (lstat(entry->d_name, & sbuf) < 0)
return "u";
@@ -299,6 +300,7 @@ do_readdir_do_ftype(int nargs, awk_value_t *result)
make_number(1.0, result);
if (nargs < 1) {
warning(ext_id, _("readdir_do_ftype: called with no arguments"));
+ update_ERRNO_int(EINVAL);
make_number(0.0, result);
goto out;
} else if (do_lint && nargs > 3)
@@ -306,6 +308,7 @@ do_readdir_do_ftype(int nargs, awk_value_t *result)
if (! get_argument(0, AWK_STRING, & flag)) {
warning(ext_id, _("readdir_do_ftype: could not get argument"));
+ update_ERRNO_int(EINVAL);
make_number(0.0, result);
goto out;
}
@@ -316,8 +319,10 @@ do_readdir_do_ftype(int nargs, awk_value_t *result)
do_ftype = USE_DIRENT_INFO;
else if (strcmp(flag.str_value.str, "stat") == 0)
do_ftype = USE_STAT_INFO;
- else
+ else {
+ update_ERRNO_int(EINVAL);
make_number(0.0, result);
+ }
out:
return result;