From b1ac4786537bb0e414ba09f3f11430bd9317c96d Mon Sep 17 00:00:00 2001 From: Daming Yang Date: Mon, 18 Feb 2019 20:04:08 -0800 Subject: [PATCH] ls: better align month abbreviations containing digits * src/ls.c (abmon_init): Align numeric abbreviations right. * NEWS: Mention the improvement. --- NEWS | 3 +++ src/ls.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index fdde47593b..e400554bbb 100644 --- a/NEWS +++ b/NEWS @@ -75,6 +75,9 @@ GNU coreutils NEWS -*- outline -*- ** Improvements + ls -l now better aligns abbreviated months containing digits, + which is common in Asian locales. + stat and tail now know about the "sdcardfs" file system on Android. stat -f -c%T now reports the file system type, and tail -f uses inotify. diff --git a/src/ls.c b/src/ls.c index 243c1860a3..120ce153e3 100644 --- a/src/ls.c +++ b/src/ls.c @@ -1131,8 +1131,10 @@ abmon_init (char abmon[12][ABFORMAT_SIZE]) char const *abbr = nl_langinfo (ABMON_1 + i); if (strchr (abbr, '%')) return false; + mbs_align_t alignment = isdigit (to_uchar (*abbr)) + ? MBS_ALIGN_RIGHT : MBS_ALIGN_LEFT; size_t req = mbsalign (abbr, abmon[i], ABFORMAT_SIZE, - &width, MBS_ALIGN_LEFT, 0); + &width, alignment, 0); if (! (req < ABFORMAT_SIZE)) return false; required_mon_width = MAX (required_mon_width, width); -- 2.47.2