OSDN Git Service

Change behavior of automatic IPv4/IPv6 selection.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 18 Feb 2012 15:14:32 +0000 (00:14 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 18 Feb 2012 15:14:32 +0000 (00:14 +0900)
Modify messages.
Fix bugs of hanging at accessing non-existent directories.
Fix spelling mistakes.
Modify documents.
Remove unused files.

29 files changed:
FFFTP.vc90.vcproj
FFFTP_Eng_Release/FFFTP.exe
FFFTP_English.vc90.vcproj
Release/FFFTP.exe
Resource/FFFTP.rc
Resource/resource.h
Resource_eng/FFFTP-eng.rc
Resource_eng/resource.h
common.h
connect.c
doc/eng/FFFTP.txt
doc/eng/history.txt
doc/jpn/FFFTP.txt
doc/jpn/history.txt
filelist.c
ftpproc.c
getput.c
hostman.c
main.c
mesg-eng.h
mesg-jpn.h
msgutil.c [deleted file]
msgutil.h [deleted file]
option.c
registry.c
remote.c
socket.c
socketwrapper.c
toolmenu.c

index e4b27e1..e58544b 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath=".\Resource\list_16.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\Resource\list_bmp.bmp"\r
                                >\r
                        </File>\r
index 54a7838..2b1db4f 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index 5475435..71a29c7 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath=".\Resource_eng\list_16.bmp"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\Resource_eng\list_bmp.bmp"\r
                                >\r
                        </File>\r
                                />\r
                        </FileConfiguration>\r
                        <FileConfiguration\r
-                               Name="Release|Win32"\r
+                               Name="Debug|x64"\r
+                               ExcludedFromBuild="true"\r
                                >\r
                                <Tool\r
                                        Name="VCCustomBuildTool"\r
                                />\r
                        </FileConfiguration>\r
                        <FileConfiguration\r
-                               Name="Debug|x64"\r
-                               ExcludedFromBuild="true"\r
+                               Name="Release|Win32"\r
                                >\r
                                <Tool\r
                                        Name="VCCustomBuildTool"\r
index 28b4f22..bcf81ce 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index fae38fa..7e1f8e6 100644 (file)
@@ -353,7 +353,7 @@ BEGIN
     LTEXT           "",stc1,9,18,88,8\r
 END\r
 \r
-opt_user_dlg DIALOG  0, 0, 211, 139\r
+opt_user_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -362,7 +362,7 @@ BEGIN
     LTEXT           "\83\81\81[\83\8b\83A\83h\83\8c\83X\82Íanonymous FTP\82Ì\83p\83X\83\8f\81[\83h\82Æ\82µ\82Ä\8eg\97p\82³\82ê\82Ü\82·\81B",-1,28,36,169,18,SS_SUNKEN\r
 END\r
 \r
-opt_tool_dlg DIALOG  0, 0, 211, 139\r
+opt_tool_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -448,7 +448,7 @@ BEGIN
     LTEXT           "\8dì\90¬\82·\82é\83t\83H\83\8b\83_\82Ì\96¼\91O\82ð\93ü\97Í\82µ\82Ä\82­\82¾\82³\82¢\81B",-1,7,7,160,8\r
 END\r
 \r
-opt_misc_dlg DIALOG  0, 0, 211, 139\r
+opt_misc_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -549,7 +549,7 @@ BEGIN
     PUSHBUTTON      "\82¢\82¢\82¦",IDCANCEL,112,42,50,14\r
 END\r
 \r
-opt_trmode2_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode2_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -567,7 +567,7 @@ BEGIN
     LTEXT           "\83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h\8e\9e\82Ì\90Ý\92è\82Í\81A\81u\83~\83\89\81[\83\8a\83\93\83O\81v\83^\83u\82Ì\92\86\82É\82 \82è\82Ü\82·\81B",-1,18,56,181,17,SS_SUNKEN\r
 END\r
 \r
-opt_notify_dlg DIALOGEX 0, 0, 211, 139\r
+opt_notify_dlg DIALOGEX 0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg", 0, 0, 0x0\r
 BEGIN\r
@@ -604,7 +604,7 @@ BEGIN
     PUSHBUTTON      "\83w\83\8b\83v",9,165,90,50,14\r
 END\r
 \r
-opt_fire_dlg DIALOG  0, 0, 211, 139\r
+opt_fire_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -684,7 +684,7 @@ BEGIN
     LTEXT           "\82±\82±\82Å\93ü\97Í\82µ\82½\83\81\81[\83\8b\83A\83h\83\8c\83X\82Í\81A\8cã\82Å\83I\83v\83V\83\87\83\93\82Ì\n\81u\83\86\81[\83U\81[\81v\83^\83u\82Ì\82Æ\82±\82ë\82Å\95Ï\8dX\82Å\82«\82Ü\82·\81B",-1,16,48,164,18\r
 END\r
 \r
-opt_sound_dlg DIALOG  0, 0, 211, 139\r
+opt_sound_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -759,7 +759,7 @@ BEGIN
     CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,114,107,81,10\r
 END\r
 \r
-opt_trmode1_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode1_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -767,14 +767,15 @@ BEGIN
     CONTROL         "\8fí\82É\83A\83X\83L\81[\83\82\81[\83h(&A)",TRMODE_ASCII,"Button",BS_AUTORADIOBUTTON | WS_GROUP,13,19,85,10\r
     CONTROL         "\8fí\82É\83o\83C\83i\83\8a\83\82\81[\83h(&B)",TRMODE_BIN,"Button",BS_AUTORADIOBUTTON,13,33,84,10\r
     CONTROL         "\83t\83@\83C\83\8b\96¼\82Å\90Ø\91Ö\82¦(&X)",TRMODE_AUTO,"Button",BS_AUTORADIOBUTTON,13,47,81,10\r
+    LTEXT           "\81¨",-1,98,49,8,8\r
     GROUPBOX        "\83A\83X\83L\81[\83\82\81[\83h\82Ì\83t\83@\83C\83\8b\96¼(&F)",-1,104,7,99,84,WS_GROUP\r
     LISTBOX         TRMODE_EXT_LIST,109,19,53,67,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
     PUSHBUTTON      "\92Ç\89Á(&I)...",TRMODE_ADD,167,19,31,14\r
     PUSHBUTTON      "\8dí\8f\9c",TRMODE_DEL,167,38,31,14\r
     CONTROL         "\83A\83X\83L\81[\83\82\81[\83h\82Å\83A\83b\83v\83\8d\81[\83h\8e\9e\81AEOF(Ctrl-Z)\82ð\8eæ\82è\8f\9c\82­(&Z)",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
     CONTROL         "\83_\83E\83\93\83\8d\81[\83h\82·\82é\83t\83@\83C\83\8b\82Ì\83^\83C\83\80\83X\83^\83\93\83v\82ð\88Û\8e\9d(&T)",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
-    LTEXT           "\81¨",-1,98,49,8,8\r
     CONTROL         "\83t\83@\83C\83\8b\96¼\82Ì\83Z\83~\83R\83\8d\83\93\88È\8d~\82Í\8eæ\82è\8f\9c\82¢\82Ä\83_\83E\83\93\83\8d\81[\83h(&S)",TRMODE_SEMICOLON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
+    CONTROL         "\83t\83@\83C\83\8b\96¼\82ð\95Ï\82¦\82Ä\93]\91\97\82µ\82½\8fê\8d\87\82É\83f\83B\83\8c\83N\83g\83\8a\82ð\8dì\90¬(&D)",TRMODE_MAKEDIR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,136,196,10\r
 END\r
 \r
 up_exist_dlg DIALOG  0, 0, 223, 119\r
@@ -900,7 +901,7 @@ BEGIN
     CONTROL         "",INP_ANONYMOUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,164,30,16,8\r
 END\r
 \r
-opt_mirror_dlg DIALOG  0, 0, 211, 139\r
+opt_mirror_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -944,7 +945,7 @@ BEGIN
     CONTROL         "",INP_ANONYMOUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,164,30,16,8\r
 END\r
 \r
-opt_connect_dlg DIALOG  0, 0, 211, 139\r
+opt_connect_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1024,7 +1025,7 @@ BEGIN
     CTEXT           "\8f\88\97\9d\82ð\92\86\8e~\82µ\82Ü\82·\81B",-1,7,31,140,8\r
 END\r
 \r
-opt_trmode3_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode3_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1281,7 +1282,7 @@ BEGIN
     PUSHBUTTON      "\83L\83\83\83\93\83Z\83\8b",IDCANCEL,96,72,50,14\r
 END\r
 \r
-opt_disp_dlg DIALOG  0, 0, 211, 139\r
+opt_disp_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1484,7 +1485,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 134\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     opt_tool_dlg, DIALOG\r
@@ -1492,7 +1493,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     chmod_dlg, DIALOG\r
@@ -1524,7 +1525,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     hostname_dlg, DIALOG\r
@@ -1587,7 +1588,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     opt_notify_dlg, DIALOG\r
@@ -1595,7 +1596,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     bmark_dlg, DIALOG\r
@@ -1611,7 +1612,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     hset_adv_dlg, DIALOG\r
@@ -1651,7 +1652,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     downerr_dlg, DIALOG\r
@@ -1683,7 +1684,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     up_exist_dlg, DIALOG\r
@@ -1763,7 +1764,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     somecmd_dlg, DIALOG\r
@@ -1787,7 +1788,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     rasnotify_dlg, DIALOG\r
@@ -1835,7 +1836,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     def_attr_dlg, DIALOG\r
@@ -1995,7 +1996,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     bmark_edit_dlg, DIALOG\r
index 6551a11..1df3b2c 100644 (file)
 #define CONNECT_RASCLOSE                1014\r
 #define FIRE_LOWER                      1014\r
 #define MIRROR_TIMECHECK                1014\r
+#define TRMODE_MAKEDIR                  1014\r
 #define TOOL_EDITOR_BR                  1015\r
 #define PERM_A_READ                     1015\r
 #define SOUND_TRNNG                     1015\r
index a715393..d031279 100644 (file)
@@ -354,7 +354,7 @@ BEGIN
     LTEXT           "",stc1,9,18,88,8\r
 END\r
 \r
-opt_user_dlg DIALOG  0, 0, 211, 139\r
+opt_user_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -363,7 +363,7 @@ BEGIN
     LTEXT           "This address is used for the anonymous FTP password.",-1,28,36,169,18,SS_SUNKEN\r
 END\r
 \r
-opt_tool_dlg DIALOG  0, 0, 211, 139\r
+opt_tool_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -449,7 +449,7 @@ BEGIN
     LTEXT           "Enter new folder name:",-1,7,7,160,8\r
 END\r
 \r
-opt_misc_dlg DIALOG  0, 0, 211, 139\r
+opt_misc_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -552,7 +552,7 @@ BEGIN
     PUSHBUTTON      "No",IDCANCEL,112,42,50,14\r
 END\r
 \r
-opt_trmode2_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode2_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -570,7 +570,7 @@ BEGIN
     LTEXT           "Mirror Upload/Download settings are on the Mirror tab.",-1,18,56,181,17,SS_SUNKEN\r
 END\r
 \r
-opt_notify_dlg DIALOGEX 0, 0, 211, 139\r
+opt_notify_dlg DIALOGEX 0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg", 0, 0, 0x0\r
 BEGIN\r
@@ -607,7 +607,7 @@ BEGIN
     PUSHBUTTON      "&Help",9,165,90,50,14\r
 END\r
 \r
-opt_fire_dlg DIALOG  0, 0, 211, 139\r
+opt_fire_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -689,7 +689,7 @@ BEGIN
     LTEXT           "You can reenter mail address at the Option dialog.",-1,16,54,164,10\r
 END\r
 \r
-opt_sound_dlg DIALOG  0, 0, 211, 139\r
+opt_sound_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -766,7 +766,7 @@ BEGIN
     CONTROL         "Hankaku to Zenkaku",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,111,108,91,10\r
 END\r
 \r
-opt_trmode1_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode1_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -774,15 +774,17 @@ BEGIN
     CONTROL         "Always &ASCII mode",TRMODE_ASCII,"Button",BS_AUTORADIOBUTTON | WS_GROUP,13,19,85,10\r
     CONTROL         "Always &BINARY mode",TRMODE_BIN,"Button",BS_AUTORADIOBUTTON,13,33,84,10\r
     CONTROL         "&Filename dependent",TRMODE_AUTO,"Button",BS_AUTORADIOBUTTON,13,47,78,10\r
+    LTEXT           "->",-1,98,49,8,8\r
     GROUPBOX        "ASCII mode Filenames",-1,104,7,99,84,WS_GROUP\r
     LISTBOX         TRMODE_EXT_LIST,109,19,53,67,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP\r
     PUSHBUTTON      "A&dd...",TRMODE_ADD,167,19,31,14\r
     PUSHBUTTON      "Delete",TRMODE_DEL,167,38,31,14\r
     CONTROL         "&Remove EOF for ASCII mode upload",TRMODE_EOF,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,94,196,10\r
-    CONTROL         "Re&tain file date/time on download",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
-    LTEXT           "->",-1,98,49,8,8\r
+    CONTROL         "Retain file date/&time on download",TRMODE_TIME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,196,10\r
     CONTROL         "Truncate filename before &semicolon on download",TRMODE_SEMICOLON,\r
                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,122,196,10\r
+    CONTROL         "Create &directory at file transfer with renaming",TRMODE_MAKEDIR,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,136,196,10\r
 END\r
 \r
 up_exist_dlg DIALOG  0, 0, 234, 119\r
@@ -913,7 +915,7 @@ BEGIN
     CONTROL         "",INP_ANONYMOUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,164,30,16,8\r
 END\r
 \r
-opt_mirror_dlg DIALOG  0, 0, 211, 139\r
+opt_mirror_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -958,7 +960,7 @@ BEGIN
     CONTROL         "",INP_ANONYMOUS,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_DISABLED | WS_TABSTOP,164,30,16,8\r
 END\r
 \r
-opt_connect_dlg DIALOG  0, 0, 211, 139\r
+opt_connect_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1048,7 +1050,7 @@ BEGIN
     CTEXT           "Stop processing.",-1,7,20,141,8\r
 END\r
 \r
-opt_trmode3_dlg DIALOG  0, 0, 211, 139\r
+opt_trmode3_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1306,7 +1308,7 @@ BEGIN
     PUSHBUTTON      "Cancel",IDCANCEL,96,63,50,14\r
 END\r
 \r
-opt_disp_dlg DIALOG  0, 0, 211, 139\r
+opt_disp_dlg DIALOG  0, 0, 211, 155\r
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Shell Dlg"\r
 BEGIN\r
@@ -1512,7 +1514,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 134\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     opt_tool_dlg, DIALOG\r
@@ -1520,7 +1522,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     chmod_dlg, DIALOG\r
@@ -1552,7 +1554,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     hostname_dlg, DIALOG\r
@@ -1615,7 +1617,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     opt_notify_dlg, DIALOG\r
@@ -1623,7 +1625,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     bmark_dlg, DIALOG\r
@@ -1639,7 +1641,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     hset_adv_dlg, DIALOG\r
@@ -1679,7 +1681,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     downerr_dlg, DIALOG\r
@@ -1711,7 +1713,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     up_exist_dlg, DIALOG\r
@@ -1791,7 +1793,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     somecmd_dlg, DIALOG\r
@@ -1815,7 +1817,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     rasnotify_dlg, DIALOG\r
@@ -1863,7 +1865,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 135\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     def_attr_dlg, DIALOG\r
@@ -2023,7 +2025,7 @@ BEGIN
         LEFTMARGIN, 7\r
         RIGHTMARGIN, 204\r
         TOPMARGIN, 7\r
-        BOTTOMMARGIN, 132\r
+        BOTTOMMARGIN, 148\r
     END\r
 \r
     bmark_edit_dlg, DIALOG\r
index cc74eec..5cecea9 100644 (file)
 #define CONNECT_RASCLOSE                1014\r
 #define FIRE_LOWER                      1014\r
 #define MIRROR_TIMECHECK                1014\r
+#define TRMODE_MAKEDIR                  1014\r
 #define TOOL_EDITOR_BR                  1015\r
 #define PERM_A_READ                     1015\r
 #define SOUND_TRNNG                     1015\r
index 9d93f41..7f55fa0 100644 (file)
--- a/common.h
+++ b/common.h
@@ -1537,12 +1537,12 @@ void CountPrevFfftpWindows(void);
 \r
 /*===== ftpproc.c =====*/\r
 \r
-void DownLoadProc(int ChName, int ForceFile, int All);\r
-void DirectDownLoadProc(char *Fname);\r
-void InputDownLoadProc(void);\r
+void DownloadProc(int ChName, int ForceFile, int All);\r
+void DirectDownloadProc(char *Fname);\r
+void InputDownloadProc(void);\r
 void MirrorDownloadProc(int Notify);\r
-void UpLoadListProc(int ChName, int All);\r
-void UpLoadDragProc(WPARAM wParam);\r
+void UploadListProc(int ChName, int All);\r
+void UploadDragProc(WPARAM wParam);\r
 void MirrorUploadProc(int Notify);\r
 void DeleteProc(void);\r
 void RenameProc(void);\r
@@ -1603,7 +1603,9 @@ int DoMDTM(SOCKET cSkt, char *Path, FILETIME *Time, int *CancelCheckWork);
 //int DoQUOTE(char *CmdStr);\r
 int DoQUOTE(SOCKET cSkt, char *CmdStr, int *CancelCheckWork);\r
 SOCKET DoClose(SOCKET Sock);\r
-int DoQUIT(SOCKET ctrl_skt);\r
+// 同時接続対応\r
+//int DoQUIT(SOCKET ctrl_skt);\r
+int DoQUIT(SOCKET ctrl_skt, int *CancelCheckWork);\r
 int DoDirListCmdSkt(char *AddOpt, char *Path, int Num, int *CancelCheckWork);\r
 #if defined(HAVE_TANDEM)\r
 void SwitchOSSProc(void);\r
@@ -1636,7 +1638,7 @@ int AskTransferNow(void);
 int AskTransferFileNum(void);\r
 void GoForwardTransWindow(void);\r
 void InitTransCurDir(void);\r
-int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
+int DoDownload(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork);\r
 int CheckPathViolation(TRANSPACKET *packet);\r
 \r
 /*===== codecnv.c =====*/\r
@@ -1696,13 +1698,13 @@ int CheckFname(char *str, char *regexp);
 \r
 /*===== registory.c =====*/\r
 \r
-void SaveRegistory(void);\r
-int LoadRegistory(void);\r
-void ClearRegistory(void);\r
+void SaveRegistry(void);\r
+int LoadRegistry(void);\r
+void ClearRegistry(void);\r
 void SetMasterPassword( const char* );\r
 int GetMasterPasswordStatus(void);\r
 int ValidateMasterPassword(void);\r
-DWORD LoadHideDriveListRegistory(void);\r
+DWORD LoadHideDriveListRegistry(void);\r
 void SaveSettingsToFile(void);\r
 int LoadSettingsFromFile(void);\r
 \r
index 3e17909..8742594 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -340,7 +340,7 @@ void QuickConnectProc(void)
                                EnableUserOpe();\r
 \r
                                if(strlen(File) > 0)\r
-                                       DirectDownLoadProc(File);\r
+                                       DirectDownloadProc(File);\r
                        }\r
                        else\r
                        {\r
@@ -528,7 +528,7 @@ void DirectConnectProc(char *unc, int Kanji, int Kana, int Fkanji, int TrMode)
                        EnableUserOpe();\r
 \r
                        if(strlen(File) > 0)\r
-                               DirectDownLoadProc(File);\r
+                               DirectDownloadProc(File);\r
                        else\r
                                ResetAutoExitFlg();\r
                }\r
@@ -1265,13 +1265,17 @@ void DisconnectProc(void)
 \r
        if((CmdCtrlSocket != INVALID_SOCKET) && (CmdCtrlSocket != TrnCtrlSocket))\r
        {\r
-               DoQUIT(CmdCtrlSocket);\r
+               // 同時接続対応\r
+//             DoQUIT(CmdCtrlSocket);\r
+               DoQUIT(CmdCtrlSocket, &CancelFlg);\r
                DoClose(CmdCtrlSocket);\r
        }\r
 \r
        if(TrnCtrlSocket != INVALID_SOCKET)\r
        {\r
-               DoQUIT(TrnCtrlSocket);\r
+               // 同時接続対応\r
+//             DoQUIT(TrnCtrlSocket);\r
+               DoQUIT(TrnCtrlSocket, &CancelFlg);\r
                DoClose(TrnCtrlSocket);\r
 \r
                SaveCurrentSetToHistory();\r
@@ -1994,17 +1998,109 @@ static int CheckOneTimePassword(char *Pass, char *Reply, int Type)
 *----------------------------------------------------------------------------*/\r
 \r
 // IPv6対応\r
+typedef SOCKET (__cdecl* LPCONNECTSOCK)(char*, int, char*, int*);\r
+\r
+typedef struct\r
+{\r
+       HANDLE h;\r
+       DWORD ExitCode;\r
+       char *host;\r
+       int port;\r
+       char *PreMsg;\r
+       int CancelCheckWork;\r
+       LPCONNECTSOCK f;\r
+       SOCKET s;\r
+} CONNECTSOCKDATA;\r
+\r
+DWORD WINAPI connectsockThreadProc(LPVOID lpParameter)\r
+{\r
+       CONNECTSOCKDATA* pData;\r
+       pData = (CONNECTSOCKDATA*)lpParameter;\r
+       pData->s = pData->f(pData->host, pData->port, pData->PreMsg, &pData->CancelCheckWork);\r
+       return 0;\r
+}\r
+\r
+// IPv6対応\r
 SOCKET connectsock(char *host, int port, char *PreMsg, int *CancelCheckWork)\r
 {\r
        SOCKET Result;\r
+       CONNECTSOCKDATA DataIPv4;\r
+       CONNECTSOCKDATA DataIPv6;\r
        Result = INVALID_SOCKET;\r
        switch(CurHost.CurNetType)\r
        {\r
        case NTYPE_AUTO:\r
-               if((Result = connectsockIPv4(host, port, PreMsg, CancelCheckWork)) != INVALID_SOCKET)\r
-                       CurHost.CurNetType = NTYPE_IPV4;\r
-               else if((Result = connectsockIPv6(host, port, PreMsg, CancelCheckWork)) != INVALID_SOCKET)\r
-                       CurHost.CurNetType = NTYPE_IPV6;\r
+//             if((Result = connectsockIPv4(host, port, PreMsg, CancelCheckWork)) != INVALID_SOCKET)\r
+//                     CurHost.CurNetType = NTYPE_IPV4;\r
+//             else if((Result = connectsockIPv6(host, port, PreMsg, CancelCheckWork)) != INVALID_SOCKET)\r
+//                     CurHost.CurNetType = NTYPE_IPV6;\r
+               DataIPv4.host = host;\r
+               DataIPv4.port = port;\r
+               DataIPv4.PreMsg = PreMsg;\r
+               DataIPv4.CancelCheckWork = *CancelCheckWork;\r
+               DataIPv4.f = connectsockIPv4;\r
+               DataIPv4.h = CreateThread(NULL, 0, connectsockThreadProc, &DataIPv4, 0, NULL);\r
+               DataIPv6.host = host;\r
+               DataIPv6.port = port;\r
+               DataIPv6.PreMsg = PreMsg;\r
+               DataIPv6.CancelCheckWork = *CancelCheckWork;\r
+               DataIPv6.f = connectsockIPv6;\r
+               DataIPv6.h = CreateThread(NULL, 0, connectsockThreadProc, &DataIPv6, 0, NULL);\r
+               while(1)\r
+               {\r
+                       if(GetExitCodeThread(DataIPv4.h, &DataIPv4.ExitCode))\r
+                       {\r
+                               if(DataIPv4.ExitCode != STILL_ACTIVE)\r
+                               {\r
+                                       if(DataIPv4.s != INVALID_SOCKET)\r
+                                       {\r
+                                               Result = DataIPv4.s;\r
+                                               CurHost.CurNetType = NTYPE_IPV4;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                       }\r
+                       if(GetExitCodeThread(DataIPv6.h, &DataIPv6.ExitCode))\r
+                       {\r
+                               if(DataIPv6.ExitCode != STILL_ACTIVE)\r
+                               {\r
+                                       if(DataIPv6.s != INVALID_SOCKET)\r
+                                       {\r
+                                               Result = DataIPv6.s;\r
+                                               CurHost.CurNetType = NTYPE_IPV6;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                       }\r
+                       if(GetExitCodeThread(DataIPv4.h, &DataIPv4.ExitCode) && GetExitCodeThread(DataIPv6.h, &DataIPv6.ExitCode))\r
+                       {\r
+                               if(DataIPv4.ExitCode != STILL_ACTIVE && DataIPv6.ExitCode != STILL_ACTIVE)\r
+                               {\r
+                                       if(DataIPv4.s == INVALID_SOCKET && DataIPv6.s == INVALID_SOCKET)\r
+                                               break;\r
+                               }\r
+                       }\r
+                       DataIPv4.CancelCheckWork = *CancelCheckWork;\r
+                       DataIPv6.CancelCheckWork = *CancelCheckWork;\r
+                       BackgrndMessageProc();\r
+                       Sleep(1);\r
+               }\r
+               while(1)\r
+               {\r
+                       if(GetExitCodeThread(DataIPv4.h, &DataIPv4.ExitCode) && GetExitCodeThread(DataIPv6.h, &DataIPv6.ExitCode))\r
+                       {\r
+                               if(DataIPv4.ExitCode != STILL_ACTIVE && DataIPv6.ExitCode != STILL_ACTIVE)\r
+                               {\r
+                                       CloseHandle(DataIPv4.h);\r
+                                       CloseHandle(DataIPv6.h);\r
+                                       break;\r
+                               }\r
+                       }\r
+                       DataIPv4.CancelCheckWork = YES;\r
+                       DataIPv6.CancelCheckWork = YES;\r
+                       BackgrndMessageProc();\r
+                       Sleep(1);\r
+               }\r
                break;\r
        case NTYPE_IPV4:\r
                Result = connectsockIPv4(host, port, PreMsg, CancelCheckWork);\r
@@ -2067,7 +2163,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                else\r
                {\r
                        // アドレスを取得\r
-                       SetTaskMsg(MSGJPN016, DomainName);\r
+                       // IPv6対応\r
+//                     SetTaskMsg(MSGJPN016, DomainName);\r
+                       SetTaskMsg(MSGJPN016, DomainName, MSGJPN333);\r
                        // IPv6対応\r
 //                     pHostEntry = do_gethostbyname(host, HostEntry, MAXGETHOSTSTRUCT, CancelCheckWork);\r
                        pHostEntry = do_gethostbynameIPv4(host, HostEntry, MAXGETHOSTSTRUCT, CancelCheckWork);\r
@@ -2079,7 +2177,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
 //                     memcpy((char *)&CurSockAddr.sin_addr, pHostEntry->h_addr, pHostEntry->h_length);\r
 //                     SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet_ntoa(CurSockAddr.sin_addr), ntohs(CurSockAddr.sin_port));\r
                        memcpy((char *)&CurSockAddrIPv4.sin_addr, pHostEntry->h_addr, pHostEntry->h_length);\r
-                       SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet_ntoa(CurSockAddrIPv4.sin_addr), ntohs(CurSockAddrIPv4.sin_port));\r
+                       // IPv6対応\r
+//                     SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet_ntoa(CurSockAddrIPv4.sin_addr), ntohs(CurSockAddrIPv4.sin_port));\r
+                       SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet_ntoa(CurSockAddrIPv4.sin_addr), ntohs(CurSockAddrIPv4.sin_port), MSGJPN333);\r
                }\r
                else\r
                {\r
@@ -2088,11 +2188,13 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                UseIPadrs = NO;\r
                                // IPv6対応\r
 //                             SetTaskMsg(MSGJPN018, PreMsg, DomainName, ntohs(CurSockAddr.sin_port));\r
-                               SetTaskMsg(MSGJPN018, PreMsg, DomainName, ntohs(CurSockAddrIPv4.sin_port));\r
+                               SetTaskMsg(MSGJPN018, PreMsg, DomainName, ntohs(CurSockAddrIPv4.sin_port), MSGJPN333);\r
                        }\r
                        else\r
                        {\r
-                               SetTaskMsg(MSGJPN019, host);\r
+                               // IPv6対応\r
+//                             SetTaskMsg(MSGJPN019, host);\r
+                               SetTaskMsg(MSGJPN019, host, MSGJPN333);\r
                                return(INVALID_SOCKET);\r
                        }\r
                }\r
@@ -2100,7 +2202,7 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
        else\r
                // IPv6対応\r
 //             SetTaskMsg(MSGJPN020, PreMsg, inet_ntoa(CurSockAddr.sin_addr), ntohs(CurSockAddr.sin_port));\r
-               SetTaskMsg(MSGJPN020, PreMsg, inet_ntoa(CurSockAddrIPv4.sin_addr), ntohs(CurSockAddrIPv4.sin_port));\r
+               SetTaskMsg(MSGJPN020, PreMsg, inet_ntoa(CurSockAddrIPv4.sin_addr), ntohs(CurSockAddrIPv4.sin_port), MSGJPN333);\r
 \r
        if((Fwall == FWALL_SOCKS4) || (Fwall == FWALL_SOCKS5_NOAUTH) || (Fwall == FWALL_SOCKS5_USER))\r
        {\r
@@ -2138,7 +2240,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                memcpy((char *)&SocksSockAddrIPv4.sin_addr, pHostEntry->h_addr, pHostEntry->h_length);\r
                        else\r
                        {\r
-                               SetTaskMsg(MSGJPN021, FwallHost);\r
+                               // IPv6対応\r
+//                             SetTaskMsg(MSGJPN021, FwallHost);\r
+                               SetTaskMsg(MSGJPN021, FwallHost, MSGJPN333);\r
                                return INVALID_SOCKET;\r
                        }\r
                }\r
@@ -2148,7 +2252,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
 //             SetTaskMsg(MSGJPN022, inet_ntoa(SocksSockAddr.sin_addr), ntohs(SocksSockAddr.sin_port));\r
                SocksSockAddrIPv4.sin_port = htons((u_short)FwallPort);\r
                SocksSockAddrIPv4.sin_family = AF_INET;\r
-               SetTaskMsg(MSGJPN022, inet_ntoa(SocksSockAddrIPv4.sin_addr), ntohs(SocksSockAddrIPv4.sin_port));\r
+               // IPv6対応\r
+//             SetTaskMsg(MSGJPN022, inet_ntoa(SocksSockAddrIPv4.sin_addr), ntohs(SocksSockAddrIPv4.sin_port));\r
+               SetTaskMsg(MSGJPN022, inet_ntoa(SocksSockAddrIPv4.sin_addr), ntohs(SocksSockAddrIPv4.sin_port), MSGJPN333);\r
                // connectで接続する先はSOCKSサーバ\r
                // IPv6対応\r
 //             memcpy(&saSockAddr, &SocksSockAddr, sizeof(SocksSockAddr));\r
@@ -2181,7 +2287,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                   (Socks4GetCmdReply(sSocket, &Socks4Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks4Reply.Result != SOCKS4_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN023, Socks4Reply.Result);\r
+                                       // IPv6対応\r
+//                                     SetTaskMsg(MSGJPN023, Socks4Reply.Result);\r
+                                       SetTaskMsg(MSGJPN023, Socks4Reply.Result, MSGJPN333);\r
                                        DoClose(sSocket);\r
                                        sSocket = INVALID_SOCKET;\r
                                }\r
@@ -2203,7 +2311,9 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                   (Socks5GetCmdReply(sSocket, &Socks5Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks5Reply.Result != SOCKS5_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN024, Socks5Reply.Result);\r
+                                       // IPv6対応\r
+//                                     SetTaskMsg(MSGJPN024, Socks5Reply.Result);\r
+                                       SetTaskMsg(MSGJPN024, Socks5Reply.Result, MSGJPN333);\r
                                        DoClose(sSocket);\r
                                        sSocket = INVALID_SOCKET;\r
                                }\r
@@ -2211,18 +2321,24 @@ SOCKET connectsockIPv4(char *host, int port, char *PreMsg, int *CancelCheckWork)
                        }\r
 \r
                        if(sSocket != INVALID_SOCKET)\r
-                               SetTaskMsg(MSGJPN025);\r
+                               // IPv6対応\r
+//                             SetTaskMsg(MSGJPN025);\r
+                               SetTaskMsg(MSGJPN025, MSGJPN333);\r
                }\r
                else\r
                {\r
 //#pragma aaa\r
-                       SetTaskMsg(MSGJPN026/*"接続できません(2) %x", sSocket*/);\r
+                       // IPv6対応\r
+//                     SetTaskMsg(MSGJPN026/*"接続できません(2) %x", sSocket*/);\r
+                       SetTaskMsg(MSGJPN026/*"接続できません(2) %x", sSocket*/, MSGJPN333);\r
                        DoClose(sSocket);\r
                        sSocket = INVALID_SOCKET;\r
                }\r
        }\r
        else\r
-               SetTaskMsg(MSGJPN027);\r
+               // IPv6対応\r
+//             SetTaskMsg(MSGJPN027);\r
+               SetTaskMsg(MSGJPN027, MSGJPN333);\r
 \r
        return(sSocket);\r
 }\r
@@ -2268,31 +2384,31 @@ SOCKET connectsockIPv6(char *host, int port, char *PreMsg, int *CancelCheckWork)
                else\r
                {\r
                        // アドレスを取得\r
-                       SetTaskMsg(MSGJPN016, DomainName);\r
+                       SetTaskMsg(MSGJPN016, DomainName, MSGJPN334);\r
                        pHostEntry = do_gethostbynameIPv6(host, HostEntry, MAXGETHOSTSTRUCT, CancelCheckWork);\r
                }\r
 \r
                if(pHostEntry != NULL)\r
                {\r
                        memcpy((char *)&CurSockAddrIPv6.sin6_addr, pHostEntry->h_addr, pHostEntry->h_length);\r
-                       SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet6_ntoa(CurSockAddrIPv6.sin6_addr), ntohs(CurSockAddrIPv6.sin6_port));\r
+                       SetTaskMsg(MSGJPN017, PreMsg, DomainName, inet6_ntoa(CurSockAddrIPv6.sin6_addr), ntohs(CurSockAddrIPv6.sin6_port), MSGJPN334);\r
                }\r
                else\r
                {\r
                        if((Fwall == FWALL_SOCKS5_NOAUTH) || (Fwall == FWALL_SOCKS5_USER))\r
                        {\r
                                UseIPadrs = NO;\r
-                               SetTaskMsg(MSGJPN018, PreMsg, DomainName, ntohs(CurSockAddrIPv6.sin6_port));\r
+                               SetTaskMsg(MSGJPN018, PreMsg, DomainName, ntohs(CurSockAddrIPv6.sin6_port), MSGJPN334);\r
                        }\r
                        else\r
                        {\r
-                               SetTaskMsg(MSGJPN019, host);\r
+                               SetTaskMsg(MSGJPN019, host, MSGJPN334);\r
                                return(INVALID_SOCKET);\r
                        }\r
                }\r
        }\r
        else\r
-               SetTaskMsg(MSGJPN020, PreMsg, inet6_ntoa(CurSockAddrIPv6.sin6_addr), ntohs(CurSockAddrIPv6.sin6_port));\r
+               SetTaskMsg(MSGJPN020, PreMsg, inet6_ntoa(CurSockAddrIPv6.sin6_addr), ntohs(CurSockAddrIPv6.sin6_port), MSGJPN334);\r
 \r
        if((Fwall == FWALL_SOCKS5_NOAUTH) || (Fwall == FWALL_SOCKS5_USER))\r
        {\r
@@ -2310,13 +2426,13 @@ SOCKET connectsockIPv6(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                memcpy((char *)&SocksSockAddrIPv6.sin6_addr, pHostEntry->h_addr, pHostEntry->h_length);\r
                        else\r
                        {\r
-                               SetTaskMsg(MSGJPN021, FwallHost);\r
+                               SetTaskMsg(MSGJPN021, FwallHost, MSGJPN334);\r
                                return INVALID_SOCKET;\r
                        }\r
                }\r
                SocksSockAddrIPv6.sin6_port = htons((u_short)FwallPort);\r
                SocksSockAddrIPv6.sin6_family = AF_INET6;\r
-               SetTaskMsg(MSGJPN022, inet6_ntoa(SocksSockAddrIPv6.sin6_addr), ntohs(SocksSockAddrIPv6.sin6_port));\r
+               SetTaskMsg(MSGJPN022, inet6_ntoa(SocksSockAddrIPv6.sin6_addr), ntohs(SocksSockAddrIPv6.sin6_port), MSGJPN334);\r
                // connectで接続する先はSOCKSサーバ\r
                memcpy(&saSockAddr, &SocksSockAddrIPv6, sizeof(SocksSockAddrIPv6));\r
        }\r
@@ -2352,7 +2468,7 @@ SOCKET connectsockIPv6(char *host, int port, char *PreMsg, int *CancelCheckWork)
                                   (Socks5GetCmdReply(sSocket, &Socks5Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks5Reply.Result != SOCKS5_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN024, Socks5Reply.Result);\r
+                                       SetTaskMsg(MSGJPN024, Socks5Reply.Result, MSGJPN334);\r
                                        DoClose(sSocket);\r
                                        sSocket = INVALID_SOCKET;\r
                                }\r
@@ -2360,18 +2476,18 @@ SOCKET connectsockIPv6(char *host, int port, char *PreMsg, int *CancelCheckWork)
                        }\r
 \r
                        if(sSocket != INVALID_SOCKET)\r
-                               SetTaskMsg(MSGJPN025);\r
+                               SetTaskMsg(MSGJPN025, MSGJPN334);\r
                }\r
                else\r
                {\r
 //#pragma aaa\r
-                       SetTaskMsg(MSGJPN026/*"接続できません(2) %x", sSocket*/);\r
+                       SetTaskMsg(MSGJPN026/*"接続できません(2) %x", sSocket*/, MSGJPN334);\r
                        DoClose(sSocket);\r
                        sSocket = INVALID_SOCKET;\r
                }\r
        }\r
        else\r
-               SetTaskMsg(MSGJPN027);\r
+               SetTaskMsg(MSGJPN027, MSGJPN334);\r
 \r
        return(sSocket);\r
 }\r
@@ -2454,7 +2570,9 @@ SOCKET GetFTPListenSocketIPv4(SOCKET ctrl_skt, int *CancelCheckWork)
                                   (Socks4GetCmdReply(listen_skt, &Socks4Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks4Reply.Result != SOCKS4_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN028, Socks4Reply.Result);\r
+                                       // IPv6対応\r
+//                                     SetTaskMsg(MSGJPN028, Socks4Reply.Result);\r
+                                       SetTaskMsg(MSGJPN028, Socks4Reply.Result, MSGJPN333);\r
                                        DoClose(listen_skt);\r
                                        listen_skt = INVALID_SOCKET;\r
                                }\r
@@ -2496,7 +2614,9 @@ SOCKET GetFTPListenSocketIPv4(SOCKET ctrl_skt, int *CancelCheckWork)
                                   (Socks5GetCmdReply(listen_skt, &Socks5Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks5Reply.Result != SOCKS5_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN029, Socks5Reply.Result);\r
+                                       // IPv6対応\r
+//                                     SetTaskMsg(MSGJPN029, Socks5Reply.Result);\r
+                                       SetTaskMsg(MSGJPN029, Socks5Reply.Result, MSGJPN333);\r
                                        DoClose(listen_skt);\r
                                        listen_skt = INVALID_SOCKET;\r
                                }\r
@@ -2556,7 +2676,9 @@ SOCKET GetFTPListenSocketIPv4(SOCKET ctrl_skt, int *CancelCheckWork)
                        }\r
 \r
                        if(listen_skt == INVALID_SOCKET)\r
-                               SetTaskMsg(MSGJPN030);\r
+                               // IPv6対応\r
+//                             SetTaskMsg(MSGJPN030);\r
+                               SetTaskMsg(MSGJPN030, MSGJPN333);\r
                }\r
        }\r
        else\r
@@ -2573,7 +2695,9 @@ SOCKET GetFTPListenSocketIPv4(SOCKET ctrl_skt, int *CancelCheckWork)
                                UC(a[0]), UC(a[1]), UC(a[2]), UC(a[3]),\r
                                UC(p[0]), UC(p[1])) / 100) != FTP_COMPLETE)\r
                {\r
-                       SetTaskMsg(MSGJPN031);\r
+                       // IPv6対応\r
+//                     SetTaskMsg(MSGJPN031);\r
+                       SetTaskMsg(MSGJPN031, MSGJPN333);\r
                        do_closesocket(listen_skt);\r
                        listen_skt = INVALID_SOCKET;\r
                }\r
@@ -2630,7 +2754,7 @@ SOCKET GetFTPListenSocketIPv6(SOCKET ctrl_skt, int *CancelCheckWork)
                                   (Socks5GetCmdReply(listen_skt, &Socks5Reply, CancelCheckWork) != FFFTP_SUCCESS) || \r
                                   (Socks5Reply.Result != SOCKS5_RES_OK))\r
                                {\r
-                                       SetTaskMsg(MSGJPN029, Socks5Reply.Result);\r
+                                       SetTaskMsg(MSGJPN029, Socks5Reply.Result, MSGJPN334);\r
                                        DoClose(listen_skt);\r
                                        listen_skt = INVALID_SOCKET;\r
                                }\r
@@ -2690,7 +2814,7 @@ SOCKET GetFTPListenSocketIPv6(SOCKET ctrl_skt, int *CancelCheckWork)
                        }\r
 \r
                        if(listen_skt == INVALID_SOCKET)\r
-                               SetTaskMsg(MSGJPN030);\r
+                               SetTaskMsg(MSGJPN030, MSGJPN334);\r
                }\r
        }\r
        else\r
@@ -2707,7 +2831,7 @@ SOCKET GetFTPListenSocketIPv6(SOCKET ctrl_skt, int *CancelCheckWork)
                                AddressToStringIPv6(Adrs, a),\r
                                (UC(p[0]) << 8) | UC(p[1])) / 100) != FTP_COMPLETE)\r
                {\r
-                       SetTaskMsg(MSGJPN031);\r
+                       SetTaskMsg(MSGJPN031, MSGJPN334);\r
                        do_closesocket(listen_skt);\r
                        listen_skt = INVALID_SOCKET;\r
                }\r
index 3ffd7fb..e7c955c 100644 (file)
@@ -62,6 +62,13 @@ Changes in Ver.1.98e
 \r
 -- Fixed bugs of hanging on exit in some cases.\r
 \r
+-- Fixed bugs of hanging at accessing non-existent directories without full\r
+   path.\r
+\r
+-- Changed behavior of Auto of network type selection.\r
+   Name resolution and connection will be performed at same time on IPv4 and\r
+   IPv6, and whichever finished earlier will be used.\r
+\r
 \r
 Outline\r
 -------\r
index ef7593e..dd7f828 100644 (file)
@@ -34,6 +34,13 @@ Changes in Ver.1.98e
 \r
 -- Fixed bugs of hanging on exit in some cases.\r
 \r
+-- Fixed bugs of hanging at accessing non-existent directories without full\r
+   path.\r
+\r
+-- Changed behavior of Auto of network type selection.\r
+   Name resolution and connection will be performed at same time on IPv4 and\r
+   IPv6, and whichever finished earlier will be used.\r
+\r
 Changes in Ver.1.98d\r
 --------------------\r
 \r
index c66b5c4..0eeed49 100644 (file)
@@ -66,6 +66,13 @@ Ver 1.98e
 \r
 \81E\8fI\97¹\8e\9e\82É\83t\83\8a\81[\83Y\82·\82é\82±\82Æ\82ª\82 \82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
 \r
+\81E\83t\83\8b\83p\83X\82Å\83A\83N\83Z\83X\82µ\82È\82¢\90Ý\92è\82Å\91\8dÝ\82µ\82È\82¢\83f\83B\83\8c\83N\83g\83\8a\82É\83A\83N\83Z\83X\82·\82é\82Æ\r
+\81@\83t\83\8a\81[\83Y\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\83l\83b\83g\83\8f\81[\83N\82Ì\8eí\97Þ\82ð\8e©\93®\82É\90Ý\92è\82µ\82Ä\82¢\82é\8fê\8d\87\82Ì\8b\93\93®\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
+\81@IPv4\82ÆIPv6\82Ì\97¼\95û\82Å\96¼\91O\89ð\8c\88\82Æ\90Ú\91±\82ð\93¯\8e\9e\82É\8ds\82¢\81A\90æ\82É\90Ú\91±\82ª\8a®\97¹\82µ\82½\95û\82ð\r
+\81@\8eg\97p\82µ\82Ü\82·\81B\r
+\r
 \r
 Ver 1.96d\88È\91O\82Ö\96ß\82·\8fê\8d\87\r
 -----------------------\r
index a2ba4fc..2518dfb 100644 (file)
@@ -38,6 +38,13 @@ FFFTP
 \r
 \81E\8fI\97¹\8e\9e\82É\83t\83\8a\81[\83Y\82·\82é\82±\82Æ\82ª\82 \82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
 \r
+\81E\83t\83\8b\83p\83X\82Å\83A\83N\83Z\83X\82µ\82È\82¢\90Ý\92è\82Å\91\8dÝ\82µ\82È\82¢\83f\83B\83\8c\83N\83g\83\8a\82É\83A\83N\83Z\83X\82·\82é\82Æ\r
+\81@\83t\83\8a\81[\83Y\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\83l\83b\83g\83\8f\81[\83N\82Ì\8eí\97Þ\82ð\8e©\93®\82É\90Ý\92è\82µ\82Ä\82¢\82é\8fê\8d\87\82Ì\8b\93\93®\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
+\81@IPv4\82ÆIPv6\82Ì\97¼\95û\82Å\96¼\91O\89ð\8c\88\82Æ\90Ú\91±\82ð\93¯\8e\9e\82É\8ds\82¢\81A\90æ\82É\90Ú\91±\82ª\8a®\97¹\82µ\82½\95û\82ð\r
+\81@\8eg\97p\82µ\82Ü\82·\81B\r
+\r
 \81¡Ver 1.98d\r
 \r
 \81EMLSD\83R\83}\83\93\83h\82É\91Î\89\9e\82µ\82½\83z\83X\83g\82Å\82ÍMLSD\83R\83}\83\93\83h\82ð\97p\82¢\82Ä\83t\83@\83C\83\8b\88ê\97\97\82ð\r
index 91e2c35..b3e1da2 100644 (file)
@@ -798,7 +798,7 @@ static LRESULT FileListCommonWndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
                        if(hWnd == hWndListRemote)\r
                        {\r
                                if(AskConnecting() == YES)\r
-                                       UpLoadDragProc(wParam);\r
+                                       UploadDragProc(wParam);\r
                        }\r
                        else if(hWnd == hWndListLocal)\r
                        {\r
@@ -1443,7 +1443,7 @@ void GetLocalDirForWnd(void)
        if(DispDrives)\r
        {\r
                GetLogicalDriveStrings(FMAX_PATH, Scan);\r
-               NoDrives = LoadHideDriveListRegistory();\r
+               NoDrives = LoadHideDriveListRegistry();\r
 \r
                Pos = Scan;\r
                while(*Pos != NUL)\r
index 8639482..e13bc7d 100644 (file)
--- a/ftpproc.c
+++ b/ftpproc.c
@@ -71,7 +71,7 @@ static INT_PTR CALLBACK MirrorNotifyCallBack(HWND hDlg, UINT iMessage, WPARAM wP
 static INT_PTR CALLBACK MirrorDispListCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
 static void CountMirrorFiles(HWND hDlg, TRANSPACKET *Pkt);\r
 static int AskMirrorNoTrn(char *Fname, int Mode);\r
-static int AskUpLoadFileAttr(char *Fname);\r
+static int AskUploadFileAttr(char *Fname);\r
 // 64ビット対応\r
 //static BOOL CALLBACK UpDownAsDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK UpDownAsDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
@@ -140,14 +140,13 @@ static double FileSize;           /* ファイル総容量 */
 \r
 // ディレクトリ自動作成\r
 // ローカル側のパスから必要なフォルダを作成\r
-int MakeDirFromLocalPath(char* LocalFile)\r
+int MakeDirFromLocalPath(char* LocalFile, char* Old)\r
 {\r
        TRANSPACKET Pkt;\r
        char* pDelimiter;\r
        char* pNext;\r
        char* Cat;\r
        int Len;\r
-       char Tmp[FMAX_PATH+1];\r
        int Make;\r
        pDelimiter = LocalFile;\r
        Make = NO;\r
@@ -156,9 +155,7 @@ int MakeDirFromLocalPath(char* LocalFile)
                Len = pNext - LocalFile;\r
                strncpy(Pkt.LocalFile, LocalFile, Len);\r
                Pkt.LocalFile[Len] = '\0';\r
-               AskLocalCurDir(Tmp, FMAX_PATH);\r
-               SetYenTail(Tmp);\r
-               if(strncmp(LocalFile, Tmp, Len + 1) != 0)\r
+               if(strncmp(LocalFile, Old, Len + 1) != 0)\r
                {\r
                        Cat = Pkt.LocalFile + (pDelimiter - LocalFile);\r
                        if(FnameCnv == FNAME_LOWER)\r
@@ -178,11 +175,13 @@ int MakeDirFromLocalPath(char* LocalFile)
        return Make;\r
 }\r
 \r
-void DownLoadProc(int ChName, int ForceFile, int All)\r
+void DownloadProc(int ChName, int ForceFile, int All)\r
 {\r
        FILELIST *FileListBase;\r
        FILELIST *Pos;\r
        TRANSPACKET Pkt;\r
+       // ディレクトリ自動作成\r
+       char Tmp[FMAX_PATH+1];\r
 \r
        // 同時接続対応\r
        CancelFlg = NO;\r
@@ -286,6 +285,8 @@ void DownLoadProc(int ChName, int ForceFile, int All)
                                Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                Pkt.KanaCnv = AskHostKanaCnv();\r
 \r
+                               // ディレクトリ自動作成\r
+                               strcpy(Tmp, Pkt.LocalFile);\r
                                Pkt.Mode = CheckLocalFile(&Pkt);        /* Pkt.ExistSize がセットされる */\r
                                if(Pkt.Mode == EXIST_ABORT)\r
                                        break;\r
@@ -294,7 +295,7 @@ void DownLoadProc(int ChName, int ForceFile, int All)
 //                                     AddTransFileList(&Pkt);\r
                                {\r
                                        if(MakeAllDir == YES)\r
-                                               MakeDirFromLocalPath(Pkt.LocalFile);\r
+                                               MakeDirFromLocalPath(Pkt.LocalFile, Tmp);\r
                                        AddTransFileList(&Pkt);\r
                                }\r
                        }\r
@@ -331,7 +332,7 @@ void DownLoadProc(int ChName, int ForceFile, int All)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-void DirectDownLoadProc(char *Fname)\r
+void DirectDownloadProc(char *Fname)\r
 {\r
        TRANSPACKET Pkt;\r
 \r
@@ -434,7 +435,7 @@ void DirectDownLoadProc(char *Fname)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-void InputDownLoadProc(void)\r
+void InputDownloadProc(void)\r
 {\r
        char Path[FMAX_PATH+1];\r
        int Tmp;\r
@@ -444,7 +445,7 @@ void InputDownLoadProc(void)
        strcpy(Path, "");\r
        if(InputDialogBox(downname_dlg, GetMainHwnd(), NULL, Path, FMAX_PATH, &Tmp, IDH_HELP_TOPIC_0000001) == YES)\r
        {\r
-               DirectDownLoadProc(Path);\r
+               DirectDownloadProc(Path);\r
        }\r
 \r
 //     EnableUserOpe();\r
@@ -940,7 +941,7 @@ static INT_PTR CALLBACK DownExistDialogCallBack(HWND hDlg, UINT iMessage, WPARAM
 \r
 // ディレクトリ自動作成\r
 // リモート側のパスから必要なディレクトリを作成\r
-int MakeDirFromRemotePath(char* RemoteFile, int FirstAdd)\r
+int MakeDirFromRemotePath(char* RemoteFile, char* Old, int FirstAdd)\r
 {\r
        TRANSPACKET Pkt;\r
        TRANSPACKET Pkt1;\r
@@ -948,7 +949,6 @@ int MakeDirFromRemotePath(char* RemoteFile, int FirstAdd)
        char* pNext;\r
        char* Cat;\r
        int Len;\r
-       char Tmp[FMAX_PATH+1];\r
        int Make;\r
        pDelimiter = RemoteFile;\r
        Make = NO;\r
@@ -957,9 +957,7 @@ int MakeDirFromRemotePath(char* RemoteFile, int FirstAdd)
                Len = pNext - RemoteFile;\r
                strncpy(Pkt.RemoteFile, RemoteFile, Len);\r
                Pkt.RemoteFile[Len] = '\0';\r
-               AskRemoteCurDir(Tmp, FMAX_PATH);\r
-               SetSlashTail(Tmp);\r
-               if(strncmp(RemoteFile, Tmp, Len + 1) != 0)\r
+               if(strncmp(RemoteFile, Old, Len + 1) != 0)\r
                {\r
                        Cat = Pkt.RemoteFile + (pDelimiter - RemoteFile);\r
                        if(FnameCnv == FNAME_LOWER)\r
@@ -1004,7 +1002,7 @@ int MakeDirFromRemotePath(char* RemoteFile, int FirstAdd)
        return Make;\r
 }\r
 \r
-void UpLoadListProc(int ChName, int All)\r
+void UploadListProc(int ChName, int All)\r
 {\r
        FILELIST *FileListBase;\r
        FILELIST *Pos;\r
@@ -1143,7 +1141,7 @@ void UpLoadListProc(int ChName, int All)
                                Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
                                Pkt.Size = 0;\r
                                Pkt.Time = Pos->Time;\r
-                               Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
+                               Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
                                // UTF-8対応\r
                                Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
@@ -1153,6 +1151,8 @@ void UpLoadListProc(int ChName, int All)
                                        CalcExtentSize(&Pkt, Pos->Size);\r
                                }\r
 #endif\r
+                               // ディレクトリ自動作成\r
+                               strcpy(Tmp, Pkt.RemoteFile);\r
                                Pkt.Mode = CheckRemoteFile(&Pkt, RemoteList);\r
                                if(Pkt.Mode == EXIST_ABORT)\r
                                        break;\r
@@ -1161,7 +1161,7 @@ void UpLoadListProc(int ChName, int All)
                                        // ディレクトリ自動作成\r
                                        if(MakeAllDir == YES)\r
                                        {\r
-                                               if(MakeDirFromRemotePath(Pkt.RemoteFile, FirstAdd) == YES)\r
+                                               if(MakeDirFromRemotePath(Pkt.RemoteFile, Tmp, FirstAdd) == YES)\r
                                                        FirstAdd = NO;\r
                                        }\r
                                        if((FirstAdd == YES) && (AskNoFullPathMode() == YES))\r
@@ -1210,7 +1210,7 @@ void UpLoadListProc(int ChName, int All)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-void UpLoadDragProc(WPARAM wParam)\r
+void UploadDragProc(WPARAM wParam)\r
 {\r
        FILELIST *FileListBase;\r
        FILELIST *Pos;\r
@@ -1316,7 +1316,7 @@ void UpLoadDragProc(WPARAM wParam)
                                Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
                                Pkt.Size = 0;\r
                                Pkt.Time = Pos->Time;\r
-                               Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
+                               Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
                                // UTF-8対応\r
                                Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
@@ -1327,6 +1327,8 @@ void UpLoadDragProc(WPARAM wParam)
                                        CalcExtentSize(&Pkt, Pos->Size);\r
                                }\r
 #endif\r
+                               // ディレクトリ自動作成\r
+                               strcpy(Tmp, Pkt.RemoteFile);\r
                                Pkt.Mode = CheckRemoteFile(&Pkt, RemoteList);\r
                                if(Pkt.Mode == EXIST_ABORT)\r
                                        break;\r
@@ -1335,7 +1337,7 @@ void UpLoadDragProc(WPARAM wParam)
                                        // ディレクトリ自動作成\r
                                        if(MakeAllDir == YES)\r
                                        {\r
-                                               if(MakeDirFromRemotePath(Pkt.RemoteFile, FirstAdd) == YES)\r
+                                               if(MakeDirFromRemotePath(Pkt.RemoteFile, Tmp, FirstAdd) == YES)\r
                                                        FirstAdd = NO;\r
                                        }\r
                                        if((FirstAdd == YES) && (AskNoFullPathMode() == YES))\r
@@ -1600,7 +1602,7 @@ void MirrorUploadProc(int Notify)
                                                Pkt.Type = AskTransferTypeAssoc(Pkt.LocalFile, AskTransferType());\r
                                                Pkt.Size = 0;\r
                                                Pkt.Time = LocalPos->Time;\r
-                                               Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
+                                               Pkt.Attr = AskUploadFileAttr(Pkt.RemoteFile);\r
                                                Pkt.KanjiCode = AskHostKanjiCode();\r
                                                // UTF-8対応\r
                                                Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
@@ -1973,7 +1975,7 @@ static int AskMirrorNoTrn(char *Fname, int Mode)
 *              int 属性 (-1=設定なし)\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int AskUpLoadFileAttr(char *Fname)\r
+static int AskUploadFileAttr(char *Fname)\r
 {\r
        int Ret;\r
        int Sts;\r
index 7dc924c..ea83dde 100644 (file)
--- a/getput.c
+++ b/getput.c
@@ -84,9 +84,9 @@ static void DispTransPacket(TRANSPACKET *Pkt);
 static void EraseTransFileList(void);\r
 static ULONG WINAPI TransferThread(void *Dummy);\r
 static int MakeNonFullPath(TRANSPACKET *Pkt, char *CurDir, char *Tmp);\r
-static int DownLoadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
-static int DownLoadPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
-static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *CancelCheckWork);\r
+static int DownloadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
+static int DownloadPassive(TRANSPACKET *Pkt, int *CancelCheckWork);\r
+static int DownloadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *CancelCheckWork);\r
 static void DispDownloadFinishMsg(TRANSPACKET *Pkt, int iRetCode);\r
 // 再転送対応\r
 //static int DispUpDownErrDialog(int ResID, HWND hWnd, char *Fname);\r
@@ -98,10 +98,10 @@ static int SetDownloadResume(TRANSPACKET *Pkt, int ProcMode, LONGLONG Size, int
 // 64ビット対応\r
 //static BOOL CALLBACK NoResumeWndProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
 static INT_PTR CALLBACK NoResumeWndProc(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
-static int DoUpLoad(SOCKET cSkt, TRANSPACKET *Pkt);\r
-static int UpLoadNonPassive(TRANSPACKET *Pkt);\r
-static int UpLoadPassive(TRANSPACKET *Pkt);\r
-static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt);\r
+static int DoUpload(SOCKET cSkt, TRANSPACKET *Pkt);\r
+static int UploadNonPassive(TRANSPACKET *Pkt);\r
+static int UploadPassive(TRANSPACKET *Pkt);\r
+static int UploadFile(TRANSPACKET *Pkt, SOCKET dSkt);\r
 // 同時接続対応\r
 //static int TermCodeConvAndSend(TERMCODECONVINFO *tInfo, SOCKET Skt, char *Data, int Size, int Ascii);\r
 static int TermCodeConvAndSend(TERMCODECONVINFO *tInfo, SOCKET Skt, char *Data, int Size, int Ascii, int *CancelCheckWork);\r
@@ -182,6 +182,8 @@ extern int MirUpDelNotify;
 extern int MirDownDelNotify;\r
 extern int FolderAttr;\r
 extern int FolderAttrNum;\r
+// 同時接続対応\r
+extern int SendQuit;\r
 \r
 \r
 /*----- ファイル転送スレッドを起動する ----------------------------------------\r
@@ -791,7 +793,7 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                        if(timeGetTime() - LastUsed > 60000 || NewCmdSkt == INVALID_SOCKET)\r
                                        {\r
                                                ReleaseMutex(hListAccMutex);\r
-                                               SendData(TrnSkt, "QUIT\r\n", 6, 0, &Canceled[ThreadCount]);\r
+                                               DoQUIT(TrnSkt, &Canceled[ThreadCount]);\r
                                                DoClose(TrnSkt);\r
                                                TrnSkt = INVALID_SOCKET;\r
 //                                             WaitForSingleObject(hListAccMutex, INFINITE);\r
@@ -882,11 +884,11 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                                }\r
 \r
                                                Down = YES;\r
-//                                             if(DoDownLoad(AskTrnCtrlSkt(), TransPacketBase, NO) == 429)\r
+//                                             if(DoDownload(AskTrnCtrlSkt(), TransPacketBase, NO) == 429)\r
 //                                             {\r
 //                                                     if(ReConnectTrnSkt() == FFFTP_SUCCESS)\r
-//                                                             DoDownLoad(AskTrnCtrlSkt(), TransPacketBase, NO, &Canceled);\r
-                                                               DoDownLoad(TrnSkt, Pos, NO, &Canceled[Pos->ThreadCount]);\r
+//                                                             DoDownload(AskTrnCtrlSkt(), TransPacketBase, NO, &Canceled);\r
+                                                               DoDownload(TrnSkt, Pos, NO, &Canceled[Pos->ThreadCount]);\r
 //                                             }\r
                                        }\r
                                }\r
@@ -904,11 +906,11 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                if(MakeNonFullPath(Pos, CurDir[Pos->ThreadCount], Tmp) == FFFTP_SUCCESS)\r
                                {\r
                                        Up = YES;\r
-//                                     if(DoUpLoad(AskTrnCtrlSkt(), TransPacketBase) == 429)\r
+//                                     if(DoUpload(AskTrnCtrlSkt(), TransPacketBase) == 429)\r
 //                                     {\r
 //                                             if(ReConnectTrnSkt() == FFFTP_SUCCESS)\r
-//                                                     DoUpLoad(AskTrnCtrlSkt(), TransPacketBase);\r
-                                                       DoUpLoad(TrnSkt, Pos);\r
+//                                                     DoUpload(AskTrnCtrlSkt(), TransPacketBase);\r
+                                                       DoUpload(TrnSkt, Pos);\r
 //                                     }\r
                                }\r
                                // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
@@ -1132,9 +1134,11 @@ static ULONG WINAPI TransferThread(void *Dummy)
                                {\r
                                        for(i = 0; i < MAX_DATA_CONNECTION; i++)\r
                                                Canceled[i] = YES;\r
+                                       if(Pos != NULL)\r
+                                               strcpy(Pos->Cmd, "");\r
+                                       Pos = NULL;\r
                                        EraseTransFileList();\r
                                        GoExit = YES;\r
-                                       Pos = NULL;\r
                                }\r
                                else\r
                                {\r
@@ -1297,7 +1301,7 @@ static int MakeNonFullPath(TRANSPACKET *Pkt, char *Cur, char *Tmp)
 *              からも呼ばれる。メインのスレッドから呼ばれる時は Pkt->hWndTrans == NULL。\r
 *----------------------------------------------------------------------------*/\r
 \r
-int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork)\r
+int DoDownload(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork)\r
 {\r
        int iRetCode;\r
        char Reply[ERR_MSG_LEN+7];\r
@@ -1339,9 +1343,9 @@ int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork)
                        else if(BackgrndMessageProc() == NO)\r
                        {\r
                                if(AskPasvMode() != YES)\r
-                                       iRetCode = DownLoadNonPassive(Pkt, CancelCheckWork);\r
+                                       iRetCode = DownloadNonPassive(Pkt, CancelCheckWork);\r
                                else\r
-                                       iRetCode = DownLoadPassive(Pkt, CancelCheckWork);\r
+                                       iRetCode = DownloadPassive(Pkt, CancelCheckWork);\r
                        }\r
                        else\r
                                iRetCode = 500;\r
@@ -1370,7 +1374,7 @@ int DoDownLoad(SOCKET cSkt, TRANSPACKET *Pkt, int DirList, int *CancelCheckWork)
 *              int 応答コード\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int DownLoadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork)\r
+static int DownloadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork)\r
 {\r
        int iRetCode;\r
        int iLength;\r
@@ -1444,16 +1448,16 @@ static int DownLoadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
                                        // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
                                        ReleaseMutex(hListAccMutex);\r
                                        // FTPS対応\r
-//                                     iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+//                                     iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                        if(IsSSLAttached(Pkt->ctrl_skt))\r
                                        {\r
                                                if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork))\r
-                                                       iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+                                                       iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                else\r
                                                        iRetCode = 500;\r
                                        }\r
                                        else\r
-                                               iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+                                               iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
 //                                     data_socket = DoClose(data_socket);\r
                                }\r
                        }\r
@@ -1489,7 +1493,7 @@ static int DownLoadNonPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
 *              int 応答コード\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int DownLoadPassive(TRANSPACKET *Pkt, int *CancelCheckWork)\r
+static int DownloadPassive(TRANSPACKET *Pkt, int *CancelCheckWork)\r
 {\r
        int iRetCode;\r
        SOCKET data_socket = INVALID_SOCKET;   // data channel socket\r
@@ -1537,16 +1541,16 @@ static int DownLoadPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
                                                // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
                                                ReleaseMutex(hListAccMutex);\r
                                                // FTPS対応\r
-//                                             iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+//                                             iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                if(IsSSLAttached(Pkt->ctrl_skt))\r
                                                {\r
                                                        if(AttachSSL(data_socket, Pkt->ctrl_skt, CancelCheckWork))\r
-                                                               iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+                                                               iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
                                                        else\r
                                                                iRetCode = 500;\r
                                                }\r
                                                else\r
-                                                       iRetCode = DownLoadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
+                                                       iRetCode = DownloadFile(Pkt, data_socket, CreateMode, CancelCheckWork);\r
 //                                             data_socket = DoClose(data_socket);\r
                                        }\r
                                        else\r
@@ -1596,7 +1600,7 @@ static int DownLoadPassive(TRANSPACKET *Pkt, int *CancelCheckWork)
 *                      ダイアログを出さない場合、このルーチンからDispDownloadSize()を呼ぶ\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *CancelCheckWork)\r
+static int DownloadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *CancelCheckWork)\r
 {\r
        int iNumBytes;\r
        char Buf[BUFSIZE];\r
@@ -2563,7 +2567,7 @@ static INT_PTR CALLBACK NoResumeWndProc(HWND hDlg, UINT iMessage, WPARAM wParam,
 *              int 応答コード\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int DoUpLoad(SOCKET cSkt, TRANSPACKET *Pkt)\r
+static int DoUpload(SOCKET cSkt, TRANSPACKET *Pkt)\r
 {\r
        int iRetCode;\r
        char Reply[ERR_MSG_LEN+7];\r
@@ -2597,9 +2601,9 @@ static int DoUpLoad(SOCKET cSkt, TRANSPACKET *Pkt)
                                else if(BackgrndMessageProc() == NO)\r
                                {\r
                                        if(AskPasvMode() != YES)\r
-                                               iRetCode = UpLoadNonPassive(Pkt);\r
+                                               iRetCode = UploadNonPassive(Pkt);\r
                                        else\r
-                                               iRetCode = UpLoadPassive(Pkt);\r
+                                               iRetCode = UploadPassive(Pkt);\r
                                }\r
                                else\r
                                        iRetCode = 500;\r
@@ -2644,7 +2648,7 @@ static int DoUpLoad(SOCKET cSkt, TRANSPACKET *Pkt)
 *              int 応答コード\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int UpLoadNonPassive(TRANSPACKET *Pkt)\r
+static int UploadNonPassive(TRANSPACKET *Pkt)\r
 {\r
        int iRetCode;\r
        int iLength;\r
@@ -2739,16 +2743,16 @@ static int UpLoadNonPassive(TRANSPACKET *Pkt)
                                // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
                                ReleaseMutex(hListAccMutex);\r
                                // FTPS対応\r
-//                             iRetCode = UpLoadFile(Pkt, data_socket);\r
+//                             iRetCode = UploadFile(Pkt, data_socket);\r
                                if(IsSSLAttached(Pkt->ctrl_skt))\r
                                {\r
                                        if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount]))\r
-                                               iRetCode = UpLoadFile(Pkt, data_socket);\r
+                                               iRetCode = UploadFile(Pkt, data_socket);\r
                                        else\r
                                                iRetCode = 500;\r
                                }\r
                                else\r
-                                       iRetCode = UpLoadFile(Pkt, data_socket);\r
+                                       iRetCode = UploadFile(Pkt, data_socket);\r
                                data_socket = DoClose(data_socket);\r
                        }\r
                }\r
@@ -2781,7 +2785,7 @@ static int UpLoadNonPassive(TRANSPACKET *Pkt)
 *              int 応答コード\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int UpLoadPassive(TRANSPACKET *Pkt)\r
+static int UploadPassive(TRANSPACKET *Pkt)\r
 {\r
        int iRetCode;\r
        SOCKET data_socket = INVALID_SOCKET;   // data channel socket\r
@@ -2852,16 +2856,16 @@ static int UpLoadPassive(TRANSPACKET *Pkt)
                                        // 一部TYPE、STOR(RETR)、PORT(PASV)を並列に処理できないホストがあるため\r
                                        ReleaseMutex(hListAccMutex);\r
                                        // FTPS対応\r
-//                                     iRetCode = UpLoadFile(Pkt, data_socket);\r
+//                                     iRetCode = UploadFile(Pkt, data_socket);\r
                                        if(IsSSLAttached(Pkt->ctrl_skt))\r
                                        {\r
                                                if(AttachSSL(data_socket, Pkt->ctrl_skt, &Canceled[Pkt->ThreadCount]))\r
-                                                       iRetCode = UpLoadFile(Pkt, data_socket);\r
+                                                       iRetCode = UploadFile(Pkt, data_socket);\r
                                                else\r
                                                        iRetCode = 500;\r
                                        }\r
                                        else\r
-                                               iRetCode = UpLoadFile(Pkt, data_socket);\r
+                                               iRetCode = UploadFile(Pkt, data_socket);\r
 \r
                                        data_socket = DoClose(data_socket);\r
                                }\r
@@ -2910,7 +2914,7 @@ static int UpLoadPassive(TRANSPACKET *Pkt)
 *              転送ダイアログを出さないでアップロードすることはない\r
 *----------------------------------------------------------------------------*/\r
 \r
-static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)\r
+static int UploadFile(TRANSPACKET *Pkt, SOCKET dSkt)\r
 {\r
        DWORD iNumBytes;\r
        HANDLE iFileHandle;\r
index 775607e..4fcdd9e 100644 (file)
--- a/hostman.c
+++ b/hostman.c
@@ -127,7 +127,7 @@ int SelectHost(int Type)
 \r
        /* ホスト設定を保存 */\r
        SetNodeLevelAll();\r
-       SaveRegistory();\r
+       SaveRegistry();\r
 \r
        return(Sts);\r
 }\r
diff --git a/main.c b/main.c
index c2723e0..b890086 100644 (file)
--- a/main.c
+++ b/main.c
@@ -234,7 +234,7 @@ BYTE SSLRootCAFileHash[20];
 // ファイルアイコン表示対応\r
 int DispFileIcon = NO;\r
 // ディレクトリ自動作成\r
-int MakeAllDir = YES;\r
+int MakeAllDir = NO;\r
 \r
 \r
 \r
@@ -452,7 +452,7 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow)
                /* 2010.02.01 genta マスターパスワードを入力させる\r
                  -z オプションがあるときは最初だけスキップ\r
                  -z オプションがないときは,デフォルトパスワードをまず試す\r
-                 LoadRegistory()する\r
+                 LoadRegistry()する\r
                  パスワードが不一致なら再入力するか尋ねる.\r
                  (破損していた場合はさせない)\r
                */\r
@@ -497,7 +497,7 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow)
                \r
                if(masterpass != 0)\r
                {\r
-                       LoadRegistory();\r
+                       LoadRegistry();\r
 \r
                        // 暗号化通信対応\r
                        SetSSLTimeoutCallback(TimeOut * 1000, SSLTimeoutCallback);\r
@@ -1067,42 +1067,42 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
 \r
                                case MENU_DOWNLOAD :\r
                                        SetCurrentDirAsDirHist();\r
-                                       DownLoadProc(NO, NO, NO);\r
+                                       DownloadProc(NO, NO, NO);\r
                                        break;\r
 \r
                                case MENU_DOWNLOAD_AS :\r
                                        SetCurrentDirAsDirHist();\r
-                                       DownLoadProc(YES, NO, NO);\r
+                                       DownloadProc(YES, NO, NO);\r
                                        break;\r
 \r
                                case MENU_DOWNLOAD_AS_FILE :\r
                                        SetCurrentDirAsDirHist();\r
-                                       DownLoadProc(NO, YES, NO);\r
+                                       DownloadProc(NO, YES, NO);\r
                                        break;\r
 \r
                                case MENU_DOWNLOAD_ALL :\r
                                        SetCurrentDirAsDirHist();\r
-                                       DownLoadProc(NO, NO, YES);\r
+                                       DownloadProc(NO, NO, YES);\r
                                        break;\r
 \r
                                case MENU_DOWNLOAD_NAME :\r
                                        SetCurrentDirAsDirHist();\r
-                                       InputDownLoadProc();\r
+                                       InputDownloadProc();\r
                                        break;\r
 \r
                                case MENU_UPLOAD :\r
                                        SetCurrentDirAsDirHist();\r
-                                       UpLoadListProc(NO, NO);\r
+                                       UploadListProc(NO, NO);\r
                                        break;\r
 \r
                                case MENU_UPLOAD_AS :\r
                                        SetCurrentDirAsDirHist();\r
-                                       UpLoadListProc(YES, NO);\r
+                                       UploadListProc(YES, NO);\r
                                        break;\r
 \r
                                case MENU_UPLOAD_ALL :\r
                                        SetCurrentDirAsDirHist();\r
-                                       UpLoadListProc(NO, YES);\r
+                                       UploadListProc(NO, YES);\r
                                        break;\r
 \r
                                case MENU_MIRROR_UPLOAD :\r
@@ -1363,7 +1363,7 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
 \r
                                case MENU_REGSAVE :\r
                                        GetListTabWidth();\r
-                                       SaveRegistory();\r
+                                       SaveRegistry();\r
                                        SaveSettingsToFile();\r
                                        break;\r
 \r
@@ -1379,7 +1379,7 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                case MENU_REGINIT :\r
                                        if(DialogBox(hInstFtp, MAKEINTRESOURCE(reginit_dlg), hWnd, ExeEscDialogProc) == YES)\r
                                        {\r
-                                               ClearRegistory();\r
+                                               ClearRegistry();\r
                                                SaveExit = NO;\r
                                                PostMessage(hWnd, WM_CLOSE, 0, 0L);\r
                                        }\r
@@ -2086,7 +2086,7 @@ static void ExitProc(HWND hWnd)
        if(SaveExit == YES)\r
        {\r
                GetListTabWidth();\r
-               SaveRegistory();\r
+               SaveRegistry();\r
 \r
                if((CacheEntry > 0) && (CacheSave == YES))\r
                        SaveCache();\r
@@ -2226,12 +2226,12 @@ void DoubleClickProc(int Win, int Mode, int App)
                                                        /* 不正なパスを検出 */\r
                                                        if(CheckPathViolation(&MainTransPkt) == NO)\r
                                                        {\r
-//                                                             if((Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO)) == 429)\r
+//                                                             if((Sts = DoDownload(AskCmdCtrlSkt(), &MainTransPkt, NO)) == 429)\r
 //                                                             {\r
 //                                                                     ReConnectCmdSkt();\r
                                                                        // 同時接続対応\r
                                                                        CancelFlg = NO;\r
-                                                                       Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO, &CancelFlg);\r
+                                                                       Sts = DoDownload(AskCmdCtrlSkt(), &MainTransPkt, NO, &CancelFlg);\r
 //                                                             }\r
                                                        }\r
 \r
index 068063c..92795c5 100644 (file)
 #define MSGJPN013              _Tu8("SHA-1 used.", "SHA-1 used.")\r
 #define MSGJPN014              _Tu8("MD4(S/KEY) used.", "MD4(S/KEY) used.")\r
 #define MSGJPN015              _Tu8("Can't process One-time Password.", "Can't process One-time Password.")\r
-#define MSGJPN016              _Tu8("Searching host %s.", "Searching host %s.")\r
-#define MSGJPN017              _Tu8("Connecting %sto host %s (%s (%d)).", "Connecting %sto host %s (%s (%d)).")\r
-#define MSGJPN018              _Tu8("Connecting %sto host %s (%d).", "Connecting %sto host %s (%d).")\r
-#define MSGJPN019              _Tu8("Host %s not found.", "Host %s not found.")\r
-#define MSGJPN020              _Tu8("Connecting %sto host %s (%d).", "Connecting %sto host %s (%d).")\r
-#define MSGJPN021              _Tu8("SOCKS server %s not found.", "SOCKS server %s not found.")\r
-#define MSGJPN022              _Tu8("Connecting to SOCKS server %s (%d).", "Connecting to SOCKS server %s (%d).")\r
-#define MSGJPN023              _Tu8("Can't connect to SOCKS server. (Err=%d)", "Can't connect to SOCKS server. (Err=%d)")\r
-#define MSGJPN024              _Tu8("Can't connect to SOCKS server. (Err=%d)", "Can't connect to SOCKS server. (Err=%d)")\r
-#define MSGJPN025              _Tu8("Connected.", "Connected.")\r
-#define MSGJPN026              _Tu8("Can't connected.", "Can't connected.")\r
-#define MSGJPN027              _Tu8("Can't create socket.", "Can't create socket.")\r
-#define MSGJPN028              _Tu8("Can't connect to SOCKS server. (Err=%d)", "Can't connect to SOCKS server. (Err=%d)")\r
-#define MSGJPN029              _Tu8("Can't connect to SOCKS server. (Err=%d)", "Can't connect to SOCKS server. (Err=%d)")\r
-#define MSGJPN030              _Tu8("Can't create listen socket.", "Can't create listen socket.")\r
-#define MSGJPN031              _Tu8("PORT command not accepted", "PORT command not accepted")\r
+#define MSGJPN016              _Tu8("Searching host %s. (%s)", "Searching host %s. (%s)")\r
+#define MSGJPN017              _Tu8("Connecting %sto host %s (%s (%d)). (%s)", "Connecting %sto host %s (%s (%d)). (%s)")\r
+#define MSGJPN018              _Tu8("Connecting %sto host %s (%d). (%s)", "Connecting %sto host %s (%d). (%s)")\r
+#define MSGJPN019              _Tu8("Host %s not found. (%s)", "Host %s not found. (%s)")\r
+#define MSGJPN020              _Tu8("Connecting %sto host %s (%d). (%s)", "Connecting %sto host %s (%d). (%s)")\r
+#define MSGJPN021              _Tu8("SOCKS server %s not found. (%s)", "SOCKS server %s not found. (%s)")\r
+#define MSGJPN022              _Tu8("Connecting to SOCKS server %s (%d). (%s)", "Connecting to SOCKS server %s (%d). (%s)")\r
+#define MSGJPN023              _Tu8("Can't connect to SOCKS server. (Err=%d) (%s)", "Can't connect to SOCKS server. (Err=%d) (%s)")\r
+#define MSGJPN024              _Tu8("Can't connect to SOCKS server. (Err=%d) (%s)", "Can't connect to SOCKS server. (Err=%d) (%s)")\r
+#define MSGJPN025              _Tu8("Connected. (%s)", "Connected. (%s)")\r
+#define MSGJPN026              _Tu8("Can't connected. (%s)", "Can't connected. (%s)")\r
+#define MSGJPN027              _Tu8("Can't create socket. (%s)", "Can't create socket. (%s)")\r
+#define MSGJPN028              _Tu8("Can't connect to SOCKS server. (Err=%d) (%s)", "Can't connect to SOCKS server. (Err=%d) (%s)")\r
+#define MSGJPN029              _Tu8("Can't connect to SOCKS server. (Err=%d) (%s)", "Can't connect to SOCKS server. (Err=%d) (%s)")\r
+#define MSGJPN030              _Tu8("Can't create listen socket. (%s)", "Can't create listen socket. (%s)")\r
+#define MSGJPN031              _Tu8("PORT command not accepted. (%s)", "PORT command not accepted. (%s)")\r
 #define MSGJPN032              _Tu8("Connection is cancelled by user.", "Connection is cancelled by user.")\r
 #define MSGJPN033              _Tu8("Can't send SOCKS command. (Cmd = %04X)", "Can't send SOCKS command. (Cmd = %04X)")\r
 #define MSGJPN034              _Tu8("Can't receive SOCKS5 reply.", "Can't receive SOCKS5 reply.")\r
index 69d3fd8..1c6b60c 100644 (file)
 #define MSGJPN013              _Tu8("SHA-1を使用します.", "SHA-1\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.")\r
 #define MSGJPN014              _Tu8("MD4(S/KEY)を使用します.", "MD4(S/KEY)\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.")\r
 #define MSGJPN015              _Tu8("ワンタイムパスワードが処理できません", "\xE3\x83\xAF\xE3\x83\xB3\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE5\x87\xA6\xE7\x90\x86\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93")\r
-#define MSGJPN016              _Tu8("ホスト %s を探しています.", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x82\x92\xE6\x8E\xA2\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.")\r
-#define MSGJPN017              _Tu8("%sホスト %s (%s (%d)) に接続しています.", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%s (%d)) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.")\r
-#define MSGJPN018              _Tu8("%sホスト %s (%d) に接続しています.", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.")\r
-#define MSGJPN019              _Tu8("ホスト %s が見つかりません.", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
-#define MSGJPN020              _Tu8("%sホスト %s (%d) に接続しています.", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99.")\r
-#define MSGJPN021              _Tu8("SOCKSサーバー %s が見つかりません.", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
-#define MSGJPN022              _Tu8("SOCKSサーバー %s (%d) に接続しています。", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82")\r
-#define MSGJPN023              _Tu8("SOCKSサーバーに接続できません. (Err=%d)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)")\r
-#define MSGJPN024              _Tu8("SOCKSサーバーに接続できません. (Err=%d)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)")\r
-#define MSGJPN025              _Tu8("接続しました.", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.")\r
-#define MSGJPN026              _Tu8("接続できません.", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
-#define MSGJPN027              _Tu8("ソケットが作成できません.", "\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
-#define MSGJPN028              _Tu8("SOCKSサーバーに接続できません. (Err=%d)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)")\r
-#define MSGJPN029              _Tu8("SOCKSサーバーに接続できません. (Err=%d)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)")\r
-#define MSGJPN030              _Tu8("Listenソケットが作成できません.", "Listen\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
-#define MSGJPN031              _Tu8("PORTコマンドが受け付けられません.", "PORT\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93.")\r
+#define MSGJPN016              _Tu8("ホスト %s を探しています. (%s)", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x82\x92\xE6\x8E\xA2\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")\r
+#define MSGJPN017              _Tu8("%sホスト %s (%s (%d)) に接続しています. (%s)", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%s (%d)) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")\r
+#define MSGJPN018              _Tu8("%sホスト %s (%d) に接続しています. (%s)", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")\r
+#define MSGJPN019              _Tu8("ホスト %s が見つかりません. (%s)", "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
+#define MSGJPN020              _Tu8("%sホスト %s (%d) に接続しています. (%s)", "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99. (%s)")\r
+#define MSGJPN021              _Tu8("SOCKSサーバー %s が見つかりません. (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
+#define MSGJPN022              _Tu8("SOCKSサーバー %s (%d) に接続しています。 (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82 (%s)")\r
+#define MSGJPN023              _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")\r
+#define MSGJPN024              _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")\r
+#define MSGJPN025              _Tu8("接続しました. (%s)", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%s)")\r
+#define MSGJPN026              _Tu8("接続できません. (%s)", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
+#define MSGJPN027              _Tu8("ソケットが作成できません. (%s)", "\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
+#define MSGJPN028              _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")\r
+#define MSGJPN029              _Tu8("SOCKSサーバーに接続できません. (Err=%d) (%s)", "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x83\xBC\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d) (%s)")\r
+#define MSGJPN030              _Tu8("Listenソケットが作成できません. (%s)", "Listen\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
+#define MSGJPN031              _Tu8("PORTコマンドが受け付けられません. (%s)", "PORT\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (%s)")\r
 #define MSGJPN032              _Tu8("接続はユーザーによって中止されました.", "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xAF\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE3\x83\xBC\xE3\x81\xAB\xE3\x82\x88\xE3\x81\xA3\xE3\x81\xA6\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F.")\r
 #define MSGJPN033              _Tu8("SOCKSのコマンドが送れませんでした (Cmd = %04X)", "SOCKS\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE9\x80\x81\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F (Cmd = %04X)")\r
 #define MSGJPN034              _Tu8("SOCKS5のコマンドに対するリプライが受信できませんでした", "SOCKS5\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\xAB\xE5\xAF\xBE\xE3\x81\x99\xE3\x82\x8B\xE3\x83\xAA\xE3\x83\x97\xE3\x83\xA9\xE3\x82\xA4\xE3\x81\x8C\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F")\r
diff --git a/msgutil.c b/msgutil.c
deleted file mode 100644 (file)
index 59487cf..0000000
--- a/msgutil.c
+++ /dev/null
@@ -1,110 +0,0 @@
-
-#include <windows.h>
-
-/**
- * アドレス固定のWide文字列とそれに対応するUTF-8文字列を格納する構造体
- */
-typedef struct {
-       const wchar_t *ws;
-       char *u8s;
-       size_t u8size;
-} StrPair;
-
-static BOOL g_initialized = FALSE;
-static CRITICAL_SECTION g_msgUtilLLock;
-
-// Wide文字列 - UTF-8文字列 対応Map
-static StrPair *pStrMap = NULL;
-
-//! 現在有効なStrPairの数
-static int strMapCount = 0;
-
-//! 確保済みのStrPairの領域数
-static int strMapMaxCount = 0;
-
-/**
- * staticなWide文字列に対応するUTF-8バイナリ文字列領域を確保し、その先頭アドレスを返す
- */
-const char* const MessageUtil_GetUTF8StaticBinaryBlock(const wchar_t* const ws, size_t ws_area_length)
-{
-       int i = 0;
-       int wcsCount = 0;
-       int newSize = 0;
-       const char *pResult = NULL;
-       if (!g_initialized)
-       {
-               InitializeCriticalSection(&g_msgUtilLLock);
-               g_initialized = TRUE;
-       }
-       EnterCriticalSection(&g_msgUtilLLock);
-       for (i = 0; i < strMapCount; i++)
-       {
-               if (pStrMap[i].ws == ws)
-               {
-                       pResult = pStrMap[i].u8s;
-                       break;
-               }
-       }
-       if (pResult == NULL)
-       {
-               if (strMapMaxCount < strMapCount + 1)
-               {
-                       // 領域が足りなくなったので追加する
-                       if (strMapMaxCount == 0)
-                       {
-                               strMapMaxCount = 100;
-                               pStrMap = (StrPair*)malloc(sizeof(StrPair) * strMapMaxCount);
-                       }
-                       else
-                       {
-                               strMapMaxCount += 100;
-                               pStrMap = (StrPair*)realloc(pStrMap, sizeof(StrPair) * strMapMaxCount);
-                       }
-               }
-               newSize = WideCharToMultiByte(CP_UTF8, 0, ws, ws_area_length, 0, 0, NULL, NULL);
-               if (newSize > 0)
-               {
-                       int index = strMapCount;
-                       char *beginPos = 0;
-                       int postSize = 0;
-                       strMapCount++;
-                       pStrMap[index].ws = ws;
-                       pStrMap[index].u8size = newSize;
-                       beginPos = (char*)malloc(newSize);
-                       pStrMap[index].u8s = beginPos;
-                       postSize = WideCharToMultiByte(CP_UTF8, 0, ws, ws_area_length, beginPos, newSize, NULL, NULL);
-                       pResult = beginPos;
-               }
-               else
-               {
-                       static char sEmpty[] = "";
-                       pResult = sEmpty;
-               }
-       }
-       LeaveCriticalSection(&g_msgUtilLLock);
-       return pResult;
-}
-
-/**
- * MessageUtil_GetUTF8StaticBinaryBlock() で確保した領域をすべて破棄する
- */
-void MessageUtil_FreeUTF8StaticBinaryBlocks()
-{
-       int i = 0;
-       if (!g_initialized)
-       {
-               InitializeCriticalSection(&g_msgUtilLLock);
-               g_initialized = TRUE;
-       }
-       EnterCriticalSection(&g_msgUtilLLock);
-       for (i = 0; i < strMapCount; i++)
-       {
-               free(pStrMap[i].u8s);
-       }
-       if (pStrMap)
-       {
-               free(pStrMap);
-               pStrMap = (StrPair*)NULL;
-       }
-       LeaveCriticalSection(&g_msgUtilLLock);
-}
diff --git a/msgutil.h b/msgutil.h
deleted file mode 100644 (file)
index 9bb0804..0000000
--- a/msgutil.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-// 指定した文字列の UTF-8 バイナリ文字列の先頭アドレスを取得する u8("文字列リテラル") の形で呼び出す
-#define u8(x)  MessageUtil_GetUTF8StaticBinaryBlock(L ## x, sizeof(L ## x) / sizeof(wchar_t))
-
-/**
- * UTF-8文字列バイナリを取得する。取得した文字列のアドレスはアプリケーション終了まで有効。
- * 失敗した場合は "" が返る。
- * 必ず u8マクロと組み合わせて、u8("文字列リテラル") の形で呼び出す。引数に文字列変数を渡した場合の動作は不定。
- * 
- * @param[in] ws 文字列
- * @param[in] ws_area_length 文字列の長さ。終端NULL文字を含んだ値であること。ws: "" のとき、countof_ws: 1
- * @return wsで表される文字列のUTF8バイナリの先頭アドレス
- */
-const char* const MessageUtil_GetUTF8StaticBinaryBlock(const wchar_t* const ws, size_t ws_area_length);
-
-/**
- * UTF-8文字列群の文字領域を破棄する.
- * 
- * MessageUtil_GetUTF8StaticBinaryBlock()で確保した文字列領域をすべて開放する。アプリケーション終了時に呼び出すこと.
- */
-void MessageUtil_FreeUTF8StaticBinaryBlocks();
index 5dbb668..5fe6329 100644 (file)
--- a/option.c
+++ b/option.c
@@ -168,6 +168,8 @@ extern int FolderAttr;
 extern int FolderAttrNum;\r
 // ファイルアイコン表示対応\r
 extern int DispFileIcon;\r
+// ディレクトリ自動作成\r
+extern int MakeAllDir;\r
 \r
 \r
 /*----- オプションのプロパティシート ------------------------------------------\r
@@ -406,6 +408,8 @@ static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wPara
                        SendDlgItemMessage(hDlg, TRMODE_TIME, BM_SETCHECK, SaveTimeStamp, 0);\r
                        SendDlgItemMessage(hDlg, TRMODE_EOF, BM_SETCHECK, RmEOF, 0);\r
                        SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_SETCHECK, VaxSemicolon, 0);\r
+                       // ディレクトリ自動作成\r
+                       SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_SETCHECK, MakeAllDir, 0);\r
 \r
                        SendMessage(hDlg, WM_COMMAND, MAKEWPARAM(TRMODE_EXT_LIST, 0), 0);\r
 \r
@@ -422,6 +426,8 @@ static INT_PTR CALLBACK Trmode1SettingProc(HWND hDlg, UINT message, WPARAM wPara
                                        SaveTimeStamp = SendDlgItemMessage(hDlg, TRMODE_TIME, BM_GETCHECK, 0, 0);\r
                                        RmEOF = SendDlgItemMessage(hDlg, TRMODE_EOF, BM_GETCHECK, 0, 0);\r
                                        VaxSemicolon = SendDlgItemMessage(hDlg, TRMODE_SEMICOLON, BM_GETCHECK, 0, 0);\r
+                                       // ディレクトリ自動作成\r
+                                       MakeAllDir = SendDlgItemMessage(hDlg, TRMODE_MAKEDIR, BM_GETCHECK, 0, 0);\r
                                        break;\r
 \r
                                case PSN_RESET :\r
index be28d9c..4fa8352 100644 (file)
@@ -195,6 +195,8 @@ extern BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];
 extern BYTE SSLRootCAFileHash[20];\r
 // ファイルアイコン表示対応\r
 extern int DispFileIcon;\r
+// ディレクトリ自動作成\r
+extern int MakeAllDir;\r
 \r
 /*----- マスタパスワードの設定 ----------------------------------------------\r
 *\r
@@ -293,7 +295,7 @@ int ValidateMasterPassword(void)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-void SaveRegistory(void)\r
+void SaveRegistry(void)\r
 {\r
        void *hKey3;\r
        void *hKey4;\r
@@ -615,6 +617,8 @@ void SaveRegistory(void)
                                WriteStringToReg(hKey4, "RootCertHash", Str);\r
                                // ファイルアイコン表示対応\r
                                WriteIntValueToReg(hKey4, "ListIcon", DispFileIcon);\r
+                               // ディレクトリ自動作成\r
+                               WriteIntValueToReg(hKey4, "MakeDir", MakeAllDir);\r
                        }\r
                        CloseSubKey(hKey4);\r
                }\r
@@ -635,7 +639,7 @@ void SaveRegistory(void)
 *              NO:  読み出し失敗(設定無し)\r
 *----------------------------------------------------------------------------*/\r
 \r
-int LoadRegistory(void)\r
+int LoadRegistry(void)\r
 {\r
        void *hKey3;\r
        void *hKey4;\r
@@ -992,6 +996,8 @@ int LoadRegistory(void)
                        StrReadIn(Buf, sizeof(SSLRootCAFileHash), (char*)&SSLRootCAFileHash);\r
                        // ファイルアイコン表示対応\r
                        ReadIntValueFromReg(hKey4, "ListIcon", &DispFileIcon);\r
+                       // ディレクトリ自動作成\r
+                       ReadIntValueFromReg(hKey4, "MakeDir", &MakeAllDir);\r
 \r
                        CloseSubKey(hKey4);\r
                }\r
@@ -1033,7 +1039,7 @@ int LoadRegistory(void)
 *                      YES/NO=設定無し\r
 *----------------------------------------------------------------------------*/\r
 \r
-DWORD LoadHideDriveListRegistory(void)\r
+DWORD LoadHideDriveListRegistry(void)\r
 {\r
        HKEY hKey1;\r
        HKEY hKey2;\r
@@ -1085,7 +1091,7 @@ DWORD LoadHideDriveListRegistory(void)
 *              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
-void ClearRegistory(void)\r
+void ClearRegistry(void)\r
 {\r
        HKEY hKey2;\r
        HKEY hKey3;\r
@@ -1980,7 +1986,7 @@ static int CloseReg(void *Handle)
                        if(WriteOutRegToFile(Handle) == TRUE)\r
                        {\r
 //                             /* レジストリをクリア */\r
-//                             ClearRegistory();\r
+//                             ClearRegistry();\r
                        }\r
                }\r
                /* テーブルを削除 */\r
index d808727..9cc5234 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -523,7 +523,9 @@ SOCKET DoClose(SOCKET Sock)
 *              int 応答コードの1桁目\r
 *----------------------------------------------------------------------------*/\r
 \r
-int DoQUIT(SOCKET ctrl_skt)\r
+// 同時接続対応\r
+//int DoQUIT(SOCKET ctrl_skt)\r
+int DoQUIT(SOCKET ctrl_skt, int *CancelCheckWork)\r
 {\r
        int Ret;\r
 \r
@@ -531,7 +533,7 @@ int DoQUIT(SOCKET ctrl_skt)
        if(SendQuit == YES)\r
                // 同時接続対応\r
 //             Ret = command(ctrl_skt, NULL, &CheckCancelFlg, "QUIT") / 100;\r
-               Ret = command(ctrl_skt, NULL, &CancelFlg, "QUIT") / 100;\r
+               Ret = command(ctrl_skt, NULL, CancelCheckWork, "QUIT") / 100;\r
 \r
        return(Ret);\r
 }\r
@@ -637,7 +639,7 @@ static int DoDirList(HWND hWnd, SOCKET cSkt, char *AddOpt, char *Path, int Num,
        MainTransPkt.hWndTrans = hWnd;\r
        MainTransPkt.Next = NULL;\r
 \r
-       Sts = DoDownLoad(cSkt, &MainTransPkt, YES, CancelCheckWork);\r
+       Sts = DoDownload(cSkt, &MainTransPkt, YES, CancelCheckWork);\r
 \r
 //#pragma aaa\r
 //DoPrintf("===== DoDirList Done.");\r
index 7ae66ab..ec99f84 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -91,10 +91,10 @@ typedef struct {
 static LRESULT CALLBACK SocketWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);\r
 static int AskAsyncDone(SOCKET s, int *Error, int Mask);\r
 static int AskAsyncDoneDbase(HANDLE Async, int *Error);\r
-static int RegistAsyncTable(SOCKET s);\r
-static int RegistAsyncTableDbase(HANDLE Async);\r
-static int UnRegistAsyncTable(SOCKET s);\r
-static int UnRegistAsyncTableDbase(HANDLE Async);\r
+static int RegisterAsyncTable(SOCKET s);\r
+static int RegisterAsyncTableDbase(HANDLE Async);\r
+static int UnregisterAsyncTable(SOCKET s);\r
+static int UnregisterAsyncTableDbase(HANDLE Async);\r
 \r
 \r
 /*===== 外部参照 =====*/\r
@@ -275,7 +275,7 @@ static LRESULT CALLBACK SocketWndProc(HWND hWnd, UINT message, WPARAM wParam, LP
 \r
                case WM_ASYNC_DBASE :\r
                        // APIの仕様上ハンドルが登録される前にウィンドウメッセージが呼び出される可能性あり\r
-                       RegistAsyncTableDbase((HANDLE)wParam);\r
+                       RegisterAsyncTableDbase((HANDLE)wParam);\r
                        // スレッド衝突のバグ修正\r
                        WaitForSingleObject(hAsyncTblAccMutex, INFINITE);\r
                        for(Pos = 0; Pos < MAX_SIGNAL_ENTRY_DBASE; Pos++)\r
@@ -450,7 +450,7 @@ static int AskAsyncDoneDbase(HANDLE Async, int *Error)
 *              \r
 *----------------------------------------------------------------------------*/\r
 \r
-static int RegistAsyncTable(SOCKET s)\r
+static int RegisterAsyncTable(SOCKET s)\r
 {\r
        int Sts;\r
        int Pos;\r
@@ -516,7 +516,7 @@ static int RegistAsyncTable(SOCKET s)
 *              \r
 *----------------------------------------------------------------------------*/\r
 \r
-static int RegistAsyncTableDbase(HANDLE Async)\r
+static int RegisterAsyncTableDbase(HANDLE Async)\r
 {\r
        int Sts;\r
        int Pos;\r
@@ -578,7 +578,7 @@ static int RegistAsyncTableDbase(HANDLE Async)
 *              \r
 *----------------------------------------------------------------------------*/\r
 \r
-static int UnRegistAsyncTable(SOCKET s)\r
+static int UnregisterAsyncTable(SOCKET s)\r
 {\r
        int Sts;\r
        int Pos;\r
@@ -613,7 +613,7 @@ static int UnRegistAsyncTable(SOCKET s)
 *              \r
 *----------------------------------------------------------------------------*/\r
 \r
-static int UnRegistAsyncTableDbase(HANDLE Async)\r
+static int UnregisterAsyncTableDbase(HANDLE Async)\r
 {\r
        int Sts;\r
        int Pos;\r
@@ -666,7 +666,7 @@ struct hostent *do_gethostbynameIPv4(const char *Name, char *Buf, int Len, int *
        hAsync = WSAAsyncGetHostByNameM(hWndSocket, WM_ASYNC_DBASE, Name, Buf, Len);\r
        if(hAsync != NULL)\r
        {\r
-               RegistAsyncTableDbase(hAsync);\r
+               RegisterAsyncTableDbase(hAsync);\r
                while((*CancelCheckWork == NO) && (AskAsyncDoneDbase(hAsync, &Error) != YES))\r
                {\r
                        Sleep(1);\r
@@ -682,7 +682,7 @@ struct hostent *do_gethostbynameIPv4(const char *Name, char *Buf, int Len, int *
                {\r
                        Ret = (struct hostent *)Buf;\r
                }\r
-               UnRegistAsyncTableDbase(hAsync);\r
+               UnregisterAsyncTableDbase(hAsync);\r
        }\r
        return(Ret);\r
 #else\r
@@ -710,7 +710,7 @@ struct hostent *do_gethostbynameIPv6(const char *Name, char *Buf, int Len, int *
        hAsync = WSAAsyncGetHostByNameIPv6M(hWndSocket, WM_ASYNC_DBASE, Name, Buf, Len, AF_INET6);\r
        if(hAsync != NULL)\r
        {\r
-               RegistAsyncTableDbase(hAsync);\r
+               RegisterAsyncTableDbase(hAsync);\r
                while((*CancelCheckWork == NO) && (AskAsyncDoneDbase(hAsync, &Error) != YES))\r
                {\r
                        Sleep(1);\r
@@ -726,7 +726,7 @@ struct hostent *do_gethostbynameIPv6(const char *Name, char *Buf, int Len, int *
                {\r
                        Ret = (struct hostent *)Buf;\r
                }\r
-               UnRegistAsyncTableDbase(hAsync);\r
+               UnregisterAsyncTableDbase(hAsync);\r
        }\r
        return(Ret);\r
 #else\r
@@ -745,7 +745,7 @@ SOCKET do_socket(int af, int type, int protocol)
        Ret = socket(af, type, protocol);\r
        if(Ret != INVALID_SOCKET)\r
        {\r
-               RegistAsyncTable(Ret);\r
+               RegisterAsyncTable(Ret);\r
        }\r
 #if DBG_MSG\r
        DoPrintf("# do_socket (S=%x)", Ret);\r
@@ -769,7 +769,7 @@ int do_closesocket(SOCKET s)
 \r
        // スレッド衝突のバグ修正\r
        WSAAsyncSelect(s, hWndSocket, WM_ASYNC_SOCKET, 0);\r
-       UnRegistAsyncTable(s);\r
+       UnregisterAsyncTable(s);\r
        // FTPS対応\r
 //     Ret = closesocket(s);\r
        Ret = FTPS_closesocket(s);\r
@@ -792,7 +792,7 @@ int do_closesocket(SOCKET s)
        if(BackgrndMessageProc() == YES)\r
                CancelCheckWork = YES;\r
        // スレッド衝突のバグ修正\r
-//     UnRegistAsyncTable(s);\r
+//     UnregisterAsyncTable(s);\r
 \r
 #if DBG_MSG\r
        DoPrintf("# Exit close");\r
@@ -929,7 +929,7 @@ SOCKET do_accept(SOCKET s, struct sockaddr *addr, int *addrlen)
                                DoPrintf("## do_sccept (S=%x)", Ret2);\r
                                DoPrintf("## Async set: FD_CONNECT|FD_CLOSE|FD_ACCEPT|FD_READ|FD_WRITE");\r
 #endif\r
-                               RegistAsyncTable(Ret2);\r
+                               RegisterAsyncTable(Ret2);\r
                                // 高速化のためFD_READとFD_WRITEを使用しない\r
 //                             if(WSAAsyncSelect(Ret2, hWndSocket, WM_ASYNC_SOCKET, FD_CONNECT | FD_CLOSE | FD_ACCEPT | FD_READ | FD_WRITE) == SOCKET_ERROR)\r
                                if(WSAAsyncSelect(Ret2, hWndSocket, WM_ASYNC_SOCKET, FD_CONNECT | FD_CLOSE | FD_ACCEPT) == SOCKET_ERROR)\r
index 6715131..79fbee4 100644 (file)
@@ -717,10 +717,11 @@ DWORD WINAPI WSAAsyncGetHostByNameIPv6ThreadProc(LPVOID lpParameter)
        }\r
        else\r
                PostMessage(pData->hWnd, pData->wMsg, (WPARAM)pData->h, (LPARAM)(ERROR_INVALID_FUNCTION << 16));\r
-       free(pData->name);\r
-       free(pData);\r
        // CreateThreadが返すハンドルが重複するのを回避\r
        Sleep(10000);\r
+       CloseHandle(pData->h);\r
+       free(pData->name);\r
+       free(pData);\r
        return 0;\r
 }\r
 \r
index 4f1a548..4d58859 100644 (file)
@@ -315,7 +315,7 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
                        /* ドライブ名をセットしておく */\r
                        GetLogicalDriveStrings(FMAX_PATH, Tmp);\r
-                       NoDrives = LoadHideDriveListRegistory();\r
+                       NoDrives = LoadHideDriveListRegistry();\r
                        Pos = Tmp;\r
                        while(*Pos != NUL)\r
                        {\r