diff options
author | Greg Clayton <gclayton@apple.com> | 2012-10-18 16:33:33 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-10-18 16:33:33 +0000 |
commit | a0ca6601bc814e4b248eb473e7cfcd91844ccee2 (patch) | |
tree | d53fa79571392745de775bd16cd25cb0444891a3 /lldb/source/Host/common/FileSpec.cpp | |
parent | ce2bcbf8c0e1368cf04e79fa4bfa3c3bc09a3697 (diff) | |
download | bcm5719-llvm-a0ca6601bc814e4b248eb473e7cfcd91844ccee2.tar.gz bcm5719-llvm-a0ca6601bc814e4b248eb473e7cfcd91844ccee2.zip |
<rdar://problem/12462048>
<rdar://problem/12068650>
More fixes to how we handle paths that are used to create a target.
This modification centralizes the location where and how what the user specifies gets resolved. Prior to this fix, the TargetList::CreateTarget variants took a FileSpec object which meant everyone had the opportunity to resolve the path their own way. Now both CreateTarget variants take a "const char *use_exe_path" which allows the TargetList::CreateTarget to centralize where the resolving happens and "do the right thing".
llvm-svn: 166186
Diffstat (limited to 'lldb/source/Host/common/FileSpec.cpp')
-rw-r--r-- | lldb/source/Host/common/FileSpec.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lldb/source/Host/common/FileSpec.cpp b/lldb/source/Host/common/FileSpec.cpp index d104bd21c47..d356ff68495 100644 --- a/lldb/source/Host/common/FileSpec.cpp +++ b/lldb/source/Host/common/FileSpec.cpp @@ -996,4 +996,28 @@ FileSpec::IsSourceImplementationFile () const return false; } +bool +FileSpec::IsRelativeToCurrentWorkingDirectory () const +{ + const char *directory = m_directory.GetCString(); + if (directory && directory[0]) + { + // If the path doesn't start with '/' or '~', return true + switch (directory[0]) + { + case '/': + case '~': + return false; + default: + return true; + } + } + else if (m_filename) + { + // No directory, just a basename, return true + return true; + } + return false; +} + |