summaryrefslogtreecommitdiff
path: root/lib/localcharset.c
diff options
context:
space:
mode:
authorBenno Schulenberg <bensberg@telfort.nl>2018-04-21 11:08:08 +0200
committerBruno Haible <bruno@clisp.org>2018-04-21 12:36:53 +0200
commit214bf852d8dab02bf62900e61facef2c9f48f2f4 (patch)
treea9bcad2a1b1ba3d55ecb5f426777dc2ff3c85018 /lib/localcharset.c
parentba54e151255c0d983c49205d73cd62029d1dbaaa (diff)
downloadgnulib-214bf852d8dab02bf62900e61facef2c9f48f2f4.tar.gz
localcharset: short-circuit the search for an alias on a Mac
* lib/localcharset.c (get_charset_aliases): Add a tautological UTF-8 entry to speed up the search for this case. Most machines default to a UTF-8 locale nowadays, so begin the list of aliases with a dummy UTF-8 entry so it will be found immediately and a time-consuming search through the rest of the list is avoided.
Diffstat (limited to 'lib/localcharset.c')
-rw-r--r--lib/localcharset.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/localcharset.c b/lib/localcharset.c
index a73d6bdd14..04eaf071d6 100644
--- a/lib/localcharset.c
+++ b/lib/localcharset.c
@@ -262,8 +262,10 @@ get_charset_aliases (void)
# if defined DARWIN7
/* To avoid the trouble of installing a file that is shared by many
GNU packages -- many packaging systems have problems with this --,
- simply inline the aliases here. */
- cp = "ISO8859-1" "\0" "ISO-8859-1" "\0"
+ simply inline the aliases here.
+ For speed, map the most frequent case first. */
+ cp = "UTF-8" "\0" "UTF-8" "\0"
+ "ISO8859-1" "\0" "ISO-8859-1" "\0"
"ISO8859-2" "\0" "ISO-8859-2" "\0"
"ISO8859-4" "\0" "ISO-8859-4" "\0"
"ISO8859-5" "\0" "ISO-8859-5" "\0"