1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 01:34:58 +00:00

AK: Make binary_search signature more generic.

This commit is contained in:
asynts 2020-12-29 16:13:16 +01:00 committed by Andreas Kling
parent 35c4338625
commit 50d24e4f98
6 changed files with 63 additions and 53 deletions

View file

@ -543,9 +543,11 @@ bool Shell::is_runnable(const StringView& name)
if (access(name.to_string().characters(), X_OK) == 0)
return true;
return !!binary_search(cached_path.span(), name.to_string(), [](const String& name, const String& program) -> int {
return strcmp(name.characters(), program.characters());
});
return binary_search(
cached_path.span(),
name.to_string(),
nullptr,
[](auto& name, auto& program) { return strcmp(name.characters(), program.characters()); });
}
int Shell::run_command(const StringView& cmd)
@ -1154,10 +1156,10 @@ void Shell::add_entry_to_cache(const String& entry)
{
size_t index = 0;
auto match = binary_search(
cached_path.span(), entry, [](const String& name, const String& program) -> int {
return strcmp(name.characters(), program.characters());
},
&index);
cached_path.span(),
entry,
&index,
[](auto& name, auto& program) { return strcmp(name.characters(), program.characters()); });
if (match)
return;
@ -1263,9 +1265,11 @@ Vector<Line::CompletionSuggestion> Shell::complete_path(const String& base, cons
Vector<Line::CompletionSuggestion> Shell::complete_program_name(const String& name, size_t offset)
{
auto match = binary_search(cached_path.span(), name, [](const String& name, const String& program) -> int {
return strncmp(name.characters(), program.characters(), name.length());
});
auto match = binary_search(
cached_path.span(),
name,
nullptr,
[](auto& name, auto& program) { return strncmp(name.characters(), program.characters(), name.length()); });
if (!match)
return complete_path("", name, offset);