OSDN Git Service

Add support for linux-ftpd (untested).
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 6 Dec 2011 14:56:07 +0000 (23:56 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Tue, 6 Dec 2011 14:56:07 +0000 (23:56 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
common.h
filelist.c

index 4346beb..c6e9baf 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index b75036f..2c56ef6 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 56f2549..bd7737e 100644 (file)
--- a/common.h
+++ b/common.h
 #define LIST_UNIX_73   45              /* UNIX 73 */\r
 #define LIST_UNIX_74   46              /* UNIX 74 */\r
 #define LIST_UNIX_75   47              /* UNIX 75 */\r
+// linux-ftpd\r
+#define LIST_UNIX_16   48              /* UNIX 16 */\r
 // MLSD対応\r
-#define LIST_MLSD              48\r
+#define LIST_MLSD              49\r
 \r
 #define LIST_MELCOM            0x100   /* MELCOM80 */\r
 \r
@@ -671,6 +673,15 @@ LIST_UNIX_70
      61191    Aug-30-2002  17:30:38   FILENAME.C        \r
 \r
 \r
+// linux-ftpd\r
+*LIST_UNIX_16\r
+       0          1   2     3      4    5          6     7\r
+       -------------------------------------------------------\r
+       合計 12345\r
+       drwxr-x--- 2 root root      4096 2011-12-06 23:39 .\r
+       drwxr-x--- 3 root root      4096 2011-12-06 23:39 ..\r
+       -rw-r----- 1 root root       251 2011-12-06 23:39 .hoge\r
+\r
 ------------------------------------*/\r
 \r
 /*===== 接続ウインドウの形式 =====*/\r
index c8fb39a..930f21d 100644 (file)
@@ -3333,6 +3333,21 @@ static int AnalizeFileInfo(char *Str)
                                        }\r
                                }\r
 \r
+                               // linux-ftpd\r
+                               if((Ret == LIST_UNKNOWN) &&\r
+                                  (FindField(Str, Tmp, 7+Add1, NO) == FFFTP_SUCCESS))\r
+                               {\r
+                                       if((FindField(Str, Tmp, 5, NO) == FFFTP_SUCCESS) &&\r
+                                          (CheckYYYYMMDDformat(Tmp, NUL) != 0))\r
+                                       {\r
+                                               if((FindField(Str, Tmp, 6, NO) == FFFTP_SUCCESS) &&\r
+                                                  (CheckHHMMformat(Tmp) == YES))\r
+                                               {\r
+                                                       Ret = LIST_UNIX_16;\r
+                                               }\r
+                                       }\r
+                               }\r
+\r
                                if((Ret != LIST_UNKNOWN) && (Flag1 == YES))\r
                                        Ret |= LIST_MELCOM;\r
                        }\r
@@ -4671,6 +4686,8 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size,
                case LIST_UNIX_75 :\r
 // MELCOMはビットフラグになっている\r
 //             case LIST_MELCOM :\r
+               // linux-ftpd\r
+               case LIST_UNIX_16 :\r
                default:\r
                        /* offsはサイズの位置, offs=0はカラム4 */\r
                        offs = 0;\r
@@ -4705,6 +4722,16 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size,
 \r
                        /* offs2は時間(もしくは年)の位置 */\r
                        offs2 = 0;\r
+                       // linux-ftpd\r
+//                     if((ListType == LIST_UNIX_11) ||\r
+//                        (ListType == LIST_UNIX_13) ||\r
+//                        (ListType == LIST_UNIX_21) ||\r
+//                        (ListType == LIST_UNIX_23) ||\r
+//                        (ListType == LIST_UNIX_51) ||\r
+//                        (ListType == LIST_UNIX_61) ||\r
+//                        (ListType == LIST_UNIX_63) ||\r
+//                        (ListType == LIST_UNIX_71) ||\r
+//                        (ListType == LIST_UNIX_73))\r
                        if((ListType == LIST_UNIX_11) ||\r
                           (ListType == LIST_UNIX_13) ||\r
                           (ListType == LIST_UNIX_21) ||\r
@@ -4713,7 +4740,8 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size,
                           (ListType == LIST_UNIX_61) ||\r
                           (ListType == LIST_UNIX_63) ||\r
                           (ListType == LIST_UNIX_71) ||\r
-                          (ListType == LIST_UNIX_73))\r
+                          (ListType == LIST_UNIX_73) ||\r
+                          (ListType == LIST_UNIX_16))\r
                                offs2 = -1;\r
 \r
                        /* offs3はオーナ名の位置 */\r
@@ -4791,6 +4819,16 @@ static int ResolvFileInfo(char *Str, int ListType, char *Fname, LONGLONG *Size,
                                        if(GetHourAndMinute(Buf, &sTime.wHour, &sTime.wMinute) == FFFTP_SUCCESS)\r
                                                *InfoExist |= FINFO_TIME;\r
                                }\r
+                               // linux-ftpd\r
+                               else if(CheckYYYYMMDDformat(Buf, NUL) != 0)\r
+                               {\r
+                                       sTime.wYear = atoi(Buf);\r
+                                       sTime.wMonth = atoi(Buf+5);\r
+                                       sTime.wDay = atoi(Buf+8);\r
+                                       FindField(Str, Buf, 7+offs+offs2, NO);\r
+                                       sTime.wHour = atoi_n(Buf, 2);\r
+                                       sTime.wMinute = atoi(Buf+2);\r
+                               }\r
                                else\r
                                {\r
                                        GetMonth(Buf, &sTime.wMonth, &sTime.wDay);\r