1
--- ruby-1.8.5/file.c 7 Sep 2006 14:28:36 -0000 1.169.2.52
2
+++ ruby-1.8.5/file.c 25 Sep 2006 12:25:29 -0000 1.169.2.53
3
@@ -2427,9 +2427,8 @@ rb_path_last_separator(path)
7
-#define chompdirsep rb_path_end
14
@@ -2445,6 +2444,14 @@ rb_path_end(path)
22
+ if (isdirsep(*path)) path++;
23
+ return chompdirsep(path);
26
#define BUFCHECK(cond) do {\
27
long bdiff = p - buf;\
29
@@ -2821,7 +2828,7 @@ static VALUE
30
rb_file_s_dirname(klass, fname)
33
- char *name, *root, *p;
34
+ const char *name, *root, *p;
37
name = StringValueCStr(fname);
38
@@ -2841,8 +2848,9 @@ rb_file_s_dirname(klass, fname)
39
return rb_str_new2(".");
40
#ifdef DOSISH_DRIVE_LETTER
41
if (has_drive_letter(name) && isdirsep(*(name + 2))) {
42
+ const char *top = skiproot(name + 2);
43
dirname = rb_str_new(name, 3);
44
- rb_str_cat(dirname, skiproot(name + 2), p - skiproot(name + 2));
45
+ rb_str_cat(dirname, top, p - top);