OSDN Git Service

Add UTF-8 to UTF-16 API bridge.
[ffftp/ffftp.git] / common.h
1 /*=============================================================================\r
2 *                                                       \82e\82e\82e\82s\82o\8b¤\92Ê\92è\8b`\83t\83@\83C\83\8b\r
3 *\r
4 ===============================================================================\r
5 / Copyright (C) 1997-2007 Sota. All rights reserved.\r
6 /\r
7 / Redistribution and use in source and binary forms, with or without \r
8 / modification, are permitted provided that the following conditions \r
9 / are met:\r
10 /\r
11 /  1. Redistributions of source code must retain the above copyright \r
12 /     notice, this list of conditions and the following disclaimer.\r
13 /  2. Redistributions in binary form must reproduce the above copyright \r
14 /     notice, this list of conditions and the following disclaimer in the \r
15 /     documentation and/or other materials provided with the distribution.\r
16 /\r
17 / THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR \r
18 / IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES \r
19 / OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \r
20 / IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, \r
21 / INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \r
22 / BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF \r
23 / USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON \r
24 / ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
25 / (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF \r
26 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
27 /============================================================================*/\r
28 \r
29 #ifndef __COMMON_H__\r
30 #define __COMMON_H__\r
31 \r
32 #include "config.h"\r
33 #ifndef ENGLISH\r
34 #include "mesg-jpn.h"\r
35 #else\r
36 #include "mesg-eng.h"\r
37 #endif\r
38 \r
39 \r
40 #define NUL                             '\0'\r
41 \r
42 #define LOW8(x)                 ((x) & 0xFF)\r
43 #define HIGH8(x)                (((x) >> 8) & 0xFF)\r
44 #define LOW32(x)                ((x) & 0xFFFFFFFF)\r
45 #define HIGH32(x)               (((x) >> 32) & 0xFFFFFFFF)\r
46 #define N2INT(h,l)              ((int)(((uchar)(h) << 4) + (uchar)(l)))\r
47 \r
48 #define IsDigit(n)              (isascii(n) && isdigit(n))\r
49 #define IsAlpha(n)              (isascii(n) && isalpha(n))\r
50 \r
51 #define uchar                   unsigned char\r
52 #define ushort                  unsigned short\r
53 #define ulong                   unsigned long\r
54 \r
55 #define FAIL                    0\r
56 #define SUCCESS                 1\r
57 \r
58 #define NO                              0\r
59 #define YES                             1\r
60 #define NO_ALL                  2\r
61 #define YES_ALL                 3\r
62 #define YES_LIST                4\r
63 \r
64 /*===== \83o\81[\83W\83\87\83\93 ======*/\r
65 \r
66 #define VER_STR                                 "1.97b"\r
67 #define VER_NUM                                 1921            /* \90Ý\92è\83o\81[\83W\83\87\83\93 */\r
68 #define PROGRAM_VERSION_NUM             1972            /* \83o\81[\83W\83\87\83\93 */\r
69 \r
70 \r
71 #define MYWEB_URL       "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html"\r
72 \r
73 \r
74 \r
75 /*===== \92Ê\90M\8aÖ\8cW ======*/\r
76 \r
77 #define TCP_PORT                6\r
78 \r
79 /*===== \83E\83C\83\93\83h\83E\83T\83C\83Y ======*/\r
80 \r
81 #define TOOLWIN_HEIGHT  28              /* \83c\81[\83\8b\83o\81[\82Ì\8d\82\82³ */\r
82 \r
83 /*===== \93Á\8eê\82È\83L\83\83\83b\83V\83\85\83f\81[\83^\94Ô\8d\86 =====*/\r
84 /* \81i\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾\82Å\8eg\97p\82·\82é\83\8d\81[\83J\83\8b\83t\83@\83C\83\8b\96¼ _ffftp.??? \82Ì\94Ô\8d\86\95\94\95ª\81j */\r
85 \r
86 #define CACHE_FILE_TMP1 999             /* \83z\83X\83g\82Ì\83t\83@\83C\83\8b\83c\83\8a\81[\8eæ\93¾\97p */\r
87 #define CACHE_FILE_TMP2 998             /* \83A\83b\83v\83\8d\81[\83h\92\86\82Ì\83z\83X\83g\82Ì\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾\97p */\r
88 \r
89 /*===== \83\86\81[\83U\92è\8b`\83R\83}\83\93\83h =====*/\r
90 \r
91 #define WM_CHANGE_COND  (WM_USER+1)     /* \83t\83@\83C\83\8b\88ê\97\97\82ð\95Ï\8dX\82·\82é\83R\83}\83\93\83h */\r
92 #define WM_SET_PACKET   (WM_USER+2)     /* \8c»\8dÝ\8eg\97p\82µ\82Ä\82¢\82é\93]\91\97\83p\83P\83b\83g\82Ì\83A\83h\83\8c\83X\82ð\92Ê\92m */\r
93 #define WM_SELECT_HOST  (WM_USER+3)     /* \83z\83X\83g\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82Å\91I\91ð\82µ\82½ */\r
94 #define WM_DIAL_MSG             (WM_USER+4)     /* \83_\83C\83A\83\8b\92\86\82Ì\83X\83e\81[\83^\83X\92Ê\92m */\r
95 \r
96 #define WM_ASYNC_SOCKET (WM_USER+5)\r
97 #define WM_ASYNC_DBASE  (WM_USER+6)\r
98 \r
99 #define WM_REFRESH_LOCAL_FLG    (WM_USER+7)\r
100 #define WM_REFRESH_REMOTE_FLG   (WM_USER+8)\r
101 \r
102 /*===== \83z\83X\83g\94Ô\8d\86 =====*/\r
103 /* \83z\83X\83g\94Ô\8d\86\82Í 0\81\82Ì\92l\82ð\8eæ\82é */\r
104 \r
105 #define HOSTNUM_NOENTRY (-1)    /* \83z\83X\83g\88ê\97\97\82É\96³\82¢\82Æ\82«\82Ì\83z\83X\83g\94Ô\8d\86 */\r
106 \r
107 /*===== \83o\83b\83t\83@\83T\83C\83Y =====*/\r
108 \r
109 #define BUFSIZE                 4096    /* \83t\83@\83C\83\8b\93]\91\97\83o\83b\83t\83@\82Ì\83T\83C\83Y(4k\88È\8fã) */\r
110 \r
111 #define HOST_NAME_LEN   40              /* \88ê\97\97\82É\95\\8e¦\82·\82é\83z\83X\83g\82Ì\96¼\91O */\r
112 #define HOST_ADRS_LEN   80              /* \83z\83X\83g\96¼ */\r
113 #define USER_NAME_LEN   80              /* \83\86\81[\83U\96¼ */\r
114 #define PASSWORD_LEN    80              /* \83p\83X\83\8f\81[\83h */\r
115 #define ACCOUNT_LEN             80              /* \83A\83J\83E\83\93\83g */\r
116 #define HOST_TYPE_LEN   1               /* \83z\83X\83g\82Ì\8eí\97Þ */\r
117 #define INIT_DIR_LEN    (FMAX_PATH-40)  /* \8f\89\8aú\83f\83B\83\8c\83N\83g\83\8a */\r
118 #define USER_MAIL_LEN   80              /* \83\86\81[\83U\82Ì\83\81\81[\83\8b\83A\83h\83\8c\83X */\r
119                                                                 /*   PASSWORD_LEN \82Æ\93¯\82\82É\82·\82é\82±\82Æ */\r
120 #define ASCII_EXT_LEN   400             /* \83A\83X\83L\81[\83\82\81[\83h\93]\91\97\82Ì\83t\83@\83C\83\8b\96¼\97ñ */\r
121 #define FILTER_EXT_LEN  400             /* \83t\83B\83\8b\83^\82Ì\83t\83@\83C\83\8b\96¼\97ñ */\r
122 #define BOOKMARK_SIZE   2048    /* \83u\83b\83N\83}\81[\83N */\r
123 #define CHMOD_CMD_LEN   40              /* \91®\90«\95Ï\8dX\83R\83}\83\93\83h */\r
124 #define MIRROR_LEN              400             /* \83~\83\89\81[\83\8a\83\93\83O\82Ì\90Ý\92è\97p */\r
125 #define NLST_NAME_LEN   40              /* NLST\82É\95t\82¯\82é\83t\83@\83C\83\8b\96¼\81^\83I\83v\83V\83\87\83\93 */\r
126 #define DEFATTRLIST_LEN 800             /* \91®\90«\83\8a\83X\83g\82Ì\92·\82³ */\r
127 #define INITCMD_LEN             256             /* \8f\89\8aú\89»\83R\83}\83\93\83h */\r
128 #define OWNER_NAME_LEN  40              /* \83I\81[\83i\96¼ */\r
129 #define RAS_NAME_LEN    256             /* RAS\82Ì\83G\83\93\83g\83\8a\96¼\82Ì\92·\82³ */\r
130 \r
131 #define FMAX_PATH               1024\r
132 \r
133 #define ONELINE_BUF_SIZE        (10*1024)\r
134 \r
135 /*===== \8f\89\8aú\92l =====*/\r
136 \r
137 #define SAMBA_HEX_TAG   ':'                             /* Samba-HEX \82Ì\8bæ\90Ø\82è\95\8e\9a */\r
138 #define CHMOD_CMD_NOR   "SITE CHMOD"    /* \91®\90«\95Ï\8dX\83R\83}\83\93\83h */\r
139 #define PORT_NOR                21                              /* \83|\81[\83g\94Ô\8d\86 */\r
140 #define LS_FNAME                "-alL"                  /* NLST\82É\95t\82¯\82é\82à\82Ì */\r
141 \r
142 /*===== \93¯\82\96¼\91O\82Ì\83t\83@\83C\83\8b\82ª\82 \82Á\82½\8e\9e\82Ì\8f\88\97\9d =====*/\r
143 \r
144 #define EXIST_OVW               0               /* \8fã\8f\91\82« */\r
145 #define EXIST_NEW               1               /* \90V\82µ\82¯\82ê\82Î\8fã\8f\91\82« */\r
146 #define EXIST_RESUME    2               /* \83\8c\83W\83\85\81[\83\80 */\r
147 #define EXIST_IGNORE    3               /* \96³\8e\8b */\r
148 #define EXIST_UNIQUE    4               /* \83z\83X\83g\82ª\96¼\91O\82ð\95t\82¯\82é */\r
149 #define EXIST_ABORT             5               /* \91S\82Ä\92\86\8e~ */\r
150 \r
151 /*===== \83t\83@\83C\83\8b\96¼\82Ì\94ä\8ar\83\82\81[\83h =====*/\r
152 \r
153 #define COMP_IGNORE             0               /* \91å\95\8e\9a/\8f¬\95\8e\9a\82Í\8bæ\95Ê\82µ\82È\82¢ */\r
154 #define COMP_STRICT             1               /* \91å\95\8e\9a/\8f¬\95\8e\9a\82ð\8bæ\95Ê\82·\82é */\r
155 #define COMP_LOWERMATCH 2               /* \91å\95\8e\9a/\8f¬\95\8e\9a\82ð\8bæ\95Ê\82µ\82È\82¢\81i\95Ð\91¤\82Í\91S\82Ä\8f¬\95\8e\9a\81j */\r
156 \r
157 /*===== FTP\82Ì\89\9e\93\9a\83R\81[\83h\82Ì\93ª\82P\8c\85 =====*/\r
158 \r
159 #define FTP_PRELIM              1               /* */\r
160 #define FTP_COMPLETE    2               /* */\r
161 #define FTP_CONTINUE    3               /* */\r
162 #define FTP_RETRY               4               /* */\r
163 #define FTP_ERROR               5               /* */\r
164 \r
165 /*===== \83t\83@\83C\83\8b\83\8a\83X\83g\82Ì\83m\81[\83h\91®\90« =====*/\r
166 \r
167 #define NODE_DIR                0               /* \83f\83B\83\8c\83N\83g\83\8a */\r
168 #define NODE_FILE               1               /* \83t\83@\83C\83\8b */\r
169 #define NODE_DRIVE              2               /* \83h\83\89\83C\83u */\r
170 #define NODE_NONE               (-1)    /* \82È\82µ */\r
171 \r
172 /*===== \8fã\8f\91\82«\8am\94F\95û\96@\82Ì\90Ý\92è\92l =====*/\r
173 \r
174 #define TRANS_OVW               0               /* \8fã\8f\91\82« */\r
175 #define TRANS_DLG               1               /* \83_\83C\83A\83\8d\83O\82ð\8fo\82· */\r
176 \r
177 /*===== \83z\83X\83g\93à\83t\83@\83C\83\8b\88Ú\93®\8am\94F\95û\96@\82Ì\90Ý\92è\92l =====*/\r
178 \r
179 #define MOVE_NODLG              0               /* \83_\83C\83A\83\8d\83O\82ð\8fo\82³\82È\82¢ */\r
180 #define MOVE_DLG                1               /* \83_\83C\83A\83\8d\83O\82ð\8fo\82· */\r
181 #define MOVE_DISABLE    2               /* \8b@\94\\8eg\97p\8bÖ\8e~ */\r
182 \r
183 /*===== \93]\91\97\95û\96@ =====*/\r
184 \r
185 #define TYPE_I                  'I'             /* \83o\83C\83i\83\8a\83\82\81[\83h */\r
186 #define TYPE_A                  'A'             /* \83A\83X\83L\81[\83\82\81[\83h */\r
187 #define TYPE_X                  'X'             /* \8e©\93®\94»\95Ê */\r
188 \r
189 #define TYPE_DEFAULT    NUL             /* \90Ý\92è\82µ\82È\82¢ DirectConnectProc()\82Ì\88ø\90\94\82Æ\82µ\82Ä\97L\8cø */\r
190 \r
191 /*===== \83\\81[\83g\95û\96@ =====*/\r
192 /* \94Ô\8d\86\82ÍListView\82Ì\83J\83\89\83\80\94Ô\8d\86\82Æ\8d\87\82í\82¹\82Ä\82 \82é */\r
193 \r
194 #define SORT_NAME               0               /* \96¼\91O\8f\87 */\r
195 #define SORT_DATE               1               /* \93ú\95t\8f\87 */\r
196 #define SORT_SIZE               2               /* \83T\83C\83Y\8f\87 */\r
197 #define SORT_EXT                3               /* \8ag\92£\8eq\8f\87 */\r
198 \r
199 #define SORT_ASCENT             0x00    /* \8f¸\8f\87 */\r
200 #define SORT_DESCENT    0x80    /* \8d~\8f\87 */\r
201 \r
202 #define SORT_MASK_ORD   0x7F    /* \82\98\82\98\8f\87\82ð\8eæ\82è\8fo\82·\83}\83X\83N */\r
203 #define SORT_GET_ORD    0x80    /* \8f¸\8f\87\81^\8d~\8f\87\82ð\8eæ\82è\8fo\82·\83}\83X\83N */\r
204 \r
205 #define SORT_NOTSAVED   ((ulong)0xFFFFFFFF)     /* \83z\83X\83g\96\88\82Ì\83Z\81[\83u\95û\96@\82ð\95Û\91\82µ\82Ä\82¢\82È\82¢\8e\9e\82Ì\92l */\r
206 \r
207 /*===== \83\\81[\83g\82·\82é\8fê\8f\8a =====*/\r
208 \r
209 #define ITEM_LFILE              0               /* \83\8d\81[\83J\83\8b\82Ì\96¼\91O */\r
210 #define ITEM_LDIR               1               /* \83\8d\81[\83J\83\8b\82Ì\83f\83B\83\8c\83N\83g\83\8a */\r
211 #define ITEM_RFILE              2               /* \83z\83X\83g\82Ì\96¼\91O */\r
212 #define ITEM_RDIR               3               /* \83z\83X\83g\82Ì\83f\83B\83\8c\83N\83g\83\8a */\r
213 \r
214 /*===== \83E\83C\83\93\83h\83E\94Ô\8d\86 =====*/\r
215 \r
216 #define WIN_LOCAL               0               /* \83\8d\81[\83J\83\8b */\r
217 #define WIN_REMOTE              1               /* \83z\83X\83g */\r
218 #define WIN_BOTH                2               /* \97¼\95û */\r
219 \r
220 /*===== \83t\83@\83C\83\8b\91I\91ð\95û\96@ =====*/\r
221 \r
222 #define SELECT_ALL              0               /* \91S\91I\91ð */\r
223 #define SELECT_REGEXP   1               /* \8c\9f\8dõ\8e®\82ð\93ü\97Í\82µ\82Ä\91I\91ð */\r
224 \r
225 /*===== \8c\9f\8dõ\95û\96@ =====*/\r
226 \r
227 #define FIND_FIRST              0               /* \8dÅ\8f\89\82Ì\8c\9f\8dõ */\r
228 #define FIND_NEXT               1               /* \8e\9f\82ð\8c\9f\8dõ */\r
229 \r
230 /*===== \83t\83@\83C\83\8b\96¼\82Ì\91å\95\8e\9a\81^\8f¬\95\8e\9a\95Ï\8a· =====*/\r
231 \r
232 #define FNAME_NOCNV             0               /* \95Ï\8a·\82µ\82È\82¢ */\r
233 #define FNAME_LOWER             1               /* \8f¬\95\8e\9a\82É\95Ï\8a· */\r
234 #define FNAME_UPPER             2               /* \91å\95\8e\9a\82É\95Ï\8a· */\r
235 \r
236 /*===== \83t\83@\83C\83\8b\88ê\97\97\82Ì\8c`\8e® =====*/\r
237 \r
238 #define LIST_UNKNOWN    (-1)    /* \95s\96¾ */\r
239 \r
240 #define LIST_UNIX_10    0               /* UNIX 10 */\r
241 #define LIST_UNIX_11    1               /* UNIX 11 */\r
242 #define LIST_UNIX_12    2               /* UNIX 12 */\r
243 #define LIST_UNIX_13    3               /* UNIX 13 */\r
244 #define LIST_UNIX_14    4               /* UNIX 14 */\r
245 #define LIST_UNIX_15    5               /* UNIX 15 */\r
246 #define LIST_UNIX_20    6               /* UNIX 20 */\r
247 #define LIST_UNIX_21    7               /* UNIX 21 */\r
248 #define LIST_UNIX_22    8               /* UNIX 22 */\r
249 #define LIST_UNIX_23    9               /* UNIX 23 */\r
250 #define LIST_UNIX_24    10              /* UNIX 24 */\r
251 #define LIST_UNIX_25    11              /* UNIX 25 */\r
252 #define LIST_UNIX_50    12              /* UNIX 50 */\r
253 #define LIST_UNIX_51    13              /* UNIX 51 */\r
254 #define LIST_UNIX_54    14              /* UNIX 54 */\r
255 #define LIST_UNIX_60    15              /* UNIX 60 */\r
256 #define LIST_UNIX_61    16              /* UNIX 61 */\r
257 #define LIST_UNIX_62    17              /* UNIX 62 */\r
258 #define LIST_UNIX_63    18              /* UNIX 63 */\r
259 #define LIST_UNIX_64    19              /* UNIX 64 */\r
260 #define LIST_UNIX_65    20              /* UNIX 65 */\r
261 #define LIST_DOS_1              21              /* MS-DOS 1 */\r
262 #define LIST_DOS_2              22              /* MS-DOS 2 */\r
263 #define LIST_DOS_3              23              /* MS-DOS 3 */\r
264 #define LIST_DOS_4              24              /* MS-DOS 4 */\r
265 #define LIST_ACOS               25              /* ACOS */\r
266 #define LIST_AS400              26              /* AS/400 */\r
267 #define LIST_M1800              27              /* Fujitu M1800 (OS IV/MSP E20) */\r
268 #define LIST_CHAMELEON  28              /* Win3.1\97p Chameleon FTP server */\r
269 #define LIST_GP6000             29              /* Fujitu GP6000 Model 900 */\r
270 #define LIST_OS2                30              /* OS/2 */\r
271 #define LIST_VMS                31              /* VAX VMS */\r
272 #define LIST_OS7_1              32              /* Toshiba OS7 */\r
273 #define LIST_OS7_2              33              /* Toshiba OS7 */\r
274 #define LIST_IRMX               34              /* IRMX */\r
275 #define LIST_ACOS_4             35              /* ACOS-4 */\r
276 #define LIST_STRATUS    36              /* Stratus */\r
277 #define LIST_ALLIED             37              /* allied telesis (DOS) */\r
278 #define LIST_OS9                38              /* OS/9 */\r
279 #define LIST_IBM                39              /* IBM host */\r
280 #define LIST_AGILENT    40              /* Agilent logic analyzer */\r
281 #define LIST_SHIBASOKU  41              /* Shibasoku LSI test system */\r
282 #define LIST_UNIX_70    42              /* UNIX 70 */\r
283 #define LIST_UNIX_71    43              /* UNIX 71 */\r
284 #define LIST_UNIX_72    44              /* UNIX 72 */\r
285 #define LIST_UNIX_73    45              /* UNIX 73 */\r
286 #define LIST_UNIX_74    46              /* UNIX 74 */\r
287 #define LIST_UNIX_75    47              /* UNIX 75 */\r
288 \r
289 #define LIST_MELCOM             0x100   /* MELCOM80 */\r
290 \r
291 #define LIST_MASKFLG    0xFF\r
292 \r
293 /* \83t\83@\83C\83\8b\88ê\97\97\8fî\95ñ\97á ---------------\r
294 \r
295 *LIST_UNIX_10\r
296         0          1   2     3      4    5    6   7         8\r
297         -------------------------------------------------------\r
298         drwxr-xr-x 15  owner group  1024 Nov  6   14:21     Linux/\r
299         -rwxrwx---  5  owner group    12 Nov  6   1996      test.txt\r
300         drwxr-xr-x 15  owner group  1024 11\8c\8e 6\93ú 14:21     Linux/\r
301         drwxr-xr-x 15  owner group  1024 11\8c\8e 6\93ú 14\8e\9e21\95ª  Linux/\r
302         -rwxrwx---  5  owner group    12 11\8c\8e 6\93ú 1996\94N    test.txt\r
303         drwxrwxr-x 6   root  sys     512  1\8c\8e 26  03:10     adm         (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
304 \r
305 *LIST_UNIX_11\r
306         0          1   2     3      4    5        6         7\r
307         -------------------------------------------------------\r
308         drwxr-xr-x 15  owner group  1024 11\8c\8e12\93ú 14\8e\9e21\95ª  Linux/\r
309         -rwxrwx---  5  owner group    12 11\8c\8e12\93ú 1996\94N    test.txt\r
310 \r
311 *LIST_UNIX_12\r
312         0              1     2      3    4    5   6         7\r
313         -------------------------------------------------------\r
314         drwxr-xr-x123  owner group  1024 Nov  6   14:21     Linux/\r
315         -rwxrwx---132  owner group    12 Nov  6   1996      test.txt\r
316         drwxr-xr-x123  owner group  1024 11\8c\8e 6\93ú 14:21     Linux/\r
317         drwxr-xr-x123  owner group  1024 11\8c\8e 6\93ú 14\8e\9e21\95ª  Linux/\r
318         -rwxrwx---132  owner group    12 11\8c\8e 6\93ú 1996\94N    test.txt\r
319 \r
320 *LIST_UNIX_13\r
321         0              1     2      3    4        5         6\r
322         -------------------------------------------------------\r
323         drwxr-xr-x123  owner group  1024 11\8c\8e12\93ú 14\8e\9e21\95ª  Linux/\r
324         -rwxrwx---132  owner group    12 11\8c\8e12\93ú 1996\94N    test.txt\r
325 \r
326 *LIST_UNIX_14\r
327         0          1   2     3      4    5    6   7         8\r
328         -------------------------------------------------------\r
329         drwxr-xr-x 15  owner group  512  2001 6\8c\8e 18        audit       (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
330 \r
331 *LIST_UNIX_15\r
332         0              1     2      3    4    5   6         7\r
333         -------------------------------------------------------\r
334         drwxr-xr-x15   owner group  512  2001 6\8c\8e 18        audit       (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
335 \r
336 \r
337 \r
338 \r
339 \r
340 *LIST_UNIX_20\r
341         0          1   2            3    4    5   6         7\r
342         -------------------------------------------------------\r
343         drwxr-xr-x 15  owner        1024 Nov  6   14:21     Linux/\r
344         -rwxrwx---  5  owner          12 Nov  6   1996      test.txt\r
345         drwxr-xr-x 15  owner        1024 11\8c\8e 6\93ú 14:21     Linux/\r
346         drwxr-xr-x 15  owner        1024 11\8c\8e 6\93ú 14\8e\9e21\95ª  Linux/\r
347         -rwxrwx---  5  owner          12 11\8c\8e 6\93ú 1996\94N    test.txt\r
348 \r
349 *LIST_UNIX_21\r
350         0          1   2            3    4        5         6\r
351         -------------------------------------------------------\r
352         drwxr-xr-x 15  owner        1024 11\8c\8e12\93ú 14\8e\9e21\95ª  Linux/\r
353         -rwxrwx---  5  owner          12 11\8c\8e12\93ú 1996\94N    test.txt\r
354 \r
355 *LIST_UNIX_22\r
356         0              1            2    3    4   5         6\r
357         -------------------------------------------------------\r
358         drwxr-xr-x123  owner        1024 Nov  6   14:21     Linux/\r
359         -rwxrwx---132  owner          12 Nov  6   1996      test.txt\r
360         drwxr-xr-x123  owner        1024 11\8c\8e 6\93ú 14:21     Linux/\r
361         drwxr-xr-x123  owner        1024 11\8c\8e 6\93ú 14\8e\9e21\95ª  Linux/\r
362         -rwxrwx---132  owner          12 11\8c\8e 6\93ú 1996\94N    test.txt\r
363 \r
364 *LIST_UNIX_23\r
365         0              1            2    3        4         5\r
366         -------------------------------------------------------\r
367         drwxr-xr-x123  owner        1024 11\8c\8e12\93ú 14\8e\9e21\95ª  Linux/\r
368         -rwxrwx---132  owner          12 11\8c\8e12\93ú 1996\94N    test.txt\r
369 \r
370 *LIST_UNIX_24\r
371         0          1   2            3    4    5   6         7\r
372         -------------------------------------------------------\r
373         drwxr-xr-x 15  owner        512  2001 6\8c\8e 18        audit       (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
374 \r
375 *LIST_UNIX_25\r
376         0              1            2    3    4   5         6\r
377         -------------------------------------------------------\r
378         drwxr-xr-x15   owner        512  2001 6\8c\8e 18        audit       (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
379 \r
380 \r
381 \r
382 \r
383 \r
384 \r
385 \r
386 *LIST_UNIX_50\r
387         0              1            2    3    4   5         6\r
388         -------------------------------------------------------\r
389         drwxr-xr-x     owner        1024 Nov  6   14:21     Linux/\r
390         -rwxrwx---     owner          12 Nov  6   1996      test.txt\r
391         drwxr-xr-x     owner        1024 11\8c\8e 6\93ú 14:21     Linux/\r
392         drwxr-xr-x     owner        1024 11\8c\8e 6\93ú 14\8e\9e21\95ª  Linux/\r
393         -rwxrwx---     owner          12 11\8c\8e 6\93ú 1996\94N    test.txt\r
394 \r
395 *LIST_UNIX_51\r
396         0              1            2    3        4         5\r
397         -------------------------------------------------------\r
398         drwxr-xr-x     owner        1024 11\8c\8e12\93ú 14\8e\9e21\95ª  Linux/\r
399         -rwxrwx---     owner          12 11\8c\8e12\93ú 1996\94N    test.txt\r
400 \r
401         0          1   2        3        4        5\r
402         -------------------------------------------------------\r
403     -rwxrwxrwx SEQ 36203776 01/07/07 12:38:28 ADRS001                         \r
404     -rwxrwxrwx SEQ 70172160 01/07/07 13:59:58 ADRS002                         \r
405 \r
406 *LIST_UNIX_54\r
407         0              1            2    3    4   5         6\r
408         -------------------------------------------------------\r
409         drwxr-xr-x     owner        512  2001 6\8c\8e 18        audit       (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
410 \r
411 \r
412 \r
413 \r
414 \r
415 \r
416 \r
417 *LIST_UNIX_60\r
418         0          1    2     3 4     5 6    7    8  9     10\r
419         -------------------------------------------------------\r
420         drwxr-xr-x 123  owner m group g 1024 Nov  6  14:21 Linux/\r
421         -rwxrwx--- 132  owner m group g   12 Nov  6  1996  test.txt\r
422 \r
423 *LIST_UNIX_61\r
424         0          1    2     3 4     5 6    7         8     9\r
425         -------------------------------------------------------\r
426         drwxr-xr-x 123  owner m group g 1024 11\8c\8e12\93ú  14:21 Linux/\r
427         -rwxrwx--- 132  owner m group g   12 11\8c\8e12\93ú  1996  test.txt\r
428 \r
429 *LIST_UNIX_62\r
430         0              1     2 3     4 5    6    7  8     9\r
431         -------------------------------------------------------\r
432         drwxr-xr-x123  owner m group g 1024 Nov  6  14:21 Linux/\r
433         -rwxrwx---132  owner m group g   12 Nov  6  1996  test.txt\r
434 \r
435 *LIST_UNIX_63\r
436         0              1     2 3     4 5    6         7     8\r
437         -------------------------------------------------------\r
438         drwxr-xr-x123  owner m group g 1024 11\8c\8e12\93ú  14:21 Linux/\r
439         -rwxrwx---132  owner m group g   12 11\8c\8e12\93ú  1996  test.txt\r
440 \r
441 *LIST_UNIX_64\r
442         0          1   2     3 4     5  6    7    8   9    10\r
443         -------------------------------------------------------\r
444         drwxr-xr-x 15  owner m group g  512  2001 6\8c\8e 18   audit        (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
445 \r
446 *LIST_UNIX_65\r
447         0              1     2 3     4  5    6    7   8    9\r
448         -------------------------------------------------------\r
449         drwxr-xr-x15   owner m group g  512  2001 6\8c\8e 18   audit        (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
450 \r
451 \r
452 \r
453 \r
454 LIST_UNIX_70\r
455         0          1    2       3     4 5    6    7  8     9\r
456         -------------------------------------------------------\r
457         drwxr-xr-x 123  owner   group g 1024 Nov  6  14:21 Linux/\r
458         -rwxrwx--- 132  owner   group g   12 Nov  6  1996  test.txt\r
459 \r
460 *LIST_UNIX_71\r
461         0          1    2       3     4 5    6         7     8\r
462         -------------------------------------------------------\r
463         drwxr-xr-x 123  owner   group g 1024 11\8c\8e12\93ú  14:21 Linux/\r
464         -rwxrwx--- 132  owner   group g   12 11\8c\8e12\93ú  1996  test.txt\r
465 \r
466 *LIST_UNIX_72\r
467         0              1       2     3 4    5    6  7     8\r
468         -------------------------------------------------------\r
469         drwxr-xr-x123  owner   group g 1024 Nov  6  14:21 Linux/\r
470         -rwxrwx---132  owner   group g   12 Nov  6  1996  test.txt\r
471 \r
472 *LIST_UNIX_73\r
473         0              1       2     3 4    5         6     7\r
474         -------------------------------------------------------\r
475         drwxr-xr-x123  owner   group g 1024 11\8c\8e12\93ú  14:21 Linux/\r
476         -rwxrwx---132  owner   group g   12 11\8c\8e12\93ú  1996  test.txt\r
477 \r
478 *LIST_UNIX_74\r
479         0          1   2       3     4  5    6    7   8    9\r
480         -------------------------------------------------------\r
481         drwxr-xr-x 15  owner   group g  512  2001 6\8c\8e 18   audit        (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
482 \r
483 *LIST_UNIX_75\r
484         0              1       2     3  4    5    6   7    8\r
485         -------------------------------------------------------\r
486         drwxr-xr-x15   owner   group g  512  2001 6\8c\8e 18   audit        (\8c\8e\82ÍGB\83R\81[\83h\82Å0xD4C2)\r
487 \r
488 \r
489 \r
490 \r
491 \r
492 \r
493 *unix\8cn\82Å\88È\89º\82Ì\82æ\82¤\82È\93ú\95t\r
494         0              1            2    3   4    5         6\r
495         -------------------------------------------------------\r
496         drwxr-xr-x123  owner        1024 11/ 6    14:21     Linux/\r
497         -rwxrwx---132  owner          12 11/13    1996      test.txt\r
498 \r
499 \r
500 \r
501 \r
502 \r
503 \r
504 \r
505 \r
506 \r
507 \r
508 \r
509 \r
510 \r
511 \r
512 \r
513 \r
514 \r
515 \r
516 *LIST_DOS_1\r
517         0         1          2       3\r
518         -------------------------------------------------------\r
519         97-10-14  03:34p     <DIR>   Linux\r
520         97-10-14  03:34p        12   test.txt\r
521         100-10-14 03:34p        12   test.txt\r
522 \r
523 *LIST_DOS_2\r
524         0         1          2       3\r
525         -------------------------------------------------------\r
526         10-14-97  03:34p     <DIR>   Linux\r
527         10-14-97  03:34p        12   test.txt\r
528         10-14-100 03:34p        12   test.txt\r
529 \r
530 *LIST_DOS_3\r
531         0             1      2         3       4\r
532         -------------------------------------------------------\r
533         Linux         <DIR>  10-14-97  03:34    \r
534         test.txt         12  10-14-97  14:34   A\r
535         test.txt         12  10-14-100 14:34   A\r
536 \r
537 *LIST_DOS_4\r
538         0          1            2        3\r
539         -------------------------------------------------------\r
540     1998/07/30 15:39:02     <DIR>    Linux\r
541     1998/07/30 15:42:19     11623    test.txt\r
542 \r
543 *LIST_ACOS\r
544         0\r
545         -------------------------------------------------------\r
546         test.txt\r
547 \81@\81@\83f\83B\83\8c\83N\83g\83\8a\82È\82µ\81A\r
548 \r
549 *LIST_AS400\r
550         0           1     2        3        4        5\r
551         -------------------------------------------------------\r
552         QSYS        18944 96/09/20 00:35:10 *DIR     QOpenSys/\r
553         QDOC        26624 70/01/01 00:00:00 *FLR     QDLS/\r
554         QSYS            0 98/09/27 10:00:04 *LIB     QSYS.LIB/\r
555         QSECOFR         0 98/05/15 16:01:15 *STMF    WWWTEST.BAK\r
556 \r
557 *LIST_M1800\r
558         0     1     2       3       4     5         6 (\83t\83@\83C\83\8b\96¼\82Ì\8cã\82ë\82É\83X\83y\81[\83X\82 \82è\81j\r
559         -------------------------------------------------------\r
560         drwx  F        400     400  PO    93.10.27  COMMON.PDL.EXCEL/       \r
561         -rw-  F      10000   10000  DA    97.03.04  DTSLOG1.FNA             \r
562         -rw-  F      10000  ******  DA    97.03.04  DTSBRB.FNA              \r
563         drwx  U     ******    6144  PO    96.12.15  IS01.TISPLOAD/          \r
564         -rw-  ****  ******  ******  VSAM  **.**.**  HICS.CMDSEQ             \r
565 \r
566 *LIST_CHAMELEON\r
567         0            1        2    3 4    5     6\r
568         -------------------------------------------------------\r
569     Linux        <DIR>    Nov  6 1997 14:21 drw-\r
570     test.txt           12 Nov  6 1886 14:21 -rwa\r
571 \r
572 *LIST_GP6000\r
573         0          1        2        3        4        5    6\r
574         -------------------------------------------------------\r
575         drwxrwxrwx 98.10.21 14:38:46 SYSG03   XSYSOPR  2048 atlib\r
576         -rwxrwxrwx 97.10.30 11:06:04 XSYSMNGR XSYSOPR  2048 blib\r
577 \r
578 *LIST_OS2\r
579            0        1          2          3      4\r
580         -------------------------------------------------------\r
581        345      A          12-02-98   10:59  VirtualDevice.java\r
582          0           DIR   12-09-98   09:43  \83f\83B\83\8c\83N\83g\83\8a\r
583          0           DIR   12-09-100  09:43  \83f\83B\83\8c\83N\83g\83\8a\r
584 \r
585 *LIST_MELCOM\r
586         0 1           2   3          4  5    6  7    8\r
587         ---------------------------------------------------------------\r
588     - RW-RW-RW-   1   TERA       50 DEC  1  1997 AAAJ          B(B)\r
589     - RW-RW-RW-   1   TERA        1 AUG  7  1998 12345678901234B(B)\r
590     d RWXRWXRWX   2   TERA       64 NOV 13  1997 Q2000         -\r
591 \r
592 *LIST_VMS\r
593         0                  1         2           3         4\r
594         ---------------------------------------------------------------\r
595         CIM_ALL.MEM;5        2/4     21-APR-1998 11:01:17  [CIM,MIZOTE]\r
596         (RWED,RWED,RE,)\r
597         MAIL.DIR;1         104/248   18-SEP-2001 16:19:39  [CIM,MIZOTE]\r
598         (RWE,RWE,,)\r
599                 \81¦VMS\82Ì\8fê\8d\87\88ê\97\97\82ª\95¡\90\94\8ds\82É\95Ê\82ê\82é\8fê\8d\87\82ª\82 \82é\r
600 \r
601 *LIST_OS7_1\r
602         0                       1        2        3\r
603         ---------------------------------------------------------------\r
604     drwxrwxrwx              99/05/13 11:38:34 APL\r
605 *LIST_OS7_2\r
606         0          1      2     3        4        5\r
607         ---------------------------------------------------------------\r
608     -rwxrwxrwx SEQ    17408 96/12/06 10:11:27 INIT_CONFIG\r
609 \r
610 *LIST_IRMX\r
611         0          1   2     3  4       5       6 7 8         9  10  11\r
612         ---------------------------------------------------------------\r
613     world      DR  DLAC  1    416   1,024   1 WORLD       05 FEB 98\r
614     world      DR        1    416   1,024   1 WORLD       05 FEB 98\r
615     name.f38       DRAU  5  4,692   1,024   1 # 0         24 MAR 99\r
616     name.f38             5  4,692   1,024   1 # 0         24 MAR 99\r
617 \r
618 *LIST_STRATUS\r
619          0      1  2         3        4         5\r
620         ---------------------------------------------------------------\r
621         Files: 15  Blocks: 29\r
622          w      1  seq       99-06-15 13:11:39  member_srv.error\r
623         Dirs: 74\r
624          m      3  98-12-25 16:14:58  amano\r
625 \r
626 *LIST_ALLIED\r
627          0             1        2   3   4  5        6\r
628         ---------------------------------------------------------------\r
629              41622     IO.SYS   Tue Dec 20 06:20:00 1994\r
630         <dir>             DOS   Wed Nov 24 09:35:48 1999\r
631 \r
632 *LIST_OS9\r
633          0       1        2     3            4      5      6\r
634         ---------------------------------------------------------------\r
635      0.0     01/02/13 0945  d-----wr     3C0    148724 W_017\r
636      0.0     01/02/13 0945  ------wr     C20     48828 W_017.CLG\r
637 \r
638 *LIST_IBM\r
639          0      1      2           3  4    5      6   7      8   9\r
640         ---------------------------------------------------------------\r
641      JXSIB1 3390   2000/12/27  1  810  FB     240 24000  PO  DIRNAME\r
642      JXSW01 3390   2000/12/27  1    5  VBA    240  3120  PS  FILENAME\r
643 \r
644 *LIST_AGILENT\r
645          0             1    2    3      4     5\r
646         ---------------------------------------------------------------\r
647      drwxrwxrwx    1    1    1      1024  system\r
648      -rw-rw-rw-    1    1    1      1792  abc.aaa\r
649 \r
650 *LIST_SHIBASOKU\r
651          0        1            2          3                 4\r
652         ---------------------------------------------------------------\r
653        512    Jan-30-2002  14:52:04   DIRNAME           <DIR>\r
654      61191    Aug-30-2002  17:30:38   FILENAME.C        \r
655 \r
656 \r
657 ------------------------------------*/\r
658 \r
659 /*===== \90Ú\91±\83E\83C\83\93\83h\83E\82Ì\8c`\8e® =====*/\r
660 \r
661 #define DLG_TYPE_CON    0               /* \8aÈ\88Õ\81i\83z\83X\83g\95Ò\8fW\82È\82µ\81j */\r
662 #define DLG_TYPE_SET    1               /* \83z\83X\83g\95Ò\8fW\82 \82è */\r
663 \r
664 /*===== \83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾\83\82\81[\83h =====*/\r
665 \r
666 #define CACHE_NORMAL    0               /* \92Ê\8fí\81i\83L\83\83\83b\83V\83\85\82É\82 \82ê\82Î\8eg\97p\81A\82È\82¯\82ê\82Î\93Ç\82Ý\8d\9e\82Ý\81j */\r
667 #define CACHE_REFRESH   1               /* \8fí\82É\93Ç\82Ý\8d\9e\82Ý */\r
668 #define CACHE_LASTREAD  2               /* \8dÅ\8cã\82É\93Ç\82Ý\8d\9e\82ñ\82¾\82à\82Ì\82ð\8eg\97p */\r
669 \r
670 /*===== \8a¿\8e\9a\83R\81[\83h\95Ï\8a· =====*/\r
671 \r
672 #define KANJI_SJIS              1               /* SJIS */\r
673 #define KANJI_JIS               2               /* JIS */\r
674 #define KANJI_EUC               3               /* EUC */\r
675 #define KANJI_SMB_HEX   4               /* Samba-HEX */\r
676 #define KANJI_SMB_CAP   5               /* Samba-CAP */\r
677 #define KANJI_UTF8N             6               /* UTF-8N */\r
678 \r
679 #define KANJI_NOCNV             0               /* \8a¿\8e\9a\83R\81[\83h\95Ï\8a·\82È\82µ */\r
680 \r
681 #define KANJI_AUTO              0\r
682 \r
683 /*===== \83T\83E\83\93\83h =====*/\r
684 \r
685 #define SND_CONNECT             0               /* \90Ú\91±\8e\9e\82Ì\83T\83E\83\93\83h */\r
686 #define SND_TRANS               1               /* \93]\91\97\8fI\97¹\8e\9e\82Ì\83T\83E\83\93\83h */\r
687 #define SND_ERROR               2               /* \83G\83\89\81[\8e\9e\82Ì\83T\83E\83\93\83h */\r
688 \r
689 #define SOUND_TYPES             3               /* \83T\83E\83\93\83h\82Ì\8eí\97Þ */\r
690 \r
691 /*===== \83r\83\85\81[\83\8f =====*/\r
692 \r
693 #define VIEWERS                 3               /* \83r\83\85\81[\83\8f\82Ì\90\94 */\r
694 \r
695 /*===== \83u\83b\83N\83}\81[\83N =====*/\r
696 \r
697 #define BMARK_SUB_MENU          2               /* \83u\83b\83N\83}\81[\83N\83\81\83j\83\85\81[\82Ì\83T\83u\83\81\83j\83\85\81[\94Ô\8d\86 */\r
698 #define DEFAULT_BMARK_ITEM      5               /* \83u\83b\83N\83}\81[\83N\83\81\83j\83\85\81[\82É\82 \82é\8cÅ\92è\95\94\95ª\82Ì\90\94 */\r
699 #define MENU_BMARK_TOP          30000   /* 3000\88È\8d~(3100\82­\82ç\82¢\82Ü\82Å)\82Í\97\\96ñ\82·\82é */\r
700                                                                         /* resource.h \82Ì\92è\8b`\82Æ\8fd\82È\82ç\82È\82¢\82æ\82¤\82É */\r
701 \r
702 #define BMARK_TYPE_NONE         0               /* \83u\83b\83N\83}\81[\83N\96³\82µ */\r
703 #define BMARK_TYPE_LOCAL        1               /* \83\8d\81[\83J\83\8b\91¤\82Ì\83u\83b\83N\83}\81[\83N */\r
704 #define BMARK_TYPE_REMOTE       2               /* \83z\83X\83g\91¤\82Ì\83u\83b\83N\83}\81[\83N */\r
705 #define BMARK_TYPE_BOTH         3               /* \97¼\95û\82Ì\83u\83b\83N\83}\81[\83N */\r
706 \r
707 #define BMARK_MARK_LOCAL        "L "    /* \83\8d\81[\83J\83\8b\91¤\82Ì\88ó */\r
708 #define BMARK_MARK_REMOTE       "H "    /* \83z\83X\83g\91¤\82Ì\88ó */\r
709 #define BMARK_MARK_BOTH         "W "    /* \97¼\95û\82Ì\88ó */\r
710 #define BMARK_MARK_LEN          2               /* \88ó\82Ì\95\8e\9a\90\94 */\r
711 \r
712 #define BMARK_SEP                       " <> "  /* \83\8d\81[\83J\83\8b\91¤\82Æ\83z\83X\83g\91¤\82Ì\8bæ\90Ø\82è */\r
713 #define BMARK_SEP_LEN           4               /* \8bæ\90Ø\82è\82Ì\95\8e\9a\90\94 */\r
714 \r
715 /*===== \83\8c\83W\83X\83g\83\8a\82Ì\83^\83C\83v =====*/\r
716 \r
717 #define REGTYPE_REG             0               /* \83\8c\83W\83X\83g\83\8a */\r
718 #define REGTYPE_INI             1               /* INI\83t\83@\83C\83\8b */\r
719 \r
720 #define REG_SECT_MAX    (16*1024)       /* \83\8c\83W\83X\83g\83\8a\82Ì\82P\83Z\83N\83V\83\87\83\93\82Ì\8dÅ\91å\83f\81[\83^\83T\83C\83Y */\r
721 \r
722 /*===== \83z\83X\83g\90Ý\92è\82Å\96¾\8e¦\93I\82É\8ew\92è\82·\82é\83z\83X\83g\82Ì\83^\83C\83v =====*/\r
723 \r
724 #define HTYPE_AUTO              0               /* \8e©\93® */\r
725 #define HTYPE_ACOS              1               /* ACOS (\91Ò\8b@\8c\8b\8d\87\83t\83@\83C\83\8b\82Ì\8ew\92è\82ª\95K\97v) */\r
726 #define HTYPE_VMS               2               /* VAX VMS */\r
727 #define HTYPE_IRMX              3               /* IRMX */\r
728 #define HTYPE_ACOS_4    4               /* ACOS \83t\83@\83C\83\8b\96¼\82ð('')\82Å\8a\87\82ç\82È\82¢ */\r
729 #define HTYPE_STRATUS   5               /* Stratus */\r
730 #define HTYPE_AGILENT   6               /* Agilent Logic analyzer */\r
731 #define HTYPE_SHIBASOKU 7               /* Shibasoku LSI test system */\r
732 \r
733 /*===== \83R\83}\83\93\83h\83\89\83C\83\93\83I\83v\83V\83\87\83\93 =====*/\r
734 \r
735 #define OPT_MIRROR              0x0001  /* \83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h\82ð\8ds\82¤ */\r
736 #define OPT_FORCE               0x0002  /* \83~\83\89\81[\83\8a\83\93\83O\8aJ\8en\82Ì\8am\94F\82ð\82µ\82È\82¢ */\r
737 #define OPT_QUIT                0x0004  /* \8fI\97¹\8cã\83v\83\8d\83O\83\89\83\80\8fI\97¹ */\r
738 #define OPT_EUC                 0x0008  /* \8a¿\8e\9a\83R\81[\83h\82ÍEUC */\r
739 #define OPT_JIS                 0x0010  /* \8a¿\8e\9a\83R\81[\83h\82ÍJIS */\r
740 #define OPT_ASCII               0x0020  /* \83A\83X\83L\81[\93]\91\97\83\82\81[\83h */\r
741 #define OPT_BINARY              0x0040  /* \83o\83C\83i\83\8a\93]\91\97\83\82\81[\83h */\r
742 #define OPT_AUTO                0x0080  /* \8e©\93®\94»\95Ê */\r
743 #define OPT_KANA                0x0100  /* \94¼\8ap\82©\82È\82ð\82»\82Ì\82Ü\82Ü\92Ê\82· */\r
744 #define OPT_EUC_NAME    0x0200  /* \83t\83@\83C\83\8b\96¼\82ÍEUC */\r
745 #define OPT_JIS_NAME    0x0400  /* \83t\83@\83C\83\8b\96¼\82ÍJIS */\r
746 #define OPT_MIRRORDOWN  0x0800  /* \83~\83\89\81[\83\8a\83\93\83O\83_\83E\83\93\83\8d\81[\83h\82ð\8ds\82¤ */\r
747 #define OPT_SAVEOFF             0x1000  /* \90Ý\92è\82Ì\95Û\91\82ð\92\86\8e~\82·\82é */\r
748 #define OPT_SAVEON              0x2000  /* \90Ý\92è\82Ì\95Û\91\82ð\8dÄ\8aJ\82·\82é */\r
749 \r
750 /*===== \83z\83X\83g\82Ì\83q\83X\83g\83\8a =====*/\r
751 \r
752 #define HISTORY_MAX             20              /* \83t\83@\83C\83\8b\82Ì\83q\83X\83g\83\8a\82Ì\8dÅ\91å\8cÂ\90\94 */\r
753 #define DEF_FMENU_ITEMS 8               /* File\83\81\83j\83\85\81[\82É\82 \82é\8d\80\96Ú\90\94\82Ì\8f\89\8aú\92l */\r
754 \r
755 /*===== SOCKS4 =====*/\r
756 \r
757 #define SOCKS4_VER                      4       /* SOCKS\82Ì\83o\81[\83W\83\87\83\93 */\r
758 \r
759 #define SOCKS4_CMD_CONNECT      1       /* CONNECT\83R\83}\83\93\83h */\r
760 #define SOCKS4_CMD_BIND         2       /* BIND\83R\83}\83\93\83h */\r
761 \r
762 /* \83\8a\83U\83\8b\83g\83R\81[\83h */\r
763 #define SOCKS4_RES_OK           90      /* \97v\8b\81\82Í\8b\96\89Â\82³\82ê\82½ */\r
764         /* \82»\82Ì\91¼\82Ì\83R\81[\83h\82Í\83`\83F\83b\83N\82µ\82È\82¢\82Ì\82Å\92è\8b`\82µ\82È\82¢ */\r
765 \r
766 /*===== SOCKS5 =====*/\r
767 \r
768 #define SOCKS5_VER                      5       /* SOCKS\82Ì\83o\81[\83W\83\87\83\93 */\r
769 \r
770 #define SOCKS5_CMD_CONNECT      1       /* CONNECT\83R\83}\83\93\83h */\r
771 #define SOCKS5_CMD_BIND         2       /* BIND\83R\83}\83\93\83h */\r
772 \r
773 #define SOCKS5_AUTH_NONE        0       /* \94F\8fØ\96³\82µ */\r
774 #define SOCKS5_AUTH_GSSAPI      1       /* GSS-API */\r
775 #define SOCKS5_AUTH_USER        2       /* Username/Password */\r
776 \r
777 #define SOCKS5_ADRS_IPV4        1       /* IP V4 address */\r
778 #define SOCKS5_ADRS_NAME        3       /* Domain name */\r
779 #define SOCKS5_ADRS_IPV6        4       /* IP V6 address */\r
780 \r
781 #define SOCKS5_USERAUTH_VER     1       /* Username\Password\94F\8fØ\82Ì\83o\81[\83W\83\87\83\93 */\r
782 \r
783 /* \83\8a\83U\83\8b\83g\83R\81[\83h */\r
784 #define SOCKS5_RES_OK           0x00    /* succeeded */\r
785         /* \82»\82Ì\91¼\82Ì\83R\81[\83h\82Í\83`\83F\83b\83N\82µ\82È\82¢\82Ì\82Å\92è\8b`\82µ\82È\82¢ */\r
786 \r
787 /*===== \92\86\92f\83R\81[\83h =====*/\r
788 \r
789 #define ABORT_NONE                      0               /* \93]\91\97\92\86\92f\82È\82µ */\r
790 #define ABORT_USER                      1               /* \83\86\81[\83U\82É\82æ\82é\92\86\92f */\r
791 #define ABORT_ERROR                     2               /* \83G\83\89\81[\82É\82æ\82é\92\86\92f */\r
792 #define ABORT_DISKFULL          3               /* \83f\83B\83X\83N\83t\83\8b\82æ\82é\92\86\92f */\r
793 \r
794 /*===== FireWall\82Ì\8eí\97Þ =====*/\r
795 \r
796 #define FWALL_NONE                      0               /* \82È\82µ */\r
797 #define FWALL_FU_FP_SITE        1               /* FW user \81¨ FW pass \81¨ SITE host */\r
798 #define FWALL_FU_FP_USER        2               /* FW user \81¨ FW pass \81¨ USER user@host */\r
799 #define FWALL_USER                      3               /* USER user@host */\r
800 #define FWALL_OPEN                      4               /* OPEN host */\r
801 #define FWALL_SOCKS4            5               /* SOCKS4 */\r
802 #define FWALL_SOCKS5_NOAUTH     6               /* SOCKS5 (\94F\8fØ\82È\82µ) */\r
803 #define FWALL_SOCKS5_USER       7               /* SOCKS5 (Username/Password\94F\8fØ) */\r
804 #define FWALL_FU_FP                     8               /* FW user \81¨ FW pass */\r
805 #define FWALL_SIDEWINDER        9               /* USER FWuser:FWpass@host */\r
806 \r
807 /*===== \83\8f\83\93\83^\83C\83\80\83p\83X\83\8f\81[\83h =====*/\r
808 \r
809 /* \83R\81[\83h\82Ì\8eí\97Þ */\r
810 #define SECURITY_DISABLE        0               /* \8eg\97p\82µ\82È\82¢ */\r
811 #define SECURITY_AUTO           1               /* \8e©\93®\94F\8e¯ */\r
812 #define MD4                                     2               /* MD4 */\r
813 #define MD5                                     3               /* MD5 */\r
814 #define SHA1                            4               /* SHA-1 */\r
815 \r
816 #define MAX_SEED_LEN            16              /* Seed\82Ì\95\8e\9a\90\94 */\r
817 \r
818 /*===== \8dÄ\8bA\93I\82È\83t\83@\83C\83\8b\8c\9f\8dõ\82Ì\95û\96@ =====*/\r
819 \r
820 #define RDIR_NONE               0               /* \8dÄ\8bA\8c\9f\8dõ\82È\82µ */\r
821 #define RDIR_NLST               1               /* NLST -R */\r
822 #define RDIR_CWD                2               /* CWD\82Å\88Ú\93® */\r
823 \r
824 /*===== VAX VMS \8aÖ\8cW =====*/\r
825 \r
826 #define BLOCK_SIZE              512             /* 1\83u\83\8d\83b\83N\82Ì\83o\83C\83g\90\94 */\r
827 \r
828 /*===== \90Ý\92è\82Ì\83\8c\83x\83\8b =====*/\r
829 \r
830 #define SET_LEVEL_GROUP         0x8000          /* \83O\83\8b\81[\83v\82Ì\83t\83\89\83O */\r
831 #define SET_LEVEL_MASK          0x7FFF\r
832 #define SET_LEVEL_SAME          0x7FFF\r
833 \r
834 /*===== \93ú\95t\81A\90\94\92l\82Ì\95\\8e¦\8c`\8e® =====*/\r
835 \r
836 #define DISPFORM_LEGACY         0               /* \8cÅ\92è\8f\91\8e® */\r
837 #define DISPFORM_LOCALE         1               /* \83R\83\93\83g\83\8d\81[\83\8b\83p\83l\83\8b\82É\8f]\82¤ */\r
838 \r
839 /*===== \83t\83@\83C\83\8b\88ê\97\97\82É\91\8dÝ\82µ\82½\8fî\95ñ =====*/\r
840 \r
841 #define FINFO_DATE                      0x01    /* \93ú\95t */\r
842 #define FINFO_TIME                      0x02    /* \8e\9e\8aÔ */\r
843 #define FINFO_SIZE                      0x04    /* \83T\83C\83Y */\r
844 #define FINFO_ATTR                      0x08    /* \91®\90« */\r
845 #define FINFO_ALL                       0xFF    /* \91S\82Ä */\r
846 \r
847 /*===== GetMasterPasswordStatus\82Å\8eg\82¤\83R\81[\83h =====*/\r
848 #define PASSWORD_OK 0\r
849 #define PASSWORD_UNMATCH 2\r
850 #define BAD_PASSWORD_HASH 3\r
851 \r
852 /*===== \88Ã\8d\86\89»\83p\83X\83\8f\81[\83h\90Ý\92è =====*/\r
853 #define DEFAULT_PASSWORD        "DefaultPassword"\r
854 #define MAX_PASSWORD_LEN        128\r
855 \r
856 \r
857 /*=================================================\r
858 *               \83X\83g\83\89\83N\83`\83\83\r
859 *=================================================*/\r
860 \r
861 /*===== \83z\83X\83g\90Ý\92è\83f\81[\83^ =====*/\r
862 \r
863 typedef struct {\r
864         int Level;                                                      /* \90Ý\92è\82Ì\83\8c\83x\83\8b */\r
865                                                                                 /* \92Ê\8fí\82Í\83O\83\8b\81[\83v\82Ì\83t\83\89\83O\82Ì\82Ý\82ª\97L\8cø */\r
866                                                                                 /* \83\8c\83x\83\8b\90\94\82Í\90Ý\92è\82Ì\93o\98^\81^\8cÄ\8fo\8e\9e\82Ì\82Ý\82Å\8eg\97p */\r
867         char HostName[HOST_NAME_LEN+1];         /* \90Ý\92è\96¼ */\r
868         char HostAdrs[HOST_ADRS_LEN+1];         /* \83z\83X\83g\96¼ */\r
869         char UserName[USER_NAME_LEN+1];         /* \83\86\81[\83U\96¼ */\r
870         char PassWord[PASSWORD_LEN+1];          /* \83p\83X\83\8f\81[\83h */\r
871         char Account[ACCOUNT_LEN+1];            /* \83A\83J\83E\83\93\83g */\r
872         char LocalInitDir[INIT_DIR_LEN+1];      /* \83\8d\81[\83J\83\8b\82Ì\8aJ\8en\83f\83B\83\8c\83N\83g\83\8a */\r
873         char RemoteInitDir[INIT_DIR_LEN+1];     /* \83z\83X\83g\82Ì\8aJ\8en\83f\83B\83\8c\83N\83g\83\8a */\r
874         char BookMark[BOOKMARK_SIZE];           /* \83u\83b\83N\83}\81[\83N */\r
875         char ChmodCmd[CHMOD_CMD_LEN+1];         /* \91®\90«\95Ï\8dX\83R\83}\83\93\83h */\r
876         char LsName[NLST_NAME_LEN+1];           /* NLST\82É\95t\82¯\82é\83t\83@\83C\83\8b\96¼/\83I\83v\83V\83\87\83\93*/\r
877         char InitCmd[INITCMD_LEN+1];            /* \83z\83X\83g\82Ì\8f\89\8aú\89»\83R\83}\83\93\83h */\r
878         int Port;                                                       /* \83|\81[\83g\94Ô\8d\86 */\r
879         int Anonymous;                                          /* Anonymous\83t\83\89\83O */\r
880         int KanjiCode;                                          /* \83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
881         int KanaCnv;                                            /* \94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
882         int NameKanjiCode;                                      /* \83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
883         int NameKanaCnv;                                        /* \83t\83@\83C\83\8b\96¼\82Ì\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
884         int Pasv;                                                       /* PASV\83\82\81[\83h (YES/NO) */\r
885         int FireWall;                                           /* FireWall\82ð\8eg\82¤ (YES/NO) */\r
886         int ListCmdOnly;                                        /* "LIST"\83R\83}\83\93\83h\82Ì\82Ý\8eg\97p\82·\82é */\r
887         int UseNLST_R;                                          /* "NLST -R"\83R\83}\83\93\83h\82ð\8eg\97p\82·\82é */\r
888         int LastDir;                                            /* \8dÅ\8cã\82É\83A\83N\83Z\83X\82µ\82½\83t\83H\83\8b\83_\82ð\95Û\91¶ */\r
889         int TimeZone;                                           /* \83^\83C\83\80\83]\81[\83\93 (-12\81`12) */\r
890         int HostType;                                           /* \83z\83X\83g\82Ì\83^\83C\83v (HTYPE_xxx) */\r
891         int SyncMove;                                           /* \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93® (YES/NO) */\r
892         int NoFullPath;                                         /* \83t\83\8b\83p\83X\82Å\83t\83@\83C\83\8b\83A\83N\83Z\83X\82µ\82È\82¢ (YES/NO) */\r
893         ulong Sort;                                                     /* \83\\81[\83g\95û\96@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */\r
894         int Security;                                           /* \83Z\83L\83\85\83\8a\83e\83B (SECURITY_xxx , MDx) */\r
895         int Dialup;                                                     /* \83_\83C\83A\83\8b\83A\83b\83v\90Ú\91±\82·\82é\82©\82Ç\82¤\82© (YES/NO) */\r
896         int DialupAlways;                                       /* \8fí\82É\82±\82Ì\83G\83\93\83g\83\8a\82Ö\90Ú\91±\82·\82é\82©\82Ç\82¤\82© (YES/NO) */\r
897         int DialupNotify;                                       /* \8dÄ\90Ú\91±\82Ì\8dÛ\82É\8am\94F\82·\82é (YES/NO) */\r
898         char DialEntry[RAS_NAME_LEN+1];         /* \83_\83C\83A\83\8b\83A\83b\83v\83G\83\93\83g\83\8a */\r
899 } HOSTDATA;\r
900 \r
901 \r
902 /*===== \83z\83X\83g\90Ý\92è\83\8a\83X\83g =====*/\r
903 \r
904 typedef struct hostlistdata {\r
905         HOSTDATA Set;                                   /* \83z\83X\83g\90Ý\92è\83f\81[\83^ */\r
906         struct hostlistdata *Next;\r
907         struct hostlistdata *Prev;\r
908         struct hostlistdata *Child;\r
909         struct hostlistdata *Parent;\r
910 } HOSTLISTDATA;\r
911 \r
912 \r
913 /*===== \90Ú\91±\83q\83X\83g\83\8a\83\8a\83X\83g =====*/\r
914 \r
915 typedef struct historydata {\r
916         char HostAdrs[HOST_ADRS_LEN+1];         /* \83z\83X\83g\96¼ */\r
917         char UserName[USER_NAME_LEN+1];         /* \83\86\81[\83U\96¼ */\r
918         char PassWord[PASSWORD_LEN+1];          /* \83p\83X\83\8f\81[\83h */\r
919         char Account[ACCOUNT_LEN+1];            /* \83A\83J\83E\83\93\83g */\r
920         char LocalInitDir[INIT_DIR_LEN+1];      /* \83f\83B\83\8c\83N\83g\83\8a */\r
921         char RemoteInitDir[INIT_DIR_LEN+1];     /* \83f\83B\83\8c\83N\83g\83\8a */\r
922         char ChmodCmd[CHMOD_CMD_LEN+1];         /* \91®\90«\95Ï\8dX\83R\83}\83\93\83h */\r
923         char LsName[NLST_NAME_LEN+1];           /* NLST\82É\95t\82¯\82é\83t\83@\83C\83\8b\96¼/\83I\83v\83V\83\87\83\93*/\r
924         char InitCmd[INITCMD_LEN+1];            /* \83z\83X\83g\82Ì\8f\89\8aú\89»\83R\83}\83\93\83h */\r
925         int Port;                                                       /* \83|\81[\83g\94Ô\8d\86 */\r
926         int KanjiCode;                                          /* \83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
927         int KanaCnv;                                            /* \94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
928         int NameKanjiCode;                                      /* \83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
929         int NameKanaCnv;                                        /* \83t\83@\83C\83\8b\96¼\82Ì\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
930         int Pasv;                                                       /* PASV\83\82\81[\83h (YES/NO) */\r
931         int FireWall;                                           /* FireWall\82ð\8eg\82¤ (YES/NO) */\r
932         int ListCmdOnly;                                        /* "LIST"\83R\83}\83\93\83h\82Ì\82Ý\8eg\97p\82·\82é */\r
933         int UseNLST_R;                                          /* "NLST -R"\83R\83}\83\93\83h\82ð\8eg\97p\82·\82é */\r
934         int TimeZone;                                           /* \83^\83C\83\80\83]\81[\83\93 (-12\81`12) */\r
935         int HostType;                                           /* \83z\83X\83g\82Ì\83^\83C\83v (HTYPE_xxx) */\r
936         int SyncMove;                                           /* \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93® (YES/NO) */\r
937         int NoFullPath;                                         /* \83t\83\8b\83p\83X\82Å\83t\83@\83C\83\8b\83A\83N\83Z\83X\82µ\82È\82¢ (YES/NO) */\r
938         ulong Sort;                                                     /* \83\\81[\83g\95û\96@ (0x11223344 : 11=LFsort 22=LDsort 33=RFsort 44=RFsort) */\r
939         int Security;                                           /* \83Z\83L\83\85\83\8a\83e\83B (OTP_xxx , MDx) */\r
940         int Type;                                                       /* \93]\91\97\95û\96@ (TYPE_xx) */\r
941         int Dialup;                                                     /* \83_\83C\83A\83\8b\83A\83b\83v\90Ú\91±\82·\82é\82©\82Ç\82¤\82© (YES/NO) */\r
942         int DialupAlways;                                       /* \8fí\82É\82±\82Ì\83G\83\93\83g\83\8a\82Ö\90Ú\91±\82·\82é\82©\82Ç\82¤\82© (YES/NO) */\r
943         int DialupNotify;                                       /* \8dÄ\90Ú\91±\82Ì\8dÛ\82É\8am\94F\82·\82é (YES/NO) */\r
944         char DialEntry[RAS_NAME_LEN+1];         /* \83_\83C\83A\83\8b\83A\83b\83v\83G\83\93\83g\83\8a */\r
945         struct historydata *Next;\r
946 } HISTORYDATA;\r
947 \r
948 \r
949 /*===== \93]\91\97\83t\83@\83C\83\8b\83\8a\83X\83g =====*/\r
950 \r
951 typedef struct transpacket {\r
952         SOCKET ctrl_skt;                                /* Socket */\r
953         char Cmd[40];                                   /* STOR/RETR/MKD */\r
954         char RemoteFile[FMAX_PATH+1];   /* \83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\96¼\81i\83t\83\8b\83p\83X\81j */\r
955                                                                         /* VMS\82Ì\8e\9e\82Í ddd[xxx.yyy]/yyy/zzz \82Ì\82æ\82¤\82É */\r
956                                                                         /* \82È\82Á\82Ä\82é\82Ì\82Å\92\8d\88Ó */\r
957         char LocalFile[FMAX_PATH+1];    /* \83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\96¼\81i\83t\83\8b\83p\83X\81j */\r
958         int Type;                                               /* \93]\91\97\95û\96@ (TYPE_xx) */\r
959         LONGLONG Size;                                  /* \83t\83@\83C\83\8b\82Ì\83T\83C\83Y */\r
960         LONGLONG ExistSize;                             /* \82·\82Å\82É\91\8dÝ\82·\82é\83t\83@\83C\83\8b\82Ì\83T\83C\83Y */\r
961                                                                         /* \93]\91\97\92\86\82Í\81A\93]\91\97\82µ\82½\83t\83@\83C\83\8b\82Ì\83T\83C\83Y\82ð\8ai\94[\82·\82é */\r
962         FILETIME Time;                                  /* \83t\83@\83C\83\8b\82Ì\8e\9e\8aÔ(UTC) */\r
963         int Attr;                                               /* \83t\83@\83C\83\8b\82Ì\91®\90« */\r
964         int KanjiCode;                                  /* \8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
965         int KanjiCodeDesired;                   /* \95Ï\8a·\90æ\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
966         int KanaCnv;                                    /* \94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
967         int Mode;                                               /* \93]\91\97\83\82\81[\83h (EXIST_xxx) */\r
968         HWND hWndTrans;                                 /* \93]\91\97\92\86\83_\83C\83A\83\8d\83O\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b */\r
969         int Abort;                                              /* \93]\91\97\92\86\8e~\83t\83\89\83O (ABORT_xxx) */\r
970         struct transpacket *Next;\r
971 } TRANSPACKET;\r
972 \r
973 \r
974 /*===== \83t\83@\83C\83\8b\83\8a\83X\83g =====*/\r
975 \r
976 typedef struct filelist {\r
977         char File[FMAX_PATH+1];                 /* \83t\83@\83C\83\8b\96¼ */\r
978         char Node;                                              /* \8eí\97Þ (NODE_xxx) */\r
979         char Link;                                              /* \83\8a\83\93\83N\83t\83@\83C\83\8b\82©\82Ç\82¤\82© (YES/NO) */\r
980         LONGLONG Size;                                  /* \83t\83@\83C\83\8b\83T\83C\83Y */\r
981         int Attr;                                               /* \91®\90« */\r
982         FILETIME Time;                                  /* \8e\9e\8aÔ(UTC) */\r
983         char Owner[OWNER_NAME_LEN+1];   /* \83I\81[\83i\96¼ */\r
984         char InfoExist;                                 /* \83t\83@\83C\83\8b\88ê\97\97\82É\91\8dÝ\82µ\82½\8fî\95ñ\82Ì\83t\83\89\83O (FINFO_xxx) */\r
985         struct filelist *Next;\r
986 } FILELIST;\r
987 \r
988 \r
989 /*===== \83R\81[\83h\95Ï\8a·\8fî\95ñ\83p\83P\83b\83g =====*/\r
990 \r
991 typedef char * (*funcptr)(struct codeconvinfo *, char , char *);\r
992 \r
993 typedef struct codeconvinfo {\r
994         char *Str;                      /* \95\8e\9a\97ñ */\r
995         int StrLen;                     /* \95\8e\9a\97ñ\82Ì\92·\82³ */\r
996         int KanaCnv;            /* \94¼\8ap\83J\83^\83J\83i\82ð\91S\8ap\82É\95Ï\8a·\82·\82é\82©\82Ç\82¤\82© (YES/NO) */\r
997         char *Buf;                      /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\8ai\94[\82·\82é\83o\83b\83t\83@ */\r
998         int BufSize;            /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\82Ì\83T\83C\83Y */\r
999         int OutLen;                     /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82Ì\83T\83C\83Y */\r
1000         int KanjiMode;          /* \8a¿\8e\9a\83\82\81[\83h\83t\83\89\83O(YES/NO) (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1001         int EscProc;            /* \83G\83X\83P\81[\83v\83V\81[\83P\83\93\83X\95\8e\9a\90\94 (0\81`) (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1002         char EscCode[2];        /* \83G\83X\83P\81[\83v\83V\81[\83P\83\93\83X\95\8e\9a\95Û\91\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1003         char KanjiFst;          /* \8a¿\8e\9a\83R\81[\83h\82P\83o\83C\83g\96Ú\95Û\91\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1004         char KanaPrev;          /* \94¼\8ap\83J\83^\83J\83i\95Û\91\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1005         funcptr KanaProc;       /* \94¼\8ap\83J\83^\83J\83i\8f\88\97\9d\83\8b\81[\83`\83\93 (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1006 } CODECONVINFO;\r
1007 \r
1008 \r
1009 /*===== \89ü\8ds\83R\81[\83h\95Ï\8a·\8fî\95ñ\83p\83P\83b\83g =====*/\r
1010 \r
1011 typedef struct termcodeconvinfo {\r
1012         char *Str;                      /* \95\8e\9a\97ñ */\r
1013         int StrLen;                     /* \95\8e\9a\97ñ\82Ì\92·\82³ */\r
1014         char *Buf;                      /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\8ai\94[\82·\82é\83o\83b\83t\83@ */\r
1015         int BufSize;            /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\82Ì\83T\83C\83Y */\r
1016         int OutLen;                     /* \95Ï\8a·\8cã\82Ì\95\8e\9a\97ñ\82Ì\83T\83C\83Y */\r
1017         char Term;                      /* \89ü\8ds\83R\81[\83h\82P\83o\83C\83g\96Ú\95Û\91\97p (\93à\95\94\8f\88\97\9d\97p\83\8f\81[\83N) */\r
1018 } TERMCODECONVINFO;\r
1019 \r
1020 \r
1021 /*===== \83e\83\93\83|\83\89\83\8a\83t\83@\83C\83\8b\83\8a\83X\83g =====*/\r
1022 \r
1023 typedef struct tempfilelist {\r
1024         char *Fname;                            /* \83t\83@\83C\83\8b\96¼ */\r
1025         struct tempfilelist *Next;\r
1026 } TEMPFILELIST;\r
1027 \r
1028 \r
1029 /*===== \83T\83E\83\93\83h\83t\83@\83C\83\8b =====*/\r
1030 \r
1031 typedef struct {\r
1032         int On;                                         /* ON/OFF\83X\83C\83b\83` */\r
1033         char Fname[FMAX_PATH+1];                /* \83t\83@\83C\83\8b\96¼ */\r
1034 } SOUNDFILE;\r
1035 \r
1036 \r
1037 /*===== \83\89\83W\83I\83{\83^\83\93\82Ì\90Ý\92è =====*/\r
1038 \r
1039 typedef struct {\r
1040         int ButID;                      /* \83{\83^\83\93\82ÌID */\r
1041         int Value;                      /* \92l */\r
1042 } RADIOBUTTON;\r
1043 \r
1044 \r
1045 /*===== SOCKS4 =====*/\r
1046 \r
1047 /* \83R\83}\83\93\83h\83p\83P\83b\83g */\r
1048 typedef struct {\r
1049         char Ver;                                               /* \83o\81[\83W\83\87\83\93 (SOCKS4_VER) */\r
1050         char Cmd;                                               /* \83R\83}\83\93\83h (SOCKS4_CMD_xxx) */\r
1051         ushort Port;                                    /* \83|\81[\83g */\r
1052         ulong AdrsInt;                                  /* \83A\83h\83\8c\83X */\r
1053         char UserID[USER_NAME_LEN+1];   /* \83\86\81[\83UID */\r
1054 } SOCKS4CMD;\r
1055 \r
1056 \r
1057 /* \95Ô\90M\83p\83P\83b\83g */\r
1058 typedef struct {\r
1059         char Ver;                               /* \83o\81[\83W\83\87\83\93 */\r
1060         char Result;                    /* \83\8a\83U\83\8b\83g\83R\81[\83h (SOCKS4_RES_xxx) */\r
1061         ushort Port;                    /* \83|\81[\83g */\r
1062         ulong AdrsInt;                  /* \83A\83h\83\8c\83X */\r
1063 } SOCKS4REPLY;\r
1064 \r
1065 #define SOCKS4REPLY_SIZE        8\r
1066 \r
1067 \r
1068 /*===== SOCKS5 =====*/\r
1069 \r
1070 /* Method request\83p\83P\83b\83g */\r
1071 typedef struct {\r
1072         char Ver;                               /* \83o\81[\83W\83\87\83\93 (SOCKS5_VER) */\r
1073         char Num;                               /* \83\81\83\\83b\83h\82Ì\90\94 */\r
1074         uchar Methods[1];               /* \83\81\83\\83b\83h */\r
1075 } SOCKS5METHODREQUEST;\r
1076 \r
1077 #define SOCKS5METHODREQUEST_SIZE        3\r
1078 \r
1079 \r
1080 /* Method reply\83p\83P\83b\83g */\r
1081 typedef struct {\r
1082         char Ver;                               /* \83o\81[\83W\83\87\83\93 (SOCKS5_VER) */\r
1083         uchar Method;                   /* \83\81\83\\83b\83h */\r
1084 } SOCKS5METHODREPLY;\r
1085 \r
1086 #define SOCKS5METHODREPLY_SIZE  2\r
1087 \r
1088 \r
1089 /* Request\83p\83P\83b\83g */\r
1090 typedef struct {\r
1091         char Ver;                               /* \83o\81[\83W\83\87\83\93 (SOCKS5_VER) */\r
1092         char Cmd;                               /* \83R\83}\83\93\83h (SOCKS5_CMD_xxx) */\r
1093         char Rsv;                               /* \81i\97\\96ñ\81j */\r
1094         char Type;                              /* \83A\83h\83\8c\83X\82Ì\83^\83C\83v */\r
1095                                                         /* \88È\8cã\81i\89Â\95Ï\92·\95\94\95ª\81j */\r
1096         char _dummy[255+1+2];   /* \83A\83h\83\8c\83X\81A\83|\81[\83g */\r
1097 } SOCKS5REQUEST;\r
1098 \r
1099 #define SOCKS5REQUEST_SIZE 4    /* \8dÅ\8f\89\82Ì\8cÅ\92è\95\94\95ª\82Ì\83T\83C\83Y */\r
1100 \r
1101 \r
1102 /* Reply\83p\83P\83b\83g */\r
1103 typedef struct {\r
1104         char Ver;                               /* \83o\81[\83W\83\87\83\93 */\r
1105         char Result;                    /* \83\8a\83U\83\8b\83g\83R\81[\83h (SOCKS4_RES_xxx) */\r
1106         char Rsv;                               /* \81i\97\\96ñ\81j */\r
1107         char Type;                              /* \83A\83h\83\8c\83X\82Ì\83^\83C\83v */\r
1108                                                         /* \88È\8cã\81i\89Â\95Ï\92·\95\94\95ª\81j */\r
1109         ulong AdrsInt;                  /* \83A\83h\83\8c\83X */\r
1110         ushort Port;                    /* \83|\81[\83g */\r
1111         char _dummy[2];                 /* dummy */\r
1112 } SOCKS5REPLY;\r
1113 \r
1114 #define SOCKS5REPLY_SIZE 4      /* \8dÅ\8f\89\82Ì\8cÅ\92è\95\94\95ª\82Ì\83T\83C\83Y */\r
1115 \r
1116 \r
1117 /* Username/Password\94F\8fØstatus\83p\83P\83b\83g */\r
1118 typedef struct {\r
1119         char Ver;                               /* \83o\81[\83W\83\87\83\93 */\r
1120         uchar Status;                   /* \83X\83e\81[\83^\83X */\r
1121 } SOCKS5USERPASSSTATUS;\r
1122 \r
1123 #define SOCKS5USERPASSSTATUS_SIZE       2\r
1124 \r
1125 \r
1126 \r
1127 /*===== \83_\83C\83A\83\8d\83O\83{\83b\83N\83X\95Ï\8dX\8f\88\97\9d\97p =====*/\r
1128 \r
1129 typedef struct {\r
1130         int HorMoveList[10];    /* \90\85\95½\82É\93®\82©\82·\95\94\95i\82Ì\83\8a\83X\83g */\r
1131         int VarMoveList[10];    /* \90\82\92¼\82É\93®\82©\82·\95\94\95i\82Ì\83\8a\83X\83g */\r
1132         int ResizeList[10];             /* \83T\83C\83Y\95Ï\8dX\82·\82é\95\94\95i\82Ì\83\8a\83X\83g */\r
1133         SIZE MinSize;                   /* \8dÅ\8f­\83T\83C\83Y */\r
1134         SIZE CurSize;                   /* \8c»\8dÝ\82Ì\83T\83C\83Y */\r
1135 } DIALOGSIZE;\r
1136 \r
1137 \r
1138 /*===== \90\94\92l\95Ï\8a·\97p =====*/\r
1139 \r
1140 typedef struct {\r
1141         int Num1;\r
1142         int Num2;\r
1143 } INTCONVTBL;\r
1144 \r
1145 \r
1146 /*=================================================\r
1147 *               \83v\83\8d\83g\83^\83C\83v\r
1148 *=================================================*/\r
1149 \r
1150 /*===== main.c =====*/\r
1151 \r
1152 int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int cmdShow);\r
1153 void DispWindowTitle(void);\r
1154 HWND GetMainHwnd(void);\r
1155 HWND GetFocusHwnd(void);\r
1156 void SetFocusHwnd(HWND hWnd);\r
1157 HINSTANCE GetFtpInst(void);\r
1158 void DoubleClickProc(int Win, int Mode, int App);\r
1159 void ExecViewer(char *Fname, int App);\r
1160 void ExecViewer2(char *Fname1, char *Fname2, int App);\r
1161 void AddTempFileList(char *Fname);\r
1162 void SoundPlay(int Num);\r
1163 char *AskHelpFilePath(void);\r
1164 char *AskTmpFilePath(void);\r
1165 char *AskIniFilePath(void);\r
1166 int AskForceIni(void);\r
1167 int BackgrndMessageProc(void);\r
1168 void ResetAutoExitFlg(void);\r
1169 int AskAutoExit(void);\r
1170 \r
1171 /*===== filelist.c =====*/\r
1172 \r
1173 int MakeListWin(HWND hWnd, HINSTANCE hInst);\r
1174 void DeleteListWin(void);\r
1175 HWND GetLocalHwnd(void);\r
1176 HWND GetRemoteHwnd(void);\r
1177 void GetListTabWidth(void);\r
1178 void SetListViewType(void);\r
1179 void GetRemoteDirForWnd(int Mode, int *CancelCheckWork);\r
1180 void GetLocalDirForWnd(void);\r
1181 void ReSortDispList(int Win, int *CancelCheckWork);\r
1182 void SelectFileInList(HWND hWnd, int Type);\r
1183 void FindFileInList(HWND hWnd, int Type);\r
1184 // void WildCard2RegExp(char *Str);\r
1185 int GetCurrentItem(int Win);\r
1186 int GetItemCount(int Win);\r
1187 int GetSelectedCount(int Win);\r
1188 int GetFirstSelected(int Win, int All);\r
1189 int GetNextSelected(int Win, int Pos, int All);\r
1190 int FindNameNode(int Win, char *Name);\r
1191 void GetNodeName(int Win, int Pos, char *Buf, int Max);\r
1192 int GetNodeTime(int Win, int Pos, FILETIME *Buf);\r
1193 int GetNodeSize(int Win, int Pos, LONGLONG *Buf);\r
1194 int GetNodeAttr(int Win, int Pos, int *Buf);\r
1195 int GetNodeType(int Win, int Pos);\r
1196 void GetNodeOwner(int Win, int Pos, char *Buf, int Max);\r
1197 void EraseRemoteDirForWnd(void);\r
1198 double GetSelectedTotalSize(int Win);\r
1199 void MakeSelectedFileList(int Win, int Expand, int All, FILELIST **Base, int *CancelCheckWork);\r
1200 void MakeDroppedFileList(WPARAM wParam, char *Cur, FILELIST **Base);\r
1201 void MakeDroppedDir(WPARAM wParam, char *Cur);\r
1202 void AddRemoteTreeToFileList(int Num, char *Path, int IncDir, FILELIST **Base);\r
1203 void DeleteFileList(FILELIST **Base);\r
1204 FILELIST *SearchFileList(char *Fname, FILELIST *Base, int Caps);\r
1205 int Assume1900or2000(int Year);\r
1206 void SetFilter(int *CancelCheckWork);\r
1207 void doDeleteRemoteFile(void);\r
1208 \r
1209 \r
1210 /*===== toolmenu.c =====*/\r
1211 \r
1212 int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst);\r
1213 void DeleteToolBarWindow(void);\r
1214 HWND GetMainTbarWnd(void);\r
1215 HWND GetLocalHistHwnd(void);\r
1216 HWND GetRemoteHistHwnd(void);\r
1217 HWND GetLocalHistEditHwnd(void);\r
1218 HWND GetRemoteHistEditHwnd(void);\r
1219 HWND GetLocalTbarWnd(void);\r
1220 HWND GetRemoteTbarWnd(void);\r
1221 int GetHideUI(void);\r
1222 void MakeButtonsFocus(void);\r
1223 void DisableUserOpe(void);\r
1224 void EnableUserOpe(void);\r
1225 int AskUserOpeDisabled(void);\r
1226 void SetTransferTypeImm(int Mode);\r
1227 void SetTransferType(int Type);\r
1228 void DispTransferType(void);\r
1229 int AskTransferType(void);\r
1230 int AskTransferTypeAssoc(char *Fname, int Type);\r
1231 void SaveTransferType(void);\r
1232 void SetHostKanjiCodeImm(int Mode);\r
1233 void SetHostKanjiCode(int Type);\r
1234 void DispHostKanjiCode(void);\r
1235 int AskHostKanjiCode(void);\r
1236 void HideHostKanjiButton(void);\r
1237 void SetHostKanaCnvImm(int Mode);\r
1238 void SetHostKanaCnv(void);\r
1239 void DispHostKanaCnv(void);\r
1240 int AskHostKanaCnv(void);\r
1241 // \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\r
1242 void SetLocalKanjiCodeImm(int Mode);\r
1243 void SetLocalKanjiCode(int Type);\r
1244 void DispLocalKanjiCode(void);\r
1245 int AskLocalKanjiCode(void);\r
1246 void HideLocalKanjiButton(void);\r
1247 // \82±\82±\82Ü\82Å\r
1248 void SetSortTypeImm(int LFsort, int LDsort, int RFsort, int RDsort);\r
1249 void SetSortTypeByColumn(int Win, int Tab);\r
1250 int AskSortType(int Name);\r
1251 void SetSaveSortToHost(int Sw);\r
1252 int AskSaveSortToHost(void);\r
1253 void DispListType(void);\r
1254 void SetSyncMoveMode(int Mode);\r
1255 void ToggleSyncMoveMode(void);\r
1256 void DispSyncMoveMode(void);\r
1257 int AskSyncMoveMode(void);\r
1258 void SetRemoteDirHist(char *Path);\r
1259 void SetLocalDirHist(char *Path);\r
1260 void AskLocalCurDir(char *Buf, int Max);\r
1261 void AskRemoteCurDir(char *Buf, int Max);\r
1262 void SetCurrentDirAsDirHist(void);\r
1263 void DispDotFileMode(void);\r
1264 void LocalRbuttonMenu(int Pos);\r
1265 void RemoteRbuttonMenu(int Pos);\r
1266 \r
1267 /*===== statuswin.c =====*/\r
1268 \r
1269 int MakeStatusBarWindow(HWND hWnd, HINSTANCE hInst);\r
1270 void DeleteStatusBarWindow(void);\r
1271 HWND GetSbarWnd(void);\r
1272 void DispCurrentWindow(int Win);\r
1273 void DispSelectedSpace(void);\r
1274 void DispLocalFreeSpace(char *Path);\r
1275 void DispTransferFiles(void);\r
1276 void DispDownloadSize(LONGLONG Size);\r
1277 \r
1278 /*===== taskwin.c =====*/\r
1279 \r
1280 int MakeTaskWindow(HWND hWnd, HINSTANCE hInst);\r
1281 void DeleteTaskWindow(void);\r
1282 HWND GetTaskWnd(void);\r
1283 void SetTaskMsg(char *szFormat, ...);\r
1284 int SaveTaskMsg(char *Fname);\r
1285 void DispTaskMsg(void);\r
1286 void DoPrintf(char *szFormat, ...);\r
1287 void DoPrintf2(char *szFormat, ...);\r
1288 \r
1289 /*===== hostman.c =====*/\r
1290 \r
1291 int SelectHost(int Type);\r
1292 int AddHostToList(HOSTDATA *Set, int Pos, int Level);\r
1293 int CopyHostFromList(int Num, HOSTDATA *Set);\r
1294 int CopyHostFromListInConnect(int Num, HOSTDATA *Set);\r
1295 int SetHostBookMark(int Num, char *Bmask, int Len);\r
1296 char *AskHostBookMark(int Num);\r
1297 int SetHostDir(int Num, char *LocDir, char *HostDir);\r
1298 int SetHostPassword(int Num, char *Pass);\r
1299 int SetHostSort(int Num, int LFSort, int LDSort, int RFSort, int RDSort);\r
1300 void DecomposeSortType(ulong Sort, int *LFSort, int *LDSort, int *RFSort, int *RDSort);\r
1301 int AskCurrentHost(void);\r
1302 void SetCurrentHost(int Num);\r
1303 void CopyDefaultHost(HOSTDATA *Set);\r
1304 int SearchHostName(char *Name);\r
1305 void ImportFromWSFTP(void);\r
1306 \r
1307 /*===== connect.c =====*/\r
1308 \r
1309 void ConnectProc(int Type, int Num);\r
1310 void QuickConnectProc(void);\r
1311 void DirectConnectProc(char *unc, int Kanji, int Kana, int Fkanji, int TrMode);\r
1312 void HistoryConnectProc(int MenuCmd);\r
1313 char *AskHostAdrs(void);\r
1314 int AskHostPort(void);\r
1315 int AskHostNameKanji(void);\r
1316 int AskHostNameKana(void);\r
1317 int AskListCmdMode(void);\r
1318 int AskUseNLST_R(void);\r
1319 char *AskHostChmodCmd(void);\r
1320 int AskHostTimeZone(void);\r
1321 int AskPasvMode(void);\r
1322 char *AskHostLsName(void);\r
1323 int AskHostType(void);\r
1324 int AskHostFireWall(void);\r
1325 int AskNoFullPathMode(void);\r
1326 char *AskHostUserName(void);\r
1327 void SaveCurrentSetToHost(void);\r
1328 int ReConnectCmdSkt(void);\r
1329 // int ReConnectTrnSkt(void);\r
1330 SOCKET AskCmdCtrlSkt(void);\r
1331 SOCKET AskTrnCtrlSkt(void);\r
1332 void SktShareProh(void);\r
1333 int AskShareProh(void);\r
1334 void DisconnectProc(void);\r
1335 void DisconnectSet(void);\r
1336 int AskConnecting(void);\r
1337 SOCKET connectsock(char *host, int port, char *PreMsg, int *CancelCheckWork);\r
1338 SOCKET GetFTPListenSocket(SOCKET ctrl_skt, int *CancelCheckWork);\r
1339 int AskTryingConnect(void);\r
1340 int SocksGet2ndBindReply(SOCKET Socket, SOCKET *Data);\r
1341 \r
1342 /*===== cache.c =====*/\r
1343 \r
1344 int MakeCacheBuf(int Num);\r
1345 void DeleteCacheBuf(void);\r
1346 int AskCached(char *Path);\r
1347 int AskFreeCache(void);\r
1348 void SetCache(int Num, char *Path);\r
1349 void ClearCache(int Num);\r
1350 int AskCurrentFileListNum(void);\r
1351 void SetCurrentFileListNum(int Num);\r
1352 void SaveCache(void);\r
1353 void LoadCache(void);\r
1354 void DeleteCache(void);\r
1355 void MakeCacheFileName(int Num, char *Buf);\r
1356 void CountPrevFfftpWindows(void);\r
1357 \r
1358 /*===== ftpproc.c =====*/\r
1359 \r
1360 void DownLoadProc(int ChName, int ForceFile, int All);\r
1361 void DirectDownLoadProc(char *Fname);\r
1362 void InputDownLoadProc(void);\r
1363 void MirrorDownloadProc(int Notify);\r
1364 void UpLoadListProc(int ChName, int All);\r
1365 void UpLoadDragProc(WPARAM wParam);\r
1366 void MirrorUploadProc(int Notify);\r
1367 void DeleteProc(void);\r
1368 void RenameProc(void);\r
1369 void MoveRemoteFileProc(int);\r
1370 void MkdirProc(void);\r
1371 void ChangeDirComboProc(HWND hWnd);\r
1372 void ChangeDirBmarkProc(int MarkID);\r
1373 void ChangeDirDirectProc(int Win);\r
1374 void ChangeDirDropFileProc(WPARAM wParam);\r
1375 void ChmodProc(void);\r
1376 BOOL CALLBACK ChmodDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
1377 void SomeCmdProc(void);\r
1378 void CalcFileSizeProc(void);\r
1379 void DispCWDerror(HWND hWnd);\r
1380 void CopyURLtoClipBoard(void);\r
1381 int ProcForNonFullpath(char *Path, char *CurDir, HWND hWnd, int Type);\r
1382 void ReformToVMSstyleDirName(char *Path);\r
1383 void ReformToVMSstylePathName(char *Path);\r
1384 #if defined(HAVE_OPENVMS)\r
1385 void ReformVMSDirName(char *DirName, int Flg);\r
1386 #endif\r
1387 \r
1388 /*===== local.c =====*/\r
1389 \r
1390 int DoLocalCWD(char *Path);\r
1391 void DoLocalMKD(char *Path);\r
1392 void DoLocalPWD(char *Buf);\r
1393 void DoLocalRMD(char *Path);\r
1394 void DoLocalDELE(char *Path);\r
1395 void DoLocalRENAME(char *Src, char *Dst);\r
1396 void DispFileProperty(char *Fname);\r
1397 HANDLE FindFirstFileAttr(char *Fname, WIN32_FIND_DATA *FindData, int IgnHide);\r
1398 BOOL FindNextFileAttr(HANDLE hFind, WIN32_FIND_DATA *FindData, int IgnHide);\r
1399 \r
1400 /*===== remote.c =====*/\r
1401 \r
1402 int DoCWD(char *Path, int Disp, int ForceGet, int ErrorBell);\r
1403 int DoCWDStepByStep(char *Path, char *Cur);\r
1404 int DoMKD(char *Path);\r
1405 void InitPWDcommand();\r
1406 int DoRMD(char *Path);\r
1407 int DoDELE(char *Path);\r
1408 int DoRENAME(char *Src, char *Dst);\r
1409 int DoCHMOD(char *Path, char *Mode);\r
1410 int DoSIZE(char *Path, LONGLONG *Size);\r
1411 int DoMDTM(char *Path, FILETIME *Time);\r
1412 int DoQUOTE(char *CmdStr);\r
1413 SOCKET DoClose(SOCKET Sock);\r
1414 int DoQUIT(SOCKET ctrl_skt);\r
1415 int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork);\r
1416 int CommandProcCmd(char *Reply, char *fmt, ...);\r
1417 int CommandProcTrn(char *Reply, char *fmt, ...);\r
1418 int command(SOCKET cSkt, char *Reply, int *CancelCheckWork, char *fmt, ...);\r
1419 int SendData(SOCKET Skt, char *Data, int Size, int Mode, int *CancelCheckWork);\r
1420 int ReadReplyMessage(SOCKET cSkt, char *Buf, int Max, int *CancelCheckWork, char *Tmp);\r
1421 int ReadNchar(SOCKET cSkt, char *Buf, int Size, int *CancelCheckWork);\r
1422 char *ReturnWSError(UINT Error);\r
1423 void ReportWSError(char *Msg, UINT Error);\r
1424 int ChangeFnameRemote2Local(char *Fname, int Max);\r
1425 int ChangeFnameLocal2Remote(char *Fname, int Max);\r
1426 \r
1427 /*===== getput.c =====*/\r
1428 \r
1429 int MakeTransferThread(void);\r
1430 void CloseTransferThread(void);\r
1431 int AddTmpTransFileList(TRANSPACKET *Pkt, TRANSPACKET **Base);\r
1432 void EraseTmpTransFileList(TRANSPACKET **Base);\r
1433 int RemoveTmpTransFileListItem(TRANSPACKET **Base, int Num);\r
1434 \r
1435 void AddTransFileList(TRANSPACKET *Pkt);\r
1436 void AppendTransFileList(TRANSPACKET *Pkt);\r
1437 void KeepTransferDialog(int Sw);\r
1438 int AskTransferNow(void);\r
1439 int AskTransferFileNum(void);\r
1440 void GoForwardTransWindow(void);\r
1441 void InitTransCurDir(void);\r
1442 int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
1443 int CheckPathViolation(TRANSPACKET *packet);\r
1444 \r
1445 /*===== codecnv.c =====*/\r
1446 \r
1447 void InitTermCodeConvInfo(TERMCODECONVINFO *cInfo);\r
1448 int FlushRestTermCodeConvData(TERMCODECONVINFO *cInfo);\r
1449 int ConvTermCodeToCRLF(TERMCODECONVINFO *cInfo);\r
1450 \r
1451 void InitCodeConvInfo(CODECONVINFO *cInfo);\r
1452 int FlushRestData(CODECONVINFO *cInfo);\r
1453 int ConvEUCtoSJIS(CODECONVINFO *cInfo);\r
1454 int ConvJIStoSJIS(CODECONVINFO *cInfo);\r
1455 int ConvSMBtoSJIS(CODECONVINFO *cInfo);\r
1456 int ConvUTF8NtoSJIS(CODECONVINFO *cInfo); // UTF-8N\91Î\89\9e\r
1457 int ConvSJIStoEUC(CODECONVINFO *cInfo);\r
1458 int ConvSJIStoJIS(CODECONVINFO *cInfo);\r
1459 int ConvSJIStoSMB_HEX(CODECONVINFO *cInfo);\r
1460 int ConvSJIStoSMB_CAP(CODECONVINFO *cInfo);\r
1461 int ConvSJIStoUTF8N(CODECONVINFO *cInfo); // UTF-8N\91Î\89\9e\r
1462 void ConvAutoToSJIS(char *Text, int Pref);\r
1463 int CheckKanjiCode(char *Text, int Size, int Pref);\r
1464 \r
1465 /*===== option.c =====*/\r
1466 \r
1467 void SetOption(int Start);\r
1468 int SortSetting(void);\r
1469 \r
1470 /*===== bookmark.c =====*/\r
1471 \r
1472 void ClearBookMark(void);\r
1473 void AddCurDirToBookMark(int Win);\r
1474 int AskBookMarkText(int MarkID, char *Local, char *Remote, int Max);\r
1475 void SaveBookMark(void);\r
1476 void LoadBookMark(void);\r
1477 int EditBookMark(void);\r
1478 \r
1479 /*===== regexp.c =====*/\r
1480 \r
1481 int LoadJre(void);\r
1482 void ReleaseJre(void);\r
1483 int AskRasUsable(void);\r
1484 int AskJreUsable(void);\r
1485 int GetJreVersion(void);\r
1486 int JreCompileStr(char *Str);\r
1487 char *JreGetStrMatchInfo(char *Str, UINT nStart);\r
1488 \r
1489 /*===== wildcard.c =====*/\r
1490 \r
1491 int CheckFname(char *str, char *regexp);\r
1492 \r
1493 /*===== registory.c =====*/\r
1494 \r
1495 void SaveRegistory(void);\r
1496 int LoadRegistory(void);\r
1497 void ClearRegistory(void);\r
1498 void SetMasterPassword( const char* );\r
1499 int GetMasterPasswordStatus(void);\r
1500 int ValidateMasterPassword(void);\r
1501 DWORD LoadHideDriveListRegistory(void);\r
1502 void SaveSettingsToFile(void);\r
1503 int LoadSettingsFromFile(void);\r
1504 \r
1505 /*===== lvtips.c =====*/\r
1506 \r
1507 int InitListViewTips(HWND hWnd, HINSTANCE hInst);\r
1508 void DeleteListViewTips(void);\r
1509 void EraseListViewTips(void);\r
1510 HWND GetListViewTipsHwnd(void);\r
1511 void CheckTipsDisplay(HWND hWnd, LPARAM lParam);\r
1512 \r
1513 /*===== ras.c =====*/\r
1514 \r
1515 void LoadRasLib(void);\r
1516 void ReleaseRasLib(void);\r
1517 void DisconnectRas(int Notify);\r
1518 int SetRasEntryToComboBox(HWND hDlg, int Item, char *CurName);\r
1519 int ConnectRas(int Dialup, int UseThis, int Notify, char *Name);\r
1520 \r
1521 /*===== misc.c =====*/\r
1522 \r
1523 int InputDialogBox(int Res, HWND hWnd, char *Title, char *Buf, int Max, int *Flg, int Help);\r
1524 BOOL CALLBACK ExeEscDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
1525 BOOL CALLBACK ExeEscTextDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);\r
1526 void SetYenTail(char *Str);\r
1527 void RemoveYenTail(char *Str);\r
1528 void SetSlashTail(char *Str);\r
1529 void RemoveReturnCode(char *Str);\r
1530 void ReplaceAll(char *Str, char Src, char Dst);\r
1531 int IsDigitSym(int Ch, int Sym);\r
1532 int StrAllSameChar(char *Str, char Ch);\r
1533 void RemoveTailingSpaces(char *Str);\r
1534 char *stristr(char *s1, char *s2);\r
1535 char *GetNextField(char *Str);\r
1536 int GetOneField(char *Str, char *Buf, int Max);\r
1537 void RemoveComma(char *Str);\r
1538 char *GetFileName(char *Path);\r
1539 char *GetFileExt(char *Path);\r
1540 char *GetToolName(char *Path);\r
1541 void RemoveFileName(char *Path, char *Buf);\r
1542 void GetUpperDir(char *Path);\r
1543 void GetUpperDirEraseTopSlash(char *Path);\r
1544 int AskDirLevel(char *Path);\r
1545 void MakeSizeString(double Size, char *Buf);\r
1546 void DispStaticText(HWND hWnd, char *Str);\r
1547 int StrMultiLen(char *Str);\r
1548 void RectClientToScreen(HWND hWnd, RECT *Rect);\r
1549 int hex2bin(char Ch);\r
1550 int SplitUNCpath(char *unc, char *Host, char *Path, char *File, char *User, char *Pass, int *Port);\r
1551 int TimeString2FileTime(char *Time, FILETIME *Buf);\r
1552 void FileTime2TimeString(FILETIME *Time, char *Buf, int Mode, int InfoExist);\r
1553 void SpecificLocalFileTime2FileTime(FILETIME *Time, int TimeZone);\r
1554 int AttrString2Value(char *Str);\r
1555 void AttrValue2String(int Attr, char *Buf);\r
1556 void FormatIniString(char *Str);\r
1557 int SelectFile(HWND hWnd, char *Fname, char *Title, char *Filters, char *Ext, int Flags, int Save);\r
1558 int SelectDir(HWND hWnd, char *Buf, int MaxLen);\r
1559 void SetRadioButtonByValue(HWND hDlg, int Value, const RADIOBUTTON *Buttons, int Num);\r
1560 int AskRadioButtonValue(HWND hDlg, const RADIOBUTTON *Buttons, int Num);\r
1561 int xtoi(char *Str);\r
1562 int CheckFileReadable(char *Fname);\r
1563 int max1(int n, int m);\r
1564 int min1(int n, int m);\r
1565 void ExcEndianDWORD(DWORD *x);\r
1566 void SwapInt(int *Num1, int *Num2);\r
1567 int IsFolderExist(char *Path);\r
1568 int ConvertNum(int x, int Dir, const INTCONVTBL *Tbl, int Num);\r
1569 int MoveFileToTrashCan(char *Path);\r
1570 LONGLONG MakeLongLong(DWORD High, DWORD Low);\r
1571 char *MakeNumString(LONGLONG Num, char *Buf, BOOL Comma);\r
1572 \r
1573 /*===== dlgsize.c =====*/\r
1574 \r
1575 void DlgSizeInit(HWND hDlg, DIALOGSIZE *Dt, SIZE *Size);\r
1576 void AskDlgSize(HWND hDlg, DIALOGSIZE *Dt, SIZE *Size);\r
1577 void DlgSizeChange(HWND hDlg, DIALOGSIZE *Dt, RECT *New, int Flg);\r
1578 \r
1579 /*===== opie.c =====*/\r
1580 \r
1581 int Make6WordPass(int seq, char *seed, char *pass, int type, char *buf);\r
1582 \r
1583 /*===== tool.c =====*/\r
1584 \r
1585 void OtpCalcTool(void);\r
1586 \r
1587 /*===== history.c =====*/\r
1588 \r
1589 void AddHostToHistory(HOSTDATA *Host, int TrMode);\r
1590 void AddHistoryToHistory(HISTORYDATA *Hist);\r
1591 int AskHistoryNum(void);\r
1592 void CheckHistoryNum(int Space);\r
1593 void CopyHistoryToHost(HISTORYDATA *Hist, HOSTDATA *Host);\r
1594 void CopyDefaultHistory(HISTORYDATA *Set);\r
1595 void SetAllHistoryToMenu(void);\r
1596 int GetHistoryByCmd(int MenuCmd, HISTORYDATA *Buf);\r
1597 int GetHistoryByNum(int Num, HISTORYDATA *Buf);\r
1598 \r
1599 /*===== clipboard.c =====*/\r
1600 \r
1601 int CopyStrToClipBoard(char *Str);\r
1602 \r
1603 /*===== diskfree.c =====*/\r
1604 \r
1605 void LoadKernelLib(void);\r
1606 void ReleaseKernelLib(void);\r
1607 char *AskLocalFreeSpace(char *Path);\r
1608 \r
1609 /*===== socket.c =====*/\r
1610 \r
1611 int MakeSocketWin(HWND hWnd, HINSTANCE hInst);\r
1612 void DeleteSocketWin(void);\r
1613 struct hostent *do_gethostbyname(const char *Name, char *Buf, int Len, int *CancelCheckWork);\r
1614 SOCKET do_socket(int af, int type, int protocol);\r
1615 int do_connect(SOCKET s, const struct sockaddr *name, int namelen, int *CancelCheckWork);\r
1616 int do_closesocket(SOCKET s);\r
1617 int do_listen(SOCKET s, int backlog);\r
1618 SOCKET do_accept(SOCKET s, struct sockaddr *addr, int *addrlen);\r
1619 int do_recv(SOCKET s, char *buf, int len, int flags, int *TimeOut, int *CancelCheckWork);\r
1620 int do_send(SOCKET s, const char *buf, int len, int flags, int *TimeOutErr, int *CancelCheckWork);\r
1621 int CheckClosedAndReconnect(void);\r
1622 void CheckAllEventClosed(void);\r
1623 \r
1624 /*===== updatebell.c =====*/\r
1625 \r
1626 void SaveUpdateBellInfo(void);\r
1627 \r
1628 \r
1629 #endif   // __COMMON_H__\r