message: [text_shaper] coretext_locator: Be more graceful when a font description cannot be matched rather than strictly returning an empty set.
diff: @@ -83,7 +83,7 @@ namespace text
  font_source_list coretext_locator::locate(font_description const& _fd)
  {
  - LOGSTORE(LocatorLog)("Locating font chain for: {}", _fd);
  + LocatorLog()("Locating font chain for: {}", _fd);
  font_source_list output;
  @@ -95,13 +95,21 @@ namespace text
  ];
  if (fonts == nil)
  + {
  + LocatorLog()("No fonts found. Falling back to font family: Menlo.");
  fonts = [d->fm availableMembersOfFontFamily:@"Menlo"];
  + }
  + for (bool const forceWeight: {true, false})
  + {
  + for (bool const forceSlant: {true, false})
  + {
  for (NSArray* object in fonts)
  {
  + auto path = ctFontPath([object objectAtIndex: 0]);
  auto const weight = ctFontWeight([[object objectAtIndex: 2] intValue]);
  - if (weight != _fd.weight)
  + if (forceWeight && weight != _fd.weight)
  continue;
  auto const slant = ctFontSlant([[object objectAtIndex: 3] intValue]);
  @@ -111,6 +119,12 @@ namespace text
  output.emplace_back(ctFontPath([object objectAtIndex: 0]));
  }
  + if (!output.empty())
  + break;
  + }
  + if (!output.empty())
  + break;
  + }
  return output;
  }
  