Previously it would have set executable bits on created special files.
[bug introduced with coreutils-8.20]
+ ls no longer truncates the abbreviated month names that have a
+ display width between 6 and 12 inclusive. Previously this would have
+ output ambiguous months for Arabic or Catalan locales.
+
** Improvements
stat and tail now know about the "exfs" file system, which is a
variable width abbreviated months and also precomputing/caching
the names was seen to increase the performance of ls significantly. */
-/* max number of display cells to use */
-enum { MAX_MON_WIDTH = 5 };
+/* max number of display cells to use.
+ As of 2018 the abmon for Arabic has entries with width 12.
+ It doesn't make much sense to support wider than this
+ and locales should aim for abmon entries of width <= 5. */
+enum { MAX_MON_WIDTH = 12 };
/* abformat[RECENT][MON] is the format to use for timestamps with
recentness RECENT and month MON. */
enum { ABFORMAT_SIZE = 128 };
# The sed usage here is slightly different from the original,
# removing the \(.*\), to avoid triggering misbehavior in at least
# GNU sed 4.2 (possibly miscompiled) on Mac OS X (Darwin 9.8.0).
- n_widths=$(
+ months="$(
LC_ALL=$LOC TIME_STYLE=+"$format" ls -lgG *.ts |
- LC_ALL=C sed 's/.\{15\}//;s/ ..\.ts$//;s/ /./g' |
+ LC_ALL=C sed 's/.\{15\}//;s/ ..\.ts$//;s/ /./g')"
+ n_widths=$(echo "$months" |
while read mon; do echo "$mon" | LC_ALL=$LOC wc -L; done |
uniq | wc -l
)
+ n_dupes=$(echo "$months" | sort | uniq -d | wc -l)
test "$n_widths" = "1" || { fail=1; break 2; }
+ test "$n_dupes" = "0" || { fail=1; break 2; }
done
done
if test "$fail" = "1"; then
- echo "misalignment detected in $LOC locale:"
+ echo "misalignment or ambiguous output in $LOC locale:"
LC_ALL=$LOC TIME_STYLE=+%b ls -lgG *.ts
fi