diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-12-01 09:24:48 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-12-01 09:24:48 +0000 |
commit | a9fe26f1749b2e3f6607c739caa52faa9384c252 (patch) | |
tree | f7f7c3660de0b444cbbcff4bd378120c59f3fe37 /file.c | |
parent | 7b319538c27af2928a20c4e1f0108386f7fe2a37 (diff) |
19991201
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'file.c')
-rw-r--r-- | file.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -1203,7 +1203,7 @@ rb_file_s_basename(argc, argv) int argc; VALUE *argv; { - VALUE fname, fext; + VALUE fname, fext, basename; char *name, *p, *ext; int f; @@ -1224,7 +1224,9 @@ rb_file_s_basename(argc, argv) f = rmext(p, ext); if (f) return rb_str_new(p, f); } - return rb_tainted_str_new2(p); + basename = rb_str_new2(p); + if (OBJ_TAINTED(fname)) OBJ_TAINT(basename); + return basename; } static VALUE @@ -1232,6 +1234,7 @@ rb_file_s_dirname(obj, fname) VALUE obj, fname; { char *name, *p; + VALUE dirname; name = STR2CSTR(fname); p = strrchr(name, '/'); @@ -1240,7 +1243,9 @@ rb_file_s_dirname(obj, fname) } if (p == name) p++; - return rb_tainted_str_new(name, p - name); + dirname = rb_str_new(name, p - name); + if (OBJ_TAINTED(fname)) OBJ_TAINT(dirname); + return dirname; } static VALUE |