aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-17 23:41:14 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-10-17 23:41:14 +0000
commit3960aacd57a49e899a4b785d75251199668fc124 (patch)
tree0b0ce992288bef0ed0533a167686d8ae7518d217
parentd87e800e6b76cd203460ba30833088b1db91b543 (diff)
downloadruby-3960aacd57a49e899a4b785d75251199668fc124.tar.gz
file.c: set errno
* file.c (ruby_is_fd_loadable): set proper errno. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--file.c3
-rw-r--r--ruby.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/file.c b/file.c
index 6f3a4378fd..b2ad989df6 100644
--- a/file.c
+++ b/file.c
@@ -5683,9 +5683,10 @@ ruby_is_fd_loadable(int fd)
if (S_ISREG(st.st_mode))
return 1;
- if (S_ISFIFO(st.st_mode))
+ if (!S_ISDIR(st.st_mode))
return 1;
+ errno = EISDIR;
return 0;
#endif
}
diff --git a/ruby.c b/ruby.c
index bde78f17f3..2f3e9409ca 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1803,8 +1803,9 @@ open_load_file(VALUE fname_v, int *xflag)
}
#endif
if (!ruby_is_fd_loadable(fd)) {
+ int e = errno;
(void)close(fd);
- rb_load_fail(fname_v, strerror(errno));
+ rb_load_fail(fname_v, strerror(e));
}
f = rb_io_fdopen(fd, mode, fname);