1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:07:36 +00:00

LibC: Treat argument "-" the same as arguments that don't start with "-"

This causes `echo -` to output "-" instead of crashing
This commit is contained in:
Brendan Kelly 2022-11-18 23:39:51 -05:00 committed by Sam Atkins
parent ad25a415ae
commit c2cc01c920

View file

@ -321,15 +321,14 @@ bool OptionParser::find_next_option()
for (m_arg_index = optind; m_arg_index < m_argc && m_argv[m_arg_index]; m_arg_index++) { for (m_arg_index = optind; m_arg_index < m_argc && m_argv[m_arg_index]; m_arg_index++) {
StringView arg = current_arg(); StringView arg = current_arg();
// Anything that doesn't start with a "-" is not an option. // Anything that doesn't start with a "-" is not an option.
if (!arg.starts_with('-')) { // As a special case, a single "-" is not an option either.
// (It's typically used by programs to refer to stdin).
if (!arg.starts_with('-') || arg == "-") {
if (m_stop_on_first_non_option) if (m_stop_on_first_non_option)
return false; return false;
continue; continue;
} }
// As a special case, a single "-" is not an option either.
// (It's typically used by programs to refer to stdin).
if (arg == "-")
continue;
// As another special case, a "--" is not an option either, and we stop // As another special case, a "--" is not an option either, and we stop
// looking for further options if we encounter it. // looking for further options if we encounter it.
if (arg == "--") if (arg == "--")