old personal and profile directory functions now wrap the new implementations
This commit is contained in:
parent
96627f4f07
commit
c16fd089f6
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "arch/unix/ArchFileUnix.h"
|
#include "arch/unix/ArchFileUnix.h"
|
||||||
|
#include "common/DataDirectories.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@ -57,29 +58,7 @@ ArchFileUnix::getBasename(const char* pathname)
|
||||||
std::string
|
std::string
|
||||||
ArchFileUnix::getUserDirectory()
|
ArchFileUnix::getUserDirectory()
|
||||||
{
|
{
|
||||||
char* buffer = NULL;
|
return DataDirectories::personal();
|
||||||
std::string dir;
|
|
||||||
#if HAVE_GETPWUID_R
|
|
||||||
struct passwd pwent;
|
|
||||||
struct passwd* pwentp;
|
|
||||||
#if defined(_SC_GETPW_R_SIZE_MAX)
|
|
||||||
long size = sysconf(_SC_GETPW_R_SIZE_MAX);
|
|
||||||
if (size == -1) {
|
|
||||||
size = BUFSIZ;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
long size = BUFSIZ;
|
|
||||||
#endif
|
|
||||||
buffer = new char[size];
|
|
||||||
getpwuid_r(getuid(), &pwent, buffer, size, &pwentp);
|
|
||||||
#else
|
|
||||||
struct passwd* pwentp = getpwuid(getuid());
|
|
||||||
#endif
|
|
||||||
if (pwentp != NULL && pwentp->pw_dir != NULL) {
|
|
||||||
dir = pwentp->pw_dir;
|
|
||||||
}
|
|
||||||
delete[] buffer;
|
|
||||||
return dir;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
|
@ -121,19 +100,7 @@ ArchFileUnix::getPluginDirectory()
|
||||||
std::string
|
std::string
|
||||||
ArchFileUnix::getProfileDirectory()
|
ArchFileUnix::getProfileDirectory()
|
||||||
{
|
{
|
||||||
String dir;
|
return DataDirectories::profile();
|
||||||
if (!m_profileDirectory.empty()) {
|
|
||||||
dir = m_profileDirectory;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
#if WINAPI_XWINDOWS
|
|
||||||
dir = getUserDirectory().append("/.barrier");
|
|
||||||
#else
|
|
||||||
dir = getUserDirectory().append("/Library/Application Support/Barrier");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return dir;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
|
@ -153,7 +120,7 @@ ArchFileUnix::concatPath(const std::string& prefix,
|
||||||
void
|
void
|
||||||
ArchFileUnix::setProfileDirectory(const String& s)
|
ArchFileUnix::setProfileDirectory(const String& s)
|
||||||
{
|
{
|
||||||
m_profileDirectory = s;
|
DataDirectories::profile(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -42,6 +42,5 @@ public:
|
||||||
virtual void setPluginDirectory(const String& s);
|
virtual void setPluginDirectory(const String& s);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
String m_profileDirectory;
|
|
||||||
String m_pluginDirectory;
|
String m_pluginDirectory;
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "arch/win32/ArchFileWindows.h"
|
#include "arch/win32/ArchFileWindows.h"
|
||||||
|
#include "common/DataDirectories.h"
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
|
@ -66,45 +67,7 @@ ArchFileWindows::getBasename(const char* pathname)
|
||||||
std::string
|
std::string
|
||||||
ArchFileWindows::getUserDirectory()
|
ArchFileWindows::getUserDirectory()
|
||||||
{
|
{
|
||||||
// try %HOMEPATH%
|
return DataDirectories::personal();
|
||||||
TCHAR dir[MAX_PATH];
|
|
||||||
DWORD size = sizeof(dir) / sizeof(TCHAR);
|
|
||||||
DWORD result = GetEnvironmentVariable(_T("HOMEPATH"), dir, size);
|
|
||||||
if (result != 0 && result <= size) {
|
|
||||||
// sanity check -- if dir doesn't appear to start with a
|
|
||||||
// drive letter and isn't a UNC name then don't use it
|
|
||||||
// FIXME -- allow UNC names
|
|
||||||
if (dir[0] != '\0' && (dir[1] == ':' ||
|
|
||||||
((dir[0] == '\\' || dir[0] == '/') &&
|
|
||||||
(dir[1] == '\\' || dir[1] == '/')))) {
|
|
||||||
return dir;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// get the location of the personal files. that's as close to
|
|
||||||
// a home directory as we're likely to find.
|
|
||||||
ITEMIDLIST* idl;
|
|
||||||
if (SUCCEEDED(SHGetSpecialFolderLocation(NULL, CSIDL_PERSONAL, &idl))) {
|
|
||||||
TCHAR* path = NULL;
|
|
||||||
if (SHGetPathFromIDList(idl, dir)) {
|
|
||||||
DWORD attr = GetFileAttributes(dir);
|
|
||||||
if (attr != 0xffffffff && (attr & FILE_ATTRIBUTE_DIRECTORY) != 0)
|
|
||||||
path = dir;
|
|
||||||
}
|
|
||||||
|
|
||||||
IMalloc* shalloc;
|
|
||||||
if (SUCCEEDED(SHGetMalloc(&shalloc))) {
|
|
||||||
shalloc->Free(idl);
|
|
||||||
shalloc->Release();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (path != NULL) {
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// use root of C drive as a default
|
|
||||||
return "C:";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
|
@ -154,24 +117,7 @@ ArchFileWindows::getPluginDirectory()
|
||||||
std::string
|
std::string
|
||||||
ArchFileWindows::getProfileDirectory()
|
ArchFileWindows::getProfileDirectory()
|
||||||
{
|
{
|
||||||
String dir;
|
return DataDirectories::profile();
|
||||||
if (!m_profileDirectory.empty()) {
|
|
||||||
dir = m_profileDirectory;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
TCHAR result[MAX_PATH];
|
|
||||||
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, result))) {
|
|
||||||
dir = result;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
dir = getUserDirectory();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// HACK: append program name, this seems wrong.
|
|
||||||
dir.append("\\Barrier");
|
|
||||||
|
|
||||||
return dir;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string
|
std::string
|
||||||
|
@ -193,7 +139,7 @@ ArchFileWindows::concatPath(const std::string& prefix,
|
||||||
void
|
void
|
||||||
ArchFileWindows::setProfileDirectory(const String& s)
|
ArchFileWindows::setProfileDirectory(const String& s)
|
||||||
{
|
{
|
||||||
m_profileDirectory = s;
|
DataDirectories::profile(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -42,6 +42,5 @@ public:
|
||||||
virtual void setPluginDirectory(const String& s);
|
virtual void setPluginDirectory(const String& s);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
String m_profileDirectory;
|
|
||||||
String m_pluginDirectory;
|
String m_pluginDirectory;
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#include "platform/ImmuneKeysReader.h"
|
#include "platform/ImmuneKeysReader.h"
|
||||||
#include "barrier/protocol_types.h"
|
#include "barrier/protocol_types.h"
|
||||||
#include "barrier/XScreen.h"
|
#include "barrier/XScreen.h"
|
||||||
|
#include "common/DataDirectories.h"
|
||||||
#include "base/Log.h"
|
#include "base/Log.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -52,7 +53,7 @@ static BYTE g_keyState[256] = { 0 };
|
||||||
static bool g_fakeServerInput = false;
|
static bool g_fakeServerInput = false;
|
||||||
static std::vector<DWORD> g_immuneKeys;
|
static std::vector<DWORD> g_immuneKeys;
|
||||||
|
|
||||||
static const std::string ImmuneKeysPath = ArchFileWindows().getProfileDirectory() + "\\ImmuneKeys.txt";
|
static const std::string ImmuneKeysPath = DataDirectories::profile() + "\\ImmuneKeys.txt";
|
||||||
|
|
||||||
static std::vector<DWORD> immune_keys_list()
|
static std::vector<DWORD> immune_keys_list()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue