1 /////////////////////////////////////////////////////////////////////////////
3 // WinMerge: An interactive diff/merge utility
4 // Copyright (C) 1997 Dean P. Grimm
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software
18 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 /////////////////////////////////////////////////////////////////////////////
22 #ifndef _MERGE_CMD_LINE_INFO_INCLUDED_
23 #define _MERGE_CMD_LINE_INFO_INCLUDED_
26 * @file MergeCmdLineInfo.h
28 * @brief MergeCmdLineInfo class declaration.
32 // RCS ID line follows -- this is updated by CVS
38 * @brief WinMerge's command line handler.
41 class MergeCmdLineInfo : public CCommandLineInfo
45 /** @brief ClearCaseCmdLineParser's constructor.
47 * @param [in] szFileName Executable file name. Required in order to
48 * know which command line parser to create and use.
51 MergeCmdLineInfo(const TCHAR *szExeName);
55 /** @brief Override CCommandLineInfo's method. */
56 virtual void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast);
60 int m_nCmdShow; /**< Initial state of the application's window. */
62 bool m_bClearCaseTool; /**< Running as Rational ClearCase external tool. */
63 bool m_bEscShutdown; /**< Pressing ESC will close the application */
64 bool m_bExitIfNoDiff; /**< Exit after telling the user that files are identical. */
65 bool m_bRecurse; /**< Include sub folder in directories compare. */
66 bool m_bNonInteractive; /**< Suppress user's notifications. */
67 bool m_bNoPrefs; /**< Do not load or remember preferences. */
68 bool m_bSingleInstance; /**< Allow only one instance of WinMerge executable. */
69 bool m_bShowUsage; /**< Show a brief reminder to command line arguments. */
71 DWORD m_dwLeftFlags; /**< Left side file's behavior options. */
72 DWORD m_dwRightFlags; /**< Right side file's behavior options. */
74 CString m_sLeftDesc; /**< Left side file's description. */
75 CString m_sRightDesc; /**< Right side file's description. */
77 CString m_sFileFilter; /**< File filter mask. */
80 /**< Command line arguments which are mapped to WinMerge's preferences. */
81 CMapStringToString m_Settings;
83 CStringArray m_Files; /**< Files (or directories) to compare. */
85 int m_nFiles; /**< Number of files (or directories) in m_Files. */
89 /**< operator= is not implemented. */
90 MergeCmdLineInfo& operator=(const MergeCmdLineInfo& rhs);
92 CmdLineParser *m_pCmdLineParser; /**< The command line parser instance. */
95 #endif // _MERGE_CMD_LINE_INFO_INCLUDED_