* lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional

format.
	* nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data
	in Windows makes it useless.
	(__eval_datetimefmt): Check if locale's default calender has
	non-gregorian start year.  Use era year also in default date entries,
	if so.
This commit is contained in:
Corinna Vinschen 2010-02-20 22:10:26 +00:00
parent 53a918f3d6
commit 5d76584680
3 changed files with 23 additions and 4 deletions

View File

@ -1,3 +1,13 @@
2010-02-20 Corinna Vinschen <corinna@vinschen.de>
* lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional
format.
* nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data
in Windows makes it useless.
(__eval_datetimefmt): Check if locale's default calender has
non-gregorian start year. Use era year also in default date entries,
if so.
2010-02-20 Corinna Vinschen <corinna@vinschen.de>
* path.cc (warn_msdos): Enforce extended hex printing of multibyte

View File

@ -14,7 +14,7 @@ struct lc_era_t
static struct lc_era_t lc_era[] =
{
{ "fa_IR", L"", L"", L"", L"", L"\x06f0\x06f0;\x06f0\x06f1;\x06f0\x06f2;\x06f0\x06f3;\x06f0\x06f4;\x06f0\x06f5;\x06f0\x06f6;\x06f0\x06f7;\x06f0\x06f8;\x06f0\x06f9;\x06f1\x06f0;\x06f1\x06f1;\x06f1\x06f2;\x06f1\x06f3;\x06f1\x06f4;\x06f1\x06f5;\x06f1\x06f6;\x06f1\x06f7;\x06f1\x06f8;\x06f1\x06f9;\x06f2\x06f0;\x06f2\x06f1;\x06f2\x06f2;\x06f2\x06f3;\x06f2\x06f4;\x06f2\x06f5;\x06f2\x06f6;\x06f2\x06f7;\x06f2\x06f8;\x06f2\x06f9;\x06f3\x06f0;\x06f3\x06f1;\x06f3\x06f2;\x06f3\x06f3;\x06f3\x06f4;\x06f3\x06f5;\x06f3\x06f6;\x06f3\x06f7;\x06f3\x06f8;\x06f3\x06f9;\x06f4\x06f0;\x06f4\x06f1;\x06f4\x06f2;\x06f4\x06f3;\x06f4\x06f4;\x06f4\x06f5;\x06f4\x06f6;\x06f4\x06f7;\x06f4\x06f8;\x06f4\x06f9;\x06f5\x06f0;\x06f5\x06f1;\x06f5\x06f2;\x06f5\x06f3;\x06f5\x06f4;\x06f5\x06f5;\x06f5\x06f6;\x06f5\x06f7;\x06f5\x06f8;\x06f5\x06f9;\x06f6\x06f0;\x06f6\x06f1;\x06f6\x06f2;\x06f6\x06f3;\x06f6\x06f4;\x06f6\x06f5;\x06f6\x06f6;\x06f6\x06f7;\x06f6\x06f8;\x06f6\x06f9;\x06f7\x06f0;\x06f7\x06f1;\x06f7\x06f2;\x06f7\x06f3;\x06f7\x06f4;\x06f7\x06f5;\x06f7\x06f6;\x06f7\x06f7;\x06f7\x06f8;\x06f7\x06f9;\x06f8\x06f0;\x06f8\x06f1;\x06f8\x06f2;\x06f8\x06f3;\x06f8\x06f4;\x06f8\x06f5;\x06f8\x06f6;\x06f8\x06f7;\x06f8\x06f8;\x06f8\x06f9;\x06f9\x06f0;\x06f9\x06f1;\x06f9\x06f2;\x06f9\x06f3;\x06f9\x06f4;\x06f9\x06f5;\x06f9\x06f6;\x06f9\x06f7;\x06f9\x06f8;\x06f9\x06f9" },
{ "ja_JP", L"+:2:1990/01/01:+*:\x5e73\x6210:%EC%Ey\x5e74;+:1:1989/01/08:1989/12/31:\x5e73\x6210:%EC\x5143\x5e74;+:2:1927/01/01:1989/01/07:\x662d\x548c:%EC%Ey\x5e74;+:1:1926/12/25:1926/12/31:\x662d\x548c:%EC\x5143\x5e74;+:2:1913/01/01:1926/12/24:\x5927\x6b63:%EC%Ey\x5e74;+:2:1912/07/30:1912/12/31:\x5927\x6b63:%EC\x5143\x5e74;+:6:1873/01/01:1912/07/29:\x660e\x6cbb:%EC%Ey\x5e74;+:1:0001/01/01:1872/12/31:\x897f\x66a6:%EC%Ey\x5e74;+:1:-0001/12/31:-*:\x7d00\x5143\x524d:%EC%Ey\x5e74", L"%EY%m\x6708%d\x65e5", L"%EY%m\x6708%d\x65e5 %H\x6642%M\x5206%S\x79d2", L"", L"\x3007;\x4e00;\x4e8c;\x4e09;\x56db;\x4e94;\x516d;\x4e03;\x516b;\x4e5d;\x5341;\x5341\x4e00;\x5341\x4e8c;\x5341\x4e09;\x5341\x56db;\x5341\x4e94;\x5341\x516d;\x5341\x4e03;\x5341\x516b;\x5341\x4e5d;\x4e8c\x5341;\x4e8c\x5341\x4e00;\x4e8c\x5341\x4e8c;\x4e8c\x5341\x4e09;\x4e8c\x5341\x56db;\x4e8c\x5341\x4e94;\x4e8c\x5341\x516d;\x4e8c\x5341\x4e03;\x4e8c\x5341\x516b;\x4e8c\x5341\x4e5d;\x4e09\x5341;\x4e09\x5341\x4e00;\x4e09\x5341\x4e8c;\x4e09\x5341\x4e09;\x4e09\x5341\x56db;\x4e09\x5341\x4e94;\x4e09\x5341\x516d;\x4e09\x5341\x4e03;\x4e09\x5341\x516b;\x4e09\x5341\x4e5d;\x56db\x5341;\x56db\x5341\x4e00;\x56db\x5341\x4e8c;\x56db\x5341\x4e09;\x56db\x5341\x56db;\x56db\x5341\x4e94;\x56db\x5341\x516d;\x56db\x5341\x4e03;\x56db\x5341\x516b;\x56db\x5341\x4e5d;\x4e94\x5341;\x4e94\x5341\x4e00;\x4e94\x5341\x4e8c;\x4e94\x5341\x4e09;\x4e94\x5341\x56db;\x4e94\x5341\x4e94;\x4e94\x5341\x516d;\x4e94\x5341\x4e03;\x4e94\x5341\x516b;\x4e94\x5341\x4e5d;\x516d\x5341;\x516d\x5341\x4e00;\x516d\x5341\x4e8c;\x516d\x5341\x4e09;\x516d\x5341\x56db;\x516d\x5341\x4e94;\x516d\x5341\x516d;\x516d\x5341\x4e03;\x516d\x5341\x516b;\x516d\x5341\x4e5d;\x4e03\x5341;\x4e03\x5341\x4e00;\x4e03\x5341\x4e8c;\x4e03\x5341\x4e09;\x4e03\x5341\x56db;\x4e03\x5341\x4e94;\x4e03\x5341\x516d;\x4e03\x5341\x4e03;\x4e03\x5341\x516b;\x4e03\x5341\x4e5d;\x516b\x5341;\x516b\x5341\x4e00;\x516b\x5341\x4e8c;\x516b\x5341\x4e09;\x516b\x5341\x56db;\x516b\x5341\x4e94;\x516b\x5341\x516d;\x516b\x5341\x4e03;\x516b\x5341\x516b;\x516b\x5341\x4e5d;\x4e5d\x5341;\x4e5d\x5341\x4e00;\x4e5d\x5341\x4e8c;\x4e5d\x5341\x4e09;\x4e5d\x5341\x56db;\x4e5d\x5341\x4e94;\x4e5d\x5341\x516d;\x4e5d\x5341\x4e03;\x4e5d\x5341\x516b;\x4e5d\x5341\x4e5d" },
{ "ja_JP", L"+:2:1990/01/01:+*:\x5e73\x6210:%EC%Ey\x5e74;+:1:1989/01/08:1989/12/31:\x5e73\x6210:%EC\x5143\x5e74;+:2:1927/01/01:1989/01/07:\x662d\x548c:%EC%Ey\x5e74;+:1:1926/12/25:1926/12/31:\x662d\x548c:%EC\x5143\x5e74;+:2:1913/01/01:1926/12/24:\x5927\x6b63:%EC%Ey\x5e74;+:2:1912/07/30:1912/12/31:\x5927\x6b63:%EC\x5143\x5e74;+:6:1873/01/01:1912/07/29:\x660e\x6cbb:%EC%Ey\x5e74;+:1:0001/01/01:1872/12/31:\x897f\x66a6:%EC%Ey\x5e74;+:1:-0001/12/31:-*:\x7d00\x5143\x524d:%EC%Ey\x5e74", L"%EY%m\x6708%d\x65e5", L"%EY%m\x6708%d\x65e5 %H\x6642%M\x5206%S\x79d2", L"%H\x6642%M\x5206%S\x79d2", L"\x3007;\x4e00;\x4e8c;\x4e09;\x56db;\x4e94;\x516d;\x4e03;\x516b;\x4e5d;\x5341;\x5341\x4e00;\x5341\x4e8c;\x5341\x4e09;\x5341\x56db;\x5341\x4e94;\x5341\x516d;\x5341\x4e03;\x5341\x516b;\x5341\x4e5d;\x4e8c\x5341;\x4e8c\x5341\x4e00;\x4e8c\x5341\x4e8c;\x4e8c\x5341\x4e09;\x4e8c\x5341\x56db;\x4e8c\x5341\x4e94;\x4e8c\x5341\x516d;\x4e8c\x5341\x4e03;\x4e8c\x5341\x516b;\x4e8c\x5341\x4e5d;\x4e09\x5341;\x4e09\x5341\x4e00;\x4e09\x5341\x4e8c;\x4e09\x5341\x4e09;\x4e09\x5341\x56db;\x4e09\x5341\x4e94;\x4e09\x5341\x516d;\x4e09\x5341\x4e03;\x4e09\x5341\x516b;\x4e09\x5341\x4e5d;\x56db\x5341;\x56db\x5341\x4e00;\x56db\x5341\x4e8c;\x56db\x5341\x4e09;\x56db\x5341\x56db;\x56db\x5341\x4e94;\x56db\x5341\x516d;\x56db\x5341\x4e03;\x56db\x5341\x516b;\x56db\x5341\x4e5d;\x4e94\x5341;\x4e94\x5341\x4e00;\x4e94\x5341\x4e8c;\x4e94\x5341\x4e09;\x4e94\x5341\x56db;\x4e94\x5341\x4e94;\x4e94\x5341\x516d;\x4e94\x5341\x4e03;\x4e94\x5341\x516b;\x4e94\x5341\x4e5d;\x516d\x5341;\x516d\x5341\x4e00;\x516d\x5341\x4e8c;\x516d\x5341\x4e09;\x516d\x5341\x56db;\x516d\x5341\x4e94;\x516d\x5341\x516d;\x516d\x5341\x4e03;\x516d\x5341\x516b;\x516d\x5341\x4e5d;\x4e03\x5341;\x4e03\x5341\x4e00;\x4e03\x5341\x4e8c;\x4e03\x5341\x4e09;\x4e03\x5341\x56db;\x4e03\x5341\x4e94;\x4e03\x5341\x516d;\x4e03\x5341\x4e03;\x4e03\x5341\x516b;\x4e03\x5341\x4e5d;\x516b\x5341;\x516b\x5341\x4e00;\x516b\x5341\x4e8c;\x516b\x5341\x4e09;\x516b\x5341\x56db;\x516b\x5341\x4e94;\x516b\x5341\x516d;\x516b\x5341\x4e03;\x516b\x5341\x516b;\x516b\x5341\x4e5d;\x4e5d\x5341;\x4e5d\x5341\x4e00;\x4e5d\x5341\x4e8c;\x4e5d\x5341\x4e09;\x4e5d\x5341\x56db;\x4e5d\x5341\x4e94;\x4e5d\x5341\x516d;\x4e5d\x5341\x4e03;\x4e5d\x5341\x516b;\x4e5d\x5341\x4e5d" },
{ "lo_LA", L"+:1:-543/01/01:+*:\x0e9e.\x0eaa.:%EC %Ey", L"%e %b %Ey", L"\x0ea7\x0eb1\x0e99%A\x0e97\x0eb5\x0ec8 %e %B %EC %Ey, %H.%M.%S \x0e99.", L"%H.%M.%S \x0e99.", L"" },
{ "or_IN", L"", L"", L"", L"", L"\x0b66;\x0b67;\x0b68;\x0b69;\x0b6a;\x0b6b;\x0b6c;\x0b6d;\x0b6e;\x0b6f;\x0b67\x0b66;\x0b67\x0b67;\x0b67\x0b68;\x0b67\x0b69;\x0b67\x0b6a;\x0b67\x0b6b;\x0b67\x0b6c;\x0b67\x0b6d;\x0b67\x0b6e;\x0b67\x0b6f;\x0b68\x0b66;\x0b68\x0b67;\x0b68\x0b68;\x0b68\x0b69;\x0b68\x0b6a;\x0b68\x0b6b;\x0b68\x0b6c;\x0b68\x0b6d;\x0b68\x0b6e;\x0b68\x0b6f;\x0b69\x0b66;\x0b69\x0b67;\x0b69\x0b68;\x0b69\x0b69;\x0b69\x0b6a;\x0b69\x0b6b;\x0b69\x0b6c;\x0b69\x0b6d;\x0b69\x0b6e;\x0b69\x0b6f;\x0b6a\x0b66;\x0b6a\x0b67;\x0b6a\x0b68;\x0b6a\x0b69;\x0b6a\x0b6a;\x0b6a\x0b6b;\x0b6a\x0b6c;\x0b6a\x0b6d;\x0b6a\x0b6e;\x0b6a\x0b6f;\x0b6b\x0b66;\x0b6b\x0b67;\x0b6b\x0b68;\x0b6b\x0b69;\x0b6b\x0b6a;\x0b6b\x0b6b;\x0b6b\x0b6c;\x0b6b\x0b6d;\x0b6b\x0b6e;\x0b6b\x0b6f;\x0b6c\x0b66;\x0b6c\x0b67;\x0b6c\x0b68;\x0b6c\x0b69;\x0b6c\x0b6a;\x0b6c\x0b6b;\x0b6c\x0b6c;\x0b6c\x0b6d;\x0b6c\x0b6e;\x0b6c\x0b6f;\x0b6d\x0b66;\x0b6d\x0b67;\x0b6d\x0b68;\x0b6d\x0b69;\x0b6d\x0b6a;\x0b6d\x0b6b;\x0b6d\x0b6c;\x0b6d\x0b6d;\x0b6d\x0b6e;\x0b6d\x0b6f;\x0b6e\x0b66;\x0b6e\x0b67;\x0b6e\x0b68;\x0b6e\x0b69;\x0b6e\x0b6a;\x0b6e\x0b6b;\x0b6e\x0b6c;\x0b6e\x0b6d;\x0b6e\x0b6e;\x0b6e\x0b6f;\x0b6f\x0b66;\x0b6f\x0b67;\x0b6f\x0b68;\x0b6f\x0b69;\x0b6f\x0b6a;\x0b6f\x0b6b;\x0b6f\x0b6c;\x0b6f\x0b6d;\x0b6f\x0b6e;\x0b6f\x0b6f" },
{ "th_TH", L"+:1:-543/01/01:+*:\x0e1e.\x0e28.:%EC %Ey", L"%e %b %Ey", L"\x0e27\x0e31\x0e19%A\x0e17\x0e35\x0e48 %e %B %EC %Ey, %H.%M.%S \x0e19.", L"%H.%M.%S \x0e19.", L"" },

View File

@ -351,9 +351,6 @@ enum dt_flags {
DT_DEFAULT = 0x00,
DT_AMPM = 0x01, /* Enforce 12 hour time format. */
DT_ABBREV = 0x02, /* Enforce abbreviated month and day names. */
DT_ERACAL = 0x04, /* Retrieve era information (ignored otherwise).
Also switch to optional calendar with era
information, if necessary. */
};
static char *
@ -363,6 +360,7 @@ __eval_datetimefmt (LCID lcid, LCTYPE type, dt_flags flags, char **ptr,
wchar_t buf[80];
wchar_t fc;
size_t num;
DWORD cal;
mbstate_t mb;
size_t idx;
const char *day_str = "edaA";
@ -402,6 +400,17 @@ __eval_datetimefmt (LCID lcid, LCTYPE type, dt_flags flags, char **ptr,
if ((flags & DT_ABBREV) && fc != L'y' && idx == 3)
idx = 2;
*p++ = '%';
/* Check for default calender with offset to gregorian calendar.
If so, make era representation the default. */
if (fc == L'y'
&& GetLocaleInfoW (lcid, LOCALE_ICALENDARTYPE
| LOCALE_RETURN_NUMBER,
(PWCHAR) &cal, sizeof cal / sizeof (WCHAR))
&& cal > CAL_GREGORIAN_US)
{
*p++ = 'E';
idx = 2;
}
*p++ = t_str[idx];
break;
case L'g':