Browse Source

Shell: Improve readability of cache_path()

I prefer String::format over StringBuilder here.
Also simplified a weird continue statement.
William McPherson 5 years ago
parent
commit
bb311b970f
2 changed files with 4 additions and 11 deletions
  1. 4 10
      Shell/LineEditor.cpp
  2. 0 1
      Shell/LineEditor.h

+ 4 - 10
Shell/LineEditor.cpp

@@ -51,17 +51,11 @@ void LineEditor::cache_path()
         CDirIterator programs(directory.characters(), CDirIterator::SkipDots);
         while (programs.has_next()) {
             auto program = programs.next_path();
-
-            StringBuilder program_path;
-            program_path.append(directory.characters());
-            program_path.append('/');
-            program_path.append(program.characters());
+            String program_path = String::format("%s/%s", directory.characters(), program.characters());
             struct stat program_status;
-            int stat_error = stat(program_path.to_string().characters(), &program_status);
-            if (stat_error || !(program_status.st_mode & S_IXUSR))
-                continue;
-
-            m_path.append(program.characters());
+            int stat_error = stat(program_path.characters(), &program_status);
+            if (!stat_error && (program_status.st_mode & S_IXUSR))
+                m_path.append(program.characters());
         }
     }
 

+ 0 - 1
Shell/LineEditor.h

@@ -3,7 +3,6 @@
 #include <AK/BinarySearch.h>
 #include <AK/QuickSort.h>
 #include <AK/String.h>
-#include <AK/StringBuilder.h>
 #include <AK/Vector.h>
 #include <LibCore/CDirIterator.h>
 #include <sys/stat.h>