ngettext.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /* Implementation of ngettext(3) function.
  2. Copyright (C) 1995-2019 Free Software Foundation, Inc.
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU Lesser General Public License as published by
  5. the Free Software Foundation; either version 2.1 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  13. #ifdef HAVE_CONFIG_H
  14. # include <config.h>
  15. #endif
  16. #ifdef _LIBC
  17. # define __need_NULL
  18. # include <stddef.h>
  19. #else
  20. # include <stdlib.h> /* Just for NULL. */
  21. #endif
  22. #include "gettextP.h"
  23. #ifdef _LIBC
  24. # include <libintl.h>
  25. #else
  26. # include "libgnuintl.h"
  27. #endif
  28. #include <locale.h>
  29. /* @@ end of prolog @@ */
  30. /* Names for the libintl functions are a problem. They must not clash
  31. with existing names and they should follow ANSI C. But this source
  32. code is also used in GNU C Library where the names have a __
  33. prefix. So we have to make a difference here. */
  34. #ifdef _LIBC
  35. # define NGETTEXT __ngettext
  36. # define DCNGETTEXT __dcngettext
  37. #else
  38. # define NGETTEXT libintl_ngettext
  39. # define DCNGETTEXT libintl_dcngettext
  40. #endif
  41. /* Look up MSGID in the current default message catalog for the current
  42. LC_MESSAGES locale. If not found, returns MSGID itself (the default
  43. text). */
  44. char *
  45. NGETTEXT (const char *msgid1, const char *msgid2, unsigned long int n)
  46. {
  47. return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
  48. }
  49. #ifdef _LIBC
  50. /* Alias for function name in GNU C Library. */
  51. weak_alias (__ngettext, ngettext);
  52. #endif