diff --git a/ChangeLog b/ChangeLog index 8068ff17ab..b8807054fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Thu May 27 23:07:45 2010 NARUSE, Yui + + * file.c (file_expand_path): use rb_enc_associate_index and + rb_filesystem_encindex. Strings related FileSystem should + have filesystem_encoding. + + * file.c (SET_EXTERNAL_ENCODING): removed. + Thu May 27 23:03:19 2010 NARUSE, Yui * include/ruby/encoding.h (rb_filesystem_encindex): defined. diff --git a/file.c b/file.c index bc072a93d7..8f1a8a8c64 100644 --- a/file.c +++ b/file.c @@ -2788,10 +2788,6 @@ ntfs_tail(const char *path) buflen = RSTRING_LEN(result),\ pend = p + buflen) -#define SET_EXTERNAL_ENCODING() (\ - (void)(extenc || (extenc = rb_default_external_encoding())),\ - rb_enc_associate(result, extenc)) - VALUE rb_home_dir(const char *user, VALUE result) { @@ -2842,7 +2838,6 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) char *buf, *p, *pend, *root; size_t buflen, dirlen, bdiff; int tainted; - rb_encoding *extenc = 0; s = StringValuePtr(fname); BUFINIT(); @@ -2898,7 +2893,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) BUFCHECK(dirlen > buflen); strcpy(buf, dir); xfree(dir); - SET_EXTERNAL_ENCODING(); + rb_enc_associate_index(result, rb_filesystem_encindex()); } p = chompdirsep(skiproot(buf)); s += 2; @@ -2918,7 +2913,7 @@ file_expand_path(VALUE fname, VALUE dname, int abs_mode, VALUE result) BUFCHECK(dirlen > buflen); strcpy(buf, dir); xfree(dir); - SET_EXTERNAL_ENCODING(); + rb_enc_associate_index(result, rb_filesystem_encindex()); } #if defined DOSISH || defined __CYGWIN__ if (isdirsep(*s)) {