forked from OSchip/llvm-project
Don't make paths with /Foo//bar, that confuses everybody down the line.
This gets the file completer for absolute paths working again. llvm-svn: 217722
This commit is contained in:
parent
cf3f3683f8
commit
1adba8b6e3
|
|
@ -946,6 +946,8 @@ FileSpec::EnumerateDirectory
|
||||||
lldb_utility::CleanUp <DIR *, int> dir_path_dir(opendir(dir_path), NULL, closedir);
|
lldb_utility::CleanUp <DIR *, int> dir_path_dir(opendir(dir_path), NULL, closedir);
|
||||||
if (dir_path_dir.is_valid())
|
if (dir_path_dir.is_valid())
|
||||||
{
|
{
|
||||||
|
char dir_path_last_char = dir_path[strlen(dir_path) - 1];
|
||||||
|
|
||||||
long path_max = fpathconf (dirfd (dir_path_dir.get()), _PC_NAME_MAX);
|
long path_max = fpathconf (dirfd (dir_path_dir.get()), _PC_NAME_MAX);
|
||||||
#if defined (__APPLE_) && defined (__DARWIN_MAXPATHLEN)
|
#if defined (__APPLE_) && defined (__DARWIN_MAXPATHLEN)
|
||||||
if (path_max < __DARWIN_MAXPATHLEN)
|
if (path_max < __DARWIN_MAXPATHLEN)
|
||||||
|
|
@ -990,7 +992,14 @@ FileSpec::EnumerateDirectory
|
||||||
if (call_callback)
|
if (call_callback)
|
||||||
{
|
{
|
||||||
char child_path[PATH_MAX];
|
char child_path[PATH_MAX];
|
||||||
const int child_path_len = ::snprintf (child_path, sizeof(child_path), "%s/%s", dir_path, dp->d_name);
|
|
||||||
|
// Don't make paths with "/foo//bar", that just confuses everybody.
|
||||||
|
int child_path_len;
|
||||||
|
if (dir_path_last_char == '/')
|
||||||
|
child_path_len = ::snprintf (child_path, sizeof(child_path), "%s%s", dir_path, dp->d_name);
|
||||||
|
else
|
||||||
|
child_path_len = ::snprintf (child_path, sizeof(child_path), "%s/%s", dir_path, dp->d_name);
|
||||||
|
|
||||||
if (child_path_len < (int)(sizeof(child_path) - 1))
|
if (child_path_len < (int)(sizeof(child_path) - 1))
|
||||||
{
|
{
|
||||||
// Don't resolve the file type or path
|
// Don't resolve the file type or path
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue