diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-09-11 22:16:38 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-09-11 22:16:38 +0300 |
commit | c2db2b9ff8465cb5044e6f22beb229336479be57 (patch) | |
tree | 102cc516d09c1af32e083a034882d5e49e2c2006 /extension/readdir.c | |
parent | 47f2bd34643ceda78773e5abbfa466c2f898a815 (diff) | |
download | egawk-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.c | 7 |
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; |