1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-10 17:31:56 +02:00

numfmt: use multi-byte aware suffix matching

* src/numfmt.c (process_suffixed_number): Use gnulib's
mbs_endswith() helper, which is more robust in non UTF-8 locales.
Also always output a devmsg if a suffix is specified.
This commit is contained in:
Pádraig Brady
2025-10-18 13:02:44 +01:00
parent 770078e315
commit e5d7764386
2 changed files with 4 additions and 6 deletions

View File

@@ -173,6 +173,7 @@ gnulib_modules="
mbrlen
mbrtoc32
mbrtowc
mbs_endswith
mbschr
mbslen
mbswidth

View File

@@ -1326,14 +1326,11 @@ static int
process_suffixed_number (char *text, long double *result,
size_t *precision, long int field)
{
if (suffix && strlen (text) > strlen (suffix))
if (suffix)
{
char *possible_suffix = text + strlen (text) - strlen (suffix);
if (streq (suffix, possible_suffix))
if (mbs_endswith (text, suffix))
{
/* trim suffix, ONLY if it's at the end of the text. */
*possible_suffix = '\0';
*(text + strlen (text) - strlen (suffix)) = '\0';
devmsg ("trimming suffix %s\n", quote (suffix));
}
else