Bläddra i källkod

Shell: Use strncmp() instead of string.compare() for name completions

The "at most n bytes" behaviour of strncmp is required for this logic to
work, this was overlooked in 5b64abe when converting Strings to
StringViews, which lead to broken autocomplete.
Ali Mohammad Pur 3 år sedan
förälder
incheckning
222e580fa8
1 ändrade filer med 6 tillägg och 1 borttagningar
  1. 6 1
      Userland/Shell/Shell.cpp

+ 6 - 1
Userland/Shell/Shell.cpp

@@ -1453,7 +1453,12 @@ Vector<Line::CompletionSuggestion> Shell::complete_program_name(StringView name,
         cached_path.span(),
         name,
         nullptr,
-        [](auto& name, auto& program) { return name.compare(program.view()); });
+        [](auto& name, auto& program) {
+            return strncmp(
+                name.characters_without_null_termination(),
+                program.characters(),
+                name.length());
+        });
 
     if (!match)
         return complete_path("", name, offset, ExecutableOnly::Yes);