Use llvm to get Home directory, was broken on Windows anyway.
Signed-off-by: Vassil Vassilev <vvasilev@cern.ch>
This commit is contained in:
parent
98c827ebdc
commit
a55bbe356c
@ -30,10 +30,6 @@
|
|||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(LLVM_ON_WIN32)
|
|
||||||
#include <Shlobj.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#ifndef STDIN_FILENO
|
#ifndef STDIN_FILENO
|
||||||
# define STDIN_FILENO 0
|
# define STDIN_FILENO 0
|
||||||
@ -48,36 +44,6 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
#if defined(LLVM_ON_UNIX)
|
|
||||||
static void GetUserHomeDirectory(llvm::SmallVectorImpl<char>& str) {
|
|
||||||
str.clear();
|
|
||||||
const char* home = getenv("HOME");
|
|
||||||
if (!home)
|
|
||||||
home = "/";
|
|
||||||
llvm::StringRef SRhome(home);
|
|
||||||
str.insert(str.begin(), SRhome.begin(), SRhome.end());
|
|
||||||
}
|
|
||||||
#elif defined(LLVM_ON_WIN32)
|
|
||||||
static void GetUserHomeDirectory(llvm::SmallVectorImpl<char>& str) {
|
|
||||||
str.reserve(MAX_PATH);
|
|
||||||
HRESULT res = SHGetFolderPathA(NULL,
|
|
||||||
CSIDL_FLAG_CREATE | CSIDL_APPDATA,
|
|
||||||
NULL,
|
|
||||||
SHGFP_TYPE_CURRENT,
|
|
||||||
str.data());
|
|
||||||
if (res != S_OK) {
|
|
||||||
assert(0 && "Failed to get user home directory");
|
|
||||||
llvm::StringRef SRhome("\\");
|
|
||||||
str.insert(str.begin(), SRhome.begin(), SRhome.end());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
# error "Unsupported platform."
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
///\brief Class that specialises the textinput TabCompletion to allow Cling
|
///\brief Class that specialises the textinput TabCompletion to allow Cling
|
||||||
/// to code complete through its own textinput mechanism which is part of the
|
/// to code complete through its own textinput mechanism which is part of the
|
||||||
@ -122,9 +88,8 @@ namespace cling {
|
|||||||
llvm::SmallString<512> histfilePath;
|
llvm::SmallString<512> histfilePath;
|
||||||
if (!getenv("CLING_NOHISTORY")) {
|
if (!getenv("CLING_NOHISTORY")) {
|
||||||
// History file is $HOME/.cling_history
|
// History file is $HOME/.cling_history
|
||||||
static const char* histfile = ".cling_history";
|
if (llvm::sys::path::home_directory(histfilePath))
|
||||||
GetUserHomeDirectory(histfilePath);
|
llvm::sys::path::append(histfilePath, ".cling_history");
|
||||||
llvm::sys::path::append(histfilePath, histfile);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
using namespace textinput;
|
using namespace textinput;
|
||||||
|
Loading…
Reference in New Issue
Block a user