From: Pádraig Brady
Date: Tue, 27 Jan 2026 17:45:02 +0000 (+0000) Subject: doc: improve highlighting of single spaced translations X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2af245ebaf88c15f236217b6d43cefcff0eda43;p=thirdparty%2Fcoreutils.git doc: improve highlighting of single spaced translations * src/system.h (oputs_): Translations sometimes use a single space between an option and its description. They only do this though for long options since they result in less available screen space. Therefore be more strict with option matching once we've encountered a long option, which supports the more varied formats often associated with short options. --- diff --git a/src/system.h b/src/system.h index 3695954db9..7e1fdbff03 100644 --- a/src/system.h +++ b/src/system.h @@ -567,7 +567,6 @@ oputs_ (MAYBE_UNUSED char const* program, char const *option) return; } - char const* first_word = option + strspn (option, " \t\n"); char const *option_text = strchr (option, '-'); if (!option_text) @@ -577,11 +576,24 @@ oputs_ (MAYBE_UNUSED char const* program, char const *option) /* Set highlighted text up to spacing after the full option text. Any single space is included in highlighted text, double space or TAB or newline terminates the option text. */ + bool long_option = false; char const *desc_text = option_text + anchor_len; - while (*desc_text && *desc_text != '\n' - && (! isspace (*desc_text) - || (*desc_text != '\t' && ! isspace (*(desc_text + 1))))) - desc_text++; + while (*desc_text && *desc_text != '\n') + { + if (*desc_text == '-' && *(desc_text + 1) == '-') + long_option = true; + if (isspace (*desc_text)) + { + if (*desc_text == '\t' || isspace (*(desc_text + 1))) + break; + /* With long options we restrict the match as some translations + delimit a long option and description with a single space. */ + if (long_option && *(desc_text + 1) != '-') + break; + } + + desc_text++; + } /* write spaces before option text. */ fwrite (option, 1, first_word - option, stdout);