OSDN Git Service

Update to 25262d6da000ac0d10f84c5aa75e33166f9fa05b (1.98c).
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 5 Nov 2011 08:55:16 +0000 (17:55 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Sat, 5 Nov 2011 08:55:16 +0000 (17:55 +0900)
Modify documents for 1.99.
Add a batch file that create cab files automatically.

25 files changed:
FFFTP_Eng_Release/FFFTP.exe
Package/make_cab_file.bat [new file with mode: 0644]
Package/package_readme.txt
Release/FFFTP.exe
Resource/FFFTP.rc
Resource/resource.h
Resource/toolbar1.bmp
Resource_eng/FFFTP-eng.rc
Resource_eng/resource.h
Resource_eng/toolbar1.bmp
common.h
doc/eng/FFFTP.txt
doc/eng/history.txt
doc/jpn/FFFTP.txt
doc/jpn/history.txt
getput.c
hostman.c
main.c
mesg-eng.h
mesg-eng.old.h
mesg-jpn.h
mesg-jpn.old.h
putty/Release/PuTTY.dll
registory.c
toolmenu.c

index dac5ae6..56b45e8 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
diff --git a/Package/make_cab_file.bat b/Package/make_cab_file.bat
new file mode 100644 (file)
index 0000000..d62d99a
--- /dev/null
@@ -0,0 +1,110 @@
+REM;\r
+REM;  This is batch-file to prepare for creating FFFTP installer.\r
+REM;  Please run in "ffftp\Package" directory.\r
+REM;  To change settings, please edit "instaler_config.bat".\r
+REM; \r
+\r
+call installer_config.bat\r
+\r
+set DIR_CAB=%cd%\%DIR_JPN_INST%\..\r
+set CAB_NAME=ffftp\r
+set SED_FILE=%DIR_CAB%\%CAB_NAME%.sed\r
+echo [Version] > %SED_FILE%\r
+echo Class=IEXPRESS >> %SED_FILE%\r
+echo SEDVersion=3 >> %SED_FILE%\r
+echo [Options] >> %SED_FILE%\r
+echo PackagePurpose=CreateCAB >> %SED_FILE%\r
+echo ShowInstallProgramWindow=0 >> %SED_FILE%\r
+echo HideExtractAnimation=0 >> %SED_FILE%\r
+echo UseLongFileName=1 >> %SED_FILE%\r
+echo InsideCompressed=0 >> %SED_FILE%\r
+echo CAB_FixedSize=0 >> %SED_FILE%\r
+echo CAB_ResvCodeSigning=6144 >> %SED_FILE%\r
+echo RebootMode=I >> %SED_FILE%\r
+echo InstallPrompt=%%InstallPrompt%% >> %SED_FILE%\r
+echo DisplayLicense=%%DisplayLicense%% >> %SED_FILE%\r
+echo FinishMessage=%%FinishMessage%% >> %SED_FILE%\r
+echo TargetName=%%TargetName%% >> %SED_FILE%\r
+echo FriendlyName=%%FriendlyName%% >> %SED_FILE%\r
+echo AppLaunched=%%AppLaunched%% >> %SED_FILE%\r
+echo PostInstallCmd=%%PostInstallCmd%% >> %SED_FILE%\r
+echo AdminQuietInstCmd=%%AdminQuietInstCmd%% >> %SED_FILE%\r
+echo UserQuietInstCmd=%%UserQuietInstCmd%% >> %SED_FILE%\r
+echo SourceFiles=SourceFiles >> %SED_FILE%\r
+echo [Strings] >> %SED_FILE%\r
+echo InstallPrompt= >> %SED_FILE%\r
+echo DisplayLicense= >> %SED_FILE%\r
+echo FinishMessage= >> %SED_FILE%\r
+echo TargetName=%CAB_NAME%.cab >> %SED_FILE%\r
+echo FriendlyName=IExpress Wizard >> %SED_FILE%\r
+echo AppLaunched= >> %SED_FILE%\r
+echo PostInstallCmd= >> %SED_FILE%\r
+echo AdminQuietInstCmd= >> %SED_FILE%\r
+echo UserQuietInstCmd= >> %SED_FILE%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\%CAB_NAME%\r
+for %%i in (*) do echo FILE%%i=%%i >> %SED_FILE%\r
+cd %PREV_CD%\r
+echo [SourceFiles] >> %SED_FILE%\r
+echo SourceFiles0=%CAB_NAME%\ >> %SED_FILE%\r
+echo [SourceFiles0] >> %SED_FILE%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\%CAB_NAME%\r
+for %%i in (*) do echo %%FILE%%i%%= >> %SED_FILE%\r
+cd %PREV_CD%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\r
+iexpress /N %CAB_NAME%.sed\r
+cd %PREV_CD%\r
+\r
+set DIR_CAB=%cd%\%DIR_ENG_INST%\..\r
+set CAB_NAME=ffftp\r
+set SED_FILE=%DIR_CAB%\%CAB_NAME%.sed\r
+echo [Version] > %SED_FILE%\r
+echo Class=IEXPRESS >> %SED_FILE%\r
+echo SEDVersion=3 >> %SED_FILE%\r
+echo [Options] >> %SED_FILE%\r
+echo PackagePurpose=CreateCAB >> %SED_FILE%\r
+echo ShowInstallProgramWindow=0 >> %SED_FILE%\r
+echo HideExtractAnimation=0 >> %SED_FILE%\r
+echo UseLongFileName=1 >> %SED_FILE%\r
+echo InsideCompressed=0 >> %SED_FILE%\r
+echo CAB_FixedSize=0 >> %SED_FILE%\r
+echo CAB_ResvCodeSigning=6144 >> %SED_FILE%\r
+echo RebootMode=I >> %SED_FILE%\r
+echo InstallPrompt=%%InstallPrompt%% >> %SED_FILE%\r
+echo DisplayLicense=%%DisplayLicense%% >> %SED_FILE%\r
+echo FinishMessage=%%FinishMessage%% >> %SED_FILE%\r
+echo TargetName=%%TargetName%% >> %SED_FILE%\r
+echo FriendlyName=%%FriendlyName%% >> %SED_FILE%\r
+echo AppLaunched=%%AppLaunched%% >> %SED_FILE%\r
+echo PostInstallCmd=%%PostInstallCmd%% >> %SED_FILE%\r
+echo AdminQuietInstCmd=%%AdminQuietInstCmd%% >> %SED_FILE%\r
+echo UserQuietInstCmd=%%UserQuietInstCmd%% >> %SED_FILE%\r
+echo SourceFiles=SourceFiles >> %SED_FILE%\r
+echo [Strings] >> %SED_FILE%\r
+echo InstallPrompt= >> %SED_FILE%\r
+echo DisplayLicense= >> %SED_FILE%\r
+echo FinishMessage= >> %SED_FILE%\r
+echo TargetName=%CAB_NAME%.cab >> %SED_FILE%\r
+echo FriendlyName=IExpress Wizard >> %SED_FILE%\r
+echo AppLaunched= >> %SED_FILE%\r
+echo PostInstallCmd= >> %SED_FILE%\r
+echo AdminQuietInstCmd= >> %SED_FILE%\r
+echo UserQuietInstCmd= >> %SED_FILE%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\%CAB_NAME%\r
+for %%i in (*) do echo FILE%%i=%%i >> %SED_FILE%\r
+cd %PREV_CD%\r
+echo [SourceFiles] >> %SED_FILE%\r
+echo SourceFiles0=%CAB_NAME%\ >> %SED_FILE%\r
+echo [SourceFiles0] >> %SED_FILE%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\%CAB_NAME%\r
+for %%i in (*) do echo %%FILE%%i%%= >> %SED_FILE%\r
+cd %PREV_CD%\r
+set PREV_CD=%cd%\r
+cd %DIR_CAB%\r
+iexpress /N %CAB_NAME%.sed\r
+cd %PREV_CD%\r
+\r
index 78464fe..e4a45d6 100644 (file)
@@ -1,4 +1,4 @@
-開発者向けドキュメント:インストーラの作成方法\r
+開発者向けドキュメント:インストーラの作成方法\r
 \r
 インストーラの作成にはEXEpress CX 5を使用します。EXEpress CX 5はフリーソフトウェア向けのものが無償でダウンロードできます。\r
 \r
@@ -6,7 +6,7 @@
   1.1. make_installer_pre.batを実行\r
 \r
 2. 日本語版インストーラを作成\r
-  2.1. EXEpress\jpn\ffftp\内のファイルをCAB形式で圧縮、EXEpress\jpn\ffftp.cabとして保存(Windows標準のiexpressツールが利用できます\r
+  2.1. make_cab_file.batを実行(失敗する場合は手作業でEXEpress\jpn\ffftp\内のファイルをCAB形式で圧縮、EXEpress\jpn\ffftp.cabとして保存(Windows標準のiexpressツールが利用できます)\r
   2.2. EXEpressを起動し、「設定読み込み」でEXEpress\jpn\ffftp.iniを指定、「作成」をクリックする\r
 \r
 3. 英語版インストーラを作成\r
index 5317d74..4189c08 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 7f3047a..397b715 100644 (file)
@@ -726,13 +726,14 @@ hset_code_dlg DIALOGEX 0, 0, 207, 139
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "\82l\82\82o\83S\83V\83b\83N", 0, 0, 0x0\r
 BEGIN\r
-    GROUPBOX        "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h(&K)",-1,7,7,98,94,WS_GROUP\r
+    GROUPBOX        "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h(&K)",-1,7,7,98,106,WS_GROUP\r
     CONTROL         "\96³\95Ï\8a·",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,81,10\r
     CONTROL         "Shift_JIS",HSET_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,81,10\r
     CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
     CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
     CONTROL         "UTF-8",HSET_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,69,41,10\r
-    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,86,87,10\r
+    CONTROL         "UTF-8 BOM",HSET_UTF8BOM_CNV,"Button",BS_AUTORADIOBUTTON,12,81,81,10\r
+    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,98,87,10\r
     GROUPBOX        "\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h(&N)",-1,110,7,90,115,WS_GROUP\r
     CONTROL         "\8e©\93®",HSET_FN_AUTO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,114,21,65,10\r
     CONTROL         "Shift_JIS",HSET_FN_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,114,33,65,10\r
@@ -2121,6 +2122,7 @@ BEGIN
     BUTTON      ID_BUTTON40156\r
     BUTTON      ID_BUTTON40173\r
     BUTTON      ID_BUTTON40174\r
+    BUTTON      ID_BUTTON40175\r
 END\r
 \r
 remote_toolbar_bmp TOOLBAR  16, 16\r
index c954fa9..73f48fe 100644 (file)
 #define HSET_PRIVATE_KEY                1203\r
 #define HSET_THREAD_COUNT               1204\r
 #define HSET_THREAD_COUNT_SPN           1205\r
+#define HSET_UTF8BOM_CNV                1206\r
 #define MENU_END                        40001\r
 #define MENU_EXIT                       40001\r
 #define MENU_CONNECT                    40003\r
 #define MENU_KNJ_EUC                    40044\r
 #define MENU_KNJ_JIS                    40045\r
 #define MENU_KNJ_UTF8N                  40046\r
-#define MENU_KNJ_NONE                   40047\r
-#define MENU_L_KNJ_SJIS                 40048\r
-#define MENU_L_KNJ_EUC                  40049\r
-#define MENU_L_KNJ_JIS                  40050\r
-#define MENU_L_KNJ_UTF8N                40051\r
-#define MENU_UPDIR                      40052\r
-#define MENU_DCLICK                     40053\r
-#define MENU_SELECT                     40054\r
-#define MENU_SELECT_ALL                 40055\r
-#define MENU_FIND                       40056\r
-#define MENU_FINDNEXT                   40057\r
-#define MENU_DOTFILE                    40058\r
-#define MENU_IMPORT_WS                  40059\r
-#define ID_BUTTON40060                  40060\r
-#define ID_BUTTON40061                  40061\r
+#define MENU_KNJ_UTF8BOM                40047\r
+#define MENU_KNJ_NONE                   40048\r
+#define MENU_L_KNJ_SJIS                 40049\r
+#define MENU_L_KNJ_EUC                  40050\r
+#define MENU_L_KNJ_JIS                  40051\r
+#define MENU_L_KNJ_UTF8N                40052\r
+#define MENU_L_KNJ_UTF8BOM              40053\r
+#define MENU_UPDIR                      40054\r
+#define MENU_DCLICK                     40055\r
+#define MENU_SELECT                     40056\r
+#define MENU_SELECT_ALL                 40057\r
+#define MENU_FIND                       40058\r
+#define MENU_FINDNEXT                   40059\r
+#define MENU_DOTFILE                    40060\r
+#define MENU_IMPORT_WS                  40061\r
 #define ID_BUTTON40062                  40062\r
 #define ID_BUTTON40063                  40063\r
 #define ID_BUTTON40064                  40064\r
 #define MENU_CHANGEPASSWD               40172\r
 #define ID_BUTTON40173                  40173\r
 #define ID_BUTTON40174                  40174\r
+#define ID_BUTTON40175                  40175\r
 #define FSNOTIFY_TITLE                  65535\r
 #define HOST_SIZEGRIP                   65535\r
 \r
 #ifdef APSTUDIO_INVOKED\r
 #ifndef APSTUDIO_READONLY_SYMBOLS\r
 #define _APS_NEXT_RESOURCE_VALUE        191\r
-#define _APS_NEXT_COMMAND_VALUE         40175\r
-#define _APS_NEXT_CONTROL_VALUE         1206\r
+#define _APS_NEXT_COMMAND_VALUE         40176\r
+#define _APS_NEXT_CONTROL_VALUE         1207\r
 #define _APS_NEXT_SYMED_VALUE           101\r
 #endif\r
 #endif\r
index 7ab3cde..a1df42c 100644 (file)
Binary files a/Resource/toolbar1.bmp and b/Resource/toolbar1.bmp differ
index c6d0900..a00638b 100644 (file)
@@ -733,13 +733,14 @@ hset_code_dlg DIALOGEX 0, 0, 207, 139
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Sans Serif", 0, 0, 0x0\r
 BEGIN\r
-    GROUPBOX        "&Japanese Kanji Code",-1,7,7,98,94,WS_GROUP\r
+    GROUPBOX        "&Japanese Kanji Code",-1,7,7,98,106,WS_GROUP\r
     CONTROL         "No conversion",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,91,10\r
     CONTROL         "Shift_JIS",HSET_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,81,10\r
     CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
     CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
     CONTROL         "UTF-8",HSET_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,69,41,10\r
-    CONTROL         "Hankaku to Zenkaku",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,96,90,10\r
+    CONTROL         "UTF-8 BOM",HSET_UTF8BOM_CNV,"Button",BS_AUTORADIOBUTTON,12,81,81,10\r
+    CONTROL         "Hankaku to Zenkaku",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,98,90,10\r
     GROUPBOX        "&Filename Kanji Code",-1,107,7,97,116,WS_GROUP\r
     CONTROL         "Automatic",HSET_FN_AUTO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,111,21,65,10\r
     CONTROL         "Shift_JIS",HSET_FN_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,111,33,65,10\r
@@ -1371,7 +1372,8 @@ hset_crypt_dlg DIALOG  0, 0, 207, 139
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Sans Serif"\r
 BEGIN\r
-    CONTROL         "Allow to connect without encryption",HSET_NO_ENCRYPTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,148,10\r
+    CONTROL         "Allow to connect without encryption",HSET_NO_ENCRYPTION,\r
+                    "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,7,148,10\r
     CONTROL         "Connect with FTPS (Explicit)",HSET_FTPES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,21,148,10\r
     CONTROL         "Connect with FTPS (Implicit)",HSET_FTPIS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,35,148,10\r
     CONTROL         "Connect with SFTP",HSET_SFTP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,49,148,10\r
@@ -2143,6 +2145,7 @@ BEGIN
     BUTTON      ID_BUTTON40156\r
     BUTTON      ID_BUTTON40173\r
     BUTTON      ID_BUTTON40174\r
+    BUTTON      ID_BUTTON40175\r
 END\r
 \r
 remote_toolbar_bmp TOOLBAR  16, 16\r
index 6fe26a3..9bcbdd2 100644 (file)
 #define HSET_PRIVATE_KEY                1203\r
 #define HSET_THREAD_COUNT               1204\r
 #define HSET_THREAD_COUNT_SPN           1205\r
+#define HSET_UTF8BOM_CNV                1206\r
 #define MENU_END                        40001\r
 #define MENU_EXIT                       40001\r
 #define MENU_CONNECT                    40003\r
 #define MENU_KNJ_EUC                    40044\r
 #define MENU_KNJ_JIS                    40045\r
 #define MENU_KNJ_UTF8N                  40046\r
-#define MENU_KNJ_NONE                   40047\r
-#define MENU_L_KNJ_SJIS                 40048\r
-#define MENU_L_KNJ_EUC                  40049\r
-#define MENU_L_KNJ_JIS                  40050\r
-#define MENU_L_KNJ_UTF8N                40051\r
-#define MENU_UPDIR                      40052\r
-#define MENU_DCLICK                     40053\r
-#define MENU_SELECT                     40054\r
-#define MENU_SELECT_ALL                 40055\r
-#define MENU_FIND                       40056\r
-#define MENU_FINDNEXT                   40057\r
-#define MENU_DOTFILE                    40058\r
-#define MENU_IMPORT_WS                  40059\r
-#define ID_BUTTON40060                  40060\r
-#define ID_BUTTON40061                  40061\r
+#define MENU_KNJ_UTF8BOM                40047\r
+#define MENU_KNJ_NONE                   40048\r
+#define MENU_L_KNJ_SJIS                 40049\r
+#define MENU_L_KNJ_EUC                  40050\r
+#define MENU_L_KNJ_JIS                  40051\r
+#define MENU_L_KNJ_UTF8N                40052\r
+#define MENU_L_KNJ_UTF8BOM              40053\r
+#define MENU_UPDIR                      40054\r
+#define MENU_DCLICK                     40055\r
+#define MENU_SELECT                     40056\r
+#define MENU_SELECT_ALL                 40057\r
+#define MENU_FIND                       40058\r
+#define MENU_FINDNEXT                   40059\r
+#define MENU_DOTFILE                    40060\r
+#define MENU_IMPORT_WS                  40061\r
 #define ID_BUTTON40062                  40062\r
 #define ID_BUTTON40063                  40063\r
 #define ID_BUTTON40064                  40064\r
 #define MENU_CHANGEPASSWD               40172\r
 #define ID_BUTTON40173                  40173\r
 #define ID_BUTTON40174                  40174\r
+#define ID_BUTTON40175                  40175\r
 #define FSNOTIFY_TITLE                  65535\r
 #define HOST_SIZEGRIP                   65535\r
 \r
 #ifdef APSTUDIO_INVOKED\r
 #ifndef APSTUDIO_READONLY_SYMBOLS\r
 #define _APS_NEXT_RESOURCE_VALUE        191\r
-#define _APS_NEXT_COMMAND_VALUE         40175\r
-#define _APS_NEXT_CONTROL_VALUE         1206\r
+#define _APS_NEXT_COMMAND_VALUE         40176\r
+#define _APS_NEXT_CONTROL_VALUE         1207\r
 #define _APS_NEXT_SYMED_VALUE           101\r
 #endif\r
 #endif\r
index 7ab3cde..a1df42c 100644 (file)
Binary files a/Resource_eng/toolbar1.bmp and b/Resource_eng/toolbar1.bmp differ
index e9dea4d..4e7c758 100644 (file)
--- a/common.h
+++ b/common.h
@@ -687,9 +687,12 @@ LIST_UNIX_70
 #define KANJI_SMB_HEX  3               /* Samba-HEX */\r
 #define KANJI_SMB_CAP  4               /* Samba-CAP */\r
 #define KANJI_UTF8N            5               /* UTF-8 */\r
+// UTF-8対応\r
+#define KANJI_UTF8BOM          6               /* UTF-8 BOM */\r
 \r
 #define KANJI_NOCNV            -1              /* 漢字コード変換なし */\r
 \r
+// UTF-8対応\r
 #define KANJI_AUTO             -1\r
 \r
 /*===== サウンド =====*/\r
index 76977d7..485e43b 100644 (file)
@@ -34,24 +34,6 @@ Changes in Ver.1.99
 -- MLSD command became used for retrieving filenames on appropriate hosts.\r
    That is helpful for hosts that do not return filenames properly.\r
 \r
--- Changed to connect to hosts with Punycode if their names contain\r
-   international characters.\r
-\r
--- Fixed bugs of resetting the current directory on reconnection.\r
-\r
--- FTP over Implicit SSL/TLS became available.\r
-\r
--- Fixed bugs of corruption on resuming downloading files larger than 4GB.\r
-\r
--- Fixed communication routines to match specifications of Windows 2000.\r
-\r
--- Enhanced responses of aborting.\r
-\r
--- Fixed bugs of INI file backup.\r
-\r
--- Fixed bugs of handling multi-byte character filenames on hosts whose Kanji\r
-   code of filenames are Shift_JIS.\r
-\r
 \r
 Outline\r
 -------\r
index caa55f5..e891cb0 100644 (file)
@@ -6,6 +6,9 @@ Changes in Ver.1.99
 -- MLSD command became used for retrieving filenames on appropriate hosts.\r
    That is helpful for hosts that do not return filenames properly.\r
 \r
+Changes in Ver.1.98c\r
+--------------------\r
+\r
 -- Changed to connect to hosts with Punycode if their names contain\r
    international characters.\r
 \r
@@ -24,6 +27,11 @@ Changes in Ver.1.99
 -- Fixed bugs of handling multi-byte character filenames on hosts whose Kanji\r
    code of filenames are Shift_JIS.\r
 \r
+-- Added support for UTF-8 (without BOM) conversion under ASCII mode transfer.\r
+   UTF-8 added in 1.98 was renamed UTF-8 BOM.\r
+\r
+-- Changed size and layout of the window at the first run.\r
+\r
 Changes in Ver.1.98b\r
 --------------------\r
 \r
index 59775cb..99a36b2 100644 (file)
@@ -34,28 +34,6 @@ Ver 1.99
 \81@\8eæ\93¾\82·\82é\82æ\82¤\82É\82µ\82Ü\82µ\82½\81BLIST\83R\83}\83\93\83h\82Ì\89\9e\93\9a\82É\93Á\92è\82Ì\83t\83@\83C\83\8b\82ª\r
 \81@\8aÜ\82Ü\82ê\82È\82¢\88ê\95\94\82Ì\83z\83X\83g\82Å\82à\90³\82µ\82­\97ñ\8b\93\82Å\82«\82é\89Â\94\\90«\82ª\8d\82\82­\82È\82è\82Ü\82·\81B\r
 \r
-\81E\93ú\96{\8cê\83h\83\81\83C\83\93\96¼\82Ì\83z\83X\83g\82Ö\82Ì\90Ú\91±\8e\9e\82É\83A\83h\83\8c\83X\82ðPunycode\82Ö\95Ï\8a·\82µ\82Ä\82©\82ç\r
-\81@\90Ú\91±\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Ö\82Ì\8dÄ\90Ú\91±\8e\9e\82É\83z\83X\83g\82Ì\8c»\8dÝ\82Ì\83f\83B\83\8c\83N\83g\83\8a\82ª\8dÄ\90Ý\92è\82³\82ê\82È\82¢\83o\83O\82ð\r
-\81@\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Æ\82Ì\90Ú\91±\82ÉFTP over Implicit SSL/TLS\81i\97ª\8fÌFTPS Implicit\81A\r
-\81@FTPIS\81j\82ª\8eg\97p\82Å\82«\82é\82æ\82¤\82É\82È\82è\82Ü\82µ\82½\81B\r
-\r
-\81E\83_\83E\83\93\83\8d\81[\83h\82Ì\83\8a\83W\83\85\81[\83\80\8e\9e\82É4GB\82ð\92´\82¦\82é\83t\83@\83C\83\8b\82ª\90³\8fí\82É\88µ\82¦\82È\82¢\83o\83O\82ð\r
-\81@\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\92Ê\90M\82Ì\83\8b\81[\83`\83\93\82ðWindows 2000\82Ì\8ed\97l\82É\8d\87\82¤\82æ\82¤\82É\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\92\86\8e~\83{\83^\83\93\82Ì\89\9e\93\9a\82ð\89ü\91P\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\90Ý\92è\82ðINI\83t\83@\83C\83\8b\82É\95Û\91\82µ\82Ä\82¢\82é\8fê\8d\87\82ÉINI\83t\83@\83C\83\8b\82ð\93ú\96{\8cê\82ð\8aÜ\82Þ\83p\83X\82É\r
-\81@\95Û\91\82Å\82«\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82ªShift_JIS\82Ì\8fê\8d\87\82É\88ê\95\94\93ú\96{\8cê\82ð\8aÜ\82Þ\r
-\81@\83t\83@\83C\83\8b\96¼\82ð\88µ\82¦\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
 \r
 Ver 1.96d\88È\91O\82Ö\96ß\82·\8fê\8d\87\r
 -----------------------\r
index 81546d1..39098bc 100644 (file)
@@ -6,6 +6,8 @@ FFFTP
 \81@\8eæ\93¾\82·\82é\82æ\82¤\82É\82µ\82Ü\82µ\82½\81BLIST\83R\83}\83\93\83h\82Ì\89\9e\93\9a\82É\93Á\92è\82Ì\83t\83@\83C\83\8b\82ª\r
 \81@\8aÜ\82Ü\82ê\82È\82¢\88ê\95\94\82Ì\83z\83X\83g\82Å\82à\90³\82µ\82­\97ñ\8b\93\82Å\82«\82é\89Â\94\\90«\82ª\8d\82\82­\82È\82è\82Ü\82·\81B\r
 \r
+\81¡Ver 1.98c\r
+\r
 \81E\93ú\96{\8cê\83h\83\81\83C\83\93\96¼\82Ì\83z\83X\83g\82Ö\82Ì\90Ú\91±\8e\9e\82É\83A\83h\83\8c\83X\82ðPunycode\82Ö\95Ï\8a·\82µ\82Ä\82©\82ç\r
 \81@\90Ú\91±\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
 \r
@@ -28,6 +30,13 @@ FFFTP
 \81E\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82ªShift_JIS\82Ì\8fê\8d\87\82É\88ê\95\94\93ú\96{\8cê\82ð\8aÜ\82Þ\r
 \81@\83t\83@\83C\83\8b\96¼\82ð\88µ\82¦\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
 \r
+\81E\83A\83X\83L\81[\83\82\81[\83h\93]\91\97\82Ì\8dÛ\82É\8ds\82í\82ê\82é\8a¿\8e\9a\83R\81[\83h\95Ï\8a·\82Å\90V\82½\82ÉUTF-8\r
+\81@\81iBOM\82È\82µ\81j\82Ö\82Ì\95Ï\8a·\82ð\83T\83|\81[\83g\82µ\82Ü\82µ\82½\81B1.98\82Å\92Ç\89Á\82³\82ê\82½UTF-8\82ð\r
+\81@UTF-8 BOM\82Æ\82¢\82¤\96¼\8fÌ\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\8f\89\89ñ\8bN\93®\8e\9e\82Ì\83E\83B\83\93\83h\83E\82Ì\83T\83C\83Y\82Æ\83\8c\83C\83A\83E\83g\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81i\88È\91O\82Ì\r
+\81@\83o\81[\83W\83\87\83\93\82Ì\90Ý\92è\82ª\8ec\82Á\82Ä\82¢\82é\8fê\8d\87\82Í\82»\82Ì\90Ý\92è\82ª\93K\97p\82³\82ê\82Ü\82·\81j\81B\r
+\r
 \81¡Ver 1.98b\r
 \r
 \81E\90M\97\8a\82Å\82«\82È\82¢DLL\82Ì\93Ç\82Ý\8d\9e\82Ý\82ð\96h\82®\8b@\94\\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81BMicrosoft\82Ì\8f\90\96¼\82ª\r
index 2f0094a..e29d9a7 100644 (file)
--- a/getput.c
+++ b/getput.c
@@ -1635,6 +1635,11 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                        cInfo2.OutLen = cInfo.OutLen;\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvSJIStoUTF8N(&cInfo);\r
+                                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -1678,6 +1683,14 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                        ConvSJIStoEUC(&cInfo2);\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -1724,6 +1737,14 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                        ConvSJIStoEUC(&cInfo2);\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -1742,6 +1763,50 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                }\r
                                                break;\r
                                        case KANJI_UTF8N:\r
+                                               switch(Pkt->KanjiCodeDesired)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoJIS(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoEUC(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_UTF8BOM:\r
                                                if(ProcessedBOM == NO)\r
                                                {\r
                                                        if(memcmp(Buf, "\xEF\xBB\xBF", 3) == 0)\r
@@ -1752,7 +1817,7 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                        cInfo2.OutLen = 0;\r
                                                        switch(Pkt->KanjiCodeDesired)\r
                                                        {\r
-                                                       case KANJI_UTF8N:\r
+                                                       case KANJI_UTF8BOM:\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
                                                                cInfo2.OutLen = 3;\r
                                                                break;\r
@@ -1789,6 +1854,11 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                                        cInfo2.OutLen = cInfo.StrLen;\r
                                                        Continue = NO;\r
                                                        break;\r
+                                               case KANJI_UTF8BOM:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
                                                }\r
                                                break;\r
                                        }\r
@@ -1850,6 +1920,10 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                        memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
                                        cInfo2.OutLen = cInfo.OutLen;\r
                                        break;\r
+                               case KANJI_UTF8BOM:\r
+                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                       break;\r
                                }\r
                                break;\r
                        case KANJI_JIS:\r
@@ -1881,6 +1955,13 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                        cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
                                        ConvSJIStoUTF8N(&cInfo2);\r
                                        break;\r
+                               case KANJI_UTF8BOM:\r
+                                       cInfo2.Str = cInfo.Buf;\r
+                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                       cInfo2.Buf = Buf3;\r
+                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                       break;\r
                                }\r
                                break;\r
                        case KANJI_EUC:\r
@@ -1912,6 +1993,13 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                        cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
                                        ConvSJIStoUTF8N(&cInfo2);\r
                                        break;\r
+                               case KANJI_UTF8BOM:\r
+                                       cInfo2.Str = cInfo.Buf;\r
+                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                       cInfo2.Buf = Buf3;\r
+                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                       break;\r
                                }\r
                                break;\r
                        case KANJI_UTF8N:\r
@@ -1939,6 +2027,41 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                        memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
                                        cInfo2.OutLen = cInfo.OutLen;\r
                                        break;\r
+                               case KANJI_UTF8BOM:\r
+                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                       break;\r
+                               }\r
+                               break;\r
+                       case KANJI_UTF8BOM:\r
+                               switch(Pkt->KanjiCodeDesired)\r
+                               {\r
+                               case KANJI_SJIS:\r
+                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                       break;\r
+                               case KANJI_JIS:\r
+                                       cInfo2.Str = cInfo.Buf;\r
+                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                       cInfo2.Buf = Buf3;\r
+                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                       ConvSJIStoJIS(&cInfo2);\r
+                                       break;\r
+                               case KANJI_EUC:\r
+                                       cInfo2.Str = cInfo.Buf;\r
+                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                       cInfo2.Buf = Buf3;\r
+                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                       ConvSJIStoEUC(&cInfo2);\r
+                                       break;\r
+                               case KANJI_UTF8N:\r
+                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                       break;\r
+                               case KANJI_UTF8BOM:\r
+                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                       break;\r
                                }\r
                                break;\r
                        }\r
@@ -2647,6 +2770,11 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                        cInfo2.OutLen = cInfo.OutLen;\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvSJIStoUTF8N(&cInfo);\r
+                                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -2690,6 +2818,14 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                        ConvSJIStoEUC(&cInfo2);\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -2736,6 +2872,14 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                        ConvSJIStoEUC(&cInfo2);\r
                                                        break;\r
                                                case KANJI_UTF8N:\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
                                                        if(ProcessedBOM == NO)\r
                                                        {\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
@@ -2754,6 +2898,50 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                }\r
                                                break;\r
                                        case KANJI_UTF8N:\r
+                                               switch(Pkt->KanjiCode)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoJIS(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoEUC(&cInfo2);\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_UTF8BOM:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_UTF8BOM:\r
                                                if(ProcessedBOM == NO)\r
                                                {\r
                                                        if(memcmp(Buf, "\xEF\xBB\xBF", 3) == 0)\r
@@ -2764,7 +2952,7 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                        cInfo2.OutLen = 0;\r
                                                        switch(Pkt->KanjiCode)\r
                                                        {\r
-                                                       case KANJI_UTF8N:\r
+                                                       case KANJI_UTF8BOM:\r
                                                                memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
                                                                cInfo2.OutLen = 3;\r
                                                                break;\r
@@ -2801,6 +2989,11 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                        cInfo2.OutLen = cInfo.StrLen;\r
                                                        Continue = NO;\r
                                                        break;\r
+                                               case KANJI_UTF8BOM:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
                                                }\r
                                                break;\r
                                        }\r
@@ -2868,6 +3061,10 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
                                                cInfo2.OutLen = cInfo.OutLen;\r
                                                break;\r
+                                       case KANJI_UTF8BOM:\r
+                                               memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                               cInfo2.OutLen = cInfo.OutLen;\r
+                                               break;\r
                                        }\r
                                        break;\r
                                case KANJI_JIS:\r
@@ -2899,6 +3096,13 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
                                                ConvSJIStoUTF8N(&cInfo2);\r
                                                break;\r
+                                       case KANJI_UTF8BOM:\r
+                                               cInfo2.Str = cInfo.Buf;\r
+                                               cInfo2.StrLen = cInfo.OutLen;\r
+                                               cInfo2.Buf = Buf3;\r
+                                               cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                               ConvSJIStoUTF8N(&cInfo2);\r
+                                               break;\r
                                        }\r
                                        break;\r
                                case KANJI_EUC:\r
@@ -2930,6 +3134,13 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
                                                ConvSJIStoUTF8N(&cInfo2);\r
                                                break;\r
+                                       case KANJI_UTF8BOM:\r
+                                               cInfo2.Str = cInfo.Buf;\r
+                                               cInfo2.StrLen = cInfo.OutLen;\r
+                                               cInfo2.Buf = Buf3;\r
+                                               cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                               ConvSJIStoUTF8N(&cInfo2);\r
+                                               break;\r
                                        }\r
                                        break;\r
                                case KANJI_UTF8N:\r
@@ -2957,6 +3168,41 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                                memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
                                                cInfo2.OutLen = cInfo.OutLen;\r
                                                break;\r
+                                       case KANJI_UTF8BOM:\r
+                                               memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                               cInfo2.OutLen = cInfo.OutLen;\r
+                                               break;\r
+                                       }\r
+                                       break;\r
+                               case KANJI_UTF8BOM:\r
+                                       switch(Pkt->KanjiCode)\r
+                                       {\r
+                                       case KANJI_SJIS:\r
+                                               memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                               cInfo2.OutLen = cInfo.OutLen;\r
+                                               break;\r
+                                       case KANJI_JIS:\r
+                                               cInfo2.Str = cInfo.Buf;\r
+                                               cInfo2.StrLen = cInfo.OutLen;\r
+                                               cInfo2.Buf = Buf3;\r
+                                               cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                               ConvSJIStoJIS(&cInfo2);\r
+                                               break;\r
+                                       case KANJI_EUC:\r
+                                               cInfo2.Str = cInfo.Buf;\r
+                                               cInfo2.StrLen = cInfo.OutLen;\r
+                                               cInfo2.Buf = Buf3;\r
+                                               cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                               ConvSJIStoEUC(&cInfo2);\r
+                                               break;\r
+                                       case KANJI_UTF8N:\r
+                                               memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                               cInfo2.OutLen = cInfo.OutLen;\r
+                                               break;\r
+                                       case KANJI_UTF8BOM:\r
+                                               memcpy(Buf3, cInfo.Buf, cInfo.OutLen);\r
+                                               cInfo2.OutLen = cInfo.OutLen;\r
+                                               break;\r
                                        }\r
                                        break;\r
                                }\r
@@ -3382,6 +3628,8 @@ static void DispTransFileInfo(TRANSPACKET *Pkt, char *Title, int SkipButton, int
                                SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN123);\r
                        else if(Pkt->KanjiCode == KANJI_UTF8N)\r
                                SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN306);\r
+                       else if(Pkt->KanjiCode == KANJI_UTF8BOM)\r
+                               SendDlgItemMessage(Pkt->hWndTrans, TRANS_KANJI, WM_SETTEXT, 0, (LPARAM)MSGJPN329);\r
                }\r
                else\r
                {\r
index 96b1099..83f6b3a 100644 (file)
--- a/hostman.c
+++ b/hostman.c
@@ -1864,7 +1864,8 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                { HSET_SJIS_CNV, KANJI_SJIS },\r
                { HSET_JIS_CNV, KANJI_JIS },\r
                { HSET_EUC_CNV, KANJI_EUC },\r
-               { HSET_UTF8N_CNV, KANJI_UTF8N }\r
+               { HSET_UTF8N_CNV, KANJI_UTF8N },\r
+               { HSET_UTF8BOM_CNV, KANJI_UTF8BOM }\r
        };\r
        #define KANJIBUTTONS    (sizeof(KanjiButton)/sizeof(RADIOBUTTON))\r
 \r
@@ -1912,6 +1913,7 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                case WM_COMMAND :\r
                        switch(GET_WM_COMMAND_ID(wParam, lParam))\r
                        {\r
+                               case HSET_SJIS_CNV :\r
                                case HSET_JIS_CNV :\r
                                case HSET_EUC_CNV :\r
                                        EnableWindow(GetDlgItem(hDlg, HSET_HANCNV), TRUE);\r
@@ -1920,10 +1922,10 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                                // UTF-8対応\r
                                case HSET_NO_CNV :\r
                                case HSET_UTF8N_CNV :\r
+                               case HSET_UTF8BOM_CNV :\r
                                        EnableWindow(GetDlgItem(hDlg, HSET_HANCNV), FALSE);\r
                                        break;\r
 \r
-                               case HSET_SJIS_CNV :\r
                                case HSET_FN_JIS_CNV :\r
                                case HSET_FN_EUC_CNV :\r
                                        EnableWindow(GetDlgItem(hDlg, HSET_FN_HANCNV), TRUE);\r
@@ -2166,6 +2168,8 @@ static BOOL CALLBACK CryptSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, L
                        // TODO: SFTP対応\r
                        SendDlgItemMessage(hDlg, HSET_SFTP, BM_SETCHECK, BST_UNCHECKED, 0);\r
                        EnableWindow(GetDlgItem(hDlg, HSET_SFTP), FALSE);\r
+                       EnableWindow(GetDlgItem(hDlg, PKEY_FILE_BR), FALSE);\r
+                       EnableWindow(GetDlgItem(hDlg, HSET_PRIVATE_KEY), FALSE);\r
                        return(TRUE);\r
 \r
                case WM_NOTIFY:\r
diff --git a/main.c b/main.c
index 36e3d1d..bcde07a 100644 (file)
--- a/main.c
+++ b/main.c
@@ -135,12 +135,20 @@ HWND hHelpWin = NULL;
 /* 設定値 */\r
 int WinPosX = CW_USEDEFAULT;\r
 int WinPosY = 0;\r
-int WinWidth = 630;\r
-int WinHeight = 393;\r
-int LocalWidth = 309;\r
-int TaskHeight = 50;\r
-int LocalTabWidth[4] = { 120, 90, 60, 37 };\r
-int RemoteTabWidth[6] = { 120, 90, 60, 37, 60, 60 };\r
+// 機能が増えたためサイズ変更\r
+// VGAサイズに収まるようになっていたのをSVGAサイズに引き上げ\r
+//int WinWidth = 630;\r
+//int WinHeight = 393;\r
+//int LocalWidth = 309;\r
+//int TaskHeight = 50;\r
+//int LocalTabWidth[4] = { 120, 90, 60, 37 };\r
+//int RemoteTabWidth[6] = { 120, 90, 60, 37, 60, 60 };\r
+int WinWidth = 790;\r
+int WinHeight = 513;\r
+int LocalWidth = 389;\r
+int TaskHeight = 100;\r
+int LocalTabWidth[4] = { 160, 110, 60, 37 };\r
+int RemoteTabWidth[6] = { 160, 110, 60, 37, 60, 60 };\r
 char UserMailAdrs[USER_MAIL_LEN+1] = { "who@example.com" };\r
 char ViewerName[VIEWERS][FMAX_PATH+1] = { { "notepad" }, { "" }, { "" } };\r
 HFONT ListFont = NULL;\r
@@ -1148,6 +1156,7 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                case MENU_KNJ_EUC :\r
                                case MENU_KNJ_JIS :\r
                                case MENU_KNJ_UTF8N :\r
+                               case MENU_KNJ_UTF8BOM :\r
                                case MENU_KNJ_NONE :\r
                                        SetHostKanjiCode(LOWORD(wParam));\r
                                        break;\r
@@ -1156,6 +1165,7 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                case MENU_L_KNJ_EUC :\r
                                case MENU_L_KNJ_JIS :\r
                                case MENU_L_KNJ_UTF8N :\r
+                               case MENU_L_KNJ_UTF8BOM :\r
                                        SetLocalKanjiCode(LOWORD(wParam));\r
                                        break;\r
 \r
@@ -1446,6 +1456,10 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                                        lpttt->lpszText = MSGJPN308;\r
                                                        break;\r
 \r
+                                               case MENU_KNJ_UTF8BOM :\r
+                                                       lpttt->lpszText = MSGJPN330;\r
+                                                       break;\r
+\r
                                                case MENU_KNJ_NONE :\r
                                                        lpttt->lpszText = MSGJPN173;\r
                                                        break;\r
@@ -1466,6 +1480,10 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                                        lpttt->lpszText = MSGJPN312;\r
                                                        break;\r
 \r
+                                               case MENU_L_KNJ_UTF8BOM :\r
+                                                       lpttt->lpszText = MSGJPN331;\r
+                                                       break;\r
+\r
                                                case MENU_KANACNV :\r
                                                        lpttt->lpszText = MSGJPN174;\r
                                                        break;\r
index 5c19de7..24eacb5 100644 (file)
 #define MSGJPN326              "Choose 'Yes' if you trust this certificate and continue.\r\nCN is identical: %s\r\nVerified successfully: %s\r\n\r\n%s"\r
 #define MSGJPN327              "Yes"\r
 #define MSGJPN328              "No"\r
+#define MSGJPN329              "UTF-8 BOM"\r
+#define MSGJPN330              "UTF-8 BOM Kanji Code"\r
+#define MSGJPN331              "UTF-8 BOM Kanji Code (Local)"\r
index 9a47091..86bbb4f 100644 (file)
 #define MSGJPN326              "Choose 'Yes' if you trust this certificate and continue.\r\nCN is identical: %s\r\nVerified successfully: %s\r\n\r\n%s"\r
 #define MSGJPN327              "Yes"\r
 #define MSGJPN328              "No"\r
+#define MSGJPN329              "UTF-8 BOM"\r
+#define MSGJPN330              "UTF-8 BOM Kanji Code"\r
+#define MSGJPN331              "UTF-8 BOM Kanji Code (Local)"\r
index 979bcb0..6e0bef2 100644 (file)
 #define MSGJPN326              "\xE3\x81\x93\xE3\x81\xAE\xE8\xA8\xBC\xE6\x98\x8E\xE6\x9B\xB8\xE3\x82\x92\xE4\xBF\xA1\xE9\xA0\xBC\xE3\x81\x97,\xE9\x80\x9A\xE4\xBF\xA1\xE3\x82\x92\xE7\xB6\x9A\xE8\xA1\x8C\xE3\x81\x99\xE3\x82\x8B\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x8C\xE3\x81\xAF\xE3\x81\x84\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84.\r\nCN\xE3\x81\xAE\xE4\xB8\x80\xE8\x87\xB4: %s\r\n\xE6\xA4\x9C\xE8\xA8\xBC\xE3\x81\xAB\xE6\x88\x90\xE5\x8A\x9F: %s\r\n\r\n%s"\r
 #define MSGJPN327              "\xE3\x81\xAF\xE3\x81\x84"\r
 #define MSGJPN328              "\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88"\r
+#define MSGJPN329              "UTF-8 BOM"\r
+#define MSGJPN330              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8 BOM"\r
+#define MSGJPN331              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8 BOM"\r
index c65ec2a..c73e228 100644 (file)
 #define MSGJPN326              "\82±\82Ì\8fØ\96¾\8f\91\82ð\90M\97\8a\82µ,\92Ê\90M\82ð\91±\8ds\82·\82é\82É\82Í\81u\82Í\82¢\81v\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢.\r\nCN\82Ì\88ê\92v: %s\r\n\8c\9f\8fØ\82É\90¬\8c÷: %s\r\n\r\n%s"\r
 #define MSGJPN327              "\82Í\82¢"\r
 #define MSGJPN328              "\82¢\82¢\82¦"\r
+#define MSGJPN329              "UTF-8 BOM"\r
+#define MSGJPN330              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8 BOM"\r
+#define MSGJPN331              "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8 BOM"\r
index 7d1feb0..4ea2026 100644 (file)
Binary files a/putty/Release/PuTTY.dll and b/putty/Release/PuTTY.dll differ
index 2d5b07e..931c89f 100644 (file)
@@ -877,6 +877,12 @@ int LoadRegistory(void)
                                        ReadIntValueFromReg(hKey5, "Port", &Host.Port);\r
                                        ReadIntValueFromReg(hKey5, "Anonymous", &Host.Anonymous);\r
                                        ReadIntValueFromReg(hKey5, "Kanji", &Host.KanjiCode);\r
+                                       // 1.98b以前のUTF-8はBOMあり\r
+                                       if(Version < 1983)\r
+                                       {\r
+                                               if(Host.KanjiCode == KANJI_UTF8N)\r
+                                                       Host.KanjiCode = KANJI_UTF8BOM;\r
+                                       }\r
                                        ReadIntValueFromReg(hKey5, "KanaCnv", &Host.KanaCnv);\r
                                        ReadIntValueFromReg(hKey5, "NameKanji", &Host.NameKanjiCode);\r
                                        ReadIntValueFromReg(hKey5, "NameKana", &Host.NameKanaCnv);\r
index a9d56f1..786a754 100644 (file)
@@ -140,11 +140,13 @@ static TBBUTTON TbarDataMain[] = {
        { 20, MENU_L_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 21, MENU_L_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 28, MENU_L_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 29, MENU_L_KNJ_UTF8BOM, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 27, MENU_KNJ_SJIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 20, MENU_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 21, MENU_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 28, MENU_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 29, MENU_KNJ_UTF8BOM, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 22, MENU_KNJ_NONE, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 23, MENU_KANACNV, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 0 },\r
@@ -195,8 +197,8 @@ static const int HideMenus[] = {
        MENU_HELP,                      MENU_HELP_TROUBLE,      MENU_ABOUT,\r
        MENU_REGINIT,\r
        MENU_TEXT,                      MENU_BINARY,            MENU_AUTO,\r
-       MENU_KNJ_SJIS,          MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_UTF8N,         MENU_KNJ_NONE,\r
-       MENU_L_KNJ_SJIS,        MENU_L_KNJ_EUC,         MENU_L_KNJ_JIS,         MENU_L_KNJ_UTF8N,\r
+       MENU_KNJ_SJIS,          MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_UTF8N,         MENU_KNJ_UTF8BOM,       MENU_KNJ_NONE,\r
+       MENU_L_KNJ_SJIS,        MENU_L_KNJ_EUC,         MENU_L_KNJ_JIS,         MENU_L_KNJ_UTF8N,       MENU_L_KNJ_UTF8BOM,\r
        MENU_KANACNV,\r
        MENU_LOCAL_UPDIR,       MENU_LOCAL_CHDIR,\r
        MENU_REMOTE_UPDIR,      MENU_REMOTE_CHDIR,\r
@@ -1028,6 +1030,10 @@ void SetHostKanjiCode(int Type)
                        TmpHostKanjiCode = KANJI_UTF8N;\r
                        break;\r
 \r
+               case MENU_KNJ_UTF8BOM :\r
+                       TmpHostKanjiCode = KANJI_UTF8BOM;\r
+                       break;\r
+\r
                default :\r
                        TmpHostKanjiCode = KANJI_NOCNV;\r
                        break;\r
@@ -1068,6 +1074,10 @@ void DispHostKanjiCode(void)
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        break;\r
 \r
+               case KANJI_UTF8BOM :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                default :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1110,6 +1120,7 @@ void HideHostKanjiButton(void)
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8BOM, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        break;\r
@@ -1119,6 +1130,7 @@ void HideHostKanjiButton(void)
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
 //                     if(TmpHostKanjiCode != KANJI_NOCNV)\r
 //                             SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
@@ -1179,6 +1191,10 @@ void SetLocalKanjiCode(int Type)
                case MENU_L_KNJ_UTF8N :\r
                        TmpLocalKanjiCode = KANJI_UTF8N;\r
                        break;\r
+\r
+               case MENU_L_KNJ_UTF8BOM :\r
+                       TmpLocalKanjiCode = KANJI_UTF8BOM;\r
+                       break;\r
        }\r
        DispLocalKanjiCode();\r
        HideLocalKanjiButton();\r
@@ -1205,6 +1221,10 @@ void DispLocalKanjiCode(void)
                case KANJI_UTF8N :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        break;\r
+\r
+               case KANJI_UTF8BOM :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
+                       break;\r
        }\r
        return;\r
 }\r
@@ -1224,6 +1244,7 @@ void HideLocalKanjiButton(void)
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(FALSE, 0));\r
                        break;\r
 \r
                default :\r
@@ -1231,6 +1252,7 @@ void HideLocalKanjiButton(void)
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
                        // 現在カナ変換はShift_JIS、JIS、EUC間でのみ機能する\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        switch(TmpHostKanjiCode)\r