OSDN Git Service

Fix bugs of the drag-and-drop routine.
[ffftp/ffftp.git] / remote.c
index a8ee473..8ce4dbc 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -494,8 +494,8 @@ int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork)
        char Tmp[1024];\r
        SYSTEMTIME sTime;\r
 \r
-    Time->dwLowDateTime = 0;\r
-    Time->dwHighDateTime = 0;\r
+       Time->dwLowDateTime = 0;\r
+       Time->dwHighDateTime = 0;\r
 \r
        // 同時接続対応\r
        // ホスト側の日時取得\r
@@ -711,6 +711,8 @@ static int DoDirList(HWND hWnd, SOCKET cSkt, char *AddOpt, char *Path, int Num,
        MainTransPkt.KanjiCode = KANJI_NOCNV;\r
        MainTransPkt.KanaCnv = YES;\r
        MainTransPkt.Mode = EXIST_OVW;\r
+       // ミラーリング設定追加\r
+       MainTransPkt.NoTransfer = NO;\r
        MainTransPkt.ExistSize = 0;\r
        MainTransPkt.hWndTrans = hWnd;\r
        MainTransPkt.Next = NULL;\r
@@ -861,93 +863,6 @@ int CommandProcTrn(SOCKET cSkt, char *Reply, int* CancelCheckWork, char *fmt, ..
 //#pragma aaa\r
 //static int cntcnt = 0;\r
 \r
-// SFTP対応\r
-int ConvertFTPCommandToPuTTYSFTP(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *Cmd)\r
-{\r
-       // TODO:\r
-       // 未実装\r
-       int Sts;\r
-       char NewCmd[FMAX_PATH*2];\r
-       static char RenameFrom[FMAX_PATH+1];\r
-       Sts = 429;\r
-       Reply[0] = '\0';\r
-       if(strcmp(Cmd, "QUIT") == 0)\r
-       {\r
-               sprintf(NewCmd, "ls\r\n");\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       if(strcmp(Cmd, "LIST") == 0)\r
-       {\r
-               sprintf(NewCmd, "ls\r\n");\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "REST ", 5) == 0)\r
-       {\r
-               SFTP_SetFilePosition(cSkt, (LONGLONG)_strtoi64(&Cmd[5], NULL, 10));\r
-       }\r
-       else if(strncmp(Cmd, "RETR ", 5) == 0)\r
-       {\r
-               sprintf(NewCmd, "get \"%s\"\r\n", &Cmd[5]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "STOR ", 5) == 0)\r
-       {\r
-               sprintf(NewCmd, "put \"%s\"\r\n", &Cmd[5]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "APPE ", 5) == 0)\r
-       {\r
-               sprintf(NewCmd, "reput \"%s\"\r\n", &Cmd[5]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "DELE ", 5) == 0)\r
-       {\r
-               sprintf(NewCmd, "rm \"%s\"\r\n", &Cmd[5]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "CWD ", 4) == 0)\r
-       {\r
-               sprintf(NewCmd, "cd \"%s\"\r\n", &Cmd[4]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strcmp(Cmd, "PWD") == 0)\r
-       {\r
-               sprintf(NewCmd, "pwd\r\n");\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strcmp(Cmd, "XPWD") == 0)\r
-       {\r
-               sprintf(NewCmd, "pwd\r\n");\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "MKD ", 4) == 0)\r
-       {\r
-               sprintf(NewCmd, "mkdir \"%s\"\r\n", &Cmd[4]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "RMD ", 4) == 0)\r
-       {\r
-               sprintf(NewCmd, "rmdir \"%s\"\r\n", &Cmd[4]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "RNFR ", 5) == 0)\r
-       {\r
-               strcpy(RenameFrom, &Cmd[5]);\r
-       }\r
-       else if(strncmp(Cmd, "RNTO ", 5) == 0)\r
-       {\r
-               sprintf(NewCmd, "mv \"%s\" \"%s\"\r\n", RenameFrom, &Cmd[5]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       else if(strncmp(Cmd, "SITE CHMOD ", 11) == 0)\r
-       {\r
-               Cmd[14] = '\0';\r
-               sprintf(NewCmd, "chmod %s \"%s\"\r\n", &Cmd[11], &Cmd[15]);\r
-               SFTP_send(cSkt, NewCmd, strlen(NewCmd), 0);\r
-       }\r
-       return Sts;\r
-}\r
-\r
 int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...)\r
 {\r
        va_list Args;\r
@@ -961,10 +876,6 @@ int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...)
                wvsprintf(Cmd, fmt, Args);\r
                va_end(Args);\r
 \r
-               // SFTP対応\r
-               if(IsSFTPAttached(cSkt))\r
-                       return ConvertFTPCommandToPuTTYSFTP(cSkt, Reply, CancelCheckWork, Cmd);\r
-\r
                if(strncmp(Cmd, "PASS ", 5) == 0)\r
                        SetTaskMsg(">PASS [xxxxxx]");\r
                else if((strncmp(Cmd, "USER ", 5) == 0) ||\r
@@ -976,8 +887,11 @@ int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...)
                {\r
                        ChangeSepaLocal2Remote(Cmd);\r
                        SetTaskMsg(">%s", Cmd);\r
-                       ChangeFnameLocal2Remote(Cmd, FMAX_PATH*2);\r
+                       // UTF-8対応\r
+//                     ChangeFnameLocal2Remote(Cmd, FMAX_PATH*2);\r
                }\r
+               // UTF-8対応\r
+               ChangeFnameLocal2Remote(Cmd, FMAX_PATH*2);\r
 \r
 //             DoPrintf("SEND : %s", Cmd);\r
                strcat(Cmd, "\x0D\x0A");\r
@@ -1652,6 +1566,17 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
 //                             *(Buf + cInfo.OutLen) = NUL;\r
 //                             strcpy(Pos, Buf);\r
 //                             break;\r
+\r
+                       // UTF-8 HFS+対応\r
+                       case KANJI_UTF8HFSX :\r
+                               ConvUTF8HFSXtoUTF8N(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               break;\r
                }\r
                // バッファ上書きバグ対策\r
                free(Buf2);\r
@@ -1820,6 +1745,17 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
 //                             *(Buf + cInfo.OutLen) = NUL;\r
 //                             strcpy(Pos, Buf);\r
 //                             break;\r
+\r
+                       // UTF-8 HFS+対応\r
+                       case KANJI_UTF8HFSX :\r
+                               ConvUTF8NtoUTF8HFSX(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               break;\r
                }\r
                // バッファ上書きバグ対策\r
                free(Buf2);\r