diff --git a/ChangeLog b/ChangeLog index b8807054fc..86fa364fa3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 27 23:29:18 2010 NARUSE, Yui + + * file.c (file_expand_path): set encoding as the same of fname + when _result_ is not filesystem encoding. [ruby-dev:41429] + Thu May 27 23:07:45 2010 NARUSE, Yui * file.c (file_expand_path): use rb_enc_associate_index and diff --git a/file.c b/file.c index 8f1a8a8c64..ed033a71af 100644 --- a/file.c +++ b/file.c @@ -2895,6 +2895,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) xfree(dir); rb_enc_associate_index(result, rb_filesystem_encindex()); } + else rb_enc_copy(result, fname); p = chompdirsep(skiproot(buf)); s += 2; } @@ -2904,6 +2905,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) if (!NIL_P(dname)) { file_expand_path(dname, Qnil, abs_mode, result); BUFINIT(); + rb_enc_copy(result, fname); } else { char *dir = my_getcwd();