mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
* file.c (rb_file_s_basename, rb_file_s_dirname, rb_file_s_extname):
copy encoding. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3734fd0e79
commit
23bb4d7898
3 changed files with 11 additions and 3 deletions
3
file.c
3
file.c
|
@ -2880,6 +2880,7 @@ rb_file_s_basename(int argc, VALUE *argv)
|
|||
}
|
||||
}
|
||||
basename = rb_str_new(p, f);
|
||||
rb_enc_copy(basename, fname);
|
||||
OBJ_INFECT(basename, fname);
|
||||
return basename;
|
||||
}
|
||||
|
@ -2931,6 +2932,7 @@ rb_file_s_dirname(VALUE klass, VALUE fname)
|
|||
if (has_drive_letter(name) && root == name + 2 && p - name == 2)
|
||||
rb_str_cat(dirname, ".", 1);
|
||||
#endif
|
||||
rb_enc_copy(dirname, fname);
|
||||
OBJ_INFECT(dirname, fname);
|
||||
return dirname;
|
||||
}
|
||||
|
@ -2967,6 +2969,7 @@ rb_file_s_extname(VALUE klass, VALUE fname)
|
|||
if (!e || e == p || !e[1]) /* no dot, or the only dot is first or end? */
|
||||
return rb_str_new(0, 0);
|
||||
extname = rb_str_new(e, chompdirsep(e) - e); /* keep the dot, too! */
|
||||
rb_enc_copy(extname, fname);
|
||||
OBJ_INFECT(extname, fname);
|
||||
return extname;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue