1
0
Fork 0
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:
matz 2000-05-30 04:24:17 +00:00
parent 869b1efeb4
commit 9a1716fdb2
21 changed files with 245 additions and 185 deletions

23
file.c
View file

@ -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;
}