This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[RFC][PATCH v6 10/16] Backward compatibility for abbreviated alt. names (bug 10871).
- From: Rafal Luzynski <digitalfreak at lingonborough dot com>
- To: libc-alpha at sourceware dot org
- Date: Mon, 20 Mar 2017 21:44:02 +0100 (CET)
- Subject: [RFC][PATCH v6 10/16] Backward compatibility for abbreviated alt. names (bug 10871).
- Authentication-results: sourceware.org; auth=none
- Reply-to: Rafal Luzynski <digitalfreak at lingonborough dot com>
All the previous changes related with backward compatibility also
repeated to support abbreviated alternative month names.
[BZ #10871]
* locale/nl_langinfo_l.c: backward compatibility for _NL_[W]ABALTMON.
* time/strftime_l.c: backward compatibility for %Ob.
---
locale/nl_langinfo_l.c | 14 +++++++++++++-
time/strftime_l.c | 4 +++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c
index 467a341..c38d190 100644
--- a/locale/nl_langinfo_l.c
+++ b/locale/nl_langinfo_l.c
@@ -81,7 +81,9 @@ attribute_compat_text_section
__nl_langinfo_noaltmon_l (nl_item item, __locale_t l)
{
if ((item >= ALTMON_1 && item <= ALTMON_12)
- || (item >= _NL_WALTMON_1 && item <= _NL_WALTMON_12))
+ || (item >= _NL_WALTMON_1 && item <= _NL_WALTMON_12)
+ || (item >= _NL_ABALTMON_1 && item <= _NL_ABALTMON_12)
+ || (item >= _NL_WABALTMON_1 && item <= _NL_WABALTMON_12))
/* Pretend it's a bogus index for this category: bogus item. */
return (char *) "";
else if (item >= MON_1 && item <= MON_12)
@@ -94,6 +96,16 @@ __nl_langinfo_noaltmon_l (nl_item item, __locale_t l)
/* The same for _NL_WALTMON_... and _NL_WMON_... */
return __nl_langinfo_l (item + _NL_WALTMON_1 - _NL_WMON_1, l);
}
+ else if (item >= ABMON_1 && item <= ABMON_12)
+ {
+ /* _NL_ABALTMON... item contains what ABMON_... item contained before.
*/
+ return __nl_langinfo_l (item + _NL_ABALTMON_1 - ABMON_1, l);
+ }
+ else if (item >= _NL_WABMON_1 && item <= _NL_WABMON_12)
+ {
+ /* The same for _NL_WABALTMON_... and _NL_WABMON_... */
+ return __nl_langinfo_l (item + _NL_WABALTMON_1 - _NL_WABMON_1, l);
+ }
/* Default result if it is not a month. */
return __nl_langinfo_l (item, l);
diff --git a/time/strftime_l.c b/time/strftime_l.c
index 2353ec8..0141144 100644
--- a/time/strftime_l.c
+++ b/time/strftime_l.c
@@ -787,8 +787,10 @@ __strftime_internal (CHAR_T *s, size_t maxsize, const
CHAR_T *format,
}
if (modifier == L_('E'))
goto bad_format;
+ if (!feature_OB && modifier == L_('O'))
+ goto bad_format;
#if defined _NL_CURRENT || !HAVE_STRFTIME
- if (modifier == L_('O'))
+ if (!feature_OB || modifier == L_('O'))
cpy (aam_len, a_altmonth);
else
cpy (am_len, a_month);
--
2.7.4