From: B Kelly Date: 2010-03-25T19:10:35+09:00 Subject: [ruby-core:28979] [Bug #1685] Some windows unicode path issues remain 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