[Ttssh2-commit] [3399] コマンドラインオプションで、 /F= オプションは他のオプションより先に処理するように変更した。

svnno****@sourc***** svnno****@sourc*****
2009年 5月 15日 (金) 21:03:33 JST


Revision: 3399
          http://svn.sourceforge.jp/view?root=ttssh2&view=rev&rev=3399
Author:   doda
Date:     2009-05-15 21:03:33 +0900 (Fri, 15 May 2009)

Log Message:
-----------
コマンドラインオプションで、/F=オプションは他のオプションより先に処理するように変更した。
例えば、ttermpro /DS /F=hoge.iniとした時、hoge.iniのHostDialogOnStartupの設定が使われる為、結果的に/DSは無視されていた。
この変更により、hoge.iniの中のHostDialogOnStartupの設定に関係なく、/DSによりホストダイアログが表示されなくなる。

Modified Paths:
--------------
    trunk/teraterm/ttpset/ttset.c


-------------- next part --------------
Modified: trunk/teraterm/ttpset/ttset.c
===================================================================
--- trunk/teraterm/ttpset/ttset.c	2009-05-15 11:50:48 UTC (rev 3398)
+++ trunk/teraterm/ttpset/ttset.c	2009-05-15 12:03:33 UTC (rev 3399)
@@ -2723,7 +2723,7 @@
 
 void FAR PASCAL ParseParam(PCHAR Param, PTTSet ts, PCHAR DDETopic)
 {
-	int i, pos, c;
+	int i, pos, c, param_top;
 #ifdef NO_INET6
 	BYTE b;
 #endif							/* NO_INET6 */
@@ -2738,7 +2738,6 @@
 	WORD ParamBaud = IdBaudNone;
 	BOOL HostNameFlag = FALSE;
 	BOOL JustAfterHost = FALSE;
-	WORD DisableTCPEchoCR = FALSE;
 
 	ts->HostName[0] = 0;
 	ts->KeyCnfFN[0] = 0;
@@ -2756,7 +2755,25 @@
 	i = 0;
 	/* the first term shuld be executable filename of Tera Term */
 	NextParam(Param, &i, Temp, sizeof(Temp));
+	param_top = i;
+
 	while (NextParam(Param, &i, Temp, sizeof(Temp))) {
+		if (_strnicmp(Temp, "/F=", 3) == 0) {	/* setup filename */
+			Dequote(&Temp[3], Temp2);
+			if (strlen(Temp2) > 0) {
+				ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".INI", Temp,
+				          sizeof(Temp));
+				if (_stricmp(ts->SetupFName, Temp) != 0) {
+					strncpy_s(ts->SetupFName, sizeof(ts->SetupFName), Temp,
+					          _TRUNCATE);
+					ReadIniFile(ts->SetupFName, ts);
+				}
+			}
+		}
+	}
+
+	i = param_top;
+	while (NextParam(Param, &i, Temp, sizeof(Temp))) {
 		if (HostNameFlag) {
 			JustAfterHost = TRUE;
 			HostNameFlag = FALSE;
@@ -2786,20 +2803,8 @@
 		}
 		// TCPLocalEcho/TCPCRSend ‚𖳌ø‚É‚·‚é (maya 2007.4.25)
 		else if (_strnicmp(Temp, "/E", 2) == 0) {
-			DisableTCPEchoCR = TRUE;
+			ts->DisableTCPEchoCR = TRUE;
 		}
-		else if (_strnicmp(Temp, "/F=", 3) == 0) {	/* setup filename */
-			Dequote(&Temp[3], Temp2);
-			if (strlen(Temp2) > 0) {
-				ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".INI", Temp,
-				          sizeof(Temp));
-				if (_stricmp(ts->SetupFName, Temp) != 0) {
-					strncpy_s(ts->SetupFName, sizeof(ts->SetupFName), Temp,
-					          _TRUNCATE);
-					ReadIniFile(ts->SetupFName, ts);
-				}
-			}
-		}
 		else if (_strnicmp(Temp, "/FD=", 4) == 0) {	/* file transfer directory */
 			Dequote(&Temp[4], Temp2);
 			if (strlen(Temp2) > 0) {
@@ -3005,11 +3010,6 @@
 	case IdFile:
 		ts->PortType = IdFile;
 	}
-
-	// TCPLocalEcho/TCPCRSend ‚𖳌ø‚É‚·‚é (maya 2007.4.25)
-	if (DisableTCPEchoCR == TRUE) {
-		ts->DisableTCPEchoCR = TRUE;
-	}
 }
 
 BOOL WINAPI DllMain(HANDLE hInst,



Ttssh2-commit メーリングリストの案内