This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMITTED][PATCH v12 1/6] Implement alternative month names (bug 10871).


12.01.2018 09:14 Rafal Luzynski <digitalfreak@lingonborough.com> wrote:
>
> Some languages (Slavic, Baltic, etc.) require a genitive case of the
> month name when formatting a full date (with the day number) while
> they require a nominative case when referring to the month standalone.
> This requirement cannot be fulfilled without providing two forms for
> each month name. From now it is specified that nl_langinfo(MON_1)
> series (up to MON_12) and strftime("%B") generate the month names in
> the grammatical form used when the month is a part of a complete date.
> If the grammatical form used when the month is named by itself is needed,
> the new values nl_langinfo(ALTMON_1) (up to ALTMON_12) and
> strftime("%OB") are supported. This new feature is optional so the
> languages which do not need it or do not yet provide the updated
> locales simply do not use it and their behaviour is unchanged.
>
> [BZ #10871]
> * locale/C-time.c (_nl_C_LC_TIME): Add alternative month names,
> define them as the same as primary full month names explicitly.
> * locale/categories.def (LC_TIME): Add alt_mon and wide-alt_mon.
> * locale/langinfo.h (__ALTMON_1, __ALTMON_2, __ALTMON_3, __ALTMON_4,
> __ALTMON_5, __ALTMON_6, __ALTMON_7, __ALTMON_8, __ALTMON_9, __ALTMON_10,
> __ALTMON_11, __ALTMON_12, _NL_WALTMON_1, _NL_WALTMON_2, _NL_WALTMON_3,
> _NL_WALTMON_4, _NL_WALTMON_5, _NL_WALTMON_6, _NL_WALTMON_7,
> _NL_WALTMON_8, _NL_WALTMON_9, _NL_WALTMON_10, _NL_WALTMON_11,
> _NL_WALTMON_12): New enum constants.
> [__USE_GNU] (ALTMON_1, ALTMON_2, ALTMON_3, ALTMON_4, ALTMON_5, ALTMON_6,
> ALTMON_7, ALTMON_8, ALTMON_9, ALTMON_10, ALTMON_11, ALTMON_12): New
> macros.
> * locale/programs/ld-time.c (struct locale_time_t): Add alt_mon,
> walt_mon, and alt_mon_defined members.
> (time_output): Output alt_mon and walt_mon members.
> (time_read): Read them, initialize them as copies of mon and wmon
> respectively if they are missing, initialize alt_mon_defined.
> * locale/programs/locfile-kw.gperf (alt_mon): Define.
> * locale/programs/locfile-token.h (tok_alt_mon): New enum constant.
> * localedata/tst-langinfo.c (map): Add tests for the new constants
> ALTMON_1 .. ALTMON_12.
> * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add fr_FR.UTF-8
> and pl_PL.UTF-8.
> * time/strftime_l.c (f_altmonth): New macro.
> (__strftime_internal): Handle %OB format.
> * time/strptime_l.c [_LIBC] (alt_month_name): New macro.
> (__strptime_internal): Handle %OB format.
> * time/tst-strptime.c (day_tests): Add tests to parse different forms
> of month names including the new %OB format specifier.
> ---
> locale/C-time.c | 28 ++++++++++++++++++++--
> locale/categories.def | 2 ++
> locale/langinfo.h | 50 ++++++++++++++++++++++++++++++++++++++--
> locale/programs/ld-time.c | 21 +++++++++++++++++
> locale/programs/locfile-kw.gperf | 1 +
> locale/programs/locfile-token.h | 1 +
> localedata/tst-langinfo.c | 12 ++++++++++
> time/Makefile | 3 ++-
> time/strftime_l.c | 11 +++++++--
> time/strptime_l.c | 32 +++++++++++++++++++++----
> time/tst-strptime.c | 12 ++++++++++
> 11 files changed, 162 insertions(+), 11 deletions(-)
> [...]

This patch has been squashed with the part 2 (not published here,
contains the changes to ChangeLog and a generated file) and pushed.
Thank you Zack, Carlos, Dmitry, Rical, and everyone else for your
reviews, documentation updates, assistance, etc.

Regards,

Rafal


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]