summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-17 14:54:07 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-17 14:54:07 +0000
commit3f974165a75daf8bb0b6c992c764621265f60709 (patch)
treed8e609010125572868ae16a48f9aa6e8c98c4882
parent5ff16ad011a5ad01488df39c8286b8c467ea6e76 (diff)
* file.c (file_expand_path): fix for short file name on Cygwin.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_5@16450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--file.c12
-rw-r--r--version.h2
3 files changed, 13 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 06f3525066..12d881e26d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat May 17 23:53:57 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * file.c (file_expand_path): fix for short file name on Cygwin.
+
Sat May 17 23:50:29 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* file.c (OpenFile): prevent conflict on Windows.
diff --git a/file.c b/file.c
index 103fca2b17..9153283689 100644
--- a/file.c
+++ b/file.c
@@ -2732,15 +2732,20 @@ file_expand_path(fname, dname, result)
RSTRING(result)->len = buflen;
*p = '\0';
#if USE_NTFS
- if (!strpbrk(b = buf, "*?")) {
+ if (1 &&
+#ifdef __CYGWIN__
+ !(buf[0] == '/' && !buf[1]) &&
+#endif
+ !strpbrk(b = buf, "*?")) {
size_t len;
WIN32_FIND_DATA wfd;
#ifdef __CYGWIN__
- int lnk_added = 0;
+ int lnk_added = 0, is_symlink = 0;
struct stat st;
char w32buf[MAXPATHLEN], sep = 0;
p = 0;
if (lstat(buf, &st) == 0 && S_ISLNK(st.st_mode)) {
+ is_symlink = 1;
p = strrdirsep(buf);
if (!p) p = skipprefix(buf);
if (p) {
@@ -2753,8 +2758,7 @@ file_expand_path(fname, dname, result)
}
if (p) *p = sep;
else p = buf;
- if (b == w32buf) {
- strlcat(w32buf, p, sizeof(w32buf));
+ if (is_symlink && b == w32buf) {
len = strlen(p);
if (len > 4 && strcasecmp(p + len - 4, ".lnk") != 0) {
lnk_added = 1;
diff --git a/version.h b/version.h
index 82855e381f..0ecbb8b386 100644
--- a/version.h
+++ b/version.h
@@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2008-05-17"
#define RUBY_VERSION_CODE 185
#define RUBY_RELEASE_CODE 20080517
-#define RUBY_PATCHLEVEL 117
+#define RUBY_PATCHLEVEL 118
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8