summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--file.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9b7faa6b2a..04b14208b8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Jun 14 16:55:46 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (file_expand_path): no need to expand root path which has no
+ short file name. [ruby-dev:35095]
+
Sat Jun 14 11:59:17 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* gc.h (STACK_UPPER): moved from gc.c
diff --git a/file.c b/file.c
index 5b99cf05b7..a7f9c064f8 100644
--- a/file.c
+++ b/file.c
@@ -2829,14 +2829,14 @@ file_expand_path(VALUE fname, VALUE dname, VALUE result)
#if USE_NTFS
*p = '\0';
- if (*(s = skipprefix(b = buf)) && !strpbrk(s, "*?")) {
+ if ((s = strrdirsep(b = buf)) != 0 && !strpbrk(s, "*?")) {
size_t len;
WIN32_FIND_DATA wfd;
#ifdef __CYGWIN__
int lnk_added = 0, is_symlink = 0;
struct stat st;
char w32buf[MAXPATHLEN];
- p = strrdirsep(s);
+ p = (char *)s;
if (lstat(buf, &st) == 0 && S_ISLNK(st.st_mode)) {
is_symlink = 1;
*p = '\0';
@@ -2865,7 +2865,7 @@ file_expand_path(VALUE fname, VALUE dname, VALUE result)
wfd.cFileName[len -= 4] = '\0';
}
#else
- p = strrdirsep(s);
+ p = (char *)s;
#endif
++p;
BUFCHECK(bdiff + len >= buflen);