Skip to content

Commit 16aeb8b

Browse files
itskarudotrflynn89
authored andcommitted
kill: Parse CLI arguments using Arguments.strings
The previous implementation used argv and LibC to parse arguments, it now uses the Arguments.strings interface to do so.
1 parent 500098c commit 16aeb8b

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

Userland/Utilities/kill.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <signal.h>
1313
#include <stdio.h>
1414
#include <stdlib.h>
15-
#include <string.h>
1615
#include <unistd.h>
1716

1817
static void print_usage_and_exit()
@@ -27,9 +26,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
2726
TRY(Core::System::pledge("stdio proc"));
2827

2928
int argc = arguments.argc;
30-
char** argv = arguments.argv;
29+
auto strings = arguments.strings;
3130

32-
if (argc == 2 && !strcmp(argv[1], "-l")) {
31+
if (argc == 2 && strings[1] == "-l") {
3332
for (size_t i = 0; i < NSIG; ++i) {
3433
if (i && !(i % 5))
3534
outln("");
@@ -45,29 +44,29 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
4544
int pid_argi = 1;
4645
if (argc == 3) {
4746
pid_argi = 2;
48-
if (argv[1][0] != '-')
47+
if (strings[1][0] != '-')
4948
print_usage_and_exit();
5049

5150
Optional<unsigned> number;
5251

53-
if (isalpha(argv[1][1])) {
54-
int value = getsignalbyname(&argv[1][1]);
52+
if (isalpha(strings[1][1])) {
53+
int value = getsignalbyname(&strings[1][1]);
5554
if (value >= 0 && value < NSIG)
5655
number = value;
5756
}
5857

5958
if (!number.has_value())
60-
number = StringView(&argv[1][1]).to_uint();
59+
number = strings[1].substring_view(1, 1).to_uint();
6160

6261
if (!number.has_value()) {
63-
warnln("'{}' is not a valid signal name or number", &argv[1][1]);
62+
warnln("'{}' is not a valid signal name or number", &strings[1][1]);
6463
return 2;
6564
}
6665
signum = number.value();
6766
}
68-
auto pid_opt = String(argv[pid_argi]).to_int();
67+
auto pid_opt = strings[pid_argi].to_int();
6968
if (!pid_opt.has_value()) {
70-
warnln("'{}' is not a valid PID", argv[pid_argi]);
69+
warnln("'{}' is not a valid PID", strings[pid_argi]);
7170
return 3;
7271
}
7372
pid_t pid = pid_opt.value();

0 commit comments

Comments
 (0)