diff options
-rw-r--r-- | winsup/doc/utils.xml | 39 | ||||
-rw-r--r-- | winsup/utils/locale.cc | 9 |
2 files changed, 34 insertions, 14 deletions
diff --git a/winsup/doc/utils.xml b/winsup/doc/utils.xml index 906c3773b..4af6583da 100644 --- a/winsup/doc/utils.xml +++ b/winsup/doc/utils.xml @@ -787,7 +787,7 @@ ldd [OPTION]... FILE... <screen> locale [-amvhV] locale [-ck] NAME -locale [-usfnU] +locale [-iusfnU] </screen> </refsynopsisdiv> @@ -807,6 +807,7 @@ Modify output format: Default locale information: + -i, --input Print current input locale -u, --user Print locale of user's default UI language -s, --system Print locale of system default UI language -f, --format Print locale of user's regional format settings @@ -826,20 +827,34 @@ Other options: <para><command>locale</command> without parameters prints information about the current locale environment settings.</para> - <para>The <literal>-u</literal>, <literal>-s</literal>, - <literal>-f</literal>, and <literal>-n</literal> options can be used to - request the various Windows locale settings. The purpose is to use this - command in scripts to set the POSIX locale variables.</para> + <para>The <literal>-i</literal>, <literal>-u</literal>, + <literal>-s</literal>, <literal>-f</literal>, and <literal>-n</literal> + options can be used to request the various Windows locale settings. The + purpose is to use this command in scripts to set the POSIX locale + variables.</para> + + <para>The <literal>-i</literal> option prints the current input language. + This is called the "Input language" and basically equivalent to the + current keyboard layout setting.</para> <para>The <literal>-u</literal> option prints the current user's Windows UI locale to stdout. In Windows this setting is called the - "Display Language". The <literal>-s</literal> option prints the systems - default instead. The <literal>-f</literal> option prints the user's - setting for time, date, number and currency. That's equivalent to the - setting in the "Formats" or "Regional Options" tab in the "Region and - Language" or "Regional and Language Options" dialog. With the - <literal>-U</literal> option <command>locale</command> appends a - ".UTF-8".</para> + "Display Language".</para> + + <para>The <literal>-s</literal> option prints the systems default instead. + </para> + + <para>The <literal>-f</literal> option prints the user's setting for time, + date, number and currency. That's equivalent to the setting in the + "Formats" or "Regional Options" tab in the "Region and Language" or + "Regional and Language Options" dialog.</para> + + <para>The <literal>-n</literal> option prints the system's default + language used for applications which don't support Unicode.</para> + + <para>With the <literal>-U</literal> option <command>locale</command> + appends the string ".UTF-8" to enforce using UTF-8. Using UTF-8 + as codeset is recommended.</para> <para>Usage example:</para> diff --git a/winsup/utils/locale.cc b/winsup/utils/locale.cc index c9d4b5d59..1cd04337c 100644 --- a/winsup/utils/locale.cc +++ b/winsup/utils/locale.cc @@ -48,7 +48,7 @@ usage () printf ( "Usage: %1$s [-amvhV]\n" " or: %1$s [-ck] NAME\n" -" or: %1$s [-usfnU]\n" +" or: %1$s [-iusfnU]\n" "\n" "Get locale-specific information.\n" "\n" @@ -65,6 +65,7 @@ usage () "\n" "Default locale information:\n" "\n" +" -i, --input Print current input locale\n" " -u, --user Print locale of user's default UI language\n" " -s, --system Print locale of system default UI language\n" " -f, --format Print locale of user's regional format settings\n" @@ -93,6 +94,7 @@ struct option longopts[] = { {"category-name", no_argument, NULL, 'c'}, {"format", no_argument, NULL, 'f'}, {"help", no_argument, NULL, 'h'}, + {"input", no_argument, NULL, 'i'}, {"keyword-name", no_argument, NULL, 'k'}, {"charmaps", no_argument, NULL, 'm'}, {"no-unicode", no_argument, NULL, 'n'}, @@ -103,7 +105,7 @@ struct option longopts[] = { {"version", no_argument, NULL, 'V'}, {0, no_argument, NULL, 0} }; -const char *opts = "acfhkmnsuUvV"; +const char *opts = "acfhikmnsuUvV"; int getlocale (LCID lcid, char *name) @@ -786,6 +788,9 @@ main (int argc, char **argv) case 'm': maps = 1; break; + case 'i': + lcid = (UINT_PTR) GetKeyboardLayout (0) & 0xffff; + break; case 's': lcid = GetSystemDefaultUILanguage (); break; |