Issue #1685 has been updated by B Kelly.


Hi Vit,

Thanks.  Wow.  Good to know.

win32/win32.c:rb_w32_uchown(const char *path, int owner, int group)
win32/win32.c:rb_w32_ulink(const char *from, const char *to)
win32/win32.c:rb_w32_urename(const char *from, const char *to)
win32/win32.c:rb_w32_ustati64(const char *path, struct stati64 *st)
win32/win32.c:rb_w32_uaccess(const char *path, int mode)
win32/win32.c:rb_w32_uopen(const char *file, int oflag, ...)
win32/win32.c:rb_w32_uutime(const char *path, const struct utimbuf *times)
win32/win32.c:rb_w32_utime(const char *path, const struct utimbuf *times)
win32/win32.c:rb_w32_uchdir(const char *path)
win32/win32.c:rb_w32_umkdir(const char *path, int mode)
win32/win32.c:rb_w32_urmdir(const char *path)
win32/win32.c:rb_w32_uunlink(const char *path)
win32/win32.c:rb_w32_unlink(const char *path)
win32/win32.c:rb_w32_uchmod(const char *path, int mode)

And it looks like a much cleaner implementation than what
is currently in the 1.9.2 trunk.  No more 'wchar' in
sysopen_struct, no more #ifdef _WIN32 surrounding
w32_conv_to_utf16 logic, just some defines at the top:

dir.c:#define chdir(p) rb_w32_uchdir(p)
dir.c:#define mkdir(p, m) rb_w32_umkdir(p, m)
dir.c:#define rmdir(p) rb_w32_urmdir(p)
file.c:#define STAT(p, s)       rb_w32_ustati64(p, s)
file.c:#define lstat(p, s)      rb_w32_ustati64(p, s)
file.c:#define access(p, m)     rb_w32_uaccess(p, m)
file.c:#define chmod(p, m)      rb_w32_uchmod(p, m)
file.c:#define chown(p, o, g)   rb_w32_uchown(p, o, g)
file.c:#define utime(p, t)      rb_w32_uutime(p, t)
file.c:#define link(f, t)       rb_w32_ulink(f, t)
file.c:#define unlink(p)        rb_w32_uunlink(p)
file.c:#define rename(f, t)     rb_w32_urename(f, t)
io.c:#define open       rb_w32_uopen


I wonder if there is a reason this should not be merged
into trunk ASAP?


Regards,

Bill


----------------------------------------
http://redmine.ruby-lang.org/issues/show/1685

----------------------------------------
http://redmine.ruby-lang.org