OSDN Git Service

Extend command line options.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Wed, 16 May 2012 14:23:34 +0000 (23:23 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Wed, 16 May 2012 14:23:34 +0000 (23:23 +0900)
FFFTP_Eng_Release/FFFTP.exe
Release/FFFTP.exe
common.h
main.c

index 2b4a49c..6f4dd73 100644 (file)
Binary files a/FFFTP_Eng_Release/FFFTP.exe and b/FFFTP_Eng_Release/FFFTP.exe differ
index f32a49a..5d4b0a9 100644 (file)
Binary files a/Release/FFFTP.exe and b/Release/FFFTP.exe differ
index 4e28e27..4d635fc 100644 (file)
--- a/common.h
+++ b/common.h
@@ -783,20 +783,40 @@ LIST_UNIX_70
 \r
 /*===== コマンドラインオプション =====*/\r
 \r
-#define OPT_MIRROR             0x0001  /* ミラーリングアップロードを行う */\r
-#define OPT_FORCE              0x0002  /* ミラーリング開始の確認をしない */\r
-#define OPT_QUIT               0x0004  /* 終了後プログラム終了 */\r
-#define OPT_EUC                        0x0008  /* 漢字コードはEUC */\r
-#define OPT_JIS                        0x0010  /* 漢字コードはJIS */\r
-#define OPT_ASCII              0x0020  /* アスキー転送モード */\r
-#define OPT_BINARY             0x0040  /* バイナリ転送モード */\r
-#define OPT_AUTO               0x0080  /* 自動判別 */\r
-#define OPT_KANA               0x0100  /* 半角かなをそのまま通す */\r
-#define OPT_EUC_NAME   0x0200  /* ファイル名はEUC */\r
-#define OPT_JIS_NAME   0x0400  /* ファイル名はJIS */\r
-#define OPT_MIRRORDOWN 0x0800  /* ミラーリングダウンロードを行う */\r
-#define OPT_SAVEOFF            0x1000  /* 設定の保存を中止する */\r
-#define OPT_SAVEON             0x2000  /* 設定の保存を再開する */\r
+//#define OPT_MIRROR           0x0001  /* ミラーリングアップロードを行う */\r
+//#define OPT_FORCE            0x0002  /* ミラーリング開始の確認をしない */\r
+//#define OPT_QUIT             0x0004  /* 終了後プログラム終了 */\r
+//#define OPT_EUC                      0x0008  /* 漢字コードはEUC */\r
+//#define OPT_JIS                      0x0010  /* 漢字コードはJIS */\r
+//#define OPT_ASCII            0x0020  /* アスキー転送モード */\r
+//#define OPT_BINARY           0x0040  /* バイナリ転送モード */\r
+//#define OPT_AUTO             0x0080  /* 自動判別 */\r
+//#define OPT_KANA             0x0100  /* 半角かなをそのまま通す */\r
+//#define OPT_EUC_NAME 0x0200  /* ファイル名はEUC */\r
+//#define OPT_JIS_NAME 0x0400  /* ファイル名はJIS */\r
+//#define OPT_MIRRORDOWN       0x0800  /* ミラーリングダウンロードを行う */\r
+//#define OPT_SAVEOFF          0x1000  /* 設定の保存を中止する */\r
+//#define OPT_SAVEON           0x2000  /* 設定の保存を再開する */\r
+#define OPT_MIRROR             0x00000001      /* ミラーリングアップロードを行う */\r
+#define OPT_FORCE              0x00000002      /* ミラーリング開始の確認をしない */\r
+#define OPT_QUIT               0x00000004      /* 終了後プログラム終了 */\r
+#define OPT_EUC                        0x00000008      /* 漢字コードはEUC */\r
+#define OPT_JIS                        0x00000010      /* 漢字コードはJIS */\r
+#define OPT_ASCII              0x00000020      /* アスキー転送モード */\r
+#define OPT_BINARY             0x00000040      /* バイナリ転送モード */\r
+#define OPT_AUTO               0x00000080      /* 自動判別 */\r
+#define OPT_KANA               0x00000100      /* 半角かなをそのまま通す */\r
+#define OPT_EUC_NAME   0x00000200      /* ファイル名はEUC */\r
+#define OPT_JIS_NAME   0x00000400      /* ファイル名はJIS */\r
+#define OPT_MIRRORDOWN 0x00000800      /* ミラーリングダウンロードを行う */\r
+#define OPT_SAVEOFF            0x00001000      /* 設定の保存を中止する */\r
+#define OPT_SAVEON             0x00002000      /* 設定の保存を再開する */\r
+// UTF-8対応\r
+#define OPT_SJIS               0x00004000      /* 漢字コードはShift_JIS */\r
+#define OPT_UTF8N              0x00008000      /* 漢字コードはUTF-8 */\r
+#define OPT_UTF8BOM            0x00010000      /* 漢字コードはUTF-8 BOM */\r
+#define OPT_SJIS_NAME  0x00020000      /* ファイル名はShift_JIS */\r
+#define OPT_UTF8N_NAME 0x00040000      /* ファイル名はUTF-8 */\r
 \r
 /*===== ホストのヒストリ =====*/\r
 \r
diff --git a/main.c b/main.c
index 848b4e3..76242fa 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1840,6 +1840,18 @@ static void StartupProc(char *Cmd)
        if(CmdOption & OPT_SAVEON)\r
                SuppressSave = NO;\r
 \r
+       // UTF-8対応\r
+       if(CmdOption & OPT_SJIS)\r
+               Kanji = KANJI_SJIS;\r
+       if(CmdOption & OPT_UTF8N)\r
+               Kanji = KANJI_UTF8N;\r
+       if(CmdOption & OPT_UTF8BOM)\r
+               Kanji = KANJI_UTF8BOM;\r
+       if(CmdOption & OPT_SJIS_NAME)\r
+               FnameKanji = KANJI_SJIS;\r
+       if(CmdOption & OPT_UTF8N_NAME)\r
+               FnameKanji = KANJI_UTF8N;\r
+\r
        if(Sts == 0)\r
        {\r
                if(ConnectOnStart == YES)\r
@@ -1911,9 +1923,14 @@ static int AnalyzeComLine(char *Str, int *AutoConnect, int *CmdOption, char *unc
                                *CmdOption |= OPT_MIRROR;\r
                        else if((strcmp(&Tmp[1], "d") == 0) || (strcmp(&Tmp[1], "-mirrordown") == 0))\r
                                *CmdOption |= OPT_MIRRORDOWN;\r
-                       else if((strcmp(&Tmp[1], "e") == 0) || (strcmp(&Tmp[1], "-euc") == 0))\r
+                       // 廃止予定\r
+//                     else if((strcmp(&Tmp[1], "e") == 0) || (strcmp(&Tmp[1], "-euc") == 0))\r
+//                             *CmdOption |= OPT_EUC;\r
+//                     else if((strcmp(&Tmp[1], "j") == 0) || (strcmp(&Tmp[1], "-jis") == 0))\r
+//                             *CmdOption |= OPT_JIS;\r
+                       else if((strcmp(&Tmp[1], "eu") == 0) || (strcmp(&Tmp[1], "e") == 0) || (strcmp(&Tmp[1], "-euc") == 0))\r
                                *CmdOption |= OPT_EUC;\r
-                       else if((strcmp(&Tmp[1], "j") == 0) || (strcmp(&Tmp[1], "-jis") == 0))\r
+                       else if((strcmp(&Tmp[1], "ji") == 0) || (strcmp(&Tmp[1], "j") == 0) || (strcmp(&Tmp[1], "-jis") == 0))\r
                                *CmdOption |= OPT_JIS;\r
                        else if((strcmp(&Tmp[1], "a") == 0) || (strcmp(&Tmp[1], "-ascii") == 0))\r
                                *CmdOption |= OPT_ASCII;\r
@@ -1927,9 +1944,14 @@ static int AnalyzeComLine(char *Str, int *AutoConnect, int *CmdOption, char *unc
                                *CmdOption |= OPT_QUIT;\r
                        else if((strcmp(&Tmp[1], "k") == 0) || (strcmp(&Tmp[1], "-kana") == 0))\r
                                *CmdOption |= OPT_KANA;\r
-                       else if((strcmp(&Tmp[1], "u") == 0) || (strcmp(&Tmp[1], "-eucname") == 0))\r
+                       // 廃止予定\r
+//                     else if((strcmp(&Tmp[1], "u") == 0) || (strcmp(&Tmp[1], "-eucname") == 0))\r
+//                             *CmdOption |= OPT_EUC_NAME;\r
+//                     else if((strcmp(&Tmp[1], "i") == 0) || (strcmp(&Tmp[1], "-jisname") == 0))\r
+//                             *CmdOption |= OPT_JIS_NAME;\r
+                       else if((strcmp(&Tmp[1], "eun") == 0) || (strcmp(&Tmp[1], "u") == 0) || (strcmp(&Tmp[1], "-eucname") == 0))\r
                                *CmdOption |= OPT_EUC_NAME;\r
-                       else if((strcmp(&Tmp[1], "i") == 0) || (strcmp(&Tmp[1], "-jisname") == 0))\r
+                       else if((strcmp(&Tmp[1], "jin") == 0) || (strcmp(&Tmp[1], "i") == 0) || (strcmp(&Tmp[1], "-jisname") == 0))\r
                                *CmdOption |= OPT_JIS_NAME;\r
                        else if((strcmp(&Tmp[1], "n") == 0) || (strcmp(&Tmp[1], "-ini") == 0))\r
                        {\r
@@ -1999,6 +2021,17 @@ static int AnalyzeComLine(char *Str, int *AutoConnect, int *CmdOption, char *unc
                        {\r
                        }\r
 #endif\r
+                       // UTF-8対応\r
+                       else if((strcmp(&Tmp[1], "sj") == 0) || (strcmp(&Tmp[1], "-sjis") == 0))\r
+                               *CmdOption |= OPT_SJIS;\r
+                       else if((strcmp(&Tmp[1], "u8") == 0) || (strcmp(&Tmp[1], "-utf8") == 0))\r
+                               *CmdOption |= OPT_UTF8N;\r
+                       else if((strcmp(&Tmp[1], "8b") == 0) || (strcmp(&Tmp[1], "-utf8bom") == 0))\r
+                               *CmdOption |= OPT_UTF8BOM;\r
+                       else if((strcmp(&Tmp[1], "sjn") == 0) || (strcmp(&Tmp[1], "-sjisname") == 0))\r
+                               *CmdOption |= OPT_SJIS_NAME;\r
+                       else if((strcmp(&Tmp[1], "u8n") == 0) || (strcmp(&Tmp[1], "-utf8name") == 0))\r
+                               *CmdOption |= OPT_UTF8N_NAME;\r
                        else\r
                        {\r
                                SetTaskMsg(MSGJPN180, Tmp);\r