From 39eae0e4c3d4e392feffd19b4e3b9449534d5426 Mon Sep 17 00:00:00 2001 From: David Foerster Date: Thu, 31 Mar 2016 12:24:41 +0200 Subject: Remove some trailing whitespace --- src/Main/Application.cpp | 6 +++--- src/Makefile | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp index a4b3c60c..dec416af 100644 --- a/src/Main/Application.cpp +++ b/src/Main/Application.cpp @@ -3,7 +3,7 @@ Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed by the TrueCrypt License 3.0. - Modifications and additions to the original source code (contained in this file) + Modifications and additions to the original source code (contained in this file) and all other portions of this file are Copyright (c) 2013-2016 IDRIX and are governed by the Apache License 2.0 the full text of which is contained in the file License.txt included in VeraCrypt binary and source @@ -27,7 +27,7 @@ namespace VeraCrypt mUserInterface = new TextUserInterface; mUserInterfaceType = UserInterfaceType::Text; return mUserInterface; - } + } #ifndef TC_NO_GUI wxApp* Application::CreateGuiApp () @@ -35,7 +35,7 @@ namespace VeraCrypt mUserInterface = new GraphicUserInterface; mUserInterfaceType = UserInterfaceType::Graphic; return mUserInterface; - } + } #endif FilePath Application::GetConfigFilePath (const wxString &configFileName, bool createConfigDir) diff --git a/src/Makefile b/src/Makefile index 23d0c516..70fb26da 100644 --- a/src/Makefile +++ b/src/Makefile @@ -3,7 +3,7 @@ # Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed # by the TrueCrypt License 3.0. # -# Modifications and additions to the original source code (contained in this file) +# Modifications and additions to the original source code (contained in this file) # and all other portions of this file are Copyright (c) 2013-2016 IDRIX # and are governed by the Apache License 2.0 the full text of which is # contained in the file License.txt included in VeraCrypt binary and source @@ -114,7 +114,7 @@ endif ifeq "$(origin DEBUGGER)" "command line" - C_CXX_FLAGS += -ggdb + C_CXX_FLAGS += -ggdb WX_CONFIGURE_FLAGS += --enable-debug_gdb --enable-debug_info endif @@ -172,7 +172,7 @@ ifeq "$(shell uname -s)" "Linux" WXCONFIG_CFLAGS += -fdata-sections -ffunction-sections WXCONFIG_CXXFLAGS += -fdata-sections -ffunction-sections endif - + ifneq "$(origin WXSTATIC)" "command line" LFLAGS += -ldl else @@ -191,7 +191,7 @@ ifeq "$(shell uname -s)" "Darwin" PLATFORM := MacOSX APPNAME := VeraCrypt - + export VC_OSX_TARGET ?= 10.7 #check to see if XCode 3 path exists.Otherwise, use XCode 4 path @@ -284,7 +284,7 @@ WX_CONFIGURE_FLAGS += --enable-unicode -disable-shared --disable-dependency-trac --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-pnm --disable-svg \ --without-expat --without-libtiff --without-libjpeg --without-libpng -without-regex --without-zlib -ifeq "$(PLATFORM)" "Linux" +ifeq "$(PLATFORM)" "Linux" WX_CONFIGURE_FLAGS += --disable-tooltips endif @@ -301,7 +301,7 @@ all clean: PROJ=$$(echo $$DIR | cut -d/ -f1); \ $(MAKE) -C $$DIR -f $$PROJ.make NAME=$$PROJ $(MAKECMDGOALS) || exit $?; \ export LIBS="$(BASE_DIR)/$$DIR/$$PROJ.a $$LIBS"; \ - done + done #------ wxWidgets build ------ @@ -323,6 +323,6 @@ endif mkdir -p "$(WX_BUILD_DIR)" @echo Configuring wxWidgets library... cd "$(WX_BUILD_DIR)" && "$(WX_ROOT)/configure" $(WX_CONFIGURE_FLAGS) >/dev/null - + @echo Building wxWidgets library... cd "$(WX_BUILD_DIR)" && $(MAKE) -- cgit v1.2.3 From 7d7c09e7184214f4e05621dfc467f6e117b1411f Mon Sep 17 00:00:00 2001 From: David Foerster Date: Thu, 31 Mar 2016 12:36:21 +0200 Subject: Use XDG_CONFIG_HOME to determine the path of the configuration Adhere to XDG Desktop Specification and use the environment variable XDG_CONFIG_HOME to determine location of configuration files on *all* platforms. If it is unset or empty resort to platform-specific defaults. On Windows and OS X, `wxStandardPaths` provides correct defaults (equal to the previous hard-coded paths) but on Linux and other Unices `~/.config/appinfo` would be better than `~/.appinfo`. This means we treat those platforms as a special case. It also means that we may need to fall back to the legacy location if it exists but the new location doesn't. --- src/Main/Application.cpp | 106 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 88 insertions(+), 18 deletions(-) diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp index dec416af..cf71620d 100644 --- a/src/Main/Application.cpp +++ b/src/Main/Application.cpp @@ -22,6 +22,59 @@ namespace VeraCrypt { + namespace + { + void EnsureEndsWithPathSeparator( wxString &s ) + { + const wxUniChar pathSeparator = wxFileName::GetPathSeparator(); + if (s[s.size() - 1] != pathSeparator) + s.append(pathSeparator); + } + + wxString *GetXdgConfigPath () + { + wxString *configDir; + + #ifdef TC_WINDOWS + const wchar_t *xdgConfig = ::_wgetenv(L"XDG_CONFIG_HOME"); + #else + const char *xdgConfig = ::getenv("XDG_CONFIG_HOME"); + #endif + + if (xdgConfig && *xdgConfig) + { + configDir = new wxString (xdgConfig); + //wcerr << L"XDG_CONFIG_HOME=" << *configDir << endl; + EnsureEndsWithPathSeparator(*configDir); + configDir->append(Application::GetName()); + } + else + { + #if !defined(TC_UNIX) || defined(TC_MACOSX) // Windows, OS X: + configDir = + new wxString (wxStandardPaths::Get().GetUserDataDir()); + #else // Linux, FreeBSD, Solaris: + configDir = new wxString (wxFileName::GetHomeDir()); + configDir->append(wxT("/.config/")); + configDir->append(Application::GetName()); + + if (!wxDirExists(*configDir)) + { + wxString legacyConfigDir = wxStandardPaths::Get().GetUserDataDir(); + //wcerr << L"Legacy config dir: " << legacyConfigDir << endl; + if (wxDirExists(legacyConfigDir)) + { + configDir->swap(legacyConfigDir); + } + } + #endif + } + + //wcerr << L"Config dir: " << *configDir << endl; + return configDir; + } + } + wxApp* Application::CreateConsoleApp () { mUserInterface = new TextUserInterface; @@ -40,27 +93,44 @@ namespace VeraCrypt FilePath Application::GetConfigFilePath (const wxString &configFileName, bool createConfigDir) { - DirectoryPath configDir; - - if (!Core->IsInPortableMode()) + static const wxString *configDirC = NULL; + static bool configDirExists = false; + + if (!configDirExists) { -#ifdef TC_MACOSX - wxFileName configPath (L"~/Library/Application Support/VeraCrypt"); - configPath.Normalize(); - configDir = wstring (configPath.GetFullPath()); -#else - wxStandardPaths& stdPaths = wxStandardPaths::Get(); - configDir = wstring (stdPaths.GetUserDataDir()); -#endif - } - else - configDir = GetExecutableDirectory(); + if (!configDirC) + { + wxString *configDir; - if (createConfigDir && !configDir.IsDirectory()) - Directory::Create (configDir); + if (Core->IsInPortableMode()) + { + configDir = new wxString ( + wxPathOnly(wxStandardPaths::Get().GetExecutablePath())); + } + else + { + configDir = GetXdgConfigPath(); + } + + EnsureEndsWithPathSeparator(*configDir); + configDirC = configDir; + } + + if (createConfigDir) + { + if (!wxDirExists(*configDirC)) + { + //wcerr << L"Creating config dir »" << *configDirC << L"« ..." << endl; + throw_sys_sub_if( + !wxMkdir(*configDirC, wxS_IRUSR | wxS_IWUSR | wxS_IXUSR), + configDirC->ToStdWstring()); + } + configDirExists = true; + //wcerr << L"Config directory »" << *configDirC << L"« exists now" << endl; + } + } - FilePath filePath = wstring (wxFileName (wstring (configDir), configFileName).GetFullPath()); - return filePath; + return FilePath((*configDirC + configFileName).ToStdWstring()); } DirectoryPath Application::GetExecutableDirectory () -- cgit v1.2.3 From af327b49aa52f5f3efc135a5da1c579b327029ce Mon Sep 17 00:00:00 2001 From: David Foerster Date: Fri, 1 Apr 2016 08:29:17 +0200 Subject: Use wx-provided wrapper around *getenv() --- src/Main/Application.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp index cf71620d..ca9db0b1 100644 --- a/src/Main/Application.cpp +++ b/src/Main/Application.cpp @@ -33,15 +33,10 @@ namespace VeraCrypt wxString *GetXdgConfigPath () { + const wxChar *xdgConfig = wxGetenv(wxT("XDG_CONFIG_HOME")); wxString *configDir; - #ifdef TC_WINDOWS - const wchar_t *xdgConfig = ::_wgetenv(L"XDG_CONFIG_HOME"); - #else - const char *xdgConfig = ::getenv("XDG_CONFIG_HOME"); - #endif - - if (xdgConfig && *xdgConfig) + if (!wxIsEmpty(xdgConfig)) { configDir = new wxString (xdgConfig); //wcerr << L"XDG_CONFIG_HOME=" << *configDir << endl; -- cgit v1.2.3 From 0c51cfa5f610782558afc5a227cbec7a0f93a289 Mon Sep 17 00:00:00 2001 From: David Foerster Date: Sun, 1 May 2016 23:29:43 +0200 Subject: Reset bogus executable permissions --- src/Core/Unix/MacOSX/CoreMacOSX.cpp | 0 src/Crypto/Whirlpool.c | 0 src/Crypto/config.h | 0 src/Crypto/cpu.c | 0 src/Crypto/cpu.h | 0 src/Crypto/misc.h | 0 src/Main/Forms/ChangePasswordDialog.cpp | 0 src/Main/Forms/MountOptionsDialog.cpp | 0 src/Main/Forms/VolumeCreationWizard.cpp | 0 src/Main/Forms/VolumePasswordPanel.cpp | 0 src/Main/Forms/VolumePimWizardPage.cpp | 0 src/Resources/Icons/VeraCrypt-128x128.xpm | 0 src/Resources/Icons/VeraCrypt-256x256.xpm | 0 13 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/Core/Unix/MacOSX/CoreMacOSX.cpp mode change 100755 => 100644 src/Crypto/Whirlpool.c mode change 100755 => 100644 src/Crypto/config.h mode change 100755 => 100644 src/Crypto/cpu.c mode change 100755 => 100644 src/Crypto/cpu.h mode change 100755 => 100644 src/Crypto/misc.h mode change 100755 => 100644 src/Main/Forms/ChangePasswordDialog.cpp mode change 100755 => 100644 src/Main/Forms/MountOptionsDialog.cpp mode change 100755 => 100644 src/Main/Forms/VolumeCreationWizard.cpp mode change 100755 => 100644 src/Main/Forms/VolumePasswordPanel.cpp mode change 100755 => 100644 src/Main/Forms/VolumePimWizardPage.cpp mode change 100755 => 100644 src/Resources/Icons/VeraCrypt-128x128.xpm mode change 100755 => 100644 src/Resources/Icons/VeraCrypt-256x256.xpm diff --git a/src/Core/Unix/MacOSX/CoreMacOSX.cpp b/src/Core/Unix/MacOSX/CoreMacOSX.cpp old mode 100755 new mode 100644 diff --git a/src/Crypto/Whirlpool.c b/src/Crypto/Whirlpool.c old mode 100755 new mode 100644 diff --git a/src/Crypto/config.h b/src/Crypto/config.h old mode 100755 new mode 100644 diff --git a/src/Crypto/cpu.c b/src/Crypto/cpu.c old mode 100755 new mode 100644 diff --git a/src/Crypto/cpu.h b/src/Crypto/cpu.h old mode 100755 new mode 100644 diff --git a/src/Crypto/misc.h b/src/Crypto/misc.h old mode 100755 new mode 100644 diff --git a/src/Main/Forms/ChangePasswordDialog.cpp b/src/Main/Forms/ChangePasswordDialog.cpp old mode 100755 new mode 100644 diff --git a/src/Main/Forms/MountOptionsDialog.cpp b/src/Main/Forms/MountOptionsDialog.cpp old mode 100755 new mode 100644 diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp old mode 100755 new mode 100644 diff --git a/src/Main/Forms/VolumePasswordPanel.cpp b/src/Main/Forms/VolumePasswordPanel.cpp old mode 100755 new mode 100644 diff --git a/src/Main/Forms/VolumePimWizardPage.cpp b/src/Main/Forms/VolumePimWizardPage.cpp old mode 100755 new mode 100644 diff --git a/src/Resources/Icons/VeraCrypt-128x128.xpm b/src/Resources/Icons/VeraCrypt-128x128.xpm old mode 100755 new mode 100644 diff --git a/src/Resources/Icons/VeraCrypt-256x256.xpm b/src/Resources/Icons/VeraCrypt-256x256.xpm old mode 100755 new mode 100644 -- cgit v1.2.3 From faea63cb3c135316c035152dbdb1d5b98ae43907 Mon Sep 17 00:00:00 2001 From: David Foerster Date: Sun, 1 May 2016 23:31:07 +0200 Subject: Use scoped instead of raw pointer --- src/Main/Application.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Main/Application.cpp b/src/Main/Application.cpp index ca9db0b1..4b013cfc 100644 --- a/src/Main/Application.cpp +++ b/src/Main/Application.cpp @@ -88,7 +88,7 @@ namespace VeraCrypt FilePath Application::GetConfigFilePath (const wxString &configFileName, bool createConfigDir) { - static const wxString *configDirC = NULL; + static wxScopedPtr configDirC; static bool configDirExists = false; if (!configDirExists) @@ -108,7 +108,7 @@ namespace VeraCrypt } EnsureEndsWithPathSeparator(*configDir); - configDirC = configDir; + configDirC.reset(configDir); } if (createConfigDir) -- cgit v1.2.3