浏览代码

sysctl: Permit 'sysctl -a' invocation

The point of '-a' is to list all keys.
It is counter-intuitive to require the user to then
supply a specific key additionally.
Ben Wiederhake 5 年之前
父节点
当前提交
f09a8f8a6e
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      Userland/sysctl.cpp

+ 7 - 1
Userland/sysctl.cpp

@@ -114,10 +114,16 @@ int main(int argc, char** argv)
 
 
     Core::ArgsParser args_parser;
     Core::ArgsParser args_parser;
     args_parser.add_option(show_all, "Show all variables", nullptr, 'a');
     args_parser.add_option(show_all, "Show all variables", nullptr, 'a');
-    args_parser.add_positional_argument(var, "Command (var[=value])", "command");
+    args_parser.add_positional_argument(var, "Command (var[=value])", "command", Core::ArgsParser::Required::No);
     args_parser.parse(argc, argv);
     args_parser.parse(argc, argv);
 
 
+    if (var == nullptr) {
+        // Not supplied; assume `-a`.
+        show_all = true;
+    }
+
     if (show_all) {
     if (show_all) {
+        // Ignore `var`, even if it was supplied. Just like the real procps does.
         return handle_show_all();
         return handle_show_all();
     }
     }