Fix fatal exception when checking if buffer needs to be reloaded

If, for example, the buffer path now is a directory, MappedFile will
throw on construction. Using a try block to explicitely allow errors
fixes the issue.
This commit is contained in:
Maxime Coste 2023-02-21 16:59:16 +11:00
parent be49f36205
commit fa060c2a17

View File

@ -367,6 +367,8 @@ void Client::check_if_buffer_needs_reloading()
if (not (buffer.flags() & Buffer::Flags::File) or reload == Autoreload::No) if (not (buffer.flags() & Buffer::Flags::File) or reload == Autoreload::No)
return; return;
try
{
const String& filename = buffer.name(); const String& filename = buffer.name();
const timespec ts = get_fs_timestamp(filename); const timespec ts = get_fs_timestamp(filename);
const auto status = buffer.fs_status(); const auto status = buffer.fs_status();
@ -392,6 +394,11 @@ void Client::check_if_buffer_needs_reloading()
} }
else else
reload_buffer(); reload_buffer();
}
catch (Kakoune::runtime_error& error)
{
write_to_debug_buffer(format("Error while checking if buffer {} changed: {}", buffer.name(), error.what()));
}
} }
StringView Client::get_env_var(StringView name) const StringView Client::get_env_var(StringView name) const