119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Implementation of the dngettext(3) function. 219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Copyright (C) 1995-1997, 2000-2003 Free Software Foundation, Inc. 319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project This program is free software; you can redistribute it and/or modify it 519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project under the terms of the GNU Library General Public License as published 619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project by the Free Software Foundation; either version 2, or (at your option) 719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project any later version. 819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project This program is distributed in the hope that it will be useful, 1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project but WITHOUT ANY WARRANTY; without even the implied warranty of 1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Library General Public License for more details. 1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project You should have received a copy of the GNU Library General Public 1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project License along with this program; if not, write to the Free Software 1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project USA. */ 1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef HAVE_CONFIG_H 2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# include <config.h> 2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "gettextP.h" 2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <locale.h> 2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef _LIBC 2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# include <libintl.h> 2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else 3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# include "libgnuintl.h" 3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* @@ end of prolog @@ */ 3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Names for the libintl functions are a problem. They must not clash 3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project with existing names and they should follow ANSI C. But this source 3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project code is also used in GNU C Library where the names have a __ 3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project prefix. So we have to make a difference here. */ 3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef _LIBC 4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DNGETTEXT __dngettext 4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DCNGETTEXT __dcngettext 4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#else 4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DNGETTEXT libintl_dngettext 4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project# define DCNGETTEXT libintl_dcngettext 4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Look up MSGID in the DOMAINNAME message catalog of the current 4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project LC_MESSAGES locale and skip message according to the plural form. */ 4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectchar * 5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source ProjectDNGETTEXT (const char *domainname, 5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *msgid1, const char *msgid2, unsigned long int n) 5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES); 5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef _LIBC 5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* Alias for function name in GNU C Library. */ 5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectweak_alias (__dngettext, dngettext); 5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 60