From 1afb4f1c33909c99aff89aa00c25501d03be107e Mon Sep 17 00:00:00 2001 From: Kimmo Varis Date: Tue, 7 Apr 2009 15:10:27 +0000 Subject: [PATCH] PATCH: [ 2725549 ] Set a codepage with command-line parameter Submitted by bulklodd --- Docs/Users/ChangeLog.txt | 1 + Docs/Users/Contributors.txt | 1 + Src/Merge.cpp | 7 ++ Src/MergeCmdLineInfo.cpp | 7 ++ Src/MergeCmdLineInfo.h | 1 + Testing/GoogleTest/CmdLine/MergeCmdLine_test.cpp | 136 +++++++++++++++++++++++ 6 files changed, 153 insertions(+) diff --git a/Docs/Users/ChangeLog.txt b/Docs/Users/ChangeLog.txt index fe91b02a3..2eab2b965 100644 --- a/Docs/Users/ChangeLog.txt +++ b/Docs/Users/ChangeLog.txt @@ -7,6 +7,7 @@ WinMerge 2.13.6 Show deleted differences in difference highlight with own color (#2669526) Disable folder compare tree-view by default (#2714968) + Allow setting codepage from command line (#2725549) Bugfix: Says files are identical after making files different in another application and re-loading them (#2672737) Bugfix: Difference pane didn't show added lines (#2710146) diff --git a/Docs/Users/Contributors.txt b/Docs/Users/Contributors.txt index 05f4fa580..92b089e5a 100644 --- a/Docs/Users/Contributors.txt +++ b/Docs/Users/Contributors.txt @@ -134,6 +134,7 @@ Other Contributors (code, ideas, testing..): * Andre Arpin * Steve Beaudoin * Denis Bradford +* bulklodd * Adam Carrivick * Hern Chen * Jeremy Dewey diff --git a/Src/Merge.cpp b/Src/Merge.cpp index 48bb17fcb..46a537727 100644 --- a/Src/Merge.cpp +++ b/Src/Merge.cpp @@ -56,6 +56,7 @@ #include "OptionsDef.h" #include "MergeCmdLineInfo.h" #include "ConflictFileParser.h" +#include "codepage.h" // For shutdown cleanup #include "charsets.h" @@ -572,6 +573,12 @@ BOOL CMergeApp::ParseArgsAndDoOpen(MergeCmdLineInfo& cmdInfo, CMainFrame* pMainF m_globalFileFilter.SetFilter(cmdInfo.m_sFileFilter.c_str()); } + // Set codepage. + if (cmdInfo.m_nCodepage) + { + updateDefaultCodepage(2,cmdInfo.m_nCodepage); + } + // Unless the user has requested to see WinMerge's usage open files for // comparison. if (cmdInfo.m_bShowUsage) diff --git a/Src/MergeCmdLineInfo.cpp b/Src/MergeCmdLineInfo.cpp index 019e3b741..6439ce0b5 100644 --- a/Src/MergeCmdLineInfo.cpp +++ b/Src/MergeCmdLineInfo.cpp @@ -109,6 +109,7 @@ MergeCmdLineInfo::MergeCmdLineInfo(LPCTSTR q): m_bNonInteractive(false), m_bSingleInstance(false), m_bShowUsage(false), + m_nCodepage(0), m_dwLeftFlags(FFILEOPEN_NONE), m_dwRightFlags(FFILEOPEN_NONE) { @@ -336,6 +337,12 @@ void MergeCmdLineInfo::ParseWinMergeCmdLine(LPCTSTR q) // -x to close application if files are identical. m_bExitIfNoDiff = true; } + else if (param == _T("cp")) + { + String codepage; + q = EatParam(q, codepage); + m_nCodepage = _ttoi(codepage.c_str()); + } else if (param == _T("ignorews")) { q = SetOption(q, OPT_CMP_IGNORE_WHITESPACE); diff --git a/Src/MergeCmdLineInfo.h b/Src/MergeCmdLineInfo.h index cd21a7ad9..b4ca85f17 100644 --- a/Src/MergeCmdLineInfo.h +++ b/Src/MergeCmdLineInfo.h @@ -54,6 +54,7 @@ public: bool m_bNonInteractive; /**< Suppress user's notifications. */ bool m_bSingleInstance; /**< Allow only one instance of WinMerge executable. */ bool m_bShowUsage; /**< Show a brief reminder to command line arguments. */ + int m_nCodepage; /**< Codepage. */ DWORD m_dwLeftFlags; /**< Left side file's behavior options. */ DWORD m_dwRightFlags; /**< Right side file's behavior options. */ diff --git a/Testing/GoogleTest/CmdLine/MergeCmdLine_test.cpp b/Testing/GoogleTest/CmdLine/MergeCmdLine_test.cpp index ac488548f..0dfbf0a86 100644 --- a/Testing/GoogleTest/CmdLine/MergeCmdLine_test.cpp +++ b/Testing/GoogleTest/CmdLine/MergeCmdLine_test.cpp @@ -60,6 +60,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -81,6 +82,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -102,6 +104,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -123,6 +126,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -145,6 +149,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -167,6 +172,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -189,6 +195,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -213,6 +220,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -236,6 +244,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -258,6 +267,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -281,6 +291,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -304,6 +315,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -327,6 +339,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -350,6 +363,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -375,6 +389,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -398,6 +413,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -421,6 +437,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -443,6 +460,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -466,6 +484,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -489,6 +508,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -511,6 +531,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -533,6 +554,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -556,6 +578,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -579,6 +602,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -602,6 +626,7 @@ namespace EXPECT_FALSE(cmdInfo.m_bNonInteractive); EXPECT_FALSE(cmdInfo.m_bSingleInstance); EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwRightFlags); EXPECT_EQ("", cmdInfo.m_sLeftDesc); @@ -610,6 +635,117 @@ namespace EXPECT_EQ("", cmdInfo.m_sPreDiffer); } + // Command line with a correct codepage + TEST_F(MergeCmdLineInfoTest, CorrectCodepage) + { + MergeCmdLineInfo cmdInfo("C:\\WinMerge\\WinMerge.exe -cp 1251"); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(1251,cmdInfo.m_nCodepage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Command line with a wrong specified codepage + TEST_F(MergeCmdLineInfoTest, IncorrectCodepage) + { + MergeCmdLineInfo cmdInfo("C:\\WinMerge\\WinMerge.exe -cp windows1251"); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Command line with a missed codepage + TEST_F(MergeCmdLineInfoTest, MissedCodepage) + { + MergeCmdLineInfo cmdInfo("C:\\WinMerge\\WinMerge.exe -cp "); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Command line with a missed codepage and with left path + TEST_F(MergeCmdLineInfoTest, MissedCodepageWithLeftPath) + { + MergeCmdLineInfo cmdInfo("C:\\WinMerge\\WinMerge.exe -cp C:\\Temp "); + EXPECT_EQ(0, cmdInfo.m_Files.size()); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + + // Missed codepage with both paths + TEST_F(MergeCmdLineInfoTest, MissedCodepageWithBothPaths) + { + MergeCmdLineInfo cmdInfo("C:\\WinMerge\\WinMerge.exe -cp C:\\Temp C:\\Temp2"); + EXPECT_EQ(1, cmdInfo.m_Files.size()); + EXPECT_EQ("C:\\Temp2", cmdInfo.m_Files[0]); + EXPECT_EQ(SW_SHOWNORMAL, cmdInfo.m_nCmdShow); + EXPECT_FALSE(cmdInfo.m_bClearCaseTool); + EXPECT_FALSE(cmdInfo.m_bEscShutdown); + EXPECT_FALSE(cmdInfo.m_bExitIfNoDiff); + EXPECT_FALSE(cmdInfo.m_bRecurse); + EXPECT_FALSE(cmdInfo.m_bNonInteractive); + EXPECT_FALSE(cmdInfo.m_bSingleInstance); + EXPECT_FALSE(cmdInfo.m_bShowUsage); + EXPECT_EQ(0,cmdInfo.m_nCodepage); + EXPECT_EQ(FFILEOPEN_CMDLINE, cmdInfo.m_dwLeftFlags); + EXPECT_EQ(FFILEOPEN_NONE, cmdInfo.m_dwRightFlags); + EXPECT_EQ("", cmdInfo.m_sLeftDesc); + EXPECT_EQ("", cmdInfo.m_sRightDesc); + EXPECT_EQ("", cmdInfo.m_sFileFilter); + EXPECT_EQ("", cmdInfo.m_sPreDiffer); + } + } // namespace int main(int argc, char **argv) -- 2.11.0