Cygwin: locale: new script creating linux default codeset mapping
New script creating a mapping table from locale to default codeset for this locale. We use that in Cygwin now to generate the own default codeset mapping based on Linux locale names. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
57bac33359
commit
7b591704b8
|
@ -0,0 +1,48 @@
|
|||
#!/bin/bash
|
||||
(
|
||||
cat <<-EOF
|
||||
/* This struct of default codesets has been generated by fetching
|
||||
locale data from a Linux system using $(rpm -q glibc | head -1) on $(date +%F) */
|
||||
struct default_codeset_t
|
||||
{
|
||||
const char *locale;
|
||||
const char *codeset;
|
||||
} default_codeset[] =
|
||||
{
|
||||
EOF
|
||||
while read line
|
||||
do
|
||||
locale=$(echo "${line}" | awk '/^locale:/{ print $2; }')
|
||||
if [ -z "${locale}" ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
# No aliases
|
||||
idx=$(expr index "${locale}" '_')
|
||||
if [ "${idx}" -eq 0 ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
# No explicit codesets
|
||||
idx=$(expr index "${locale}" '.')
|
||||
if [ "${idx}" -ne 0 ]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
while read line2
|
||||
do
|
||||
codeset=$(echo "${line2}" | awk '/codeset/{ print $3; }')
|
||||
if [ -n "${codeset}" ]
|
||||
then
|
||||
# Translate into internal codeset names. */
|
||||
case "${codeset}" in
|
||||
BIG5*) codeset="BIG5";;
|
||||
*) ;;
|
||||
esac
|
||||
printf " { \"%s\", \"%s\" },\n" "${locale}" "${codeset}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
done <<<$(locale -av)
|
||||
echo "};"
|
||||
) > lc_def_codesets.h
|
Loading…
Reference in New Issue