diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ruby.c | 4 |
2 files changed, 10 insertions, 1 deletions
@@ -1,3 +1,10 @@ +Fri Jun 3 21:27:22 2016 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * ruby.c (process_options): rb_str_conv_enc() never set encoding + of the source string, but returns the string itself if the + conversion failed. then the instance variable does not need to + be set again. + Fri Jun 3 18:04:37 2016 NAKAMURA Usaku <usa@ruby-lang.org> * ruby.c (process_options): need to duplicate path before passing it to @@ -1568,7 +1568,9 @@ process_options(int argc, char **argv, struct cmdline_options *opt) VALUE path = RARRAY_AREF(load_path, i); int mark = rb_attr_get(path, id_initial_load_path_mark) == path; #if UTF8_PATH - path = rb_str_conv_enc(rb_str_dup(path), uenc, lenc); + VALUE newpath = rb_str_conv_enc(path, uenc, lenc); + if (newpath == path) continue; + path = newpath; #else path = rb_enc_associate(rb_str_dup(path), lenc); #endif |