diff options
author | Eli Zaretskii <eliz@gnu.org> | 2014-08-25 18:55:46 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2014-08-25 18:55:46 +0300 |
commit | 015ea0ffdb4f446e3bd263fe5e42b35aafdf1e5b (patch) | |
tree | 0242e9b0aa25996e40802ee33aa6929efc3effae /src/sysdep.c | |
parent | 8661ebaa6c0ef3f9517c5288855657b274c723d6 (diff) | |
download | emacs-015ea0ffdb4f446e3bd263fe5e42b35aafdf1e5b.tar.gz |
Implement locale-sensitive string collation for MS-Windows. (Bug#18051)
src/w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
New functions.
src/w32.h (w32_compare_strings): Add prototype.
src/w32.c <g_b_init_compare_string_w>: New global flag.
(globals_of_w32): Initialize it.
src/sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
src/fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
[WINDOWSNT]: Call str_collate on MS-Windows.
etc/NEWS: Mention that string-collate-* functions are supported on
MS-Windows as well.
Diffstat (limited to 'src/sysdep.c')
-rw-r--r-- | src/sysdep.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/sysdep.c b/src/sysdep.c index 856d668bb71..25bec264f46 100644 --- a/src/sysdep.c +++ b/src/sysdep.c @@ -3592,3 +3592,15 @@ str_collate (Lisp_Object s1, Lisp_Object s2) return res; } #endif /* __STDC_ISO_10646__ */ + +#ifdef WINDOWSNT +ptrdiff_t +str_collate (Lisp_Object s1, Lisp_Object s2) +{ + Lisp_Object lc_collate = + Fgetenv_internal (build_string ("LC_COLLATE"), Vprocess_environment); + char *loc = STRINGP (lc_collate) ? SSDATA (lc_collate) : NULL; + + return w32_compare_strings (SDATA (s1), SDATA (s2), loc); +} +#endif /* WINDOWSNT */ |