From 49d27435d01cb5da6c7e344308577089e1a40598 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Wed, 4 Oct 2023 22:57:56 +0900 Subject: [PATCH] Split `show_usage_line` and add `ruby_show_usage_line` --- ruby.c | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/ruby.c b/ruby.c index 2242f45cfa..05e248a1ec 100644 --- a/ruby.c +++ b/ruby.c @@ -244,14 +244,12 @@ static const char esc_none[] = ""; #define USAGE_INDENT " " /* macro for concatenation */ static void -show_usage_line(const struct ruby_opt_message *m, +show_usage_part(const char *str, const unsigned int namelen, + const char *str2, const unsigned int secondlen, + const char *desc, int help, int highlight, unsigned int w, int columns) { static const int indent_width = (int)rb_strlen_lit(USAGE_INDENT); - const char *str = m->str; - const char *str2 = str + m->namelen; - const char *desc = str + m->namelen + m->secondlen; - const unsigned int namelen = m->namelen - 1, secondlen = m->secondlen - 1; const char *sb = highlight ? esc_bold : esc_none; const char *se = highlight ? esc_reset : esc_none; unsigned int desclen = (unsigned int)strcspn(desc, "\n"); @@ -285,6 +283,27 @@ show_usage_line(const struct ruby_opt_message *m, } } +static void +show_usage_line(const struct ruby_opt_message *m, + int help, int highlight, unsigned int w, int columns) +{ + const char *str = m->str; + const unsigned int namelen = m->namelen, secondlen = m->secondlen; + const char *desc = str + namelen + secondlen; + show_usage_part(str, namelen - 1, str + namelen, secondlen - 1, desc, + help, highlight, w, columns); +} + +void +ruby_show_usage_line(const char *name, const char *secondary, const char *description, + int help, int highlight, unsigned int w, int columns) +{ + unsigned int namelen = (unsigned int)strlen(name); + unsigned int secondlen = (secondary ? (unsigned int)strlen(secondary) : 0); + show_usage_part(name, namelen, secondary, secondlen, + description, help, highlight, w, columns); +} + static void usage(const char *name, int help, int highlight, int columns) {