@@ -49,35 +49,6 @@ using namespace sourcekitd_test;
49
49
#if defined(_WIN32)
50
50
namespace {
51
51
int STDOUT_FILENO = _fileno(stdout);
52
- const constexpr size_t MAXPATHLEN = MAX_PATH + 1 ;
53
- char *realpath (const char *path, char *resolved_path) {
54
- wchar_t full_path[MAXPATHLEN] = {0 };
55
- llvm::SmallVector<llvm::UTF16, 50 > utf16Path;
56
- llvm::convertUTF8ToUTF16String (path, utf16Path);
57
-
58
- HANDLE fileHandle = CreateFileW (
59
- (LPCWSTR)utf16Path.data (), 0 , FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr ,
60
- OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, nullptr );
61
-
62
- if (fileHandle == INVALID_HANDLE_VALUE)
63
- return nullptr ;
64
- DWORD success = GetFinalPathNameByHandleW (fileHandle, full_path, MAX_PATH,
65
- FILE_NAME_NORMALIZED);
66
- CloseHandle (fileHandle);
67
- if (!success) return nullptr ;
68
-
69
- std::string utf8Path;
70
- llvm::ArrayRef<char > pathRef ((const char *)full_path,
71
- (const char *)(full_path + MAX_PATH));
72
- if (!llvm::convertUTF16ToUTF8String (pathRef, utf8Path))
73
- return nullptr ;
74
-
75
- if (!resolved_path) {
76
- resolved_path = static_cast <char *>(malloc (utf8Path.length () + 1 ));
77
- }
78
- std::copy (std::begin (utf8Path), std::end (utf8Path), resolved_path);
79
- return resolved_path;
80
- }
81
52
}
82
53
#endif
83
54
@@ -1445,9 +1416,9 @@ static void printCursorInfo(sourcekitd_variant_t Info, StringRef FilenameIn,
1445
1416
}
1446
1417
1447
1418
std::string Filename = FilenameIn;
1448
- char full_path[MAXPATHLEN] ;
1449
- if (const char *path = realpath (Filename. c_str (), full_path ))
1450
- Filename = path ;
1419
+ llvm::SmallString< 256 > output ;
1420
+ if (! llvm::sys::fs::real_path (Filename, output ))
1421
+ Filename = output. str () ;
1451
1422
1452
1423
const char *Kind = sourcekitd_uid_get_string_ptr (KindUID);
1453
1424
const char *USR = sourcekitd_variant_dictionary_get_string (Info, KeyUSR);
@@ -1617,9 +1588,9 @@ static void printRangeInfo(sourcekitd_variant_t Info, StringRef FilenameIn,
1617
1588
}
1618
1589
1619
1590
std::string Filename = FilenameIn;
1620
- char full_path[MAXPATHLEN] ;
1621
- if (const char *path = realpath (Filename. c_str (), full_path ))
1622
- Filename = path ;
1591
+ llvm::SmallString< 256 > output ;
1592
+ if (llvm::sys::fs::real_path (Filename, output ))
1593
+ Filename = output. str () ;
1623
1594
1624
1595
sourcekitd_variant_t OffsetObj =
1625
1596
sourcekitd_variant_dictionary_get_value (Info, KeyOffset);
0 commit comments