2 * LOCALE.C - locale handling.
7 * 09-Jan-1999 (Eric Kohl)
10 * 20-Jan-1999 (Eric Kohl)
18 TCHAR cThousandSeparator
;
19 TCHAR cDecimalSeparator
;
25 VOID
InitLocale (VOID
)
30 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_SDATE
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
31 cDateSeparator
= szBuffer
[0];
32 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_IDATE
| LOCALE_RETURN_NUMBER
, (LPTSTR
)&nDateFormat
, sizeof(nDateFormat
) / sizeof(TCHAR
));
35 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_STIME
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
36 cTimeSeparator
= szBuffer
[0];
37 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_ITIME
| LOCALE_RETURN_NUMBER
, (LPTSTR
)&nTimeFormat
, sizeof(nTimeFormat
) / sizeof(TCHAR
));
40 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_STHOUSAND
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
41 cThousandSeparator
= szBuffer
[0];
42 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_SDECIMAL
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
43 cDecimalSeparator
= szBuffer
[0];
44 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_SGROUPING
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
45 nNumberGroups
= _ttoi(szBuffer
);
48 for (i
= 0; i
< 7; i
++)
50 GetLocaleInfo (LOCALE_USER_DEFAULT
, LOCALE_SABBREVDAYNAME1
+ i
, szBuffer
, sizeof(szBuffer
) / sizeof(szBuffer
[0]));
51 _tcscpy (aszDayNames
[(i
+1)%7], szBuffer
); /* little hack */
56 /* Return date string including weekday. Used for $D in prompt and %DATE% */
60 static TCHAR szDate
[32];
65 len
= GetDateFormat(LOCALE_USER_DEFAULT
, 0, &t
, _T("ddd"), szDate
, sizeof szDate
);
66 szDate
[len
- 1] = _T(' ');
67 FormatDate(&szDate
[len
], &t
, TRUE
);
71 /* Return time in hh:mm:ss.xx format. Used for $T in prompt and %TIME% */
75 static TCHAR szTime
[12];
78 _stprintf(szTime
, _T("%2d%c%02d%c%02d%c%02d"),
79 t
.wHour
, cTimeSeparator
, t
.wMinute
, cTimeSeparator
,
80 t
.wSecond
, cDecimalSeparator
, t
.wMilliseconds
/ 10);