diff --git a/Libraries/LibCore/ArgsParser.cpp b/Libraries/LibCore/ArgsParser.cpp index bef5515420..16583b9012 100644 --- a/Libraries/LibCore/ArgsParser.cpp +++ b/Libraries/LibCore/ArgsParser.cpp @@ -206,6 +206,11 @@ void ArgsParser::print_usage(FILE* file, const char* argv0) } outln(file); + if (m_general_help != nullptr && m_general_help[0] != '\0') { + outln(file, "\nDescription:"); + outln(file, m_general_help); + } + if (!m_options.is_empty()) outln(file, "\nOptions:"); for (auto& opt : m_options) { diff --git a/Libraries/LibCore/ArgsParser.h b/Libraries/LibCore/ArgsParser.h index 59362cc013..2f7b923a9d 100644 --- a/Libraries/LibCore/ArgsParser.h +++ b/Libraries/LibCore/ArgsParser.h @@ -67,6 +67,8 @@ public: }; bool parse(int argc, char** argv, bool exit_on_failure = true); + // *Without* trailing newline! + void set_general_help(const char* help_string) { m_general_help = help_string; }; void print_usage(FILE*, const char* argv0); void add_option(Option&&); @@ -86,6 +88,7 @@ private: Vector m_positional_args; bool m_show_help { false }; + const char* m_general_help { nullptr }; }; }