glibc/locale/programs/locfile-kw.gperf
Rafal Luzynski 761a585ce9 Abbreviated alternative month names (%Ob) also added (bug 10871).
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>
2018-01-22 11:26:55 +01:00

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