1 // TortoiseSVN - a Windows shell extension for easy version control
\r
3 // Copyright (C) 2007 - TortoiseSVN
\r
5 // This program is free software; you can redistribute it and/or
\r
6 // modify it under the terms of the GNU General Public License
\r
7 // as published by the Free Software Foundation; either version 2
\r
8 // of the License, or (at your option) any later version.
\r
10 // This program is distributed in the hope that it will be useful,
\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 // GNU General Public License for more details.
\r
15 // You should have received a copy of the GNU General Public License
\r
16 // along with this program; if not, write to the Free Software Foundation,
\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\r
20 #include "TortoiseProc.h"
\r
21 #include "CmdLineParser.h"
\r
22 #include "TGitPath.h"
\r
28 * \ingroup TortoiseProc
\r
29 * Interface for all command line commands TortoiseProc can execute.
\r
35 * Executes the command.
\r
37 virtual bool Execute() = 0;
\r
39 void SetParser(const CCmdLineParser& p) {parser = p;}
\r
40 void SetPaths(const CTGitPathList& plist, const CTGitPath path)
\r
42 orgCmdLinePath = path;
\r
43 CString WinPath=path.GetWinPath();
\r
44 if(WinPath.Left(g_Git.m_CurrentDir.GetLength())==g_Git.m_CurrentDir)
\r
46 if(g_Git.m_CurrentDir[g_Git.m_CurrentDir.GetLength()-1] == _T('\\'))
\r
48 cmdLinePath.SetFromWin( WinPath.Right(WinPath.GetLength()-g_Git.m_CurrentDir.GetLength()));
\r
51 cmdLinePath.SetFromWin( WinPath.Right(WinPath.GetLength()-g_Git.m_CurrentDir.GetLength()-1));
\r
54 orgPathList = plist;
\r
55 for(int i=0;i<plist.GetCount();i++)
\r
57 WinPath=plist[i].GetWinPath();
\r
59 if(WinPath.Left(g_Git.m_CurrentDir.GetLength())==g_Git.m_CurrentDir)
\r
61 if(g_Git.m_CurrentDir[g_Git.m_CurrentDir.GetLength()-1] == _T('\\'))
\r
63 p.SetFromWin( WinPath.Right(WinPath.GetLength()-g_Git.m_CurrentDir.GetLength()));
\r
66 p.SetFromWin( WinPath.Right(WinPath.GetLength()-g_Git.m_CurrentDir.GetLength()-1));
\r
70 pathList.AddPath(p);
\r
74 void SetExplorerHwnd(HWND hWnd) {hwndExplorer = hWnd;}
\r
76 CCmdLineParser parser;
\r
77 CTGitPathList pathList;
\r
78 CTGitPathList orgPathList;
\r
79 CTGitPath cmdLinePath;
\r
80 CTGitPath orgCmdLinePath;
\r
85 * \ingroup TortoiseProc
\r
86 * Factory for the different commands which TortoiseProc executes from the
\r
93 Command * GetCommand(const CString& sCmd);
\r