summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-30 04:15:54 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-10-30 04:15:54 +0000
commitb16e6a93ca4746d301c7f66b5407c05e44f1cc91 (patch)
tree67811d1129c2d13195ddf22fd7962d18e8d4c42c /win32
parent1730092f1c8c2e5405ac4d33f3f1e92485c6022a (diff)
* win32.c (recvmsg, sendmsg, link): shouldn't raise ruby's exceptions
in the functions expected as system API. see [ruby-dev:39579] and [ruby-dev:39582] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
-rw-r--r--win32/win32.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/win32/win32.c b/win32/win32.c
index 35b52df1d8..d87a65e5e8 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -2868,8 +2868,10 @@ recvmsg(int fd, struct msghdr *msg, int flags)
DWORD dmy;
WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid, sizeof(guid),
&pWSARecvMsg, sizeof(pWSARecvMsg), &dmy, NULL, NULL);
- if (!pWSARecvMsg)
- rb_notimplement();
+ if (!pWSARecvMsg) {
+ errno = ENOSYS;
+ return -1;
+ }
}
msghdr_to_wsamsg(msg, &wsamsg);
@@ -2959,8 +2961,10 @@ sendmsg(int fd, const struct msghdr *msg, int flags)
DWORD dmy;
WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &guid, sizeof(guid),
&pWSASendMsg, sizeof(pWSASendMsg), &dmy, NULL, NULL);
- if (!pWSASendMsg)
- rb_notimplement();
+ if (!pWSASendMsg) {
+ errno = ENOSYS;
+ return -1;
+ }
}
msghdr_to_wsamsg(msg, &wsamsg);
@@ -3707,7 +3711,7 @@ link(const char *from, const char *to)
if (hKernel) {
pCreateHardLink = (BOOL (WINAPI *)(LPCTSTR, LPCTSTR, LPSECURITY_ATTRIBUTES))GetProcAddress(hKernel, "CreateHardLinkA");
if (!pCreateHardLink) {
- rb_notimplement();
+ myerrno = ENOSYS;
}
}
else {
@@ -5249,3 +5253,17 @@ rb_w32_fsopen(const char *path, const char *mode, int shflags)
return f;
}
#endif
+
+#if defined(_MSC_VER) && RT_VER <= 60
+extern long _ftol(double);
+long
+_ftol2(double d)
+{
+ return _ftol(d);
+}
+long
+_ftol2_sse(double d)
+{
+ return _ftol(d);
+}
+#endif