#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
+// 64ビット対応\r
+#ifdef _WIN64\r
+#define VER_STR "1.99 64bit"\r
+#else\r
#define VER_STR "1.99"\r
+#endif\r
#define VER_NUM 1990 /* 設定バージョン */\r
#define PROGRAM_VERSION_NUM 1990 /* バージョン */\r
+// ソフトウェア自動更新\r
+// リリースバージョンはリリース予定年(10進数4桁)+月(2桁)+日(2桁)+通し番号(0スタート2桁)とする\r
+// 2014年7月31日中の30個目のリリースは2014073129\r
+#define RELEASE_VERSION_NUM 2014061500 /* リリースバージョン */\r
\r
\r
// SourceForge.JPによるフォーク\r
#define CHMOD_CMD_NOR "SITE CHMOD" /* 属性変更コマンド */\r
#define PORT_NOR 21 /* ポート番号 */\r
#define LS_FNAME "-alL" /* NLSTに付けるもの */\r
+#if defined(HAVE_TANDEM)\r
+#define DEF_PRIEXT 4 /* Primary Extents の初期値 */\r
+#define DEF_SECEXT 28 /* Secondary Extents の初期値 */\r
+#define DEF_MAXEXT 978 /* Max Extents の初期値 */\r
+#endif\r
\r
/*===== 同じ名前のファイルがあった時の処理 =====*/\r
\r
#define EXIST_IGNORE 3 /* 無視 */\r
#define EXIST_UNIQUE 4 /* ホストが名前を付ける */\r
#define EXIST_ABORT 5 /* 全て中止 */\r
+// 同じ名前のファイルの処理方法追加\r
+#define EXIST_LARGE 6 /* 大きければ上書き */\r
\r
/*===== ファイル名の比較モード =====*/\r
\r
\r
#define SELECT_ALL 0 /* 全選択 */\r
#define SELECT_REGEXP 1 /* 検索式を入力して選択 */\r
+// ローカル側自動更新\r
+#define SELECT_LIST 2 /* リストに含まれるファイルを選択 */\r
\r
/*===== 検索方法 =====*/\r
\r
#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
+#if defined(HAVE_TANDEM)\r
+#define LIST_TANDEM 50 /* HP NonStop Server */\r
+#endif\r
+// uClinux\r
+#define LIST_UNIX_17 51 /* UNIX 17 */\r
+// Windows Server 2008 R2\r
+#define LIST_DOS_5 52 /* MS-DOS 5 */\r
\r
#define LIST_MELCOM 0x100 /* MELCOM80 */\r
\r
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
+// uClinux\r
+*LIST_UNIX_17\r
+ 0 1 2 3 4 5\r
+ -------------------------------------------------------\r
+ -rw-r--r-- 1 0 0 100 services\r
+ lrwxrwxrwx 1 0 0 20 resolv.conf -> /var/run/resolv.conf\r
+ drwxr-sr-x 1 0 0 0 rc.d\r
+ -rw-r--r-- 1 0 0 290 rc\r
+ -rw-r--r-- 1 0 0 34 passwd\r
+ lrwxrwxrwx 1 0 0 18 inittab -> ../var/tmp/inittab\r
+\r
+// Windows Server 2008 R2\r
+*LIST_DOS_5\r
+ 0 1 2 3\r
+ -------------------------------------------------------\r
+ 02-05-2013 09:45AM <DIR> TEST\r
+ 01-28-2013 03:54PM 2847 DATA.TXT\r
+\r
+*LIST_TANDEM\r
+ 0 1 2 3 4 5 6\r
+ ---------------------------------------------------------------\r
+ File Code EOF Last Modification Owner RWEP\r
+ EMSACSTM 101 146 18-Sep-00 09:03:37 170,175 "nunu"\r
+ TACLCSTM O 101 101 4-Mar-01 23:50:06 255,255 "oooo"\r
+\r
------------------------------------*/\r
\r
/*===== 接続ウインドウの形式 =====*/\r
#define KANJI_UTF8N 5 /* UTF-8 */\r
// UTF-8対応\r
#define KANJI_UTF8BOM 6 /* UTF-8 BOM */\r
+// UTF-8 HFS+対応\r
+#define KANJI_UTF8HFSX 7 /* UTF-8 HFS+ */\r
\r
#define KANJI_NOCNV -1 /* 漢字コード変換なし */\r
\r
#define HTYPE_STRATUS 5 /* Stratus */\r
#define HTYPE_AGILENT 6 /* Agilent Logic analyzer */\r
#define HTYPE_SHIBASOKU 7 /* Shibasoku LSI test system */\r
+#if defined(HAVE_TANDEM)\r
+#define HTYPE_TANDEM 8 /* HP NonStop Server */\r
+#endif\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
+#define NTYPE_IPV4 1 /* TCP/IPv4 */\r
+#define NTYPE_IPV6 2 /* TCP/IPv6 */\r
\r
// 暗号化通信対応\r
// REG_SECT_MAXの値を加味する必要がある\r
int UseFTPIS; /* FTPISで接続する (YES/NO) */\r
int UseSFTP; /* SFTPで接続する (YES/NO) */\r
char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */\r
+ int NoWeakEncryption; /* 弱い暗号を拒否 (YES/NO) */\r
// 同時接続対応\r
int MaxThreadCount; /* 同時接続数 */\r
int ReuseCmdSkt; /* メインウィンドウのソケットを再利用する (YES/NO) */\r
+ int NoDisplayUI; /* UIを表示しない (YES/NO) */\r
// FEAT対応\r
int Feature; /* 利用可能な機能のフラグ (FEATURE_xxx) */\r
// MLSD対応\r
int UseMLSD; /* "MLSD"コマンドを使用する */\r
// IPv6対応\r
- int InetFamily; /* IPv6接続かどうか (AF_INET/AF_INET6) */\r
- int UseIPv6; /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */\r
+ int NetType; /* ネットワークの種類 (NTYPE_xxx) */\r
+ int CurNetType; /* 接続中のネットワークの種類 (NTYPE_xxx) */\r
+ // 自動切断対策\r
+ int NoopInterval; /* 無意味なコマンドを送信する間隔(秒数、0で無効)*/\r
+ // 再転送対応\r
+ int TransferErrorMode; /* 転送エラー時の処理 (EXIST_xxx) */\r
+ int TransferErrorNotify; /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */\r
+ // セッションあたりの転送量制限対策\r
+ int TransferErrorReconnect; /* 転送エラー時に再接続する (YES/NO) */\r
} HOSTDATA;\r
\r
\r
int UseFTPIS; /* FTPISで接続する (YES/NO) */\r
int UseSFTP; /* SFTPで接続する (YES/NO) */\r
char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */\r
+ int NoWeakEncryption; /* 弱い暗号を拒否 (YES/NO) */\r
// 同時接続対応\r
int MaxThreadCount; /* 同時接続数 */\r
int ReuseCmdSkt; /* メインウィンドウのソケットを再利用する (YES/NO) */\r
// MLSD対応\r
int UseMLSD; /* "MLSD"コマンドを使用する */\r
// IPv6対応\r
- int UseIPv6; /* IPv6接続を許可しEPRT/EPSVコマンドを使用する */\r
+ int NetType; /* ネットワークの種類 (NTYPE_xxx) */\r
+ // 自動切断対策\r
+ int NoopInterval; /* NOOPコマンドを送信する間隔(秒数、0で無効)*/\r
+ // 再転送対応\r
+ int TransferErrorMode; /* 転送エラー時の処理 (EXIST_xxx) */\r
+ int TransferErrorNotify; /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */\r
+ // セッションあたりの転送量制限対策\r
+ int TransferErrorReconnect; /* 転送エラー時に再接続する (YES/NO) */\r
struct historydata *Next;\r
} HISTORYDATA;\r
\r
int KanjiCodeDesired; /* ローカルの漢字コード (KANJI_xxx) */\r
int KanaCnv; /* 半角カナを全角に変換(YES/NO) */\r
int Mode; /* 転送モード (EXIST_xxx) */\r
+#if defined(HAVE_TANDEM)\r
+ int FileCode; /* ファイルコード */\r
+ int PriExt; /* Primary Extents */\r
+ int SecExt; /* Secondary Extents */\r
+ int MaxExt; /* Max Extents */\r
+#endif\r
HWND hWndTrans; /* 転送中ダイアログのウインドウハンドル */\r
int Abort; /* 転送中止フラグ (ABORT_xxx) */\r
// 同時接続対応\r
FILETIME Time; /* 時間(UTC) */\r
char Owner[OWNER_NAME_LEN+1]; /* オーナ名 */\r
char InfoExist; /* ファイル一覧に存在した情報のフラグ (FINFO_xxx) */\r
+ // ファイルアイコン表示対応\r
+ int ImageId; /* アイコン画像番号 */\r
struct filelist *Next;\r
} FILELIST;\r
\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
// 暗号化通信対応\r
BOOL __stdcall SSLTimeoutCallback(BOOL* pbAborted);\r
BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName);\r
+BOOL LoadSSLRootCAFile();\r
+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
+BOOL IsMainThread();\r
+// ポータブル版判定\r
+void CheckPortableVersion();\r
+int AskPortableVersion(void);\r
+// 全設定暗号化対応\r
+int Restart();\r
+void Terminate();\r
+// タスクバー進捗表示\r
+int LoadTaskbarList3();\r
+void FreeTaskbarList3();\r
+int IsTaskbarList3Loaded();\r
+void UpdateTaskbarProgress();\r
+// 高DPI対応\r
+int AskToolWinHeight(void);\r
+// ソフトウェア自動更新\r
+void UpdateSoftware(int Async, int NoError, int NoConfirm);\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
int GetSelectedCount(int Win);\r
int GetFirstSelected(int Win, int All);\r
int GetNextSelected(int Win, int Pos, int All);\r
+// ローカル側自動更新\r
+int GetHotSelected(int Win, char *Fname);\r
+int SetHotSelected(int Win, char *Fname);\r
int FindNameNode(int Win, char *Name);\r
void GetNodeName(int Win, int Pos, char *Buf, int Max);\r
int GetNodeTime(int Win, int Pos, FILETIME *Buf);\r
void DispLocalKanjiCode(void);\r
int AskLocalKanjiCode(void);\r
void HideLocalKanjiButton(void);\r
+void SaveLocalKanjiCode(void);\r
void SetHostKanaCnvImm(int Mode);\r
void SetHostKanaCnv(void);\r
void DispHostKanaCnv(void);\r
void CopyDefaultHost(HOSTDATA *Set);\r
int SearchHostName(char *Name);\r
void ImportFromWSFTP(void);\r
+// 暗号化通信対応\r
+int SetHostEncryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP);\r
\r
/*===== connect.c =====*/\r
\r
void DisconnectProc(void);\r
void DisconnectSet(void);\r
int AskConnecting(void);\r
+#if defined(HAVE_TANDEM)\r
+int AskRealHostType(void);\r
+int SetOSS(int wkOss);\r
+int AskOSS(void);\r
+#endif\r
SOCKET connectsock(char *host, int port, char *PreMsg, int *CancelCheckWork);\r
// IPv6対応\r
SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork);\r
// MLSD対応\r
int AskUseMLSD(void);\r
// IPv6対応\r
-int AskInetFamily(void);\r
-int AskUseIPv6(void);\r
+int AskCurNetType(void);\r
+// 自動切断対策\r
+int AskNoopInterval(void);\r
+// 再転送対応\r
+int AskTransferErrorMode(void);\r
+int AskTransferErrorNotify(void);\r
+// セッションあたりの転送量制限対策\r
+int AskErrorReconnect(void);\r
\r
/*===== cache.c =====*/\r
\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
void ChangeDirDirectProc(int Win);\r
void ChangeDirDropFileProc(WPARAM wParam);\r
void ChmodProc(void);\r
-BOOL CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
+// 64ビット対応\r
+//BOOL CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
+INT_PTR CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
void SomeCmdProc(void);\r
void CalcFileSizeProc(void);\r
void DispCWDerror(HWND hWnd);\r
#if defined(HAVE_OPENVMS)\r
void ReformVMSDirName(char *DirName, int Flg);\r
#endif\r
+// 自動切断対策\r
+void NoopProc(int Force);\r
\r
/*===== local.c =====*/\r
\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
-int CommandProcCmd(char *Reply, char *fmt, ...);\r
+#if defined(HAVE_TANDEM)\r
+void SwitchOSSProc(void);\r
+#endif\r
+// 同時接続対応\r
+//int CommandProcCmd(char *Reply, char *fmt, ...);\r
+int CommandProcCmd(char *Reply, int* CancelCheckWork, char *fmt, ...);\r
// 同時接続対応\r
//int CommandProcTrn(char *Reply, char *fmt, ...);\r
int CommandProcTrn(SOCKET cSkt, char *Reply, int* CancelCheckWork, char *fmt, ...);\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
+LONGLONG AskTransferSizeLeft(void);\r
+LONGLONG AskTransferSizeTotal(void);\r
+int AskTransferErrorDisplay(void);\r
\r
/*===== codecnv.c =====*/\r
\r
\r
void InitCodeConvInfo(CODECONVINFO *cInfo);\r
int FlushRestData(CODECONVINFO *cInfo);\r
+// UTF-8対応\r
+int ConvNoConv(CODECONVINFO *cInfo);\r
int ConvEUCtoSJIS(CODECONVINFO *cInfo);\r
int ConvJIStoSJIS(CODECONVINFO *cInfo);\r
int ConvSMBtoSJIS(CODECONVINFO *cInfo);\r
int ConvSJIStoSMB_HEX(CODECONVINFO *cInfo);\r
int ConvSJIStoSMB_CAP(CODECONVINFO *cInfo);\r
int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8対応\r
+// UTF-8 HFS+対応\r
+int ConvUTF8NtoUTF8HFSX(CODECONVINFO *cInfo);\r
+int ConvUTF8HFSXtoUTF8N(CODECONVINFO *cInfo);\r
void ConvAutoToSJIS(char *Text, int Pref);\r
int CheckKanjiCode(char *Text, int Size, int Pref);\r
+// UTF-8対応\r
+int LoadUnicodeNormalizationDll();\r
+void FreeUnicodeNormalizationDll();\r
+int IsUnicodeNormalizationDllLoaded();\r
\r
/*===== option.c =====*/\r
\r
\r
int CheckFname(char *str, char *regexp);\r
\r
-/*===== registory.c =====*/\r
+/*===== registry.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
+int ReadSettingsVersion();\r
+// FileZilla XML形式エクスポート対応\r
+void SaveSettingsToFileZillaXml();\r
\r
/*===== lvtips.c =====*/\r
\r
/*===== misc.c =====*/\r
\r
int InputDialogBox(int Res, HWND hWnd, char *Title, char *Buf, int Max, int *Flg, int Help);\r
-BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
-BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// 64ビット対応\r
+//BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+INT_PTR CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// 64ビット対応\r
+//BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+INT_PTR CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
+// 全設定暗号化対応\r
+INT_PTR CALLBACK AnyButtonDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
void SetYenTail(char *Str);\r
void RemoveYenTail(char *Str);\r
void SetSlashTail(char *Str);\r
int hex2bin(char Ch);\r
int SplitUNCpath(char *unc, char *Host, char *Path, char *File, char *User, char *Pass, int *Port);\r
int TimeString2FileTime(char *Time, FILETIME *Buf);\r
-void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist);\r
+// タイムスタンプのバグ修正\r
+//void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist);\r
+void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist, int ShowSeconds);\r
void SpecificLocalFileTime2FileTime(FILETIME *Time, int TimeZone);\r
int AttrString2Value(char *Str);\r
-void AttrValue2String(int Attr, char *Buf);\r
+// ファイルの属性を数字で表示\r
+//void AttrValue2String(int Attr, char *Buf);\r
+void AttrValue2String(int Attr, char *Buf, int ShowNumber);\r
void FormatIniString(char *Str);\r
int SelectFile(HWND hWnd, char *Fname, char *Title, char *Filters, char *Ext, int Flags, int Save);\r
int SelectDir(HWND hWnd, char *Buf, int MaxLen);\r
int MoveFileToTrashCan(char *Path);\r
LONGLONG MakeLongLong(DWORD High, DWORD Low);\r
char *MakeNumString(LONGLONG Num, char *Buf, BOOL Comma);\r
+// 異なるファイルが表示されるバグ修正\r
+char* MakeDistinguishableFileName(char* Out, char* In);\r
+// 環境依存の不具合対策\r
+char* GetAppTempPath(char* Buf);\r
+#if defined(HAVE_TANDEM)\r
+void CalcExtentSize(TRANSPACKET *Pkt, LONGLONG Size);\r
+#endif\r
+// 高DPI対応\r
+void QueryDisplayDPI();\r
+int CalcPixelX(int x);\r
+int CalcPixelY(int y);\r
+HBITMAP ResizeBitmap(HBITMAP hBitmap, int UnitSizeX, int UnitSizeY, int ScaleNumerator, int ScaleDenominator);\r
\r
/*===== dlgsize.c =====*/\r
\r
/*===== tool.c =====*/\r
\r
void OtpCalcTool(void);\r
+// FTPS対応\r
+void TurnStatefulFTPFilter();\r
\r
/*===== history.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 SetAsyncTableDataMapPort(SOCKET s, int Port);\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
+int GetAsyncTableDataMapPort(SOCKET s, int* Port);\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
int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int *CancelCheckWork);\r
// 同時接続対応\r
void RemoveReceivedData(SOCKET s);\r
+// UPnP対応\r
+int LoadUPnP();\r
+void FreeUPnP();\r
+int IsUPnPLoaded();\r
+int AddPortMapping(char* Adrs, int Port);\r
+int RemovePortMapping(int Port);\r
int CheckClosedAndReconnect(void);\r
-void CheckAllEventClosed(void);\r
-// IPv6対応\r
-char* AddressToStringIPv6(char* str, void* in6);\r
-char* inet6_ntoa(struct in6_addr in6);\r
-struct in6_addr inet6_addr(const char* cp);\r
+// 同時接続対応\r
+int CheckClosedAndReconnectTrnSkt(SOCKET *Skt, int *CancelCheckWork);\r
\r
/*===== updatebell.c =====*/\r
\r