mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-27 23:51:56 +00:00
Add GetCurrentDirectory back.
It looks like clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp depends on the behaviour of the old one on Windows. Maybe a difference between GetCurrentDirectoryA and GetCurrentDirectoryW? llvm-svn: 184009
This commit is contained in:
parent
4e69d01b67
commit
158d537c5a
@ -102,6 +102,11 @@ namespace sys {
|
||||
/// directory.
|
||||
static Path GetTemporaryDirectory(std::string* ErrMsg = 0);
|
||||
|
||||
/// Construct a path to the current directory for the current process.
|
||||
/// @returns The current working directory.
|
||||
/// @brief Returns the current working directory.
|
||||
static Path GetCurrentDirectory();
|
||||
|
||||
/// Return the suffix commonly used on file names that contain an
|
||||
/// executable.
|
||||
/// @returns The executable file suffix for the current platform.
|
||||
|
@ -185,6 +185,17 @@ Path::GetTemporaryDirectory(std::string *ErrMsg) {
|
||||
#endif
|
||||
}
|
||||
|
||||
Path
|
||||
Path::GetCurrentDirectory() {
|
||||
char pathname[MAXPATHLEN];
|
||||
if (!getcwd(pathname, MAXPATHLEN)) {
|
||||
assert(false && "Could not query current working directory.");
|
||||
return Path();
|
||||
}
|
||||
|
||||
return Path(pathname);
|
||||
}
|
||||
|
||||
#if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__Bitrig__) || \
|
||||
defined(__OpenBSD__) || defined(__minix) || defined(__FreeBSD_kernel__) || \
|
||||
defined(__linux__) || defined(__CYGWIN__)
|
||||
|
@ -20,6 +20,9 @@
|
||||
#include <cstdio>
|
||||
#include <malloc.h>
|
||||
|
||||
// We need to undo a macro defined in Windows.h, otherwise we won't compile:
|
||||
#undef GetCurrentDirectory
|
||||
|
||||
// Windows happily accepts either forward or backward slashes, though any path
|
||||
// returned by a Win32 API will have backward slashes. As LLVM code basically
|
||||
// assumes forward slashes are used, backward slashs are converted where they
|
||||
@ -196,6 +199,13 @@ Path::GetTemporaryDirectory(std::string* ErrMsg) {
|
||||
return *TempDirectory;
|
||||
}
|
||||
|
||||
Path
|
||||
Path::GetCurrentDirectory() {
|
||||
char pathname[MAX_PATH];
|
||||
::GetCurrentDirectoryA(MAX_PATH,pathname);
|
||||
return Path(pathname);
|
||||
}
|
||||
|
||||
/// GetMainExecutable - Return the path to the main executable, given the
|
||||
/// value of argv[0] from program startup.
|
||||
Path Path::GetMainExecutable(const char *argv0, void *MainAddr) {
|
||||
|
Loading…
Reference in New Issue
Block a user