#define __COMMON_H__\r
\r
#include "config.h"\r
-#ifndef ENGLISH\r
+#ifndef FFFTP_ENGLISH\r
#include "mesg-jpn.h"\r
#else\r
#include "mesg-eng.h"\r
//#define VER_STR "1.97b"\r
//#define VER_NUM 1921 /* 設定バージョン */\r
//#define PROGRAM_VERSION_NUM 1972 /* バージョン */\r
-#define VER_STR "1.98e"\r
-#define VER_NUM 1985 /* 設定バージョン */\r
-#define PROGRAM_VERSION_NUM 1985 /* バージョン */\r
+#define VER_STR "1.98f"\r
+#define VER_NUM 1986 /* 設定バージョン */\r
+#define PROGRAM_VERSION_NUM 1986 /* バージョン */\r
\r
\r
// SourceForge.JPによるフォーク\r
\r
#define SELECT_ALL 0 /* 全選択 */\r
#define SELECT_REGEXP 1 /* 検索式を入力して選択 */\r
+// ローカル側自動更新\r
+#define SELECT_LIST 2 /* リストに含まれるファイルを選択 */\r
\r
/*===== 検索方法 =====*/\r
\r
\r
/*===== コマンドラインオプション =====*/\r
\r
-#define OPT_MIRROR 0x0001 /* ミラーリングアップロードを行う */\r
-#define OPT_FORCE 0x0002 /* ミラーリング開始の確認をしない */\r
-#define OPT_QUIT 0x0004 /* 終了後プログラム終了 */\r
-#define OPT_EUC 0x0008 /* 漢字コードはEUC */\r
-#define OPT_JIS 0x0010 /* 漢字コードはJIS */\r
-#define OPT_ASCII 0x0020 /* アスキー転送モード */\r
-#define OPT_BINARY 0x0040 /* バイナリ転送モード */\r
-#define OPT_AUTO 0x0080 /* 自動判別 */\r
-#define OPT_KANA 0x0100 /* 半角かなをそのまま通す */\r
-#define OPT_EUC_NAME 0x0200 /* ファイル名はEUC */\r
-#define OPT_JIS_NAME 0x0400 /* ファイル名はJIS */\r
-#define OPT_MIRRORDOWN 0x0800 /* ミラーリングダウンロードを行う */\r
-#define OPT_SAVEOFF 0x1000 /* 設定の保存を中止する */\r
-#define OPT_SAVEON 0x2000 /* 設定の保存を再開する */\r
+//#define OPT_MIRROR 0x0001 /* ミラーリングアップロードを行う */\r
+//#define OPT_FORCE 0x0002 /* ミラーリング開始の確認をしない */\r
+//#define OPT_QUIT 0x0004 /* 終了後プログラム終了 */\r
+//#define OPT_EUC 0x0008 /* 漢字コードはEUC */\r
+//#define OPT_JIS 0x0010 /* 漢字コードはJIS */\r
+//#define OPT_ASCII 0x0020 /* アスキー転送モード */\r
+//#define OPT_BINARY 0x0040 /* バイナリ転送モード */\r
+//#define OPT_AUTO 0x0080 /* 自動判別 */\r
+//#define OPT_KANA 0x0100 /* 半角かなをそのまま通す */\r
+//#define OPT_EUC_NAME 0x0200 /* ファイル名はEUC */\r
+//#define OPT_JIS_NAME 0x0400 /* ファイル名はJIS */\r
+//#define OPT_MIRRORDOWN 0x0800 /* ミラーリングダウンロードを行う */\r
+//#define OPT_SAVEOFF 0x1000 /* 設定の保存を中止する */\r
+//#define OPT_SAVEON 0x2000 /* 設定の保存を再開する */\r
+#define OPT_MIRROR 0x00000001 /* ミラーリングアップロードを行う */\r
+#define OPT_FORCE 0x00000002 /* ミラーリング開始の確認をしない */\r
+#define OPT_QUIT 0x00000004 /* 終了後プログラム終了 */\r
+#define OPT_EUC 0x00000008 /* 漢字コードはEUC */\r
+#define OPT_JIS 0x00000010 /* 漢字コードはJIS */\r
+#define OPT_ASCII 0x00000020 /* アスキー転送モード */\r
+#define OPT_BINARY 0x00000040 /* バイナリ転送モード */\r
+#define OPT_AUTO 0x00000080 /* 自動判別 */\r
+#define OPT_KANA 0x00000100 /* 半角かなをそのまま通す */\r
+#define OPT_EUC_NAME 0x00000200 /* ファイル名はEUC */\r
+#define OPT_JIS_NAME 0x00000400 /* ファイル名はJIS */\r
+#define OPT_MIRRORDOWN 0x00000800 /* ミラーリングダウンロードを行う */\r
+#define OPT_SAVEOFF 0x00001000 /* 設定の保存を中止する */\r
+#define OPT_SAVEON 0x00002000 /* 設定の保存を再開する */\r
+// UTF-8対応\r
+#define OPT_SJIS 0x00004000 /* 漢字コードはShift_JIS */\r
+#define OPT_UTF8N 0x00008000 /* 漢字コードはUTF-8 */\r
+#define OPT_UTF8BOM 0x00010000 /* 漢字コードはUTF-8 BOM */\r
+#define OPT_SJIS_NAME 0x00020000 /* ファイル名はShift_JIS */\r
+#define OPT_UTF8N_NAME 0x00040000 /* ファイル名はUTF-8 */\r
\r
/*===== ホストのヒストリ =====*/\r
\r
// IPv6対応\r
#define FEATURE_EPRT 0x00000004\r
#define FEATURE_EPSV 0x00000008\r
+// ホスト側の日時取得\r
+#define FEATURE_MDTM 0x00000010\r
+// ホスト側の日時設定\r
+#define FEATURE_MFMT 0x00000020\r
\r
// IPv6対応\r
#define NTYPE_AUTO 0 /* 自動 */\r
/*===== コード変換情報パケット =====*/\r
\r
typedef char * (*funcptr)(struct codeconvinfo *, char , char *);\r
+// UTF-8対応\r
+typedef int (*convptr)(struct codeconvinfo *);\r
\r
typedef struct codeconvinfo {\r
char *Str; /* 文字列 */\r
char KanjiFst; /* 漢字コード1バイト目保存用 (内部処理用ワーク) */\r
char KanaPrev; /* 半角カタカナ保存用 (内部処理用ワーク) */\r
funcptr KanaProc; /* 半角カタカナ処理ルーチン (内部処理用ワーク) */\r
- char EscUTF8[8];\r
- int EscUTF8Len;\r
+ // UTF-8対応\r
+ char EscUTF8[16]; /* エスケープシーケンス文字数 (0~) (内部処理用ワーク) */\r
+ int EscUTF8Len; /* エスケープシーケンス文字保存用 (内部処理用ワーク) */\r
+ int EscFlush; /* 残り情報を出力 (YES/NO) */\r
+ convptr FlushProc; /* 残り情報処理ルーチン (内部処理用ワーク) */\r
} CODECONVINFO;\r
\r
\r
BOOL IsMainThread();\r
// ファイルアイコン表示対応\r
int AskDispFileIcon(void);\r
+// ポータブル版判定\r
+void CheckPortableVersion();\r
+int AskPortableVersion(void);\r
\r
/*===== filelist.c =====*/\r
\r
void GetRemoteDirForWnd(int Mode, int *CancelCheckWork);\r
void GetLocalDirForWnd(void);\r
void ReSortDispList(int Win, int *CancelCheckWork);\r
-void SelectFileInList(HWND hWnd, int Type);\r
+// ローカル側自動更新\r
+//void SelectFileInList(HWND hWnd, int Type);\r
+void SelectFileInList(HWND hWnd, int Type, FILELIST *Base);\r
void FindFileInList(HWND hWnd, int Type);\r
// void WildCard2RegExp(char *Str);\r
int GetCurrentItem(int Win);\r
\r
/*===== ftpproc.c =====*/\r
\r
-void DownLoadProc(int ChName, int ForceFile, int All);\r
-void DirectDownLoadProc(char *Fname);\r
-void InputDownLoadProc(void);\r
+void DownloadProc(int ChName, int ForceFile, int All);\r
+void DirectDownloadProc(char *Fname);\r
+void InputDownloadProc(void);\r
void MirrorDownloadProc(int Notify);\r
-void UpLoadListProc(int ChName, int All);\r
-void UpLoadDragProc(WPARAM wParam);\r
+void UploadListProc(int ChName, int All);\r
+void UploadDragProc(WPARAM wParam);\r
void MirrorUploadProc(int Notify);\r
void DeleteProc(void);\r
void RenameProc(void);\r
// 同時接続対応\r
//int DoMDTM(char *Path, FILETIME *Time);\r
int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork);\r
-int DoQUOTE(char *CmdStr);\r
+// ホスト側の日時設定\r
+int DoMFMT(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork);\r
+// 同時接続対応\r
+//int DoQUOTE(char *CmdStr);\r
+int DoQUOTE(SOCKET cSkt, char *CmdStr, int *CancelCheckWork);\r
SOCKET DoClose(SOCKET Sock);\r
-int DoQUIT(SOCKET ctrl_skt);\r
+// 同時接続対応\r
+//int DoQUIT(SOCKET ctrl_skt);\r
+int DoQUIT(SOCKET ctrl_skt, int *CancelCheckWork);\r
int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork);\r
#if defined(HAVE_TANDEM)\r
void SwitchOSSProc(void);\r
int RemoveTmpTransFileListItem(TRANSPACKET **Base, int Num);\r
\r
void AddTransFileList(TRANSPACKET *Pkt);\r
+// バグ対策\r
+void AddNullTransFileList();\r
void AppendTransFileList(TRANSPACKET *Pkt);\r
void KeepTransferDialog(int Sw);\r
int AskTransferNow(void);\r
int AskTransferFileNum(void);\r
void GoForwardTransWindow(void);\r
void InitTransCurDir(void);\r
-int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
+int DoDownload(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
int CheckPathViolation(TRANSPACKET *packet);\r
\r
/*===== codecnv.c =====*/\r
\r
/*===== registory.c =====*/\r
\r
-void SaveRegistory(void);\r
-int LoadRegistory(void);\r
-void ClearRegistory(void);\r
+void SaveRegistry(void);\r
+int LoadRegistry(void);\r
+void ClearRegistry(void);\r
+// ポータブル版判定\r
+void ClearIni(void);\r
void SetMasterPassword( const char* );\r
+// セキュリティ強化\r
+void GetMasterPassword(char*);\r
int GetMasterPasswordStatus(void);\r
int ValidateMasterPassword(void);\r
-DWORD LoadHideDriveListRegistory(void);\r
+DWORD LoadHideDriveListRegistry(void);\r
void SaveSettingsToFile(void);\r
int LoadSettingsFromFile(void);\r
+// ポータブル版判定\r
+int IsRegAvailable();\r
+int IsIniAvailable();\r
\r
/*===== lvtips.c =====*/\r
\r
\r
int MakeSocketWin(HWND hWnd, HINSTANCE hInst);\r
void DeleteSocketWin(void);\r
+// ソケットにデータを付与\r
+int SetAsyncTableDataIPv4(SOCKET s, struct sockaddr_in* Host, struct sockaddr_in* Socks);\r
+int SetAsyncTableDataIPv6(SOCKET s, struct sockaddr_in6* Host, struct sockaddr_in6* Socks);\r
+int GetAsyncTableDataIPv4(SOCKET s, struct sockaddr_in* Host, struct sockaddr_in* Socks);\r
+int GetAsyncTableDataIPv6(SOCKET s, struct sockaddr_in6* Host, struct sockaddr_in6* Socks);\r
// IPv6対応\r
//struct hostent *do_gethostbyname(const char *Name, char *Buf, int Len, int *CancelCheckWork);\r
struct hostent *do_gethostbynameIPv4(const char *Name, char *Buf, int Len, int *CancelCheckWork);\r