diff options
-rw-r--r-- | clang/lib/Format/Format.cpp | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 6d03b629200..31dc259d4c5 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -2099,10 +2099,7 @@ static FormatStyle::LanguageKind getLanguageByFileName(StringRef FileName) { } FormatStyle getStyle(StringRef StyleName, StringRef FileName, - StringRef FallbackStyle, vfs::FileSystem *FS) { - if (!FS) { - FS = vfs::getRealFileSystem().get(); - } + StringRef FallbackStyle) { FormatStyle Style = getLLVMStyle(); Style.Language = getLanguageByFileName(FileName); if (!getPredefinedStyle(FallbackStyle, Style.Language, &Style)) { @@ -2133,35 +2130,28 @@ FormatStyle getStyle(StringRef StyleName, StringRef FileName, llvm::sys::fs::make_absolute(Path); for (StringRef Directory = Path; !Directory.empty(); Directory = llvm::sys::path::parent_path(Directory)) { - - auto Status = FS->status(Directory); - if (!Status || - Status->getType() != llvm::sys::fs::file_type::directory_file) { + if (!llvm::sys::fs::is_directory(Directory)) continue; - } - SmallString<128> ConfigFile(Directory); llvm::sys::path::append(ConfigFile, ".clang-format"); DEBUG(llvm::dbgs() << "Trying " << ConfigFile << "...\n"); + bool IsFile = false; // Ignore errors from is_regular_file: we only need to know if we can read // the file or not. - Status = FS->status(ConfigFile.str()); - bool IsFile = - Status && (Status->getType() == llvm::sys::fs::file_type::regular_file); + llvm::sys::fs::is_regular_file(Twine(ConfigFile), IsFile); + if (!IsFile) { // Try _clang-format too, since dotfiles are not commonly used on Windows. ConfigFile = Directory; llvm::sys::path::append(ConfigFile, "_clang-format"); DEBUG(llvm::dbgs() << "Trying " << ConfigFile << "...\n"); - Status = FS->status(ConfigFile.str()); - IsFile = Status && - (Status->getType() == llvm::sys::fs::file_type::regular_file); + llvm::sys::fs::is_regular_file(Twine(ConfigFile), IsFile); } if (IsFile) { llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> Text = - FS->getBufferForFile(ConfigFile.str()); + llvm::MemoryBuffer::getFile(ConfigFile.c_str()); if (std::error_code EC = Text.getError()) { llvm::errs() << EC.message() << "\n"; break; |