Skip to content

Commit

Permalink
[localization] catch localized string format errors
Browse files Browse the repository at this point in the history
  • Loading branch information
strega-nil committed Apr 22, 2022
1 parent 20c8896 commit f177431
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion src/vcpkg/base/messages.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,27 @@ namespace vcpkg::msg
LocalizedString detail::internal_vformat(::size_t index, fmt::format_args args)
{
auto fmt_string = get_format_string(index);
return LocalizedString::from_raw(fmt::vformat({fmt_string.data(), fmt_string.size()}, args));
try
{
return LocalizedString::from_raw(fmt::vformat({fmt_string.data(), fmt_string.size()}, args));
}
catch (...)
{
auto default_format_string = get_default_format_string(index);
try
{
return LocalizedString::from_raw(
fmt::vformat({default_format_string.data(), default_format_string.size()}, args));
}
catch (...)
{
::fprintf(stderr,
"INTERNAL ERROR: failed to format default format string for index %zu\nformat string: %.*s\n",
index,
(int)default_format_string.size(),
default_format_string.data());
Checks::exit_fail(VCPKG_LINE_INFO);
}
}
}
}

0 comments on commit f177431

Please sign in to comment.