From ac7c83689bd4383b83574647c73507be4715f068 Mon Sep 17 00:00:00 2001 From: Mahmoud Mandour Date: Sat, 28 Aug 2021 11:13:15 +0200 Subject: [PATCH] ps: Sort using input order in case of `-q` Now the output of `ps -q ` is sorted according to the order the user specified. --- Userland/Utilities/ps.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Userland/Utilities/ps.cpp b/Userland/Utilities/ps.cpp index 8eb458e9b4..b685ad59ac 100644 --- a/Userland/Utilities/ps.cpp +++ b/Userland/Utilities/ps.cpp @@ -110,9 +110,14 @@ int main(int argc, char** argv) } processes.remove_all_matching([&](auto& a) { return selected_pids.find(a.pid) == selected_pids.end(); }); - } - quick_sort(processes, [](auto& a, auto& b) { return a.pid < b.pid; }); + auto processes_sort_predicate = [&selected_pids](auto& a, auto& b) { + return selected_pids.find_first_index(a.pid).value() < selected_pids.find_first_index(b.pid).value(); + }; + quick_sort(processes, processes_sort_predicate); + } else { + quick_sort(processes, [](auto& a, auto& b) { return a.pid < b.pid; }); + } Vector> rows; rows.ensure_capacity(1 + processes.size());