mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
2000-05-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
869b1efeb4
commit
9a1716fdb2
21 changed files with 245 additions and 185 deletions
23
file.c
23
file.c
|
|
@ -1330,19 +1330,20 @@ rb_file_s_basename(argc, argv)
|
|||
name = STR2CSTR(fname);
|
||||
p = strrchr(name, '/');
|
||||
if (!p) {
|
||||
if (!NIL_P(fext)) {
|
||||
f = rmext(name, ext);
|
||||
if (f) return rb_str_new(name, f);
|
||||
if (NIL_P(fext) || !(f = rmext(p, ext)))
|
||||
return fname;
|
||||
basename = rb_str_new(p, f);
|
||||
}
|
||||
else {
|
||||
p++; /* skip last `/' */
|
||||
if (NIL_P(fext) || !(f = rmext(p, ext))) {
|
||||
basename = rb_str_new2(p);
|
||||
}
|
||||
else {
|
||||
basename = rb_str_new(p, f);
|
||||
}
|
||||
return fname;
|
||||
}
|
||||
p++; /* skip last `/' */
|
||||
if (!NIL_P(fext)) {
|
||||
f = rmext(p, ext);
|
||||
if (f) return rb_str_new(p, f);
|
||||
}
|
||||
basename = rb_str_new2(p);
|
||||
if (OBJ_TAINTED(fname)) OBJ_TAINT(basename);
|
||||
OBJ_INFECT(basename, fname);
|
||||
return basename;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue