1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 09:47:34 +00:00

LibCore+Everywhere: Remove ArgsParser::add*(char const*&)

This is not guaranteed to always work correctly as ArgsParser deals in
StringViews and might have a non-properly-null-terminated string as a
value. As a bonus, using StringView (and DeprecatedString where
necessary) leads to nicer looking code too :^)
This commit is contained in:
Ali Mohammad Pur 2023-03-01 00:11:43 +03:30 committed by Andreas Kling
parent 60908adcbe
commit 500044906d
43 changed files with 122 additions and 145 deletions

View file

@ -75,7 +75,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
TRY(Desktop::Launcher::add_allowed_handler_with_only_specific_urls("/bin/Help", { URL::create_with_file_scheme("/usr/share/man/man1/GMLPlayground.md") }));
TRY(Desktop::Launcher::seal_allowlist());
char const* path = nullptr;
StringView path;
Core::ArgsParser args_parser;
args_parser.add_positional_argument(path, "GML file to edit", "file", Core::ArgsParser::Required::No);
args_parser.parse(arguments);

View file

@ -54,7 +54,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
TRY(notify_make_not_available());
}
char const* path_argument = nullptr;
StringView path_argument;
bool mode_coredump = false;
pid_t pid_to_debug = -1;
Core::ArgsParser args_parser;

View file

@ -47,13 +47,13 @@ static bool generate_profile(pid_t& pid);
ErrorOr<int> serenity_main(Main::Arguments arguments)
{
int pid = 0;
char const* perfcore_file_arg = nullptr;
StringView perfcore_file_arg;
Core::ArgsParser args_parser;
args_parser.add_option(pid, "PID to profile", "pid", 'p', "PID");
args_parser.add_positional_argument(perfcore_file_arg, "Path of perfcore file", "perfcore-file", Core::ArgsParser::Required::No);
args_parser.parse(arguments);
if (pid && perfcore_file_arg) {
if (pid && !perfcore_file_arg.is_empty()) {
warnln("-p/--pid option and perfcore-file argument must not be used together!");
return 1;
}
@ -62,7 +62,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto app_icon = TRY(GUI::Icon::try_create_default_icon("app-profiler"sv));
DeprecatedString perfcore_file;
if (!perfcore_file_arg) {
if (perfcore_file_arg.is_empty()) {
if (!generate_profile(pid))
return 0;
perfcore_file = DeprecatedString::formatted("/proc/{}/perf_events", pid);

View file

@ -15,7 +15,7 @@
ErrorOr<int> serenity_main(Main::Arguments arguments)
{
char const* file_to_open = nullptr;
StringView file_to_open;
Core::ArgsParser args_parser;
args_parser.add_positional_argument(file_to_open, "Path to SQL script or DB", "file", Core::ArgsParser::Required::No);
@ -39,7 +39,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return GUI::Window::CloseRequestDecision::StayOpen;
};
if (file_to_open) {
if (!file_to_open.is_empty()) {
auto path = LexicalPath(file_to_open);
main_widget->open_script_from_file(path);
} else {