X-Git-Url: http://git.sourceforge.jp/view?p=ffftp%2Fffftp.git;a=blobdiff_plain;f=common.h;h=9d93f41f4d94796a27e5f323545928b206813b2d;hp=bcf33719abae7b13b08c53969c735f2319b8154b;hb=2bffe82de6811b380d280099f638dd7b4cbb3404;hpb=2bf85c03c1e059a2f75dbd48ef73be5961e12414 diff --git a/common.h b/common.h index bcf3371..9d93f41 100644 --- a/common.h +++ b/common.h @@ -1,5 +1,5 @@ -/*============================================================================= -* ‚e‚e‚e‚s‚o‹¤’Ê’è‹`ƒtƒ@ƒCƒ‹ +/*============================================================================= +* FFFTP共通定義ファイル * =============================================================================== / Copyright (C) 1997-2007 Sota. All rights reserved. @@ -30,7 +30,7 @@ #define __COMMON_H__ #include "config.h" -#ifndef ENGLISH +#ifndef FFFTP_ENGLISH #include "mesg-jpn.h" #else #include "mesg-eng.h" @@ -52,8 +52,11 @@ #define ushort unsigned short #define ulong unsigned long -#define FAIL 0 -#define SUCCESS 1 +// 警告の回避 +//#define FAIL 0 +//#define SUCCESS 1 +#define FFFTP_FAIL 0 +#define FFFTP_SUCCESS 1 #define NO 0 #define YES 1 @@ -61,37 +64,43 @@ #define YES_ALL 3 #define YES_LIST 4 -/*===== ƒo[ƒWƒ‡ƒ“ ======*/ +/*===== バージョン ======*/ -#define VER_STR "1.97b" -#define VER_NUM 1921 /* Ý’èƒo[ƒWƒ‡ƒ“ */ -#define PROGRAM_VERSION_NUM 1972 /* ƒo[ƒWƒ‡ƒ“ */ +// SourceForge.JPによるフォーク +//#define VER_STR "1.97b" +//#define VER_NUM 1921 /* 設定バージョン */ +//#define PROGRAM_VERSION_NUM 1972 /* バージョン */ +#define VER_STR "1.98e" +#define VER_NUM 1985 /* 設定バージョン */ +#define PROGRAM_VERSION_NUM 1985 /* バージョン */ -#define MYWEB_URL "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html" +// SourceForge.JPによるフォーク +//#define MYWEB_URL "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html" +#define MYWEB_URL "http://sourceforge.jp/projects/ffftp/" -/*===== ’ʐMŠÖŒW ======*/ +/*===== 通信関係 ======*/ #define TCP_PORT 6 -/*===== ƒEƒCƒ“ƒhƒEƒTƒCƒY ======*/ +/*===== ウインドウサイズ ======*/ -#define TOOLWIN_HEIGHT 28 /* ƒc[ƒ‹ƒo[‚̍‚‚³ */ +#define TOOLWIN_HEIGHT 28 /* ツールバーの高さ */ -/*===== “ÁŽê‚ȃLƒƒƒbƒVƒ…ƒf[ƒ^”ԍ† =====*/ -/* iƒtƒ@ƒCƒ‹ˆê——Žæ“¾‚ÅŽg—p‚·‚郍[ƒJƒ‹ƒtƒ@ƒCƒ‹–¼ _ffftp.??? ‚̔ԍ†•”•ªj */ +/*===== 特殊なキャッシュデータ番号 =====*/ +/* (ファイル一覧取得で使用するローカルファイル名 _ffftp.??? の番号部分) */ -#define CACHE_FILE_TMP1 999 /* ƒzƒXƒg‚̃tƒ@ƒCƒ‹ƒcƒŠ[Žæ“¾—p */ -#define CACHE_FILE_TMP2 998 /* ƒAƒbƒvƒ[ƒh’†‚̃zƒXƒg‚̃tƒ@ƒCƒ‹ˆê——Žæ“¾—p */ +#define CACHE_FILE_TMP1 999 /* ホストのファイルツリー取得用 */ +#define CACHE_FILE_TMP2 998 /* アップロード中のホストのファイル一覧取得用 */ -/*===== ƒ†[ƒU’è‹`ƒRƒ}ƒ“ƒh =====*/ +/*===== ユーザ定義コマンド =====*/ -#define WM_CHANGE_COND (WM_USER+1) /* ƒtƒ@ƒCƒ‹ˆê——‚ð•ÏX‚·‚éƒRƒ}ƒ“ƒh */ -#define WM_SET_PACKET (WM_USER+2) /* Œ»ÝŽg—p‚µ‚Ä‚¢‚é“]‘—ƒpƒPƒbƒg‚̃AƒhƒŒƒX‚ð’Ê’m */ -#define WM_SELECT_HOST (WM_USER+3) /* ƒzƒXƒg‚ðƒ_ƒuƒ‹ƒNƒŠƒbƒN‚Å‘I‘ð‚µ‚½ */ -#define WM_DIAL_MSG (WM_USER+4) /* ƒ_ƒCƒAƒ‹’†‚̃Xƒe[ƒ^ƒX’Ê’m */ +#define WM_CHANGE_COND (WM_USER+1) /* ファイル一覧を変更するコマンド */ +#define WM_SET_PACKET (WM_USER+2) /* 現在使用している転送パケットのアドレスを通知 */ +#define WM_SELECT_HOST (WM_USER+3) /* ホストをダブルクリックで選択した */ +#define WM_DIAL_MSG (WM_USER+4) /* ダイアル中のステータス通知 */ #define WM_ASYNC_SOCKET (WM_USER+5) #define WM_ASYNC_DBASE (WM_USER+6) @@ -99,62 +108,70 @@ #define WM_REFRESH_LOCAL_FLG (WM_USER+7) #define WM_REFRESH_REMOTE_FLG (WM_USER+8) -/*===== ƒzƒXƒg”ԍ† =====*/ -/* ƒzƒXƒg”ԍ†‚Í 0` ‚Ì’l‚ðŽæ‚é */ - -#define HOSTNUM_NOENTRY (-1) /* ƒzƒXƒgˆê——‚É–³‚¢‚Æ‚«‚̃zƒXƒg”ԍ† */ - -/*===== ƒoƒbƒtƒ@ƒTƒCƒY =====*/ - -#define BUFSIZE 4096 /* ƒtƒ@ƒCƒ‹“]‘—ƒoƒbƒtƒ@‚̃TƒCƒY(4kˆÈã) */ - -#define HOST_NAME_LEN 40 /* ˆê——‚É•\Ž¦‚·‚éƒzƒXƒg‚Ì–¼‘O */ -#define HOST_ADRS_LEN 80 /* ƒzƒXƒg–¼ */ -#define USER_NAME_LEN 80 /* ƒ†[ƒU–¼ */ -#define PASSWORD_LEN 80 /* ƒpƒXƒ[ƒh */ -#define ACCOUNT_LEN 80 /* ƒAƒJƒEƒ“ƒg */ -#define HOST_TYPE_LEN 1 /* ƒzƒXƒg‚ÌŽí—Þ */ -#define INIT_DIR_LEN (FMAX_PATH-40) /* ‰ŠúƒfƒBƒŒƒNƒgƒŠ */ -#define USER_MAIL_LEN 80 /* ƒ†[ƒU‚̃[ƒ‹ƒAƒhƒŒƒX */ - /* PASSWORD_LEN ‚Æ“¯‚¶‚É‚·‚邱‚Æ */ -#define ASCII_EXT_LEN 400 /* ƒAƒXƒL[ƒ‚[ƒh“]‘—‚̃tƒ@ƒCƒ‹–¼—ñ */ -#define FILTER_EXT_LEN 400 /* ƒtƒBƒ‹ƒ^‚̃tƒ@ƒCƒ‹–¼—ñ */ -#define BOOKMARK_SIZE 2048 /* ƒuƒbƒNƒ}[ƒN */ -#define CHMOD_CMD_LEN 40 /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ -#define MIRROR_LEN 400 /* ƒ~ƒ‰[ƒŠƒ“ƒO‚̐ݒè—p */ -#define NLST_NAME_LEN 40 /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼^ƒIƒvƒVƒ‡ƒ“ */ -#define DEFATTRLIST_LEN 800 /* ‘®«ƒŠƒXƒg‚Ì’·‚³ */ -#define INITCMD_LEN 256 /* ‰Šú‰»ƒRƒ}ƒ“ƒh */ -#define OWNER_NAME_LEN 40 /* ƒI[ƒi–¼ */ -#define RAS_NAME_LEN 256 /* RAS‚̃Gƒ“ƒgƒŠ–¼‚Ì’·‚³ */ +/*===== ホスト番号 =====*/ +/* ホスト番号は 0~ の値を取る */ + +#define HOSTNUM_NOENTRY (-1) /* ホスト一覧に無いときのホスト番号 */ + +/*===== バッファサイズ =====*/ + +#define BUFSIZE 4096 /* ファイル転送バッファのサイズ(4k以上) */ + +#define HOST_NAME_LEN 40 /* 一覧に表示するホストの名前 */ +#define HOST_ADRS_LEN 80 /* ホスト名 */ +#define USER_NAME_LEN 80 /* ユーザ名 */ +#define PASSWORD_LEN 80 /* パスワード */ +#define ACCOUNT_LEN 80 /* アカウント */ +#define HOST_TYPE_LEN 1 /* ホストの種類 */ +#define INIT_DIR_LEN (FMAX_PATH-40) /* 初期ディレクトリ */ +#define USER_MAIL_LEN 80 /* ユーザのメールアドレス */ + /* PASSWORD_LEN と同じにすること */ +#define ASCII_EXT_LEN 400 /* アスキーモード転送のファイル名列 */ +#define FILTER_EXT_LEN 400 /* フィルタのファイル名列 */ +#define BOOKMARK_SIZE 2048 /* ブックマーク */ +#define CHMOD_CMD_LEN 40 /* 属性変更コマンド */ +#define MIRROR_LEN 400 /* ミラーリングの設定用 */ +#define NLST_NAME_LEN 40 /* NLSTに付けるファイル名/オプション */ +#define DEFATTRLIST_LEN 800 /* 属性リストの長さ */ +#define INITCMD_LEN 256 /* 初期化コマンド */ +#define OWNER_NAME_LEN 40 /* オーナ名 */ +#define RAS_NAME_LEN 256 /* RASのエントリ名の長さ */ #define FMAX_PATH 1024 #define ONELINE_BUF_SIZE (10*1024) -/*===== ‰Šú’l =====*/ +// 暗号化通信対応 +#define PRIVATE_KEY_LEN 4096 -#define SAMBA_HEX_TAG ':' /* Samba-HEX ‚Ì‹æØ‚蕶Žš */ -#define CHMOD_CMD_NOR "SITE CHMOD" /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ -#define PORT_NOR 21 /* ƒ|[ƒg”ԍ† */ -#define LS_FNAME "-alL" /* NLST‚É•t‚¯‚é‚à‚Ì */ +/*===== 初期値 =====*/ -/*===== “¯‚¶–¼‘O‚̃tƒ@ƒCƒ‹‚ª‚ ‚Á‚½Žž‚̏ˆ— =====*/ +#define SAMBA_HEX_TAG ':' /* Samba-HEX の区切り文字 */ +#define CHMOD_CMD_NOR "SITE CHMOD" /* 属性変更コマンド */ +#define PORT_NOR 21 /* ポート番号 */ +#define LS_FNAME "-alL" /* NLSTに付けるもの */ +#if defined(HAVE_TANDEM) +#define DEF_PRIEXT 4 /* Primary Extents の初期値 */ +#define DEF_SECEXT 28 /* Secondary Extents の初期値 */ +#define DEF_MAXEXT 978 /* Max Extents の初期値 */ +#endif + +/*===== 同じ名前のファイルがあった時の処理 =====*/ -#define EXIST_OVW 0 /* ã‘‚« */ -#define EXIST_NEW 1 /* V‚µ‚¯‚ê‚Ώ㏑‚« */ -#define EXIST_RESUME 2 /* ƒŒƒWƒ…[ƒ€ */ -#define EXIST_IGNORE 3 /* –³Ž‹ */ -#define EXIST_UNIQUE 4 /* ƒzƒXƒg‚ª–¼‘O‚ð•t‚¯‚é */ -#define EXIST_ABORT 5 /* ‘S‚Ä’†Ž~ */ +#define EXIST_OVW 0 /* 上書き */ +#define EXIST_NEW 1 /* 新しければ上書き */ +#define EXIST_RESUME 2 /* レジューム */ +#define EXIST_IGNORE 3 /* 無視 */ +#define EXIST_UNIQUE 4 /* ホストが名前を付ける */ +#define EXIST_ABORT 5 /* 全て中止 */ -/*===== ƒtƒ@ƒCƒ‹–¼‚Ì”äŠrƒ‚[ƒh =====*/ +/*===== ファイル名の比較モード =====*/ -#define COMP_IGNORE 0 /* ‘啶Žš/¬•¶Žš‚Í‹æ•Ê‚µ‚È‚¢ */ -#define COMP_STRICT 1 /* ‘啶Žš/¬•¶Žš‚ð‹æ•Ê‚·‚é */ -#define COMP_LOWERMATCH 2 /* ‘啶Žš/¬•¶Žš‚ð‹æ•Ê‚µ‚È‚¢i•Ð‘¤‚Í‘S‚ﬕ¶Žšj */ +#define COMP_IGNORE 0 /* 大文字/小文字は区別しない */ +#define COMP_STRICT 1 /* 大文字/小文字を区別する */ +#define COMP_LOWERMATCH 2 /* 大文字/小文字を区別しない(片側は全て小文字) */ -/*===== FTP‚̉ž“šƒR[ƒh‚Ì“ª‚PŒ… =====*/ +/*===== FTPの応答コードの頭1桁 =====*/ #define FTP_PRELIM 1 /* */ #define FTP_COMPLETE 2 /* */ @@ -162,80 +179,80 @@ #define FTP_RETRY 4 /* */ #define FTP_ERROR 5 /* */ -/*===== ƒtƒ@ƒCƒ‹ƒŠƒXƒg‚̃m[ƒh‘®« =====*/ +/*===== ファイルリストのノード属性 =====*/ -#define NODE_DIR 0 /* ƒfƒBƒŒƒNƒgƒŠ */ -#define NODE_FILE 1 /* ƒtƒ@ƒCƒ‹ */ -#define NODE_DRIVE 2 /* ƒhƒ‰ƒCƒu */ -#define NODE_NONE (-1) /* ‚È‚µ */ +#define NODE_DIR 0 /* ディレクトリ */ +#define NODE_FILE 1 /* ファイル */ +#define NODE_DRIVE 2 /* ドライブ */ +#define NODE_NONE (-1) /* なし */ -/*===== ã‘‚«Šm”F•û–@‚̐ݒè’l =====*/ +/*===== 上書き確認方法の設定値 =====*/ -#define TRANS_OVW 0 /* ã‘‚« */ -#define TRANS_DLG 1 /* ƒ_ƒCƒAƒƒO‚ðo‚· */ +#define TRANS_OVW 0 /* 上書き */ +#define TRANS_DLG 1 /* ダイアログを出す */ -/*===== ƒzƒXƒg“àƒtƒ@ƒCƒ‹ˆÚ“®Šm”F•û–@‚̐ݒè’l =====*/ +/*===== ホスト内ファイル移動確認方法の設定値 =====*/ -#define MOVE_NODLG 0 /* ƒ_ƒCƒAƒƒO‚ðo‚³‚È‚¢ */ -#define MOVE_DLG 1 /* ƒ_ƒCƒAƒƒO‚ðo‚· */ -#define MOVE_DISABLE 2 /* ‹@”\Žg—p‹ÖŽ~ */ +#define MOVE_NODLG 0 /* ダイアログを出さない */ +#define MOVE_DLG 1 /* ダイアログを出す */ +#define MOVE_DISABLE 2 /* 機能使用禁止 */ -/*===== “]‘—•û–@ =====*/ +/*===== 転送方法 =====*/ -#define TYPE_I 'I' /* ƒoƒCƒiƒŠƒ‚[ƒh */ -#define TYPE_A 'A' /* ƒAƒXƒL[ƒ‚[ƒh */ -#define TYPE_X 'X' /* Ž©“®”»•Ê */ +#define TYPE_I 'I' /* バイナリモード */ +#define TYPE_A 'A' /* アスキーモード */ +#define TYPE_X 'X' /* 自動判別 */ -#define TYPE_DEFAULT NUL /* Ý’肵‚È‚¢ DirectConnectProc()‚̈ø”‚Æ‚µ‚Ä—LŒø */ +#define TYPE_DEFAULT NUL /* 設定しない DirectConnectProc()の引数として有効 */ -/*===== ƒ\[ƒg•û–@ =====*/ -/* ”ԍ†‚ÍListView‚̃Jƒ‰ƒ€”ԍ†‚ƍ‡‚킹‚Ä‚ ‚é */ +/*===== ソート方法 =====*/ +/* 番号はListViewのカラム番号と合わせてある */ -#define SORT_NAME 0 /* –¼‘O‡ */ -#define SORT_DATE 1 /* “ú•t‡ */ -#define SORT_SIZE 2 /* ƒTƒCƒY‡ */ -#define SORT_EXT 3 /* Šg’£Žq‡ */ +#define SORT_NAME 0 /* 名前順 */ +#define SORT_DATE 1 /* 日付順 */ +#define SORT_SIZE 2 /* サイズ順 */ +#define SORT_EXT 3 /* 拡張子順 */ -#define SORT_ASCENT 0x00 /* ¸‡ */ -#define SORT_DESCENT 0x80 /* ~‡ */ +#define SORT_ASCENT 0x00 /* 昇順 */ +#define SORT_DESCENT 0x80 /* 降順 */ -#define SORT_MASK_ORD 0x7F /* ‚˜‚˜‡‚ðŽæ‚èo‚·ƒ}ƒXƒN */ -#define SORT_GET_ORD 0x80 /* ¸‡^~‡‚ðŽæ‚èo‚·ƒ}ƒXƒN */ +#define SORT_MASK_ORD 0x7F /* xx順を取り出すマスク */ +#define SORT_GET_ORD 0x80 /* 昇順/降順を取り出すマスク */ -#define SORT_NOTSAVED ((ulong)0xFFFFFFFF) /* ƒzƒXƒg–ˆ‚̃Z[ƒu•û–@‚ð•Û‘¶‚µ‚Ä‚¢‚È‚¢Žž‚Ì’l */ +#define SORT_NOTSAVED ((ulong)0xFFFFFFFF) /* ホスト毎のセーブ方法を保存していない時の値 */ -/*===== ƒ\[ƒg‚·‚éêŠ =====*/ +/*===== ソートする場所 =====*/ -#define ITEM_LFILE 0 /* ƒ[ƒJƒ‹‚Ì–¼‘O */ -#define ITEM_LDIR 1 /* ƒ[ƒJƒ‹‚̃fƒBƒŒƒNƒgƒŠ */ -#define ITEM_RFILE 2 /* ƒzƒXƒg‚Ì–¼‘O */ -#define ITEM_RDIR 3 /* ƒzƒXƒg‚̃fƒBƒŒƒNƒgƒŠ */ +#define ITEM_LFILE 0 /* ローカルの名前 */ +#define ITEM_LDIR 1 /* ローカルのディレクトリ */ +#define ITEM_RFILE 2 /* ホストの名前 */ +#define ITEM_RDIR 3 /* ホストのディレクトリ */ -/*===== ƒEƒCƒ“ƒhƒE”ԍ† =====*/ +/*===== ウインドウ番号 =====*/ -#define WIN_LOCAL 0 /* ƒ[ƒJƒ‹ */ -#define WIN_REMOTE 1 /* ƒzƒXƒg */ -#define WIN_BOTH 2 /* —¼•û */ +#define WIN_LOCAL 0 /* ローカル */ +#define WIN_REMOTE 1 /* ホスト */ +#define WIN_BOTH 2 /* 両方 */ -/*===== ƒtƒ@ƒCƒ‹‘I‘ð•û–@ =====*/ +/*===== ファイル選択方法 =====*/ -#define SELECT_ALL 0 /* ‘S‘I‘ð */ -#define SELECT_REGEXP 1 /* ŒŸõŽ®‚ð“ü—Í‚µ‚Ä‘I‘ð */ +#define SELECT_ALL 0 /* 全選択 */ +#define SELECT_REGEXP 1 /* 検索式を入力して選択 */ -/*===== ŒŸõ•û–@ =====*/ +/*===== 検索方法 =====*/ -#define FIND_FIRST 0 /* Å‰‚ÌŒŸõ */ -#define FIND_NEXT 1 /* ŽŸ‚ðŒŸõ */ +#define FIND_FIRST 0 /* 最初の検索 */ +#define FIND_NEXT 1 /* 次を検索 */ -/*===== ƒtƒ@ƒCƒ‹–¼‚̑啶Žš^¬•¶Žš•ÏŠ· =====*/ +/*===== ファイル名の大文字/小文字変換 =====*/ -#define FNAME_NOCNV 0 /* •ÏŠ·‚µ‚È‚¢ */ -#define FNAME_LOWER 1 /* ¬•¶Žš‚É•ÏŠ· */ -#define FNAME_UPPER 2 /* ‘啶Žš‚É•ÏŠ· */ +#define FNAME_NOCNV 0 /* 変換しない */ +#define FNAME_LOWER 1 /* 小文字に変換 */ +#define FNAME_UPPER 2 /* 大文字に変換 */ -/*===== ƒtƒ@ƒCƒ‹ˆê——‚ÌŒ`Ž® =====*/ +/*===== ファイル一覧の形式 =====*/ -#define LIST_UNKNOWN (-1) /* •s–¾ */ +#define LIST_UNKNOWN (-1) /* 不明 */ #define LIST_UNIX_10 0 /* UNIX 10 */ #define LIST_UNIX_11 1 /* UNIX 11 */ @@ -265,7 +282,7 @@ #define LIST_ACOS 25 /* ACOS */ #define LIST_AS400 26 /* AS/400 */ #define LIST_M1800 27 /* Fujitu M1800 (OS IV/MSP E20) */ -#define LIST_CHAMELEON 28 /* Win3.1—p Chameleon FTP server */ +#define LIST_CHAMELEON 28 /* Win3.1用 Chameleon FTP server */ #define LIST_GP6000 29 /* Fujitu GP6000 Model 900 */ #define LIST_OS2 30 /* OS/2 */ #define LIST_VMS 31 /* VAX VMS */ @@ -285,53 +302,63 @@ #define LIST_UNIX_73 45 /* UNIX 73 */ #define LIST_UNIX_74 46 /* UNIX 74 */ #define LIST_UNIX_75 47 /* UNIX 75 */ +// linux-ftpd +#define LIST_UNIX_16 48 /* UNIX 16 */ +// MLSD対応 +#define LIST_MLSD 49 +#if defined(HAVE_TANDEM) +#define LIST_TANDEM 50 /* HP NonStop Server */ +#endif #define LIST_MELCOM 0x100 /* MELCOM80 */ #define LIST_MASKFLG 0xFF -/* ƒtƒ@ƒCƒ‹ˆê——î•ñ—á --------------- +// UTF-8対応 +#define LIST_RAW_NAME 0x80000000 + +/* ファイル一覧情報例 --------------- *LIST_UNIX_10 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- drwxr-xr-x 15 owner group 1024 Nov 6 14:21 Linux/ -rwxrwx--- 5 owner group 12 Nov 6 1996 test.txt - drwxr-xr-x 15 owner group 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x 15 owner group 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner group 12 11ŒŽ 6“ú 1996”N test.txt - drwxrwxr-x 6 root sys 512 1ŒŽ 26 03:10 adm (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group 1024 11月 6日 14:21 Linux/ + drwxr-xr-x 15 owner group 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- 5 owner group 12 11月 6日 1996å¹´ test.txt + drwxrwxr-x 6 root sys 512 1月 26 03:10 adm (月はGBコードで0xD4C2) *LIST_UNIX_11 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x 15 owner group 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner group 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x 15 owner group 1024 11月12日 14時21分 Linux/ + -rwxrwx--- 5 owner group 12 11月12日 1996å¹´ test.txt *LIST_UNIX_12 0 1 2 3 4 5 6 7 ------------------------------------------------------- drwxr-xr-x123 owner group 1024 Nov 6 14:21 Linux/ -rwxrwx---132 owner group 12 Nov 6 1996 test.txt - drwxr-xr-x123 owner group 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x123 owner group 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner group 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x123 owner group 1024 11月 6日 14:21 Linux/ + drwxr-xr-x123 owner group 1024 11月 6日 14時21分 Linux/ + -rwxrwx---132 owner group 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_13 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x123 owner group 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner group 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x123 owner group 1024 11月12日 14時21分 Linux/ + -rwxrwx---132 owner group 12 11月12日 1996å¹´ test.txt *LIST_UNIX_14 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x 15 owner group 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_15 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x15 owner group 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner group 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -342,40 +369,40 @@ ------------------------------------------------------- drwxr-xr-x 15 owner 1024 Nov 6 14:21 Linux/ -rwxrwx--- 5 owner 12 Nov 6 1996 test.txt - drwxr-xr-x 15 owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x 15 owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x 15 owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x 15 owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- 5 owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_21 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x 15 owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- 5 owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x 15 owner 1024 11月12日 14時21分 Linux/ + -rwxrwx--- 5 owner 12 11月12日 1996å¹´ test.txt *LIST_UNIX_22 0 1 2 3 4 5 6 ------------------------------------------------------- drwxr-xr-x123 owner 1024 Nov 6 14:21 Linux/ -rwxrwx---132 owner 12 Nov 6 1996 test.txt - drwxr-xr-x123 owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x123 owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x123 owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x123 owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx---132 owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_23 0 1 2 3 4 5 ------------------------------------------------------- - drwxr-xr-x123 owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx---132 owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x123 owner 1024 11月12日 14時21分 Linux/ + -rwxrwx---132 owner 12 11月12日 1996å¹´ test.txt *LIST_UNIX_24 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x 15 owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_25 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x15 owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -388,15 +415,15 @@ ------------------------------------------------------- drwxr-xr-x owner 1024 Nov 6 14:21 Linux/ -rwxrwx--- owner 12 Nov 6 1996 test.txt - drwxr-xr-x owner 1024 11ŒŽ 6“ú 14:21 Linux/ - drwxr-xr-x owner 1024 11ŒŽ 6“ú 14Žž21•ª Linux/ - -rwxrwx--- owner 12 11ŒŽ 6“ú 1996”N test.txt + drwxr-xr-x owner 1024 11月 6日 14:21 Linux/ + drwxr-xr-x owner 1024 11月 6日 14時21分 Linux/ + -rwxrwx--- owner 12 11月 6日 1996å¹´ test.txt *LIST_UNIX_51 0 1 2 3 4 5 ------------------------------------------------------- - drwxr-xr-x owner 1024 11ŒŽ12“ú 14Žž21•ª Linux/ - -rwxrwx--- owner 12 11ŒŽ12“ú 1996”N test.txt + drwxr-xr-x owner 1024 11月12日 14時21分 Linux/ + -rwxrwx--- owner 12 11月12日 1996å¹´ test.txt 0 1 2 3 4 5 ------------------------------------------------------- @@ -406,7 +433,7 @@ *LIST_UNIX_54 0 1 2 3 4 5 6 ------------------------------------------------------- - drwxr-xr-x owner 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x owner 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -423,8 +450,8 @@ *LIST_UNIX_61 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x 123 owner m group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx--- 132 owner m group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x 123 owner m group g 1024 11月12日 14:21 Linux/ + -rwxrwx--- 132 owner m group g 12 11月12日 1996 test.txt *LIST_UNIX_62 0 1 2 3 4 5 6 7 8 9 @@ -435,18 +462,18 @@ *LIST_UNIX_63 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x123 owner m group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx---132 owner m group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x123 owner m group g 1024 11月12日 14:21 Linux/ + -rwxrwx---132 owner m group g 12 11月12日 1996 test.txt *LIST_UNIX_64 0 1 2 3 4 5 6 7 8 9 10 ------------------------------------------------------- - drwxr-xr-x 15 owner m group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner m group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_65 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x15 owner m group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner m group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) @@ -460,8 +487,8 @@ LIST_UNIX_70 *LIST_UNIX_71 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x 123 owner group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx--- 132 owner group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x 123 owner group g 1024 11月12日 14:21 Linux/ + -rwxrwx--- 132 owner group g 12 11月12日 1996 test.txt *LIST_UNIX_72 0 1 2 3 4 5 6 7 8 @@ -472,25 +499,25 @@ LIST_UNIX_70 *LIST_UNIX_73 0 1 2 3 4 5 6 7 ------------------------------------------------------- - drwxr-xr-x123 owner group g 1024 11ŒŽ12“ú 14:21 Linux/ - -rwxrwx---132 owner group g 12 11ŒŽ12“ú 1996 test.txt + drwxr-xr-x123 owner group g 1024 11月12日 14:21 Linux/ + -rwxrwx---132 owner group g 12 11月12日 1996 test.txt *LIST_UNIX_74 0 1 2 3 4 5 6 7 8 9 ------------------------------------------------------- - drwxr-xr-x 15 owner group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x 15 owner group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) *LIST_UNIX_75 0 1 2 3 4 5 6 7 8 ------------------------------------------------------- - drwxr-xr-x15 owner group g 512 2001 6ŒŽ 18 audit (ŒŽ‚ÍGBƒR[ƒh‚Å0xD4C2) + drwxr-xr-x15 owner group g 512 2001 6月 18 audit (月はGBコードで0xD4C2) -*unixŒn‚ňȉº‚̂悤‚È“ú•t +*unix系で以下のような日付 0 1 2 3 4 5 6 ------------------------------------------------------- drwxr-xr-x123 owner 1024 11/ 6 14:21 Linux/ @@ -544,7 +571,7 @@ LIST_UNIX_70 0 ------------------------------------------------------- test.txt -@@ƒfƒBƒŒƒNƒgƒŠ‚È‚µA +  ディレクトリなし、 *LIST_AS400 0 1 2 3 4 5 @@ -555,7 +582,7 @@ LIST_UNIX_70 QSECOFR 0 98/05/15 16:01:15 *STMF WWWTEST.BAK *LIST_M1800 - 0 1 2 3 4 5 6 (ƒtƒ@ƒCƒ‹–¼‚ÌŒã‚ë‚ɃXƒy[ƒX‚ ‚èj + 0 1 2 3 4 5 6 (ファイル名の後ろにスペースあり) ------------------------------------------------------- drwx F 400 400 PO 93.10.27 COMMON.PDL.EXCEL/ -rw- F 10000 10000 DA 97.03.04 DTSLOG1.FNA @@ -579,8 +606,8 @@ LIST_UNIX_70 0 1 2 3 4 ------------------------------------------------------- 345 A 12-02-98 10:59 VirtualDevice.java - 0 DIR 12-09-98 09:43 ƒfƒBƒŒƒNƒgƒŠ - 0 DIR 12-09-100 09:43 ƒfƒBƒŒƒNƒgƒŠ + 0 DIR 12-09-98 09:43 ディレクトリ + 0 DIR 12-09-100 09:43 ディレクトリ *LIST_MELCOM 0 1 2 3 4 5 6 7 8 @@ -596,7 +623,7 @@ LIST_UNIX_70 (RWED,RWED,RE,) MAIL.DIR;1 104/248 18-SEP-2001 16:19:39 [CIM,MIZOTE] (RWE,RWE,,) - ¦VMS‚̏ꍇˆê——‚ª•¡”s‚É•Ê‚ê‚éê‡‚ª‚ ‚é + ※VMSの場合一覧が複数行に別れる場合がある *LIST_OS7_1 0 1 2 3 @@ -654,121 +681,147 @@ LIST_UNIX_70 61191 Aug-30-2002 17:30:38 FILENAME.C +// linux-ftpd +*LIST_UNIX_16 + 0 1 2 3 4 5 6 7 + ------------------------------------------------------- + 合計 12345 + drwxr-x--- 2 root root 4096 2011-12-06 23:39 . + drwxr-x--- 3 root root 4096 2011-12-06 23:39 .. + -rw-r----- 1 root root 251 2011-12-06 23:39 .hoge + +*LIST_TANDEM + 0 1 2 3 4 5 6 + --------------------------------------------------------------- + File Code EOF Last Modification Owner RWEP + EMSACSTM 101 146 18-Sep-00 09:03:37 170,175 "nunu" + TACLCSTM O 101 101 4-Mar-01 23:50:06 255,255 "oooo" + ------------------------------------*/ -/*===== Ú‘±ƒEƒCƒ“ƒhƒE‚ÌŒ`Ž® =====*/ +/*===== 接続ウインドウの形式 =====*/ -#define DLG_TYPE_CON 0 /* ŠÈˆÕiƒzƒXƒg•ÒW‚È‚µj */ -#define DLG_TYPE_SET 1 /* ƒzƒXƒg•ÒW‚ ‚è */ +#define DLG_TYPE_CON 0 /* 簡易(ホスト編集なし) */ +#define DLG_TYPE_SET 1 /* ホスト編集あり */ -/*===== ƒtƒ@ƒCƒ‹ˆê——Žæ“¾ƒ‚[ƒh =====*/ +/*===== ファイル一覧取得モード =====*/ -#define CACHE_NORMAL 0 /* ’ʏíiƒLƒƒƒbƒVƒ…‚É‚ ‚ê‚ÎŽg—pA‚È‚¯‚ê‚Γǂݍž‚݁j */ -#define CACHE_REFRESH 1 /* í‚ɓǂݍž‚Ý */ -#define CACHE_LASTREAD 2 /* ÅŒã‚ɓǂݍž‚ñ‚¾‚à‚Ì‚ðŽg—p */ +#define CACHE_NORMAL 0 /* 通常(キャッシュにあれば使用、なければ読み込み) */ +#define CACHE_REFRESH 1 /* 常に読み込み */ +#define CACHE_LASTREAD 2 /* 最後に読み込んだものを使用 */ -/*===== Š¿ŽšƒR[ƒh•ÏŠ· =====*/ +/*===== 漢字コード変換 =====*/ #define KANJI_SJIS 0 /* SJIS */ #define KANJI_JIS 1 /* JIS */ #define KANJI_EUC 2 /* EUC */ #define KANJI_SMB_HEX 3 /* Samba-HEX */ #define KANJI_SMB_CAP 4 /* Samba-CAP */ -#define KANJI_UTF8N 5 /* UTF-8N */ +#define KANJI_UTF8N 5 /* UTF-8 */ +// UTF-8対応 +#define KANJI_UTF8BOM 6 /* UTF-8 BOM */ + +#define KANJI_NOCNV -1 /* 漢字コード変換なし */ -#define KANJI_NOCNV 0 /* Š¿ŽšƒR[ƒh•ÏŠ·‚È‚µ */ +// UTF-8対応 +#define KANJI_AUTO -1 -/*===== ƒTƒEƒ“ƒh =====*/ +/*===== サウンド =====*/ -#define SND_CONNECT 0 /* Ú‘±Žž‚̃TƒEƒ“ƒh */ -#define SND_TRANS 1 /* “]‘—I—¹Žž‚̃TƒEƒ“ƒh */ -#define SND_ERROR 2 /* ƒGƒ‰[Žž‚̃TƒEƒ“ƒh */ +#define SND_CONNECT 0 /* 接続時のサウンド */ +#define SND_TRANS 1 /* 転送終了時のサウンド */ +#define SND_ERROR 2 /* エラー時のサウンド */ -#define SOUND_TYPES 3 /* ƒTƒEƒ“ƒh‚ÌŽí—Þ */ +#define SOUND_TYPES 3 /* サウンドの種類 */ -/*===== ƒrƒ…[ƒ =====*/ +/*===== ビューワ =====*/ -#define VIEWERS 3 /* ƒrƒ…[ƒ‚̐” */ +#define VIEWERS 3 /* ビューワの数 */ -/*===== ƒuƒbƒNƒ}[ƒN =====*/ +/*===== ブックマーク =====*/ -#define BMARK_SUB_MENU 2 /* ƒuƒbƒNƒ}[ƒNƒƒjƒ…[‚̃Tƒuƒƒjƒ…[”ԍ† */ -#define DEFAULT_BMARK_ITEM 5 /* ƒuƒbƒNƒ}[ƒNƒƒjƒ…[‚É‚ ‚éŒÅ’è•”•ª‚̐” */ -#define MENU_BMARK_TOP 30000 /* 3000ˆÈ~(3100‚­‚ç‚¢‚Ü‚Å)‚Í—\–ñ‚·‚é */ - /* resource.h ‚Ì’è‹`‚Əd‚È‚ç‚È‚¢‚悤‚É */ +#define BMARK_SUB_MENU 2 /* ブックマークメニューのサブメニュー番号 */ +#define DEFAULT_BMARK_ITEM 5 /* ブックマークメニューにある固定部分の数 */ +#define MENU_BMARK_TOP 30000 /* 3000以降(3100くらいまで)は予約する */ + /* resource.h の定義と重ならないように */ -#define BMARK_TYPE_NONE 0 /* ƒuƒbƒNƒ}[ƒN–³‚µ */ -#define BMARK_TYPE_LOCAL 1 /* ƒ[ƒJƒ‹‘¤‚̃uƒbƒNƒ}[ƒN */ -#define BMARK_TYPE_REMOTE 2 /* ƒzƒXƒg‘¤‚̃uƒbƒNƒ}[ƒN */ -#define BMARK_TYPE_BOTH 3 /* —¼•û‚̃uƒbƒNƒ}[ƒN */ +#define BMARK_TYPE_NONE 0 /* ブックマーク無し */ +#define BMARK_TYPE_LOCAL 1 /* ローカル側のブックマーク */ +#define BMARK_TYPE_REMOTE 2 /* ホスト側のブックマーク */ +#define BMARK_TYPE_BOTH 3 /* 両方のブックマーク */ -#define BMARK_MARK_LOCAL "L " /* ƒ[ƒJƒ‹‘¤‚̈ó */ -#define BMARK_MARK_REMOTE "H " /* ƒzƒXƒg‘¤‚̈ó */ -#define BMARK_MARK_BOTH "W " /* —¼•û‚̈ó */ -#define BMARK_MARK_LEN 2 /* ˆó‚Ì•¶Žš” */ +#define BMARK_MARK_LOCAL "L " /* ローカル側の印 */ +#define BMARK_MARK_REMOTE "H " /* ホスト側の印 */ +#define BMARK_MARK_BOTH "W " /* 両方の印 */ +#define BMARK_MARK_LEN 2 /* 印の文字数 */ -#define BMARK_SEP " <> " /* ƒ[ƒJƒ‹‘¤‚ƃzƒXƒg‘¤‚Ì‹æØ‚è */ -#define BMARK_SEP_LEN 4 /* ‹æØ‚è‚Ì•¶Žš” */ +#define BMARK_SEP " <> " /* ローカル側とホスト側の区切り */ +#define BMARK_SEP_LEN 4 /* 区切りの文字数 */ -/*===== ƒŒƒWƒXƒgƒŠ‚̃^ƒCƒv =====*/ +/*===== レジストリのタイプ =====*/ -#define REGTYPE_REG 0 /* ƒŒƒWƒXƒgƒŠ */ -#define REGTYPE_INI 1 /* INIƒtƒ@ƒCƒ‹ */ +#define REGTYPE_REG 0 /* レジストリ */ +#define REGTYPE_INI 1 /* INIファイル */ -#define REG_SECT_MAX (16*1024) /* ƒŒƒWƒXƒgƒŠ‚Ì‚PƒZƒNƒVƒ‡ƒ“‚̍őåƒf[ƒ^ƒTƒCƒY */ +// UTF-8対応 +//#define REG_SECT_MAX (16*1024) /* レジストリの1セクションの最大データサイズ */ +#define REG_SECT_MAX (64*1024) /* レジストリの1セクションの最大データサイズ */ -/*===== ƒzƒXƒgÝ’è‚Å–¾Ž¦“I‚ÉŽw’è‚·‚éƒzƒXƒg‚̃^ƒCƒv =====*/ +/*===== ホスト設定で明示的に指定するホストのタイプ =====*/ -#define HTYPE_AUTO 0 /* Ž©“® */ -#define HTYPE_ACOS 1 /* ACOS (‘Ò‹@Œ‹‡ƒtƒ@ƒCƒ‹‚ÌŽw’肪•K—v) */ +#define HTYPE_AUTO 0 /* 自動 */ +#define HTYPE_ACOS 1 /* ACOS (待機結合ファイルの指定が必要) */ #define HTYPE_VMS 2 /* VAX VMS */ #define HTYPE_IRMX 3 /* IRMX */ -#define HTYPE_ACOS_4 4 /* ACOS ƒtƒ@ƒCƒ‹–¼‚ð('')‚ÅŠ‡‚ç‚È‚¢ */ +#define HTYPE_ACOS_4 4 /* ACOS ファイル名を('')で括らない */ #define HTYPE_STRATUS 5 /* Stratus */ #define HTYPE_AGILENT 6 /* Agilent Logic analyzer */ #define HTYPE_SHIBASOKU 7 /* Shibasoku LSI test system */ +#if defined(HAVE_TANDEM) +#define HTYPE_TANDEM 8 /* HP NonStop Server */ +#endif -/*===== ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ƒIƒvƒVƒ‡ƒ“ =====*/ +/*===== コマンドラインオプション =====*/ -#define OPT_MIRROR 0x0001 /* ƒ~ƒ‰[ƒŠƒ“ƒOƒAƒbƒvƒ[ƒh‚ðs‚¤ */ -#define OPT_FORCE 0x0002 /* ƒ~ƒ‰[ƒŠƒ“ƒOŠJŽn‚ÌŠm”F‚ð‚µ‚È‚¢ */ -#define OPT_QUIT 0x0004 /* I—¹ŒãƒvƒƒOƒ‰ƒ€I—¹ */ -#define OPT_EUC 0x0008 /* Š¿ŽšƒR[ƒh‚ÍEUC */ -#define OPT_JIS 0x0010 /* Š¿ŽšƒR[ƒh‚ÍJIS */ -#define OPT_ASCII 0x0020 /* ƒAƒXƒL[“]‘—ƒ‚[ƒh */ -#define OPT_BINARY 0x0040 /* ƒoƒCƒiƒŠ“]‘—ƒ‚[ƒh */ -#define OPT_AUTO 0x0080 /* Ž©“®”»•Ê */ -#define OPT_KANA 0x0100 /* ”¼Šp‚©‚È‚ð‚»‚Ì‚Ü‚Ü’Ê‚· */ -#define OPT_EUC_NAME 0x0200 /* ƒtƒ@ƒCƒ‹–¼‚ÍEUC */ -#define OPT_JIS_NAME 0x0400 /* ƒtƒ@ƒCƒ‹–¼‚ÍJIS */ -#define OPT_MIRRORDOWN 0x0800 /* ƒ~ƒ‰[ƒŠƒ“ƒOƒ_ƒEƒ“ƒ[ƒh‚ðs‚¤ */ -#define OPT_SAVEOFF 0x1000 /* Ý’è‚Ì•Û‘¶‚𒆎~‚·‚é */ -#define OPT_SAVEON 0x2000 /* Ý’è‚Ì•Û‘¶‚ðÄŠJ‚·‚é */ +#define OPT_MIRROR 0x0001 /* ミラーリングアップロードを行う */ +#define OPT_FORCE 0x0002 /* ミラーリング開始の確認をしない */ +#define OPT_QUIT 0x0004 /* 終了後プログラム終了 */ +#define OPT_EUC 0x0008 /* 漢字コードはEUC */ +#define OPT_JIS 0x0010 /* 漢字コードはJIS */ +#define OPT_ASCII 0x0020 /* アスキー転送モード */ +#define OPT_BINARY 0x0040 /* バイナリ転送モード */ +#define OPT_AUTO 0x0080 /* 自動判別 */ +#define OPT_KANA 0x0100 /* 半角かなをそのまま通す */ +#define OPT_EUC_NAME 0x0200 /* ファイル名はEUC */ +#define OPT_JIS_NAME 0x0400 /* ファイル名はJIS */ +#define OPT_MIRRORDOWN 0x0800 /* ミラーリングダウンロードを行う */ +#define OPT_SAVEOFF 0x1000 /* 設定の保存を中止する */ +#define OPT_SAVEON 0x2000 /* 設定の保存を再開する */ -/*===== ƒzƒXƒg‚̃qƒXƒgƒŠ =====*/ +/*===== ホストのヒストリ =====*/ -#define HISTORY_MAX 20 /* ƒtƒ@ƒCƒ‹‚̃qƒXƒgƒŠ‚̍őåŒÂ” */ -#define DEF_FMENU_ITEMS 8 /* Fileƒƒjƒ…[‚É‚ ‚鍀–ڐ”‚̏‰Šú’l */ +#define HISTORY_MAX 20 /* ファイルのヒストリの最大個数 */ +#define DEF_FMENU_ITEMS 8 /* Fileメニューにある項目数の初期値 */ /*===== SOCKS4 =====*/ -#define SOCKS4_VER 4 /* SOCKS‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS4_VER 4 /* SOCKSのバージョン */ -#define SOCKS4_CMD_CONNECT 1 /* CONNECTƒRƒ}ƒ“ƒh */ -#define SOCKS4_CMD_BIND 2 /* BINDƒRƒ}ƒ“ƒh */ +#define SOCKS4_CMD_CONNECT 1 /* CONNECTコマンド */ +#define SOCKS4_CMD_BIND 2 /* BINDコマンド */ -/* ƒŠƒUƒ‹ƒgƒR[ƒh */ -#define SOCKS4_RES_OK 90 /* —v‹‚Í‹–‰Â‚³‚ꂽ */ - /* ‚»‚Ì‘¼‚̃R[ƒh‚̓`ƒFƒbƒN‚µ‚È‚¢‚Ì‚Å’è‹`‚µ‚È‚¢ */ +/* リザルトコード */ +#define SOCKS4_RES_OK 90 /* 要求は許可された */ + /* その他のコードはチェックしないので定義しない */ /*===== SOCKS5 =====*/ -#define SOCKS5_VER 5 /* SOCKS‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS5_VER 5 /* SOCKSのバージョン */ -#define SOCKS5_CMD_CONNECT 1 /* CONNECTƒRƒ}ƒ“ƒh */ -#define SOCKS5_CMD_BIND 2 /* BINDƒRƒ}ƒ“ƒh */ +#define SOCKS5_CMD_CONNECT 1 /* CONNECTコマンド */ +#define SOCKS5_CMD_BIND 2 /* BINDコマンド */ -#define SOCKS5_AUTH_NONE 0 /* ”FØ–³‚µ */ +#define SOCKS5_AUTH_NONE 0 /* 認証無し */ #define SOCKS5_AUTH_GSSAPI 1 /* GSS-API */ #define SOCKS5_AUTH_USER 2 /* Username/Password */ @@ -776,131 +829,180 @@ LIST_UNIX_70 #define SOCKS5_ADRS_NAME 3 /* Domain name */ #define SOCKS5_ADRS_IPV6 4 /* IP V6 address */ -#define SOCKS5_USERAUTH_VER 1 /* Username\Password”FØ‚̃o[ƒWƒ‡ƒ“ */ +#define SOCKS5_USERAUTH_VER 1 /* Username\Password認証のバージョン */ -/* ƒŠƒUƒ‹ƒgƒR[ƒh */ +/* リザルトコード */ #define SOCKS5_RES_OK 0x00 /* succeeded */ - /* ‚»‚Ì‘¼‚̃R[ƒh‚̓`ƒFƒbƒN‚µ‚È‚¢‚Ì‚Å’è‹`‚µ‚È‚¢ */ + /* その他のコードはチェックしないので定義しない */ -/*===== ’†’fƒR[ƒh =====*/ +/*===== 中断コード =====*/ -#define ABORT_NONE 0 /* “]‘—’†’f‚È‚µ */ -#define ABORT_USER 1 /* ƒ†[ƒU‚É‚æ‚é’†’f */ -#define ABORT_ERROR 2 /* ƒGƒ‰[‚É‚æ‚é’†’f */ -#define ABORT_DISKFULL 3 /* ƒfƒBƒXƒNƒtƒ‹‚æ‚é’†’f */ +#define ABORT_NONE 0 /* 転送中断なし */ +#define ABORT_USER 1 /* ユーザによる中断 */ +#define ABORT_ERROR 2 /* エラーによる中断 */ +#define ABORT_DISKFULL 3 /* ディスクフルよる中断 */ -/*===== FireWall‚ÌŽí—Þ =====*/ +/*===== FireWallの種類 =====*/ -#define FWALL_NONE 0 /* ‚È‚µ */ -#define FWALL_FU_FP_SITE 1 /* FW user ¨ FW pass ¨ SITE host */ -#define FWALL_FU_FP_USER 2 /* FW user ¨ FW pass ¨ USER user@host */ +#define FWALL_NONE 0 /* なし */ +#define FWALL_FU_FP_SITE 1 /* FW user → FW pass → SITE host */ +#define FWALL_FU_FP_USER 2 /* FW user → FW pass → USER user@host */ #define FWALL_USER 3 /* USER user@host */ #define FWALL_OPEN 4 /* OPEN host */ #define FWALL_SOCKS4 5 /* SOCKS4 */ -#define FWALL_SOCKS5_NOAUTH 6 /* SOCKS5 (”FØ‚È‚µ) */ -#define FWALL_SOCKS5_USER 7 /* SOCKS5 (Username/Password”FØ) */ -#define FWALL_FU_FP 8 /* FW user ¨ FW pass */ +#define FWALL_SOCKS5_NOAUTH 6 /* SOCKS5 (認証なし) */ +#define FWALL_SOCKS5_USER 7 /* SOCKS5 (Username/Password認証) */ +#define FWALL_FU_FP 8 /* FW user → FW pass */ #define FWALL_SIDEWINDER 9 /* USER FWuser:FWpass@host */ -/*===== ƒƒ“ƒ^ƒCƒ€ƒpƒXƒ[ƒh =====*/ +/*===== ワンタイムパスワード =====*/ -/* ƒR[ƒh‚ÌŽí—Þ */ -#define SECURITY_DISABLE 0 /* Žg—p‚µ‚È‚¢ */ -#define SECURITY_AUTO 1 /* Ž©“®”FŽ¯ */ +/* コードの種類 */ +#define SECURITY_DISABLE 0 /* 使用しない */ +#define SECURITY_AUTO 1 /* 自動認識 */ #define MD4 2 /* MD4 */ #define MD5 3 /* MD5 */ #define SHA1 4 /* SHA-1 */ -#define MAX_SEED_LEN 16 /* Seed‚Ì•¶Žš” */ +#define MAX_SEED_LEN 16 /* Seedの文字数 */ -/*===== Ä‹A“I‚ȃtƒ@ƒCƒ‹ŒŸõ‚Ì•û–@ =====*/ +/*===== 再帰的なファイル検索の方法 =====*/ -#define RDIR_NONE 0 /* Ä‹AŒŸõ‚È‚µ */ +#define RDIR_NONE 0 /* 再帰検索なし */ #define RDIR_NLST 1 /* NLST -R */ -#define RDIR_CWD 2 /* CWD‚ňړ® */ +#define RDIR_CWD 2 /* CWDで移動 */ -/*===== VAX VMS ŠÖŒW =====*/ +/*===== VAX VMS 関係 =====*/ -#define BLOCK_SIZE 512 /* 1ƒuƒƒbƒN‚̃oƒCƒg” */ +#define BLOCK_SIZE 512 /* 1ブロックのバイト数 */ -/*===== Ý’è‚̃Œƒxƒ‹ =====*/ +/*===== 設定のレベル =====*/ -#define SET_LEVEL_GROUP 0x8000 /* ƒOƒ‹[ƒv‚̃tƒ‰ƒO */ +#define SET_LEVEL_GROUP 0x8000 /* グループのフラグ */ #define SET_LEVEL_MASK 0x7FFF #define SET_LEVEL_SAME 0x7FFF -/*===== “ú•tA”’l‚Ì•\Ž¦Œ`Ž® =====*/ +/*===== 日付、数値の表示形式 =====*/ -#define DISPFORM_LEGACY 0 /* ŒÅ’菑Ž® */ -#define DISPFORM_LOCALE 1 /* ƒRƒ“ƒgƒ[ƒ‹ƒpƒlƒ‹‚ɏ]‚¤ */ +#define DISPFORM_LEGACY 0 /* 固定書式 */ +#define DISPFORM_LOCALE 1 /* コントロールパネルに従う */ -/*===== ƒtƒ@ƒCƒ‹ˆê——‚É‘¶Ý‚µ‚½î•ñ =====*/ +/*===== ファイル一覧に存在した情報 =====*/ -#define FINFO_DATE 0x01 /* “ú•t */ -#define FINFO_TIME 0x02 /* ŽžŠÔ */ -#define FINFO_SIZE 0x04 /* ƒTƒCƒY */ -#define FINFO_ATTR 0x08 /* ‘®« */ -#define FINFO_ALL 0xFF /* ‘S‚Ä */ +#define FINFO_DATE 0x01 /* 日付 */ +#define FINFO_TIME 0x02 /* 時間 */ +#define FINFO_SIZE 0x04 /* サイズ */ +#define FINFO_ATTR 0x08 /* 属性 */ +#define FINFO_ALL 0xFF /* 全て */ -/*===== GetMasterPasswordStatus‚ÅŽg‚¤ƒR[ƒh =====*/ +/*===== GetMasterPasswordStatusで使うコード =====*/ #define PASSWORD_OK 0 #define PASSWORD_UNMATCH 2 #define BAD_PASSWORD_HASH 3 -/*===== ˆÃ†‰»ƒpƒXƒ[ƒhÝ’è =====*/ +/*===== 暗号化パスワード設定 =====*/ #define DEFAULT_PASSWORD "DefaultPassword" #define MAX_PASSWORD_LEN 128 +// 暗号化通信対応 +#define CRYPT_NONE 0 +#define CRYPT_FTPES 1 +#define CRYPT_FTPIS 2 +#define CRYPT_SFTP 3 + +// FEAT対応 +// UTF-8対応 +#define FEATURE_UTF8 0x00000001 +// MLSD対応 +#define FEATURE_MLSD 0x00000002 +// IPv6対応 +#define FEATURE_EPRT 0x00000004 +#define FEATURE_EPSV 0x00000008 + +// IPv6対応 +#define NTYPE_AUTO 0 /* 自動 */ +#define NTYPE_IPV4 1 /* TCP/IPv4 */ +#define NTYPE_IPV6 2 /* TCP/IPv6 */ + +// 暗号化通信対応 +// REG_SECT_MAXの値を加味する必要がある +#define MAX_CERT_CACHE_HASH 256 + /*================================================= -* ƒXƒgƒ‰ƒNƒ`ƒƒ +* ストラクチャ *=================================================*/ -/*===== ƒzƒXƒgÝ’èƒf[ƒ^ =====*/ +/*===== ホスト設定データ =====*/ typedef struct { - int Level; /* Ý’è‚̃Œƒxƒ‹ */ - /* ’ʏí‚̓Oƒ‹[ƒv‚̃tƒ‰ƒO‚Ì‚Ý‚ª—LŒø */ - /* ƒŒƒxƒ‹”‚͐ݒè‚Ì“o˜^^ŒÄoŽž‚Ì‚Ý‚ÅŽg—p */ - char HostName[HOST_NAME_LEN+1]; /* Ý’è–¼ */ - char HostAdrs[HOST_ADRS_LEN+1]; /* ƒzƒXƒg–¼ */ - char UserName[USER_NAME_LEN+1]; /* ƒ†[ƒU–¼ */ - char PassWord[PASSWORD_LEN+1]; /* ƒpƒXƒ[ƒh */ - char Account[ACCOUNT_LEN+1]; /* ƒAƒJƒEƒ“ƒg */ - char LocalInitDir[INIT_DIR_LEN+1]; /* ƒ[ƒJƒ‹‚ÌŠJŽnƒfƒBƒŒƒNƒgƒŠ */ - char RemoteInitDir[INIT_DIR_LEN+1]; /* ƒzƒXƒg‚ÌŠJŽnƒfƒBƒŒƒNƒgƒŠ */ - char BookMark[BOOKMARK_SIZE]; /* ƒuƒbƒNƒ}[ƒN */ - char ChmodCmd[CHMOD_CMD_LEN+1]; /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ - char LsName[NLST_NAME_LEN+1]; /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼/ƒIƒvƒVƒ‡ƒ“*/ - char InitCmd[INITCMD_LEN+1]; /* ƒzƒXƒg‚̏‰Šú‰»ƒRƒ}ƒ“ƒh */ - int Port; /* ƒ|[ƒg”ԍ† */ - int Anonymous; /* Anonymousƒtƒ‰ƒO */ - int KanjiCode; /* ƒzƒXƒg‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int NameKanjiCode; /* ƒtƒ@ƒCƒ‹–¼‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int NameKanaCnv; /* ƒtƒ@ƒCƒ‹–¼‚Ì”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Pasv; /* PASVƒ‚[ƒh (YES/NO) */ - int FireWall; /* FireWall‚ðŽg‚¤ (YES/NO) */ - int ListCmdOnly; /* "LIST"ƒRƒ}ƒ“ƒh‚Ì‚ÝŽg—p‚·‚é */ - int UseNLST_R; /* "NLST -R"ƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é */ - int LastDir; /* ÅŒã‚ɃAƒNƒZƒX‚µ‚½ƒtƒHƒ‹ƒ_‚ð•Û‘¶ */ - int TimeZone; /* ƒ^ƒCƒ€ƒ][ƒ“ (-12`12) */ - int HostType; /* ƒzƒXƒg‚̃^ƒCƒv (HTYPE_xxx) */ - int SyncMove; /* ƒtƒHƒ‹ƒ_“¯ŽžˆÚ“® (YES/NO) */ - int NoFullPath; /* ƒtƒ‹ƒpƒX‚Ńtƒ@ƒCƒ‹ƒAƒNƒZƒX‚µ‚È‚¢ (YES/NO) */ - ulong Sort; /* ƒ\[ƒg•û–@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ - int Security; /* ƒZƒLƒ…ƒŠƒeƒB (SECURITY_xxx , MDx) */ - int Dialup; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvÚ‘±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupAlways; /* í‚É‚±‚̃Gƒ“ƒgƒŠ‚֐ڑ±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupNotify; /* ÄÚ‘±‚̍ۂɊm”F‚·‚é (YES/NO) */ - char DialEntry[RAS_NAME_LEN+1]; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvƒGƒ“ƒgƒŠ */ + int Level; /* 設定のレベル */ + /* 通常はグループのフラグのみが有効 */ + /* レベル数は設定の登録/呼出時のみで使用 */ + char HostName[HOST_NAME_LEN+1]; /* 設定名 */ + char HostAdrs[HOST_ADRS_LEN+1]; /* ホスト名 */ + char UserName[USER_NAME_LEN+1]; /* ユーザ名 */ + char PassWord[PASSWORD_LEN+1]; /* パスワード */ + char Account[ACCOUNT_LEN+1]; /* アカウント */ + char LocalInitDir[INIT_DIR_LEN+1]; /* ローカルの開始ディレクトリ */ + char RemoteInitDir[INIT_DIR_LEN+1]; /* ホストの開始ディレクトリ */ + char BookMark[BOOKMARK_SIZE]; /* ブックマーク */ + char ChmodCmd[CHMOD_CMD_LEN+1]; /* 属性変更コマンド */ + char LsName[NLST_NAME_LEN+1]; /* NLSTに付けるファイル名/オプション*/ + char InitCmd[INITCMD_LEN+1]; /* ホストの初期化コマンド */ + int Port; /* ポート番号 */ + int Anonymous; /* Anonymousフラグ */ + int KanjiCode; /* ホストの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int NameKanjiCode; /* ファイル名の漢字コード (KANJI_xxx) */ + // UTF-8対応 + int CurNameKanjiCode; /* 自動判別後のファイル名の漢字コード (KANJI_xxx) */ + int NameKanaCnv; /* ファイル名の半角カナを全角に変換(YES/NO) */ + int Pasv; /* PASVモード (YES/NO) */ + int FireWall; /* FireWallを使う (YES/NO) */ + int ListCmdOnly; /* "LIST"コマンドのみ使用する */ + int UseNLST_R; /* "NLST -R"コマンドを使用する */ + int LastDir; /* 最後にアクセスしたフォルダを保存 */ + int TimeZone; /* タイムゾーン (-12~12) */ + int HostType; /* ホストのタイプ (HTYPE_xxx) */ + int SyncMove; /* フォルダ同時移動 (YES/NO) */ + int NoFullPath; /* フルパスでファイルアクセスしない (YES/NO) */ + ulong Sort; /* ソート方法 (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ + int Security; /* セキュリティ (SECURITY_xxx , MDx) */ + int Dialup; /* ダイアルアップ接続するかどうか (YES/NO) */ + int DialupAlways; /* 常にこのエントリへ接続するかどうか (YES/NO) */ + int DialupNotify; /* 再接続の際に確認する (YES/NO) */ + char DialEntry[RAS_NAME_LEN+1]; /* ダイアルアップエントリ */ + // 暗号化通信対応 + int CryptMode; /* 暗号化通信モード (CRYPT_xxx) */ + int UseNoEncryption; /* 暗号化なしで接続する (YES/NO) */ + int UseFTPES; /* FTPESで接続する (YES/NO) */ + int UseFTPIS; /* FTPISで接続する (YES/NO) */ + int UseSFTP; /* SFTPで接続する (YES/NO) */ + char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */ + // 同時接続対応 + int MaxThreadCount; /* 同時接続数 */ + int ReuseCmdSkt; /* メインウィンドウのソケットを再利用する (YES/NO) */ + int NoDisplayUI; /* UIを表示しない (YES/NO) */ + // FEAT対応 + int Feature; /* 利用可能な機能のフラグ (FEATURE_xxx) */ + // MLSD対応 + int UseMLSD; /* "MLSD"コマンドを使用する */ + // IPv6対応 + int NetType; /* ネットワークの種類 (NTYPE_xxx) */ + int CurNetType; /* 接続中のネットワークの種類 (NTYPE_xxx) */ + // 自動切断対策 + int NoopInterval; /* 無意味なコマンドを送信する間隔(秒数、0で無効)*/ + // 再転送対応 + int TransferErrorMode; /* 転送エラー時の処理 (EXIST_xxx) */ + int TransferErrorNotify; /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */ } HOSTDATA; -/*===== ƒzƒXƒgÝ’胊ƒXƒg =====*/ +/*===== ホスト設定リスト =====*/ typedef struct hostlistdata { - HOSTDATA Set; /* ƒzƒXƒgÝ’èƒf[ƒ^ */ + HOSTDATA Set; /* ホスト設定データ */ struct hostlistdata *Next; struct hostlistdata *Prev; struct hostlistdata *Child; @@ -908,155 +1010,187 @@ typedef struct hostlistdata { } HOSTLISTDATA; -/*===== Ú‘±ƒqƒXƒgƒŠƒŠƒXƒg =====*/ +/*===== 接続ヒストリリスト =====*/ typedef struct historydata { - char HostAdrs[HOST_ADRS_LEN+1]; /* ƒzƒXƒg–¼ */ - char UserName[USER_NAME_LEN+1]; /* ƒ†[ƒU–¼ */ - char PassWord[PASSWORD_LEN+1]; /* ƒpƒXƒ[ƒh */ - char Account[ACCOUNT_LEN+1]; /* ƒAƒJƒEƒ“ƒg */ - char LocalInitDir[INIT_DIR_LEN+1]; /* ƒfƒBƒŒƒNƒgƒŠ */ - char RemoteInitDir[INIT_DIR_LEN+1]; /* ƒfƒBƒŒƒNƒgƒŠ */ - char ChmodCmd[CHMOD_CMD_LEN+1]; /* ‘®«•ÏXƒRƒ}ƒ“ƒh */ - char LsName[NLST_NAME_LEN+1]; /* NLST‚É•t‚¯‚éƒtƒ@ƒCƒ‹–¼/ƒIƒvƒVƒ‡ƒ“*/ - char InitCmd[INITCMD_LEN+1]; /* ƒzƒXƒg‚̏‰Šú‰»ƒRƒ}ƒ“ƒh */ - int Port; /* ƒ|[ƒg”ԍ† */ - int KanjiCode; /* ƒzƒXƒg‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int NameKanjiCode; /* ƒtƒ@ƒCƒ‹–¼‚ÌŠ¿ŽšƒR[ƒh (KANJI_xxx) */ - int NameKanaCnv; /* ƒtƒ@ƒCƒ‹–¼‚Ì”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Pasv; /* PASVƒ‚[ƒh (YES/NO) */ - int FireWall; /* FireWall‚ðŽg‚¤ (YES/NO) */ - int ListCmdOnly; /* "LIST"ƒRƒ}ƒ“ƒh‚Ì‚ÝŽg—p‚·‚é */ - int UseNLST_R; /* "NLST -R"ƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚é */ - int TimeZone; /* ƒ^ƒCƒ€ƒ][ƒ“ (-12`12) */ - int HostType; /* ƒzƒXƒg‚̃^ƒCƒv (HTYPE_xxx) */ - int SyncMove; /* ƒtƒHƒ‹ƒ_“¯ŽžˆÚ“® (YES/NO) */ - int NoFullPath; /* ƒtƒ‹ƒpƒX‚Ńtƒ@ƒCƒ‹ƒAƒNƒZƒX‚µ‚È‚¢ (YES/NO) */ - ulong Sort; /* ƒ\[ƒg•û–@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ - int Security; /* ƒZƒLƒ…ƒŠƒeƒB (OTP_xxx , MDx) */ - int Type; /* “]‘—•û–@ (TYPE_xx) */ - int Dialup; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvÚ‘±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupAlways; /* í‚É‚±‚̃Gƒ“ƒgƒŠ‚֐ڑ±‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - int DialupNotify; /* ÄÚ‘±‚̍ۂɊm”F‚·‚é (YES/NO) */ - char DialEntry[RAS_NAME_LEN+1]; /* ƒ_ƒCƒAƒ‹ƒAƒbƒvƒGƒ“ƒgƒŠ */ + char HostAdrs[HOST_ADRS_LEN+1]; /* ホスト名 */ + char UserName[USER_NAME_LEN+1]; /* ユーザ名 */ + char PassWord[PASSWORD_LEN+1]; /* パスワード */ + char Account[ACCOUNT_LEN+1]; /* アカウント */ + char LocalInitDir[INIT_DIR_LEN+1]; /* ディレクトリ */ + char RemoteInitDir[INIT_DIR_LEN+1]; /* ディレクトリ */ + char ChmodCmd[CHMOD_CMD_LEN+1]; /* 属性変更コマンド */ + char LsName[NLST_NAME_LEN+1]; /* NLSTに付けるファイル名/オプション*/ + char InitCmd[INITCMD_LEN+1]; /* ホストの初期化コマンド */ + int Port; /* ポート番号 */ + int KanjiCode; /* ホストの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int NameKanjiCode; /* ファイル名の漢字コード (KANJI_xxx) */ + int NameKanaCnv; /* ファイル名の半角カナを全角に変換(YES/NO) */ + int Pasv; /* PASVモード (YES/NO) */ + int FireWall; /* FireWallを使う (YES/NO) */ + int ListCmdOnly; /* "LIST"コマンドのみ使用する */ + int UseNLST_R; /* "NLST -R"コマンドを使用する */ + int TimeZone; /* タイムゾーン (-12~12) */ + int HostType; /* ホストのタイプ (HTYPE_xxx) */ + int SyncMove; /* フォルダ同時移動 (YES/NO) */ + int NoFullPath; /* フルパスでファイルアクセスしない (YES/NO) */ + ulong Sort; /* ソート方法 (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */ + int Security; /* セキュリティ (OTP_xxx , MDx) */ + int Type; /* 転送方法 (TYPE_xx) */ + int Dialup; /* ダイアルアップ接続するかどうか (YES/NO) */ + int DialupAlways; /* 常にこのエントリへ接続するかどうか (YES/NO) */ + int DialupNotify; /* 再接続の際に確認する (YES/NO) */ + char DialEntry[RAS_NAME_LEN+1]; /* ダイアルアップエントリ */ + // 暗号化通信対応 + int UseNoEncryption; /* 暗号化なしで接続する (YES/NO) */ + int UseFTPES; /* FTPESで接続する (YES/NO) */ + int UseFTPIS; /* FTPISで接続する (YES/NO) */ + int UseSFTP; /* SFTPで接続する (YES/NO) */ + char PrivateKey[PRIVATE_KEY_LEN+1]; /* テキスト形式の秘密鍵 */ + // 同時接続対応 + int MaxThreadCount; /* 同時接続数 */ + int ReuseCmdSkt; /* メインウィンドウのソケットを再利用する (YES/NO) */ + // MLSD対応 + int UseMLSD; /* "MLSD"コマンドを使用する */ + // IPv6対応 + int NetType; /* ネットワークの種類 (NTYPE_xxx) */ + // 自動切断対策 + int NoopInterval; /* NOOPコマンドを送信する間隔(秒数、0で無効)*/ + // 再転送対応 + int TransferErrorMode; /* 転送エラー時の処理 (EXIST_xxx) */ + int TransferErrorNotify; /* 転送エラー時に確認ダイアログを出すかどうか (YES/NO) */ struct historydata *Next; } HISTORYDATA; -/*===== “]‘—ƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== 転送ファイルリスト =====*/ typedef struct transpacket { SOCKET ctrl_skt; /* Socket */ char Cmd[40]; /* STOR/RETR/MKD */ - char RemoteFile[FMAX_PATH+1]; /* ƒzƒXƒg‘¤‚̃tƒ@ƒCƒ‹–¼iƒtƒ‹ƒpƒXj */ - /* VMS‚ÌŽž‚Í ddd[xxx.yyy]/yyy/zzz ‚̂悤‚É */ - /* ‚È‚Á‚Ä‚é‚Ì‚Å’ˆÓ */ - char LocalFile[FMAX_PATH+1]; /* ƒ[ƒJƒ‹‘¤‚̃tƒ@ƒCƒ‹–¼iƒtƒ‹ƒpƒXj */ - int Type; /* “]‘—•û–@ (TYPE_xx) */ - LONGLONG Size; /* ƒtƒ@ƒCƒ‹‚̃TƒCƒY */ - LONGLONG ExistSize; /* ‚·‚Å‚É‘¶Ý‚·‚éƒtƒ@ƒCƒ‹‚̃TƒCƒY */ - /* “]‘—’†‚́A“]‘—‚µ‚½ƒtƒ@ƒCƒ‹‚̃TƒCƒY‚ðŠi”[‚·‚é */ - FILETIME Time; /* ƒtƒ@ƒCƒ‹‚ÌŽžŠÔ(UTC) */ - int Attr; /* ƒtƒ@ƒCƒ‹‚Ì‘®« */ - int KanjiCode; /* Š¿ŽšƒR[ƒh (KANJI_xxx) */ - int KanaCnv; /* ”¼ŠpƒJƒi‚ð‘SŠp‚É•ÏŠ·(YES/NO) */ - int Mode; /* “]‘—ƒ‚[ƒh (EXIST_xxx) */ - HWND hWndTrans; /* “]‘—’†ƒ_ƒCƒAƒƒO‚̃EƒCƒ“ƒhƒEƒnƒ“ƒhƒ‹ */ - int Abort; /* “]‘—’†Ž~ƒtƒ‰ƒO (ABORT_xxx) */ + char RemoteFile[FMAX_PATH+1]; /* ホスト側のファイル名(フルパス) */ + /* VMSの時は ddd[xxx.yyy]/yyy/zzz のように */ + /* なってるので注意 */ + char LocalFile[FMAX_PATH+1]; /* ローカル側のファイル名(フルパス) */ + int Type; /* 転送方法 (TYPE_xx) */ + LONGLONG Size; /* ファイルのサイズ */ + LONGLONG ExistSize; /* すでに存在するファイルのサイズ */ + /* 転送中は、転送したファイルのサイズを格納する */ + FILETIME Time; /* ファイルの時間(UTC) */ + int Attr; /* ファイルの属性 */ + int KanjiCode; /* 漢字コード (KANJI_xxx) */ + // UTF-8対応 + int KanjiCodeDesired; /* ローカルの漢字コード (KANJI_xxx) */ + int KanaCnv; /* 半角カナを全角に変換(YES/NO) */ + int Mode; /* 転送モード (EXIST_xxx) */ +#if defined(HAVE_TANDEM) + int FileCode; /* ファイルコード */ + int PriExt; /* Primary Extents */ + int SecExt; /* Secondary Extents */ + int MaxExt; /* Max Extents */ +#endif + HWND hWndTrans; /* 転送中ダイアログのウインドウハンドル */ + int Abort; /* 転送中止フラグ (ABORT_xxx) */ + // 同時接続対応 + int ThreadCount; struct transpacket *Next; } TRANSPACKET; -/*===== ƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== ファイルリスト =====*/ typedef struct filelist { - char File[FMAX_PATH+1]; /* ƒtƒ@ƒCƒ‹–¼ */ - char Node; /* Ží—Þ (NODE_xxx) */ - char Link; /* ƒŠƒ“ƒNƒtƒ@ƒCƒ‹‚©‚Ç‚¤‚© (YES/NO) */ - LONGLONG Size; /* ƒtƒ@ƒCƒ‹ƒTƒCƒY */ - int Attr; /* ‘®« */ - FILETIME Time; /* ŽžŠÔ(UTC) */ - char Owner[OWNER_NAME_LEN+1]; /* ƒI[ƒi–¼ */ - char InfoExist; /* ƒtƒ@ƒCƒ‹ˆê——‚É‘¶Ý‚µ‚½î•ñ‚̃tƒ‰ƒO (FINFO_xxx) */ + char File[FMAX_PATH+1]; /* ファイル名 */ + char Node; /* 種類 (NODE_xxx) */ + char Link; /* リンクファイルかどうか (YES/NO) */ + LONGLONG Size; /* ファイルサイズ */ + int Attr; /* 属性 */ + FILETIME Time; /* 時間(UTC) */ + char Owner[OWNER_NAME_LEN+1]; /* オーナ名 */ + char InfoExist; /* ファイル一覧に存在した情報のフラグ (FINFO_xxx) */ + // ファイルアイコン表示対応 + int ImageId; /* アイコン画像番号 */ struct filelist *Next; } FILELIST; -/*===== ƒR[ƒh•ÏŠ·î•ñƒpƒPƒbƒg =====*/ +/*===== コード変換情報パケット =====*/ typedef char * (*funcptr)(struct codeconvinfo *, char , char *); typedef struct codeconvinfo { - char *Str; /* •¶Žš—ñ */ - int StrLen; /* •¶Žš—ñ‚Ì’·‚³ */ - int KanaCnv; /* ”¼ŠpƒJƒ^ƒJƒi‚ð‘SŠp‚É•ÏŠ·‚·‚é‚©‚Ç‚¤‚© (YES/NO) */ - char *Buf; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */ - int BufSize; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚̃TƒCƒY */ - int OutLen; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚̃TƒCƒY */ - int KanjiMode; /* Š¿Žšƒ‚[ƒhƒtƒ‰ƒO(YES/NO) (“à•”ˆ——pƒ[ƒN) */ - int EscProc; /* ƒGƒXƒP[ƒvƒV[ƒPƒ“ƒX•¶Žš” (0`) (“à•”ˆ——pƒ[ƒN) */ - char EscCode[2]; /* ƒGƒXƒP[ƒvƒV[ƒPƒ“ƒX•¶Žš•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - char KanjiFst; /* Š¿ŽšƒR[ƒh‚PƒoƒCƒg–Ú•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - char KanaPrev; /* ”¼ŠpƒJƒ^ƒJƒi•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ - funcptr KanaProc; /* ”¼ŠpƒJƒ^ƒJƒiˆ—ƒ‹[ƒ`ƒ“ (“à•”ˆ——pƒ[ƒN) */ + char *Str; /* 文字列 */ + int StrLen; /* 文字列の長さ */ + int KanaCnv; /* 半角カタカナを全角に変換するかどうか (YES/NO) */ + char *Buf; /* 変換後の文字列を格納するバッファ */ + int BufSize; /* 変換後の文字列を格納するバッファのサイズ */ + int OutLen; /* 変換後の文字列のサイズ */ + int KanjiMode; /* 漢字モードフラグ(YES/NO) (内部処理用ワーク) */ + int EscProc; /* エスケープシーケンス文字数 (0~) (内部処理用ワーク) */ + char EscCode[2]; /* エスケープシーケンス文字保存用 (内部処理用ワーク) */ + char KanjiFst; /* 漢字コード1バイト目保存用 (内部処理用ワーク) */ + char KanaPrev; /* 半角カタカナ保存用 (内部処理用ワーク) */ + funcptr KanaProc; /* 半角カタカナ処理ルーチン (内部処理用ワーク) */ + char EscUTF8[8]; + int EscUTF8Len; } CODECONVINFO; -/*===== ‰üsƒR[ƒh•ÏŠ·î•ñƒpƒPƒbƒg =====*/ +/*===== 改行コード変換情報パケット =====*/ typedef struct termcodeconvinfo { - char *Str; /* •¶Žš—ñ */ - int StrLen; /* •¶Žš—ñ‚Ì’·‚³ */ - char *Buf; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@ */ - int BufSize; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚ðŠi”[‚·‚éƒoƒbƒtƒ@‚̃TƒCƒY */ - int OutLen; /* •ÏŠ·Œã‚Ì•¶Žš—ñ‚̃TƒCƒY */ - char Term; /* ‰üsƒR[ƒh‚PƒoƒCƒg–Ú•Û‘¶—p (“à•”ˆ——pƒ[ƒN) */ + char *Str; /* 文字列 */ + int StrLen; /* 文字列の長さ */ + char *Buf; /* 変換後の文字列を格納するバッファ */ + int BufSize; /* 変換後の文字列を格納するバッファのサイズ */ + int OutLen; /* 変換後の文字列のサイズ */ + char Term; /* 改行コード1バイト目保存用 (内部処理用ワーク) */ } TERMCODECONVINFO; -/*===== ƒeƒ“ƒ|ƒ‰ƒŠƒtƒ@ƒCƒ‹ƒŠƒXƒg =====*/ +/*===== テンポラリファイルリスト =====*/ typedef struct tempfilelist { - char *Fname; /* ƒtƒ@ƒCƒ‹–¼ */ + char *Fname; /* ファイル名 */ struct tempfilelist *Next; } TEMPFILELIST; -/*===== ƒTƒEƒ“ƒhƒtƒ@ƒCƒ‹ =====*/ +/*===== サウンドファイル =====*/ typedef struct { - int On; /* ON/OFFƒXƒCƒbƒ` */ - char Fname[FMAX_PATH+1]; /* ƒtƒ@ƒCƒ‹–¼ */ + int On; /* ON/OFFスイッチ */ + char Fname[FMAX_PATH+1]; /* ファイル名 */ } SOUNDFILE; -/*===== ƒ‰ƒWƒIƒ{ƒ^ƒ“‚̐ݒè =====*/ +/*===== ラジオボタンの設定 =====*/ typedef struct { - int ButID; /* ƒ{ƒ^ƒ“‚ÌID */ - int Value; /* ’l */ + int ButID; /* ボタンのID */ + int Value; /* 値 */ } RADIOBUTTON; /*===== SOCKS4 =====*/ -/* ƒRƒ}ƒ“ƒhƒpƒPƒbƒg */ +/* コマンドパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS4_VER) */ - char Cmd; /* ƒRƒ}ƒ“ƒh (SOCKS4_CMD_xxx) */ - ushort Port; /* ƒ|[ƒg */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ - char UserID[USER_NAME_LEN+1]; /* ƒ†[ƒUID */ + char Ver; /* バージョン (SOCKS4_VER) */ + char Cmd; /* コマンド (SOCKS4_CMD_xxx) */ + ushort Port; /* ポート */ + ulong AdrsInt; /* アドレス */ + char UserID[USER_NAME_LEN+1]; /* ユーザID */ } SOCKS4CMD; -/* •ÔMƒpƒPƒbƒg */ +/* 返信パケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - char Result; /* ƒŠƒUƒ‹ƒgƒR[ƒh (SOCKS4_RES_xxx) */ - ushort Port; /* ƒ|[ƒg */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ + char Ver; /* バージョン */ + char Result; /* リザルトコード (SOCKS4_RES_xxx) */ + ushort Port; /* ポート */ + ulong AdrsInt; /* アドレス */ } SOCKS4REPLY; #define SOCKS4REPLY_SIZE 8 @@ -1064,75 +1198,77 @@ typedef struct { /*===== SOCKS5 =====*/ -/* Method requestƒpƒPƒbƒg */ +/* Method requestパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - char Num; /* ƒƒ\ƒbƒh‚̐” */ - uchar Methods[1]; /* ƒƒ\ƒbƒh */ + char Ver; /* バージョン (SOCKS5_VER) */ + char Num; /* メソッドの数 */ + uchar Methods[1]; /* メソッド */ } SOCKS5METHODREQUEST; #define SOCKS5METHODREQUEST_SIZE 3 -/* Method replyƒpƒPƒbƒg */ +/* Method replyパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - uchar Method; /* ƒƒ\ƒbƒh */ + char Ver; /* バージョン (SOCKS5_VER) */ + uchar Method; /* メソッド */ } SOCKS5METHODREPLY; #define SOCKS5METHODREPLY_SIZE 2 -/* RequestƒpƒPƒbƒg */ +/* Requestパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ (SOCKS5_VER) */ - char Cmd; /* ƒRƒ}ƒ“ƒh (SOCKS5_CMD_xxx) */ - char Rsv; /* i—\–ñj */ - char Type; /* ƒAƒhƒŒƒX‚̃^ƒCƒv */ - /* ˆÈŒãi‰Â•Ï’·•”•ªj */ - char _dummy[255+1+2]; /* ƒAƒhƒŒƒXAƒ|[ƒg */ + char Ver; /* バージョン (SOCKS5_VER) */ + char Cmd; /* コマンド (SOCKS5_CMD_xxx) */ + char Rsv; /* (予約) */ + char Type; /* アドレスのタイプ */ + /* 以後(可変長部分) */ + char _dummy[255+1+2]; /* アドレス、ポート */ } SOCKS5REQUEST; -#define SOCKS5REQUEST_SIZE 4 /* Å‰‚̌Œ蕔•ª‚̃TƒCƒY */ +#define SOCKS5REQUEST_SIZE 4 /* 最初の固定部分のサイズ */ -/* ReplyƒpƒPƒbƒg */ +/* Replyパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - char Result; /* ƒŠƒUƒ‹ƒgƒR[ƒh (SOCKS4_RES_xxx) */ - char Rsv; /* i—\–ñj */ - char Type; /* ƒAƒhƒŒƒX‚̃^ƒCƒv */ - /* ˆÈŒãi‰Â•Ï’·•”•ªj */ - ulong AdrsInt; /* ƒAƒhƒŒƒX */ - ushort Port; /* ƒ|[ƒg */ - char _dummy[2]; /* dummy */ + char Ver; /* バージョン */ + char Result; /* リザルトコード (SOCKS4_RES_xxx) */ + char Rsv; /* (予約) */ + char Type; /* アドレスのタイプ */ + /* 以後(可変長部分) */ + // IPv6対応 +// ulong AdrsInt; /* アドレス */ +// ushort Port; /* ポート */ +// char _dummy[2]; /* dummy */ + char _dummy[255+1+2]; /* dummy */ } SOCKS5REPLY; -#define SOCKS5REPLY_SIZE 4 /* Å‰‚̌Œ蕔•ª‚̃TƒCƒY */ +#define SOCKS5REPLY_SIZE 4 /* 最初の固定部分のサイズ */ -/* Username/Password”FØstatusƒpƒPƒbƒg */ +/* Username/Password認証statusパケット */ typedef struct { - char Ver; /* ƒo[ƒWƒ‡ƒ“ */ - uchar Status; /* ƒXƒe[ƒ^ƒX */ + char Ver; /* バージョン */ + uchar Status; /* ステータス */ } SOCKS5USERPASSSTATUS; #define SOCKS5USERPASSSTATUS_SIZE 2 -/*===== ƒ_ƒCƒAƒƒOƒ{ƒbƒNƒX•ÏXˆ——p =====*/ +/*===== ダイアログボックス変更処理用 =====*/ typedef struct { - int HorMoveList[10]; /* …•½‚É“®‚©‚·•”•i‚̃ŠƒXƒg */ - int VarMoveList[10]; /* ‚’¼‚É“®‚©‚·•”•i‚̃ŠƒXƒg */ - int ResizeList[10]; /* ƒTƒCƒY•ÏX‚·‚é•”•i‚̃ŠƒXƒg */ - SIZE MinSize; /* Å­ƒTƒCƒY */ - SIZE CurSize; /* Œ»Ý‚̃TƒCƒY */ + int HorMoveList[10]; /* 水平に動かす部品のリスト */ + int VarMoveList[10]; /* 垂直に動かす部品のリスト */ + int ResizeList[10]; /* サイズ変更する部品のリスト */ + SIZE MinSize; /* 最少サイズ */ + SIZE CurSize; /* 現在のサイズ */ } DIALOGSIZE; -/*===== ”’l•ÏŠ·—p =====*/ +/*===== 数値変換用 =====*/ typedef struct { int Num1; @@ -1141,7 +1277,7 @@ typedef struct { /*================================================= -* ƒvƒƒgƒ^ƒCƒv +* プロトタイプ *=================================================*/ /*===== main.c =====*/ @@ -1164,6 +1300,14 @@ int AskForceIni(void); int BackgrndMessageProc(void); void ResetAutoExitFlg(void); int AskAutoExit(void); +// 暗号化通信対応 +BOOL __stdcall SSLTimeoutCallback(BOOL* pbAborted); +BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName); +BOOL LoadSSLRootCAFile(); +// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策 +BOOL IsMainThread(); +// ファイルアイコン表示対応 +int AskDispFileIcon(void); /*===== filelist.c =====*/ @@ -1202,6 +1346,8 @@ FILELIST *SearchFileList(char *Fname, FILELIST *Base, int Caps); int Assume1900or2000(int Year); void SetFilter(int *CancelCheckWork); void doDeleteRemoteFile(void); +// UTF-8対応 +int AnalyzeNameKanjiCode(int Num); /*===== toolmenu.c =====*/ @@ -1231,6 +1377,12 @@ void SetHostKanjiCode(int Type); void DispHostKanjiCode(void); int AskHostKanjiCode(void); void HideHostKanjiButton(void); +// UTF-8対応 +void SetLocalKanjiCodeImm(int Mode); +void SetLocalKanjiCode(int Type); +void DispLocalKanjiCode(void); +int AskLocalKanjiCode(void); +void HideLocalKanjiButton(void); void SetHostKanaCnvImm(int Mode); void SetHostKanaCnv(void); void DispHostKanaCnv(void); @@ -1293,6 +1445,8 @@ void SetCurrentHost(int Num); void CopyDefaultHost(HOSTDATA *Set); int SearchHostName(char *Name); void ImportFromWSFTP(void); +// 暗号化通信対応 +int SetHostExcryption(int Num, int UseNoEncryption, int UseFTPES, int UseFTPIS, int UseSFTP); /*===== connect.c =====*/ @@ -1317,6 +1471,8 @@ char *AskHostUserName(void); void SaveCurrentSetToHost(void); int ReConnectCmdSkt(void); // int ReConnectTrnSkt(void); +// 同時接続対応 +int ReConnectTrnSkt(SOCKET *Skt, int *CancelCheckWork); SOCKET AskCmdCtrlSkt(void); SOCKET AskTrnCtrlSkt(void); void SktShareProh(void); @@ -1324,10 +1480,44 @@ int AskShareProh(void); void DisconnectProc(void); void DisconnectSet(void); int AskConnecting(void); +#if defined(HAVE_TANDEM) +int AskRealHostType(void); +int SetOSS(int wkOss); +int AskOSS(void); +#endif SOCKET connectsock(char *host, int port, char *PreMsg, int *CancelCheckWork); +// IPv6対応 +SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork); +SOCKET connectsockIPv6(char *host, int port, char *PreMsg, int *CancelCheckWork); SOCKET GetFTPListenSocket(SOCKET ctrl_skt, int *CancelCheckWork); +// IPv6対応 +SOCKET GetFTPListenSocketIPv4(SOCKET ctrl_skt, int *CancelCheckWork); +SOCKET GetFTPListenSocketIPv6(SOCKET ctrl_skt, int *CancelCheckWork); int AskTryingConnect(void); -int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data); +// 同時接続対応 +//int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data); +int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data, int *CancelCheckWork); +// 暗号化通信対応 +int AskCryptMode(void); +int AskUseNoEncryption(void); +int AskUseFTPES(void); +int AskUseFTPIS(void); +int AskUseSFTP(void); +char *AskPrivateKey(void); +// 同時接続対応 +int AskMaxThreadCount(void); +int AskReuseCmdSkt(void); +// FEAT対応 +int AskHostFeature(void); +// MLSD対応 +int AskUseMLSD(void); +// IPv6対応 +int AskCurNetType(void); +// 自動切断対策 +int AskNoopInterval(void); +// 再転送対応 +int AskTransferErrorMode(void); +int AskTransferErrorNotify(void); /*===== cache.c =====*/ @@ -1363,17 +1553,23 @@ void ChangeDirBmarkProc(int MarkID); void ChangeDirDirectProc(int Win); void ChangeDirDropFileProc(WPARAM wParam); void ChmodProc(void); -BOOL CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//BOOL CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam); void SomeCmdProc(void); void CalcFileSizeProc(void); void DispCWDerror(HWND hWnd); void CopyURLtoClipBoard(void); -int ProcForNonFullpath(char *Path, char *CurDir, HWND hWnd, int Type); +// 同時接続対応 +//int ProcForNonFullpath(char *Path, char *CurDir, HWND hWnd, int Type); +int ProcForNonFullpath(SOCKET cSkt, char *Path, char *CurDir, HWND hWnd, int *CancelCheckWork); void ReformToVMSstyleDirName(char *Path); void ReformToVMSstylePathName(char *Path); #if defined(HAVE_OPENVMS) void ReformVMSDirName(char *DirName, int Flg); #endif +// 自動切断対策 +void NoopProc(void); /*===== local.c =====*/ @@ -1397,14 +1593,25 @@ int DoRMD(char *Path); int DoDELE(char *Path); int DoRENAME(char *Src, char *Dst); int DoCHMOD(char *Path, char *Mode); -int DoSIZE(char *Path, LONGLONG *Size); -int DoMDTM(char *Path, FILETIME *Time); -int DoQUOTE(char *CmdStr); +// 同時接続対応 +//int DoSIZE(char *Path, LONGLONG *Size); +int DoSIZE(SOCKET cSkt, char *Path, LONGLONG *Size, int *CancelCheckWork); +// 同時接続対応 +//int DoMDTM(char *Path, FILETIME *Time); +int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork); +// 同時接続対応 +//int DoQUOTE(char *CmdStr); +int DoQUOTE(SOCKET cSkt, char *CmdStr, int *CancelCheckWork); SOCKET DoClose(SOCKET Sock); int DoQUIT(SOCKET ctrl_skt); int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork); +#if defined(HAVE_TANDEM) +void SwitchOSSProc(void); +#endif int CommandProcCmd(char *Reply, char *fmt, ...); -int CommandProcTrn(char *Reply, char *fmt, ...); +// 同時接続対応 +//int CommandProcTrn(char *Reply, char *fmt, ...); +int CommandProcTrn(SOCKET cSkt, char *Reply, int* CancelCheckWork, char *fmt, ...); int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...); int SendData(SOCKET Skt, char *Data, int Size, int Mode, int *CancelCheckWork); int ReadReplyMessage(SOCKET cSkt, char *Buf, int Max, int *CancelCheckWork, char *Tmp); @@ -1443,12 +1650,12 @@ int FlushRestData(CODECONVINFO *cInfo); int ConvEUCtoSJIS(CODECONVINFO *cInfo); int ConvJIStoSJIS(CODECONVINFO *cInfo); int ConvSMBtoSJIS(CODECONVINFO *cInfo); -int ConvUTF8NtoSJIS(CODECONVINFO *cInfo); // UTF-8N‘Ήž +int ConvUTF8NtoSJIS(CODECONVINFO *cInfo); // UTF-8対応 int ConvSJIStoEUC(CODECONVINFO *cInfo); int ConvSJIStoJIS(CODECONVINFO *cInfo); int ConvSJIStoSMB_HEX(CODECONVINFO *cInfo); int ConvSJIStoSMB_CAP(CODECONVINFO *cInfo); -int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8N‘Ήž +int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8対応 void ConvAutoToSJIS(char *Text, int Pref); int CheckKanjiCode(char *Text, int Size, int Pref); @@ -1456,6 +1663,13 @@ int CheckKanjiCode(char *Text, int Size, int Pref); void SetOption(int Start); int SortSetting(void); +// hostman.cで使用 +int GetDecimalText(HWND hDlg, int Ctrl); +void SetDecimalText(HWND hDlg, int Ctrl, int Num); +void CheckRange2(int *Cur, int Max, int Min); +void AddTextToListBox(HWND hDlg, char *Str, int CtrlList, int BufSize); +void SetMultiTextToList(HWND hDlg, int CtrlList, char *Text); +void GetMultiTextFromList(HWND hDlg, int CtrlList, char *Buf, int BufSize); /*===== bookmark.c =====*/ @@ -1511,8 +1725,12 @@ int ConnectRas(int Dialup, int UseThis, int Notify, char *Name); /*===== misc.c =====*/ int InputDialogBox(int Res, HWND hWnd, char *Title, char *Buf, int Max, int *Flg, int Help); -BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); -BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +// 64ビット対応 +//BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); void SetYenTail(char *Str); void RemoveYenTail(char *Str); void SetSlashTail(char *Str); @@ -1559,6 +1777,13 @@ int ConvertNum(int x, int Dir, const INTCONVTBL *Tbl, int Num); int MoveFileToTrashCan(char *Path); LONGLONG MakeLongLong(DWORD High, DWORD Low); char *MakeNumString(LONGLONG Num, char *Buf, BOOL Comma); +// 異なるファイルが表示されるバグ修正 +char* MakeDistinguishableFileName(char* Out, char* In); +// 環境依存の不具合対策 +char* GetAppTempPath(char* Buf); +#if defined(HAVE_TANDEM) +void CalcExtentSize(TRANSPACKET *Pkt, LONGLONG Size); +#endif /*===== dlgsize.c =====*/ @@ -1600,7 +1825,10 @@ char *AskLocalFreeSpace(char *Path); int MakeSocketWin(HWND hWnd, HINSTANCE hInst); void DeleteSocketWin(void); -struct hostent *do_gethostbyname(const char *Name, char *Buf, int Len, int *CancelCheckWork); +// IPv6対応 +//struct hostent *do_gethostbyname(const char *Name, char *Buf, int Len, int *CancelCheckWork); +struct hostent *do_gethostbynameIPv4(const char *Name, char *Buf, int Len, int *CancelCheckWork); +struct hostent *do_gethostbynameIPv6(const char *Name, char *Buf, int Len, int *CancelCheckWork); SOCKET do_socket(int af, int type, int protocol); int do_connect(SOCKET s, const struct sockaddr *name, int namelen, int *CancelCheckWork); int do_closesocket(SOCKET s); @@ -1608,8 +1836,11 @@ int do_listen(SOCKET s, int backlog); SOCKET do_accept(SOCKET s, struct sockaddr *addr, int *addrlen); int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOut, int *CancelCheckWork); int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int *CancelCheckWork); +// 同時接続対応 +void RemoveReceivedData(SOCKET s); int CheckClosedAndReconnect(void); -void CheckAllEventClosed(void); +// 同時接続対応 +int CheckClosedAndReconnectTrnSkt(SOCKET *Skt, int *CancelCheckWork); /*===== updatebell.c =====*/