OSDN Git Service

Fix bugs of analysis of LIST/MLSD response types.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Sun, 6 Jan 2013 12:24:49 +0000 (21:24 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Sun, 6 Jan 2013 12:24:49 +0000 (21:24 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
filelist.c

index 76ee231..410504c 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 2947e7f..17e77d5 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 85eab06..ce4d603 100755 (executable)
@@ -3601,11 +3601,22 @@ static int AnalizeFileInfo(char *Str)
                Ret = LIST_SHIBASOKU;\r
        else\r
        {\r
+               // MLSD対応\r
+               if(FindField(Str, Tmp, 0, NO) == FFFTP_SUCCESS && strstr(Tmp, "type=") != NULL)\r
+               {\r
+                       if(FindField2(Str, Tmp, ';', 1, NO) == FFFTP_SUCCESS && FindField2(Str, Tmp, '=', 1, NO) == FFFTP_SUCCESS)\r
+                       {\r
+                               Ret = LIST_MLSD;\r
+                       }\r
+               }\r
+\r
                /* 以下のフォーマットをチェック */\r
                /* LIST_UNIX_10, LIST_UNIX_20, LIST_UNIX_12, LIST_UNIX_22, LIST_UNIX_50, LIST_UNIX_60 */\r
                /* MELCOM80 */\r
 \r
-               if(FindField(Str, Tmp, 0, NO) == FFFTP_SUCCESS)\r
+               // MLSD対応\r
+//             if(FindField(Str, Tmp, 0, NO) == FFFTP_SUCCESS)\r
+               if(Ret == LIST_UNKNOWN && FindField(Str, Tmp, 0, NO) == FFFTP_SUCCESS)\r
                {\r
                        /* MELCOM80は "d rwxrwxrwx" のようにスペースが空いている */\r
                        Flag1 = NO;\r
@@ -4041,14 +4052,6 @@ static int AnalizeFileInfo(char *Str)
                }\r
 #endif\r
 \r
-               // MLSD対応\r
-               if(Ret == LIST_UNKNOWN)\r
-               {\r
-                       if(FindField2(Str, Tmp, ';', 1, NO) == FFFTP_SUCCESS && FindField2(Str, Tmp, '=', 1, NO) == FFFTP_SUCCESS)\r
-                       {\r
-                               Ret = LIST_MLSD;\r
-                       }\r
-               }\r
        }\r
 \r
 DoPrintf("ListType=%d", Ret);\r