Browse Source

Fixed go to header on Arch Linux/Manjaro

merge-requests/365/head
eidheim 9 years ago
parent
commit
2e23657eea
  1. 24
      src/source_clang.cc

24
src/source_clang.cc

@ -1044,8 +1044,16 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file
}
}, &client_data);
if(!client_data.found_include.empty())
return Offset(0, 0, client_data.found_include);
if(!client_data.found_include.empty()) {
// Workaround for bug in ArchLinux's clang_getFileName()
// TODO: remove the workaround when this is fixed
auto include_path=filesystem::get_normal_path(client_data.found_include);
boost::system::error_code ec;
if(!boost::filesystem::exists(include_path, ec))
include_path="/usr/include"/include_path;
return Offset(0, 0, include_path);
}
// Find a matching include file if no include was found previously
clang_getInclusions(clang_tu->cx_tu, [](CXFile included_file, CXSourceLocation *inclusion_stack, unsigned include_len, CXClientData client_data_) {
@ -1066,8 +1074,16 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file
}
}, &client_data);
if(!client_data.found_include.empty())
return Offset(0, 0, client_data.found_include);
if(!client_data.found_include.empty()) {
// Workaround for bug in ArchLinux's clang_getFileName()
// TODO: remove the workaround when this is fixed
auto include_path=filesystem::get_normal_path(client_data.found_include);
boost::system::error_code ec;
if(!boost::filesystem::exists(include_path, ec))
include_path="/usr/include"/include_path;
return Offset(0, 0, include_path);
}
}
}
return Offset();

Loading…
Cancel
Save