summaryrefslogtreecommitdiffstats
path: root/lldb/source/Host/common/FileSpec.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2012-10-18 16:33:33 +0000
committerGreg Clayton <gclayton@apple.com>2012-10-18 16:33:33 +0000
commita0ca6601bc814e4b248eb473e7cfcd91844ccee2 (patch)
treed53fa79571392745de775bd16cd25cb0444891a3 /lldb/source/Host/common/FileSpec.cpp
parentce2bcbf8c0e1368cf04e79fa4bfa3c3bc09a3697 (diff)
downloadbcm5719-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.cpp24
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;
+}
+
OpenPOWER on IntegriCloud