OSDN Git Service

Fix bugs of corruption on resuming downloading files larger than 4GB.
[ffftp/ffftp.git] / history.c
index 91c3c74..3f535df 100644 (file)
--- a/history.c
+++ b/history.c
@@ -1,6 +1,6 @@
-/*=============================================================================\r
+/*=============================================================================\r
 *\r
-*                                                                              \83q\83X\83g\83\8a\r
+*                                                                              ヒストリ\r
 *\r
 ===============================================================================\r
 / Copyright (C) 1997-2007 Sota. All rights reserved.\r
 #include "resource.h"\r
 \r
 \r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New);\r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num);\r
 static void RemoveAllHistoryFromMenu(void);\r
 \r
-/*===== \8aO\95\94\8eQ\8fÆ =====*/\r
+/*===== 外部参照 =====*/\r
 \r
-/* \90Ý\92è\92l */\r
+/* 設定値 */\r
 extern int FileHist;\r
 extern int PassToHist;\r
 \r
-/*===== \83\8d\81[\83J\83\8b\82È\83\8f\81[\83N =====*/\r
+/*===== ローカルなワーク =====*/\r
 \r
 static HISTORYDATA *HistoryBase = NULL;\r
 static int HistoryNum = 0;\r
 \r
-/* \83q\83X\83g\83\8a\82Ì\83\81\83j\83\85\81[\8d\80\96Ú\82ÌID */\r
+/* ヒストリのメニュー項目のID */\r
 static int MenuHistId[HISTORY_MAX] = {\r
        MENU_HIST_1,  MENU_HIST_2,  MENU_HIST_3,  MENU_HIST_4,  MENU_HIST_5,\r
        MENU_HIST_6,  MENU_HIST_7,  MENU_HIST_8,  MENU_HIST_9,  MENU_HIST_10,\r
@@ -70,14 +70,14 @@ static int MenuHistId[HISTORY_MAX] = {
 \r
 \r
 \r
-/*----- \83z\83X\83g\8fî\95ñ\82ð\83q\83X\83g\83\8a\83\8a\83X\83g\82Ì\90æ\93ª\82É\92Ç\89Á\82·\82é ----------------------------\r
+/*----- ホスト情報をヒストリリストの先頭に追加する ----------------------------\r
 *\r
 *      Parameter\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\r
-*              int TrMode : \93]\91\97\83\82\81[\83h\r
+*              HOSTDATA *Host : ホストデータ\r
+*              int TrMode : 転送モード\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHostToHistory(HOSTDATA *Host, int TrMode)\r
@@ -91,13 +91,13 @@ void AddHostToHistory(HOSTDATA *Host, int TrMode)
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82ð\83q\83X\83g\83\8a\83\8a\83X\83g\82Ì\90æ\93ª\82É\92Ç\89Á\82·\82é ------------------------------\r
+/*----- ヒストリをヒストリリストの先頭に追加する ------------------------------\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Hist : \83q\83X\83g\83\8a\83f\81[\83^\r
+*              HISTORYDATA *Hist : ヒストリデータ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AddHistoryToHistory(HISTORYDATA *Hist)\r
@@ -120,13 +120,13 @@ void AddHistoryToHistory(HISTORYDATA *Hist)
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82Ì\90\94\82ð\95Ô\82· ----------------------------------------------------\r
+/*----- ヒストリの数を返す ----------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \83q\83X\83g\83\8a\82Ì\90\94\r
+*              int ヒストリの数\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskHistoryNum(void)\r
@@ -135,13 +135,13 @@ int AskHistoryNum(void)
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82Ì\90\94\82ð\83`\83F\83b\83N\82µ\91½\82·\82¬\82½\82ç\8dí\8f\9c --------------------------------\r
+/*----- ヒストリの数をチェックし多すぎたら削除 --------------------------------\r
 *\r
 *      Parameter\r
-*              int Space : \8bó\82¯\82Ä\82¨\82­\8cÂ\90\94 (0\81`)\r
+*              int Space : 空けておく個数 (0~)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CheckHistoryNum(int Space)\r
@@ -153,7 +153,7 @@ void CheckHistoryNum(int Space)
 \r
        if(HistoryNum > FileHist-Space)\r
        {\r
-               /* \8ec\82·\82×\82«\83q\83X\83g\83\8a\82ð\92T\82· */\r
+               /* 残すべきヒストリを探す */\r
                Pos = HistoryBase;\r
                Prev = NULL;\r
                for(i = 0; i < FileHist-Space; i++)\r
@@ -162,7 +162,7 @@ void CheckHistoryNum(int Space)
                        Pos = Pos->Next;\r
                }\r
 \r
-               /* \82¢\82ç\82È\82¢\83q\83X\83g\83\8a\82ð\8fÁ\82· */\r
+               /* いらないヒストリを消す */\r
                if(Prev == NULL)\r
                        HistoryBase = NULL;\r
                else\r
@@ -180,14 +180,14 @@ void CheckHistoryNum(int Space)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\8fî\95ñ\82ð\83q\83X\83g\83\8a\82É\83Z\83b\83g ------------------------------------------\r
+/*----- ホスト情報をヒストリにセット ------------------------------------------\r
 *\r
 *      Parameter\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\r
-*              HISTORYDATA *New : \83q\83X\83g\83\8a\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HOSTDATA *Host : ホストデータ\r
+*              HISTORYDATA *New : ヒストリをセットするワーク\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New)\r
@@ -223,22 +223,30 @@ static void CopyHostToHistory(HOSTDATA *Host, HISTORYDATA *New)
        New->DialupAlways = Host->DialupAlways;\r
        New->DialupNotify = Host->DialupNotify;\r
        strcpy(New->DialEntry, Host->DialEntry);\r
-       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+       // 暗号化通信対応\r
+       New->UseNoEncryption = Host->UseNoEncryption;\r
        New->UseFTPES = Host->UseFTPES;\r
        New->UseFTPIS = Host->UseFTPIS;\r
        New->UseSFTP = Host->UseSFTP;\r
+       strcpy(New->PrivateKey, Host->PrivateKey);\r
+       // 同時接続対応\r
+       New->MaxThreadCount = Host->MaxThreadCount;\r
+       // MLSD対応\r
+       New->UseMLSD = Host->UseMLSD;\r
+       // IPv6対応\r
+       New->UseIPv6 = Host->UseIPv6;\r
        return;\r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\8fî\95ñ\82ð\83z\83X\83g\8fî\95ñ\82É\83Z\83b\83g --------------------------------------\r
+/*----- ヒストリ情報をホスト情報にセット --------------------------------------\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Hist : \83q\83X\83g\83\8a\r
-*              HOSTDATA *Host : \83z\83X\83g\83f\81[\83^\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HISTORYDATA *Hist : ヒストリ\r
+*              HOSTDATA *Host : ホストデータをセットするワーク\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host)\r
@@ -276,21 +284,29 @@ void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host)
        Host->DialupAlways = Hist->DialupAlways;\r
        Host->DialupNotify = Hist->DialupNotify;\r
        strcpy(Host->DialEntry, Hist->DialEntry);\r
-       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+       // 暗号化通信対応\r
+       Host->UseNoEncryption = Hist->UseNoEncryption;\r
        Host->UseFTPES = Hist->UseFTPES;\r
        Host->UseFTPIS = Hist->UseFTPIS;\r
        Host->UseSFTP = Hist->UseSFTP;\r
+       strcpy(Host->PrivateKey, Hist->PrivateKey);\r
+       // 同時接続対応\r
+       Host->MaxThreadCount = Hist->MaxThreadCount;\r
+       // MLSD対応\r
+       Host->UseMLSD = Hist->UseMLSD;\r
+       // IPv6対応\r
+       Host->UseIPv6 = Hist->UseIPv6;\r
        return;\r
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\8fî\95ñ\82Ì\8f\89\8aú\92l\82ð\8eæ\93¾ --------------------------------------------\r
+/*----- ヒストリ情報の初期値を取得 --------------------------------------------\r
 *\r
 *      Parameter\r
-*              HISTORYDATA *Set : \83q\83X\83g\83\8a\82ð\83Z\83b\83g\82·\82é\83\8f\81[\83N\r
+*              HISTORYDATA *Set : ヒストリをセットするワーク\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void CopyDefaultHistory(HISTORYDATA *Set)\r
@@ -303,13 +319,13 @@ void CopyDefaultHistory(HISTORYDATA *Set)
 }\r
 \r
 \r
-/*----- \91S\83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82É\83Z\83b\83g ------------------------------------------\r
+/*----- 全ヒストリをメニューにセット ------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetAllHistoryToMenu(void)\r
@@ -329,16 +345,16 @@ void SetAllHistoryToMenu(void)
 }\r
 \r
 \r
-/*----- \83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82É\92Ç\89Á ----------------------------------------------\r
+/*----- ヒストリをメニューに追加 ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Host : \83z\83X\83g\96¼\r
-*              char *User : \83\86\81[\83U\96¼\r
-*              char *Remote : \83z\83X\83g\82Ì\83t\83H\83\8b\83_\r
-*              int Num : \94Ô\8d\86\r
+*              char *Host : ホスト名\r
+*              char *User : ユーザ名\r
+*              char *Remote : ホストのフォルダ\r
+*              int Num : 番号\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num)\r
@@ -364,13 +380,13 @@ static void AddOneFnameToMenu(char *Host, char *User, char *Remote, int Num)
 }\r
 \r
 \r
-/*----- \91S\83q\83X\83g\83\8a\82ð\83\81\83j\83\85\81[\82©\82ç\8dí\8f\9c ------------------------------------------\r
+/*----- 全ヒストリをメニューから削除 ------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void RemoveAllHistoryFromMenu(void)\r
@@ -389,15 +405,15 @@ static void RemoveAllHistoryFromMenu(void)
 }\r
 \r
 \r
-/*----- \8ew\92è\83\81\83j\83\85\81[\83R\83}\83\93\83h\82É\91Î\89\9e\82·\82é\83q\83X\83g\83\8a\82ð\95Ô\82· --------------------------\r
+/*----- 指定メニューコマンドに対応するヒストリを返す --------------------------\r
 *\r
 *      Parameter\r
-*              int MenuCmd : \8eæ\82è\8fo\82·\83q\83X\83g\83\8a\82É\8a\84\82è\93\96\82Ä\82ç\82ê\82½\83\81\83j\83\85\81[\83R\83}\83\93\83h (MENU_xxx)\r
-*              HISTORYDATA *Buf : \83q\83X\83g\83\8a\83f\81[\83^\82ð\95Ô\82·\83o\83b\83t\83@\r
+*              int MenuCmd : 取り出すヒストリに割り当てられたメニューコマンド (MENU_xxx)\r
+*              HISTORYDATA *Buf : ヒストリデータを返すバッファ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)\r
@@ -406,14 +422,14 @@ int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)
        int i;\r
        HISTORYDATA *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        Pos = HistoryBase;\r
        for(i = 0; i < HistoryNum; i++)\r
        {\r
                if(MenuHistId[i] == MenuCmd)\r
                {\r
                        memcpy(Buf, Pos, sizeof(HISTORYDATA));\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
                Pos = Pos->Next;\r
        }\r
@@ -421,15 +437,15 @@ int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf)
 }\r
 \r
 \r
-/*----- \8ew\92è\94Ô\8d\86\82É\91Î\89\9e\82·\82é\83q\83X\83g\83\8a\82ð\95Ô\82· --------------------------------------\r
+/*----- 指定番号に対応するヒストリを返す --------------------------------------\r
 *\r
 *      Parameter\r
-*              int Num : \94Ô\8d\86(0\81`)\r
-*              HISTORYDATA *Buf : \83q\83X\83g\83\8a\83f\81[\83^\82ð\95Ô\82·\83o\83b\83t\83@\r
+*              int Num : 番号(0~)\r
+*              HISTORYDATA *Buf : ヒストリデータを返すバッファ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHistoryByNum(int Num, HISTORYDATA *Buf)\r