Mercurial > emacs
comparison src/w32proc.c @ 83542:2d56e13fd23d
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-413
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-414
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-415
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-416
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-417
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-418
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-419
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-420
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-421
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-422
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-423
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-424
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-425
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-426
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-427
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-428
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-429
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-430
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-431
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-432
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-433
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-434
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-435
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-436
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-437
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-438
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-439
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-440
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-441
lisp/url/url-methods.el: Fix format error when http_proxy is empty string
* emacs@sv.gnu.org/emacs--devo--0--patch-442
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-443
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-444
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-445
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-446
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-447
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-448
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-449
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-450
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-451
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-452
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-453
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-454
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-455
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-456
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-457
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-458
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-459
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-460
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-461
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-462
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-463
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-464
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-465
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-466
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-467
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-468
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-469
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-470
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-471
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-472
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-473
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-128
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-129
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-130
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-131
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-132
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-133
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-134
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-135
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-136
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-137
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-138
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-139
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-140
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-141
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-142
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-143
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-144
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-145
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-146
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-147
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-148
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-149
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-582
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sat, 14 Oct 2006 17:36:28 +0000 |
parents | fd4e9d08fa35 |
children | a525ba4c658b bb0e318b7c53 |
comparison
equal
deleted
inserted
replaced
83541:694bbb62a75d | 83542:2d56e13fd23d |
---|---|
45 | 45 |
46 #include <windows.h> | 46 #include <windows.h> |
47 #ifdef __GNUC__ | 47 #ifdef __GNUC__ |
48 /* This definition is missing from mingw32 headers. */ | 48 /* This definition is missing from mingw32 headers. */ |
49 extern BOOL WINAPI IsValidLocale(LCID, DWORD); | 49 extern BOOL WINAPI IsValidLocale(LCID, DWORD); |
50 #endif | |
51 | |
52 #ifdef HAVE_LANGINFO_CODESET | |
53 #include <nl_types.h> | |
54 #include <langinfo.h> | |
50 #endif | 55 #endif |
51 | 56 |
52 #include "lisp.h" | 57 #include "lisp.h" |
53 #include "w32.h" | 58 #include "w32.h" |
54 #include "w32heap.h" | 59 #include "w32heap.h" |
1815 } | 1820 } |
1816 | 1821 |
1817 return result; | 1822 return result; |
1818 } | 1823 } |
1819 | 1824 |
1825 #ifdef HAVE_LANGINFO_CODESET | |
1826 /* Emulation of nl_langinfo. Used in fns.c:Flocale_info. */ | |
1827 char *nl_langinfo (nl_item item) | |
1828 { | |
1829 /* Conversion of Posix item numbers to their Windows equivalents. */ | |
1830 static const LCTYPE w32item[] = { | |
1831 LOCALE_IDEFAULTANSICODEPAGE, | |
1832 LOCALE_SDAYNAME1, LOCALE_SDAYNAME2, LOCALE_SDAYNAME3, | |
1833 LOCALE_SDAYNAME4, LOCALE_SDAYNAME5, LOCALE_SDAYNAME6, LOCALE_SDAYNAME7, | |
1834 LOCALE_SMONTHNAME1, LOCALE_SMONTHNAME2, LOCALE_SMONTHNAME3, | |
1835 LOCALE_SMONTHNAME4, LOCALE_SMONTHNAME5, LOCALE_SMONTHNAME6, | |
1836 LOCALE_SMONTHNAME7, LOCALE_SMONTHNAME8, LOCALE_SMONTHNAME9, | |
1837 LOCALE_SMONTHNAME10, LOCALE_SMONTHNAME11, LOCALE_SMONTHNAME12 | |
1838 }; | |
1839 | |
1840 static char *nl_langinfo_buf = NULL; | |
1841 static int nl_langinfo_len = 0; | |
1842 | |
1843 if (nl_langinfo_len <= 0) | |
1844 nl_langinfo_buf = xmalloc (nl_langinfo_len = 1); | |
1845 | |
1846 if (item < 0 || item >= _NL_NUM) | |
1847 nl_langinfo_buf[0] = 0; | |
1848 else | |
1849 { | |
1850 LCID cloc = GetThreadLocale (); | |
1851 int need_len = GetLocaleInfo (cloc, w32item[item] | LOCALE_USE_CP_ACP, | |
1852 NULL, 0); | |
1853 | |
1854 if (need_len <= 0) | |
1855 nl_langinfo_buf[0] = 0; | |
1856 else | |
1857 { | |
1858 if (item == CODESET) | |
1859 { | |
1860 need_len += 2; /* for the "cp" prefix */ | |
1861 if (need_len < 8) /* for the case we call GetACP */ | |
1862 need_len = 8; | |
1863 } | |
1864 if (nl_langinfo_len <= need_len) | |
1865 nl_langinfo_buf = xrealloc (nl_langinfo_buf, | |
1866 nl_langinfo_len = need_len); | |
1867 if (!GetLocaleInfo (cloc, w32item[item] | LOCALE_USE_CP_ACP, | |
1868 nl_langinfo_buf, nl_langinfo_len)) | |
1869 nl_langinfo_buf[0] = 0; | |
1870 else if (item == CODESET) | |
1871 { | |
1872 if (strcmp (nl_langinfo_buf, "0") == 0 /* CP_ACP */ | |
1873 || strcmp (nl_langinfo_buf, "1") == 0) /* CP_OEMCP */ | |
1874 sprintf (nl_langinfo_buf, "cp%u", GetACP ()); | |
1875 else | |
1876 { | |
1877 memmove (nl_langinfo_buf + 2, nl_langinfo_buf, | |
1878 strlen (nl_langinfo_buf) + 1); | |
1879 nl_langinfo_buf[0] = 'c'; | |
1880 nl_langinfo_buf[1] = 'p'; | |
1881 } | |
1882 } | |
1883 } | |
1884 } | |
1885 return nl_langinfo_buf; | |
1886 } | |
1887 #endif /* HAVE_LANGINFO_CODESET */ | |
1820 | 1888 |
1821 DEFUN ("w32-get-locale-info", Fw32_get_locale_info, | 1889 DEFUN ("w32-get-locale-info", Fw32_get_locale_info, |
1822 Sw32_get_locale_info, 1, 2, 0, | 1890 Sw32_get_locale_info, 1, 2, 0, |
1823 doc: /* Return information about the Windows locale LCID. | 1891 doc: /* Return information about the Windows locale LCID. |
1824 By default, return a three letter locale code which encodes the default | 1892 By default, return a three letter locale code which encodes the default |