From bc3e1c127392da88d0c8bf2ae728147982a3d1bc Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 14 Dec 2007 03:54:07 +0000 Subject: * locale/nl_langinfo.c (nl_langinfo): Just call __nl_langinfo_l. * locale/nl_langinfo_l.c: Real implementation, copied from nl_langinfo.c. * include/langinfo.h: Add libc_hidden_proto for __nl_langinfo_l. --- locale/nl_langinfo_l.c | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) (limited to 'locale/nl_langinfo_l.c') diff --git a/locale/nl_langinfo_l.c b/locale/nl_langinfo_l.c index ef7b7a1a6a..08e1534a8b 100644 --- a/locale/nl_langinfo_l.c +++ b/locale/nl_langinfo_l.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* User interface for extracting locale-dependent parameters. + Copyright (C) 1995-1997,1999-2002,2005,2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,5 +17,41 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#define USE_IN_EXTENDED_LOCALE_MODEL 1 -#include +#include +#include +#include +#include +#include "localeinfo.h" + + +/* Return a string with the data for locale-dependent parameter ITEM. */ + +char * +__nl_langinfo_l (item, l) + nl_item item; + __locale_t l; +{ + int category = _NL_ITEM_CATEGORY (item); + unsigned int index = _NL_ITEM_INDEX (item); + const struct locale_data *data; + + if (category < 0 || category == LC_ALL || category >= __LC_LAST) + /* Bogus category: bogus item. */ + return (char *) ""; + + /* Special case value for NL_LOCALE_NAME (category). + This is not a real item index in the string table. */ + if (index == _NL_ITEM_INDEX (_NL_LOCALE_NAME (category))) + return (char *) l->__names[category]; + + data = l->__locales[category]; + + if (index >= data->nstrings) + /* Bogus index for this category: bogus item. */ + return (char *) ""; + + /* Return the string for the specified item. */ + return (char *) data->values[index].string; +} +libc_hidden_def (__nl_langinfo_l) +weak_alias (__nl_langinfo_l, nl_langinfo_l) -- cgit 1.4.1