mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* win32/win32.c: suppress warnings. based on a patch from Charlie
Savage at [ruby-core:22804]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22879 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
cb434b4a80
commit
0032476a24
2 changed files with 29 additions and 23 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Mar 11 04:29:52 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* win32/win32.c: suppress warnings. based on a patch from Charlie
|
||||||
|
Savage at [ruby-core:22804].
|
||||||
|
|
||||||
Wed Mar 11 04:22:12 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Wed Mar 11 04:22:12 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* signal.c (sig_trap): suppress warnings.
|
* signal.c (sig_trap): suppress warnings.
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <mbstring.h>
|
#include <mbstring.h>
|
||||||
#if _MSC_VER >= 1400
|
#if _MSC_VER >= 1400
|
||||||
#include <crtdbg.h>
|
#include <crtdbg.h>
|
||||||
|
#include <rtcapi.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
#include <mswsock.h>
|
#include <mswsock.h>
|
||||||
|
@ -1596,7 +1597,7 @@ rb_w32_opendir(const char *filename)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!(sbuf.st_mode & S_IFDIR) &&
|
if (!(sbuf.st_mode & S_IFDIR) &&
|
||||||
(!ISALPHA(filename[0]) || filename[1] != ':' || filename[2] != '\0' ||
|
(!ISALPHA(filename[0]) || filename[1] != ':' || filename[2] != '\0' ||
|
||||||
((1 << (filename[0] & 0x5f) - 'A') & GetLogicalDrives()) == 0)) {
|
((1 << ((filename[0] & 0x5f) - 'A')) & GetLogicalDrives()) == 0)) {
|
||||||
errno = ENOTDIR;
|
errno = ENOTDIR;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2136,21 +2137,21 @@ rb_w32_fdisset(int fd, fd_set *set)
|
||||||
static int
|
static int
|
||||||
extract_fd(rb_fdset_t *dst, fd_set *src, int (*func)(SOCKET))
|
extract_fd(rb_fdset_t *dst, fd_set *src, int (*func)(SOCKET))
|
||||||
{
|
{
|
||||||
int s = 0;
|
unsigned int s = 0;
|
||||||
if (!src || !dst) return 0;
|
if (!src || !dst) return 0;
|
||||||
|
|
||||||
while (s < src->fd_count) {
|
while (s < src->fd_count) {
|
||||||
SOCKET fd = src->fd_array[s];
|
SOCKET fd = src->fd_array[s];
|
||||||
|
|
||||||
if (!func || (*func)(fd)) { /* move it to dst */
|
if (!func || (*func)(fd)) { /* move it to dst */
|
||||||
int d;
|
unsigned int d;
|
||||||
|
|
||||||
for (d = 0; d < dst->fdset->fd_count; d++) {
|
for (d = 0; d < dst->fdset->fd_count; d++) {
|
||||||
if (dst->fdset->fd_array[d] == fd)
|
if (dst->fdset->fd_array[d] == fd)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (d == dst->fdset->fd_count) {
|
if (d == dst->fdset->fd_count) {
|
||||||
if (dst->fdset->fd_count >= dst->capa) {
|
if ((int)dst->fdset->fd_count >= dst->capa) {
|
||||||
dst->capa = (dst->fdset->fd_count / FD_SETSIZE + 1) * FD_SETSIZE;
|
dst->capa = (dst->fdset->fd_count / FD_SETSIZE + 1) * FD_SETSIZE;
|
||||||
dst->fdset = xrealloc(dst->fdset, sizeof(unsigned int) + sizeof(SOCKET) * dst->capa);
|
dst->fdset = xrealloc(dst->fdset, sizeof(unsigned int) + sizeof(SOCKET) * dst->capa);
|
||||||
}
|
}
|
||||||
|
@ -2170,12 +2171,12 @@ extract_fd(rb_fdset_t *dst, fd_set *src, int (*func)(SOCKET))
|
||||||
static int
|
static int
|
||||||
copy_fd(fd_set *dst, fd_set *src)
|
copy_fd(fd_set *dst, fd_set *src)
|
||||||
{
|
{
|
||||||
int s;
|
unsigned int s;
|
||||||
if (!src || !dst) return 0;
|
if (!src || !dst) return 0;
|
||||||
|
|
||||||
for (s = 0; s < src->fd_count; ++s) {
|
for (s = 0; s < src->fd_count; ++s) {
|
||||||
SOCKET fd = src->fd_array[s];
|
SOCKET fd = src->fd_array[s];
|
||||||
int d;
|
unsigned int d;
|
||||||
for (d = 0; d < dst->fd_count; ++d) {
|
for (d = 0; d < dst->fd_count; ++d) {
|
||||||
if (dst->fd_array[d] == fd)
|
if (dst->fd_array[d] == fd)
|
||||||
break;
|
break;
|
||||||
|
@ -2380,9 +2381,9 @@ rb_w32_select(int nfds, fd_set *rd, fd_set *wr, fd_set *ex,
|
||||||
extract_fd(&except, ex, is_not_socket); // drop only
|
extract_fd(&except, ex, is_not_socket); // drop only
|
||||||
|
|
||||||
r = 0;
|
r = 0;
|
||||||
if (rd && rd->fd_count > r) r = rd->fd_count;
|
if (rd && (int)rd->fd_count > r) r = (int)rd->fd_count;
|
||||||
if (wr && wr->fd_count > r) r = wr->fd_count;
|
if (wr && (int)wr->fd_count > r) r = (int)wr->fd_count;
|
||||||
if (ex && ex->fd_count > r) r = ex->fd_count;
|
if (ex && (int)ex->fd_count > r) r = (int)ex->fd_count;
|
||||||
if (nfds > r) nfds = r;
|
if (nfds > r) nfds = r;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -3193,7 +3194,7 @@ waitpid(rb_pid_t pid, int *stat_loc, int options)
|
||||||
|
|
||||||
if (pid == -1) {
|
if (pid == -1) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
DWORD ret;
|
int ret;
|
||||||
HANDLE events[MAXCHILDNUM];
|
HANDLE events[MAXCHILDNUM];
|
||||||
|
|
||||||
FOREACH_CHILD(child) {
|
FOREACH_CHILD(child) {
|
||||||
|
@ -3257,8 +3258,8 @@ filetime_to_timeval(const FILETIME* ft, struct timeval *tv)
|
||||||
lt /= 10; /* to usec */
|
lt /= 10; /* to usec */
|
||||||
lt -= (LONG_LONG)((1970-1601)*365.2425) * 24 * 60 * 60 * 1000 * 1000;
|
lt -= (LONG_LONG)((1970-1601)*365.2425) * 24 * 60 * 60 * 1000 * 1000;
|
||||||
|
|
||||||
tv->tv_sec = lt / (1000 * 1000);
|
tv->tv_sec = (long)(lt / (1000 * 1000));
|
||||||
tv->tv_usec = lt % (1000 * 1000);
|
tv->tv_usec = (long)(lt % (1000 * 1000));
|
||||||
|
|
||||||
return tv->tv_sec > 0 ? 0 : -1;
|
return tv->tv_sec > 0 ? 0 : -1;
|
||||||
}
|
}
|
||||||
|
@ -3540,7 +3541,7 @@ isUNCRoot(const char *path)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define COPY_STAT(src, dest) do { \
|
#define COPY_STAT(src, dest, size_cast) do { \
|
||||||
(dest).st_dev = (src).st_dev; \
|
(dest).st_dev = (src).st_dev; \
|
||||||
(dest).st_ino = (src).st_ino; \
|
(dest).st_ino = (src).st_ino; \
|
||||||
(dest).st_mode = (src).st_mode; \
|
(dest).st_mode = (src).st_mode; \
|
||||||
|
@ -3548,7 +3549,7 @@ isUNCRoot(const char *path)
|
||||||
(dest).st_uid = (src).st_uid; \
|
(dest).st_uid = (src).st_uid; \
|
||||||
(dest).st_gid = (src).st_gid; \
|
(dest).st_gid = (src).st_gid; \
|
||||||
(dest).st_rdev = (src).st_rdev; \
|
(dest).st_rdev = (src).st_rdev; \
|
||||||
(dest).st_size = (src).st_size; \
|
(dest).st_size = size_cast(src).st_size; \
|
||||||
(dest).st_atime = (src).st_atime; \
|
(dest).st_atime = (src).st_atime; \
|
||||||
(dest).st_mtime = (src).st_mtime; \
|
(dest).st_mtime = (src).st_mtime; \
|
||||||
(dest).st_ctime = (src).st_ctime; \
|
(dest).st_ctime = (src).st_ctime; \
|
||||||
|
@ -3580,7 +3581,7 @@ rb_w32_fstati64(int fd, struct stati64 *st)
|
||||||
|
|
||||||
if (ret) return ret;
|
if (ret) return ret;
|
||||||
tmp.st_mode &= ~(S_IWGRP | S_IWOTH);
|
tmp.st_mode &= ~(S_IWGRP | S_IWOTH);
|
||||||
COPY_STAT(tmp, *st);
|
COPY_STAT(tmp, *st, +);
|
||||||
if (GetFileInformationByHandle((HANDLE)_get_osfhandle(fd), &info)) {
|
if (GetFileInformationByHandle((HANDLE)_get_osfhandle(fd), &info)) {
|
||||||
if (!(info.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
|
if (!(info.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
|
||||||
st->st_mode |= S_IWUSR;
|
st->st_mode |= S_IWUSR;
|
||||||
|
@ -3626,10 +3627,10 @@ fileattr_to_unixmode(DWORD attr, const char *path)
|
||||||
while (path < end) {
|
while (path < end) {
|
||||||
end = CharPrev(path, end);
|
end = CharPrev(path, end);
|
||||||
if (*end == '.') {
|
if (*end == '.') {
|
||||||
if ((strcmpi(end, ".bat") == 0) ||
|
if ((strcasecmp(end, ".bat") == 0) ||
|
||||||
(strcmpi(end, ".cmd") == 0) ||
|
(strcasecmp(end, ".cmd") == 0) ||
|
||||||
(strcmpi(end, ".com") == 0) ||
|
(strcasecmp(end, ".com") == 0) ||
|
||||||
(strcmpi(end, ".exe") == 0)) {
|
(strcasecmp(end, ".exe") == 0)) {
|
||||||
mode |= S_IEXEC;
|
mode |= S_IEXEC;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3663,7 +3664,7 @@ winnt_stat(const char *path, struct stati64 *st)
|
||||||
memset(st, 0, sizeof(*st));
|
memset(st, 0, sizeof(*st));
|
||||||
st->st_nlink = 1;
|
st->st_nlink = 1;
|
||||||
|
|
||||||
if (_mbspbrk(path, "?*")) {
|
if (_mbspbrk((const unsigned char *)path, (const unsigned char *)"?*")) {
|
||||||
errno = ENOENT;
|
errno = ENOENT;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -3717,7 +3718,7 @@ rb_w32_stat(const char *path, struct stat *st)
|
||||||
struct stati64 tmp;
|
struct stati64 tmp;
|
||||||
|
|
||||||
if (rb_w32_stati64(path, &tmp)) return -1;
|
if (rb_w32_stati64(path, &tmp)) return -1;
|
||||||
COPY_STAT(tmp, *st);
|
COPY_STAT(tmp, *st, (_off_t));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4615,7 +4616,7 @@ rb_w32_read(int fd, void *buf, size_t size)
|
||||||
|
|
||||||
if (!(_osfile(fd) & (FDEV | FPIPE))) {
|
if (!(_osfile(fd) & (FDEV | FPIPE))) {
|
||||||
LONG high = ol.OffsetHigh;
|
LONG high = ol.OffsetHigh;
|
||||||
LONG low = ol.Offset + read;
|
DWORD low = ol.Offset + read;
|
||||||
if (low < ol.Offset)
|
if (low < ol.Offset)
|
||||||
++high;
|
++high;
|
||||||
SetFilePointer((HANDLE)_osfhnd(fd), low, &high, FILE_BEGIN);
|
SetFilePointer((HANDLE)_osfhnd(fd), low, &high, FILE_BEGIN);
|
||||||
|
@ -4733,7 +4734,7 @@ rb_w32_write(int fd, const void *buf, size_t size)
|
||||||
|
|
||||||
if (!(_osfile(fd) & (FDEV | FPIPE))) {
|
if (!(_osfile(fd) & (FDEV | FPIPE))) {
|
||||||
LONG high = ol.OffsetHigh;
|
LONG high = ol.OffsetHigh;
|
||||||
LONG low = ol.Offset + written;
|
DWORD low = ol.Offset + written;
|
||||||
if (low < ol.Offset)
|
if (low < ol.Offset)
|
||||||
++high;
|
++high;
|
||||||
SetFilePointer((HANDLE)_osfhnd(fd), low, &high, FILE_BEGIN);
|
SetFilePointer((HANDLE)_osfhnd(fd), low, &high, FILE_BEGIN);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue