Consistently print calendar dates in the locale of the user

Calendar files that specify LANG=... to specify their character encoding did
also set the date format defined for that locale, resulting in output like:

Nov  4 	Gabriel Faure dies from pneumonia in Paris, France, 1924
 4 nov. 	N'oubliez pas les Charles !

After this commit the output is always printed in a consistent format
according to the user's current locale, e.g.:

Nov  4 	Gabriel Faure dies from pneumonia in Paris, France, 1924
Nov  4 	N'oubliez pas les Charles !

I'll open a review asking for opinions whether this format change should
be merged to -STABLE.

Relnotes:	yes
This commit is contained in:
Stefan Eßer 2020-11-03 12:15:08 +00:00
parent cc9fbfafbe
commit f1560bd080

View File

@ -468,8 +468,7 @@ cal_parse(FILE *in, FILE *out)
* and does not run iconv(), this variable has little use.
*/
if (strncmp(buf, "LANG=", 5) == 0) {
(void)setlocale(LC_ALL, buf + 5);
d_first = (*nl_langinfo(D_MD_ORDER) == 'd');
(void)setlocale(LC_CTYPE, buf + 5);
#ifdef WITH_ICONV
if (!doall)
set_new_encoding();