[tz] [PROPOSED 11/18] tzselect: clarify translit need
Paul Eggert
eggert at cs.ucla.edu
Tue Dec 19 07:26:00 UTC 2023
* tzselect.ksh (translit): New var, to make things clearer.
Use ot to determine whether to try to transliterate.
2023-12-12 Paul Eggert <eggert at cs.ucla.edu>
* tzselect.ksh (TZ_COUNTRY_TABLE, TZ_ZONE_TABLE):
Now strings, not file names. All uses changed.
(translit): New var, so that iconv is not retried after failing.
---
tzselect.ksh | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tzselect.ksh b/tzselect.ksh
index cda902a7..91ba572a 100644
--- a/tzselect.ksh
+++ b/tzselect.ksh
@@ -171,6 +171,15 @@ case $# in
*) say >&2 "$0: $1: unknown argument"; exit 1 ;;
esac
+# translit=true to try transliteration.
+# This is false if U+12345 CUNEIFORM SIGN URU TIMES KI has length 1
+# which means awk (and presumably the shell) do not need transliteration.
+if $AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) == 1 }'; then
+ translit=true
+else
+ translit=false
+fi
+
# Make sure the tables are readable.
TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab
TZ_ZONE_TABLE=$TZDIR/$zonetabtype.tab
@@ -185,7 +194,7 @@ done
# If the current locale does not support UTF-8, convert data to current
# locale's format if possible, as the shell aligns columns better that way.
# Check the UTF-8 of U+12345 CUNEIFORM SIGN URU TIMES KI.
-$AWK 'BEGIN { u12345 = "\360\222\215\205"; exit length(u12345) != 1 }' || {
+$translit && {
{ tmp=`(mktemp -d) 2>/dev/null` || {
tmp=${TMPDIR-/tmp}/tzselect.$$ &&
(umask 77 && mkdir -- "$tmp")
--
2.40.1
More information about the tz
mailing list