Get rid of magic numbers
[TortoiseGit.git] / src / TortoiseShell / PreserveChdir.h
blob92c34b07f9345996eea1bf6ec566b1f39d964ff9
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2016 - TortoiseGit
4 // Copyright (C) 2003-2006,2008 - Stefan Kueng
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (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 Foundation,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #pragma once
21 #include <memory>
23 /**
24 * \ingroup TortoiseShell
25 * Helper class to keep the current directory.
26 * When created, the current directory is saved and restored
27 * as soon as the object is destroyed.
28 * Since some of the SVN functions change the current directory
29 * which when in the explorer process space causes problems / crashes,
30 * this class is used to reset the current directory after calling
31 * those functions.
33 class PreserveChdir
35 public:
36 PreserveChdir();
37 ~PreserveChdir();
39 private:
40 std::unique_ptr<TCHAR[]> m_originalCurrentDirectory;