mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 21:10:07 +00:00
761a585ce9
All the previous changes also repeated to support abbreviated alternative month names. In most languages which have declension and need nominative/genitive month names the abbreviated forms for both cases are the same. An example where they do differ is May in Russian: this name is too short to be abbreviated so even the abbreviated form features the declension suffixes. [BZ #10871] * locale/C-time.c (_nl_C_LC_TIME): Add abbreviated alternative month names, define them as the same as abbreviated month names explicitly. * locale/categories.def (LC_TIME): Add ab_alt_mon and wide-ab_alt_mon. * locale/langinfo.h: (_NL_ABALTMON_1, _NL_ABALTMON_2, _NL_ABALTMON_3, _NL_ABALTMON_4, _NL_ABALTMON_5, _NL_ABALTMON_6, _NL_ABALTMON_7, _NL_ABALTMON_8, _NL_ABALTMON_9, _NL_ABALTMON_10, _NL_ABALTMON_11, _NL_ABALTMON_12, _NL_WABALTMON_1, _NL_WABALTMON_2, _NL_WABALTMON_3, _NL_WABALTMON_4, _NL_WABALTMON_5, _NL_WABALTMON_6, _NL_WABALTMON_7, _NL_WABALTMON_8, _NL_WABALTMON_9, _NL_WABALTMON_10, _NL_WABALTMON_11, _NL_WABALTMON_12): New enum constants. * locale/programs/ld-time.c (struct locale_time_t): Add ab_alt_mon, wab_alt_mon, and ab_alt_mon_defined members. (time_output): Output ab_alt_mon and wab_alt_mon members. (time_read): Read them, initialize them as copies of abmon and wabmon respectively if they are missing, initialize ab_alt_mon_defined. * locale/programs/locfile-kw.gperf (ab_alt_mon): Define. * locale/programs/locfile-kw.h: Regenerate. * locale/programs/locfile-token.h (tok_ab_alt_mon): New enum constant. * time/Makefile [$(run-built-tests) = yes] (LOCALES): Add es_ES.UTF-8 and ru_RU.UTF-8. * time/strftime_l.c (a_altmonth, aam_len): New macros. [!COMPILE_WIDE] (ABALTMON_1): New macro. (__strftime_internal): Handle %Ob and %Oh formats. * time/strptime_l.c [_LIBC] (ab_alt_month_name): New macro. (__strptime_internal): Handle %Ob and %Oh formats. * time/tst-strptime.c (day_tests): Add more tests to parse different forms of month names including the new %Ob format specifier. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
204 lines
10 KiB
Plaintext
204 lines
10 KiB
Plaintext
%{
|
|
/* Copyright (C) 1996-2018 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published
|
|
by the Free Software Foundation; version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#include <string.h>
|
|
|
|
#include "locfile-token.h"
|
|
%}
|
|
struct keyword_t ;
|
|
%%
|
|
escape_char, tok_escape_char, 0
|
|
comment_char, tok_comment_char, 0
|
|
repertoiremap, tok_repertoiremap, 0
|
|
include, tok_include, 0
|
|
LC_CTYPE, tok_lc_ctype, 0
|
|
END, tok_end, 0
|
|
copy, tok_copy, 0
|
|
upper, tok_upper, 0
|
|
lower, tok_lower, 0
|
|
alpha, tok_alpha, 0
|
|
digit, tok_digit, 0
|
|
outdigit, tok_outdigit, 0
|
|
alnum, tok_alnum, 0
|
|
space, tok_space, 0
|
|
cntrl, tok_cntrl, 0
|
|
punct, tok_punct, 0
|
|
graph, tok_graph, 0
|
|
print, tok_print, 0
|
|
xdigit, tok_xdigit, 0
|
|
blank, tok_blank, 0
|
|
charclass, tok_charclass, 0
|
|
class, tok_class, 0
|
|
charconv, tok_charconv, 0
|
|
toupper, tok_toupper, 0
|
|
tolower, tok_tolower, 0
|
|
map, tok_map, 0
|
|
translit_start, tok_translit_start, 0
|
|
translit_end, tok_translit_end, 0
|
|
translit_ignore, tok_translit_ignore, 0
|
|
default_missing, tok_default_missing, 0
|
|
LC_COLLATE, tok_lc_collate, 0
|
|
coll_weight_max, tok_coll_weight_max, 0
|
|
section-symbol, tok_section_symbol, 0
|
|
collating-element, tok_collating_element, 0
|
|
collating-symbol, tok_collating_symbol, 0
|
|
symbol-equivalence, tok_symbol_equivalence, 0
|
|
script, tok_script, 0
|
|
order_start, tok_order_start, 0
|
|
order_end, tok_order_end, 0
|
|
from, tok_from, 0
|
|
forward, tok_forward, 0
|
|
backward, tok_backward, 0
|
|
position, tok_position, 0
|
|
UNDEFINED, tok_undefined, 0
|
|
IGNORE, tok_ignore, 0
|
|
reorder-after, tok_reorder_after, 0
|
|
reorder-end, tok_reorder_end, 0
|
|
reorder-sections-after, tok_reorder_sections_after, 0
|
|
reorder-sections-end, tok_reorder_sections_end, 0
|
|
define, tok_define, 0
|
|
undef, tok_undef, 0
|
|
ifdef, tok_ifdef, 0
|
|
else, tok_else, 0
|
|
elifdef, tok_elifdef, 0
|
|
elifndef, tok_elifndef, 0
|
|
endif, tok_endif, 0
|
|
LC_MONETARY, tok_lc_monetary, 0
|
|
int_curr_symbol, tok_int_curr_symbol, 0
|
|
currency_symbol, tok_currency_symbol, 0
|
|
mon_decimal_point, tok_mon_decimal_point, 0
|
|
mon_thousands_sep, tok_mon_thousands_sep, 0
|
|
mon_grouping, tok_mon_grouping, 0
|
|
positive_sign, tok_positive_sign, 0
|
|
negative_sign, tok_negative_sign, 0
|
|
int_frac_digits, tok_int_frac_digits, 0
|
|
frac_digits, tok_frac_digits, 0
|
|
p_cs_precedes, tok_p_cs_precedes, 0
|
|
p_sep_by_space, tok_p_sep_by_space, 0
|
|
n_cs_precedes, tok_n_cs_precedes, 0
|
|
n_sep_by_space, tok_n_sep_by_space, 0
|
|
p_sign_posn, tok_p_sign_posn, 0
|
|
n_sign_posn, tok_n_sign_posn, 0
|
|
int_p_cs_precedes, tok_int_p_cs_precedes, 0
|
|
int_p_sep_by_space, tok_int_p_sep_by_space, 0
|
|
int_n_cs_precedes, tok_int_n_cs_precedes, 0
|
|
int_n_sep_by_space, tok_int_n_sep_by_space, 0
|
|
int_p_sign_posn, tok_int_p_sign_posn, 0
|
|
int_n_sign_posn, tok_int_n_sign_posn, 0
|
|
duo_int_curr_symbol, tok_duo_int_curr_symbol, 0
|
|
duo_currency_symbol, tok_duo_currency_symbol, 0
|
|
duo_int_frac_digits, tok_duo_int_frac_digits, 0
|
|
duo_frac_digits, tok_duo_frac_digits, 0
|
|
duo_p_cs_precedes, tok_duo_p_cs_precedes, 0
|
|
duo_p_sep_by_space, tok_duo_p_sep_by_space, 0
|
|
duo_n_cs_precedes, tok_duo_n_cs_precedes, 0
|
|
duo_n_sep_by_space, tok_duo_n_sep_by_space, 0
|
|
duo_int_p_cs_precedes, tok_duo_int_p_cs_precedes, 0
|
|
duo_int_p_sep_by_space, tok_duo_int_p_sep_by_space, 0
|
|
duo_int_n_cs_precedes, tok_duo_int_n_cs_precedes, 0
|
|
duo_int_n_sep_by_space, tok_duo_int_n_sep_by_space, 0
|
|
duo_p_sign_posn, tok_duo_p_sign_posn, 0
|
|
duo_n_sign_posn, tok_duo_n_sign_posn, 0
|
|
duo_int_p_sign_posn, tok_duo_int_p_sign_posn, 0
|
|
duo_int_n_sign_posn, tok_duo_int_n_sign_posn, 0
|
|
uno_valid_from, tok_uno_valid_from, 0
|
|
uno_valid_to, tok_uno_valid_to, 0
|
|
duo_valid_from, tok_duo_valid_from, 0
|
|
duo_valid_to, tok_duo_valid_to, 0
|
|
conversion_rate, tok_conversion_rate, 0
|
|
LC_NUMERIC, tok_lc_numeric, 0
|
|
decimal_point, tok_decimal_point, 0
|
|
thousands_sep, tok_thousands_sep, 0
|
|
grouping, tok_grouping, 0
|
|
LC_TIME, tok_lc_time, 0
|
|
abday, tok_abday, 0
|
|
day, tok_day, 0
|
|
week, tok_week, 0
|
|
abmon, tok_abmon, 0
|
|
mon, tok_mon, 0
|
|
d_t_fmt, tok_d_t_fmt, 0
|
|
d_fmt, tok_d_fmt, 0
|
|
t_fmt, tok_t_fmt, 0
|
|
am_pm, tok_am_pm, 0
|
|
t_fmt_ampm, tok_t_fmt_ampm, 0
|
|
era, tok_era, 0
|
|
era_year, tok_era_year, 0
|
|
era_d_fmt, tok_era_d_fmt, 0
|
|
era_d_t_fmt, tok_era_d_t_fmt, 0
|
|
era_t_fmt, tok_era_t_fmt, 0
|
|
alt_digits, tok_alt_digits, 0
|
|
first_weekday, tok_first_weekday, 0
|
|
first_workday, tok_first_workday, 0
|
|
cal_direction, tok_cal_direction, 0
|
|
timezone, tok_timezone, 0
|
|
date_fmt, tok_date_fmt, 0
|
|
alt_mon, tok_alt_mon, 0
|
|
ab_alt_mon, tok_ab_alt_mon, 0
|
|
LC_MESSAGES, tok_lc_messages, 0
|
|
yesexpr, tok_yesexpr, 0
|
|
noexpr, tok_noexpr, 0
|
|
yesstr, tok_yesstr, 0
|
|
nostr, tok_nostr, 0
|
|
LC_PAPER, tok_lc_paper, 0
|
|
height, tok_height, 0
|
|
width, tok_width, 0
|
|
LC_NAME, tok_lc_name, 0
|
|
name_fmt, tok_name_fmt, 0
|
|
name_gen, tok_name_gen, 0
|
|
name_mr, tok_name_mr, 0
|
|
name_mrs, tok_name_mrs, 0
|
|
name_miss, tok_name_miss, 0
|
|
name_ms, tok_name_ms, 0
|
|
LC_ADDRESS, tok_lc_address, 0
|
|
postal_fmt, tok_postal_fmt, 0
|
|
country_name, tok_country_name, 0
|
|
country_post, tok_country_post, 0
|
|
country_ab2, tok_country_ab2, 0
|
|
country_ab3, tok_country_ab3, 0
|
|
country_num, tok_country_num, 0
|
|
country_car, tok_country_car, 0
|
|
country_isbn, tok_country_isbn, 0
|
|
lang_name, tok_lang_name, 0
|
|
lang_ab, tok_lang_ab, 0
|
|
lang_term, tok_lang_term, 0
|
|
lang_lib, tok_lang_lib, 0
|
|
LC_TELEPHONE, tok_lc_telephone, 0
|
|
tel_int_fmt, tok_tel_int_fmt, 0
|
|
tel_dom_fmt, tok_tel_dom_fmt, 0
|
|
int_select, tok_int_select, 0
|
|
int_prefix, tok_int_prefix, 0
|
|
LC_MEASUREMENT, tok_lc_measurement, 0
|
|
measurement, tok_measurement, 0
|
|
LC_IDENTIFICATION, tok_lc_identification, 0
|
|
title, tok_title, 0
|
|
source, tok_source, 0
|
|
address, tok_address, 0
|
|
contact, tok_contact, 0
|
|
email, tok_email, 0
|
|
tel, tok_tel, 0
|
|
fax, tok_fax, 0
|
|
language, tok_language, 0
|
|
territory, tok_territory, 0
|
|
audience, tok_audience, 0
|
|
application, tok_application, 0
|
|
abbreviation, tok_abbreviation, 0
|
|
revision, tok_revision, 0
|
|
date, tok_date, 0
|
|
category, tok_category, 0
|