summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Path.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-11 22:53:00 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-11 22:53:00 +0000
commitda70bfd82650d80ee43e9c6ff5f202da959ef09b (patch)
tree4b1bcc747cc94d9b87e9daa8b2c5e9755cff27c5 /llvm/lib/Support/Path.cpp
parente8ad3839a19e0731b8c8ba716263ecbea0223c03 (diff)
downloadbcm5719-llvm-da70bfd82650d80ee43e9c6ff5f202da959ef09b.tar.gz
bcm5719-llvm-da70bfd82650d80ee43e9c6ff5f202da959ef09b.zip
Implement get_magic with generic tools and inline it.
llvm-svn: 210716
Diffstat (limited to 'llvm/lib/Support/Path.cpp')
-rw-r--r--llvm/lib/Support/Path.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/llvm/lib/Support/Path.cpp b/llvm/lib/Support/Path.cpp
index c063bed2b50..9d98503e02f 100644
--- a/llvm/lib/Support/Path.cpp
+++ b/llvm/lib/Support/Path.cpp
@@ -1022,13 +1022,17 @@ void directory_entry::replace_filename(const Twine &filename, file_status st) {
return file_magic::unknown;
}
-error_code identify_magic(const Twine &path, file_magic &result) {
- SmallString<32> Magic;
- error_code ec = get_magic(path, Magic.capacity(), Magic);
- if (ec && ec != std::errc::value_too_large)
- return ec;
+error_code identify_magic(const Twine &Path, file_magic &Result) {
+ int FD;
+ if (error_code EC = openFileForRead(Path, FD))
+ return EC;
+
+ char Buffer[32];
+ int Length = read(FD, Buffer, sizeof(Buffer));
+ if (Length < 0)
+ return error_code(errno, generic_category());
- result = identify_magic(Magic);
+ Result = identify_magic(StringRef(Buffer, Length));
return error_code();
}
OpenPOWER on IntegriCloud