[前][次][番号順一覧][スレッド一覧]

ruby-changes:4957

From: ko1@a...
Date: Sat, 17 May 2008 23:54:34 +0900 (JST)
Subject: [ruby-changes:4957] nobu - Ruby:r16450 (ruby_1_8_6, trunk, ruby_1_8, ruby_1_8_5): * file.c (file_expand_path): fix for short file name on Cygwin.

nobu	2008-05-17 23:54:07 +0900 (Sat, 17 May 2008)

  New Revision: 16450

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/file.c
    branches/ruby_1_8_5/ChangeLog
    branches/ruby_1_8_5/file.c
    branches/ruby_1_8_5/version.h
    branches/ruby_1_8_6/ChangeLog
    branches/ruby_1_8_6/file.c
    branches/ruby_1_8_6/version.h
    trunk/ChangeLog
    trunk/file.c

  Log:
    * file.c (file_expand_path): fix for short file name on Cygwin.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/ChangeLog?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/file.c?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/version.h?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_6/file.c?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/file.c?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/version.h?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/ChangeLog?r1=16450&r2=16449&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_5/file.c?r1=16450&r2=16449&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16449)
+++ ChangeLog	(revision 16450)
@@ -1,3 +1,7 @@
+Sat May 17 23:53:57 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (file_expand_path): fix for short file name on Cygwin.
+
 Sat May 17 18:03:52 2008  Yuki Sonoda (Yugui) <yugui@y...>
 
 	* vm.c (Init_VM): removed the definition of Thread#initialize,
Index: file.c
===================================================================
--- file.c	(revision 16449)
+++ file.c	(revision 16450)
@@ -2827,15 +2827,20 @@
 
 #if USE_NTFS
     *p = '\0';
-    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) {
@@ -2848,8 +2853,7 @@
 	}
 	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;
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 16449)
+++ ruby_1_8/ChangeLog	(revision 16450)
@@ -1,3 +1,7 @@
+Sat May 17 23:53:57 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (file_expand_path): fix for short file name on Cygwin.
+
 Sat May 17 11:29:11 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (rb_file_s_extname): first dot is not an extension name.
Index: ruby_1_8/file.c
===================================================================
--- ruby_1_8/file.c	(revision 16449)
+++ ruby_1_8/file.c	(revision 16450)
@@ -2742,15 +2742,20 @@
 
 #if USE_NTFS
     *p = '\0';
-    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) {
@@ -2763,8 +2768,7 @@
 	}
 	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;
Index: ruby_1_8_5/ChangeLog
===================================================================
--- ruby_1_8_5/ChangeLog	(revision 16449)
+++ ruby_1_8_5/ChangeLog	(revision 16450)
@@ -1,3 +1,7 @@
+Sat May 17 23:53:57 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (file_expand_path): fix for short file name on Cygwin.
+
 Sat May 17 23:50:29 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (OpenFile): prevent conflict on Windows.
Index: ruby_1_8_5/version.h
===================================================================
--- ruby_1_8_5/version.h	(revision 16449)
+++ ruby_1_8_5/version.h	(revision 16450)
@@ -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
Index: ruby_1_8_5/file.c
===================================================================
--- ruby_1_8_5/file.c	(revision 16449)
+++ ruby_1_8_5/file.c	(revision 16450)
@@ -2732,15 +2732,20 @@
     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 @@
 	}
 	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;
Index: ruby_1_8_6/ChangeLog
===================================================================
--- ruby_1_8_6/ChangeLog	(revision 16449)
+++ ruby_1_8_6/ChangeLog	(revision 16450)
@@ -1,3 +1,7 @@
+Sat May 17 23:53:57 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (file_expand_path): fix for short file name on Cygwin.
+
 Sat May 17 23:50:29 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* file.c (OpenFile): prevent conflict on Windows.
Index: ruby_1_8_6/version.h
===================================================================
--- ruby_1_8_6/version.h	(revision 16449)
+++ ruby_1_8_6/version.h	(revision 16450)
@@ -2,7 +2,7 @@
 #define RUBY_RELEASE_DATE "2008-05-17"
 #define RUBY_VERSION_CODE 186
 #define RUBY_RELEASE_CODE 20080517
-#define RUBY_PATCHLEVEL 116
+#define RUBY_PATCHLEVEL 117
 
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 8
Index: ruby_1_8_6/file.c
===================================================================
--- ruby_1_8_6/file.c	(revision 16449)
+++ ruby_1_8_6/file.c	(revision 16450)
@@ -2745,15 +2745,20 @@
     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) {
@@ -2766,8 +2771,7 @@
 	}
 	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;

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]