diff --git a/ChangeLog b/ChangeLog index 296da1bdf6..f77871d28f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Mar 13 23:48:27 2010 Yukihiro Matsumoto + + * file.c (file_expand_path): should not just copy the encoding + from fname. [ruby-core:28635] + + * file.c (EXPAND_PATH_BUFFER): set filesystem_encoding, not + usascii for path buffer. + Sat Mar 13 17:48:43 2010 Nobuyoshi Nakada * tool/file2lastrev.rb: refactord. fixed changed revision of git. diff --git a/file.c b/file.c index aed663ac11..0874732389 100644 --- a/file.c +++ b/file.c @@ -2831,7 +2831,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) p = buf + (s - b); BUFCHECK(bdiff >= buflen); memset(buf, '/', p - buf); - rb_enc_copy(result, fname); + rb_enc_associate(result, rb_enc_check(result, fname)); } if (p > buf && p[-1] == '/') --p; @@ -2998,7 +2998,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) return result; } -#define EXPAND_PATH_BUFFER() rb_usascii_str_new(0, MAXPATHLEN + 2) +#define EXPAND_PATH_BUFFER() rb_filesystem_str_new(0, MAXPATHLEN + 2) #define check_expand_path_args(fname, dname) \ ((fname = rb_get_path(fname)), \