source: branches/libc-0.6/src/binutils/intl/libintl.glibc

Last change on this file was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 4.3 KB
Line 
1/* Message catalogs for internationalization.
2 Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
3 Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
4 This file is derived from the file libgettext.h in the GNU gettext package.
5
6 This file is part of the GNU C Library. Its master source is NOT part of
7 the C library, however.
8
9 The GNU C Library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public License as
11 published by the Free Software Foundation; either version 2 of the
12 License, or (at your option) any later version.
13
14 The GNU C Library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details.
18
19 You should have received a copy of the GNU Library General Public
20 License along with the GNU C Library; see the file COPYING.LIB. If not,
21 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. */
23
24#ifndef _LIBINTL_H
25#define _LIBINTL_H 1
26
27#include <features.h>
28
29/* We define an additional symbol to signal that we use the GNU
30 implementation of gettext. */
31#define __USE_GNU_GETTEXT 1
32
33__BEGIN_DECLS
34
35/* Look up MSGID in the current default message catalog for the current
36 LC_MESSAGES locale. If not found, returns MSGID itself (the default
37 text). */
38extern char *gettext __P ((__const char *__msgid));
39extern char *__gettext __P ((__const char *__msgid));
40
41/* Look up MSGID in the DOMAINNAME message catalog for the current
42 LC_MESSAGES locale. */
43extern char *dgettext __P ((__const char *__domainname,
44 __const char *__msgid));
45extern char *__dgettext __P ((__const char *__domainname,
46 __const char *__msgid));
47
48/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
49 locale. */
50extern char *dcgettext __P ((__const char *__domainname,
51 __const char *__msgid, int __category));
52extern char *__dcgettext __P ((__const char *__domainname,
53 __const char *__msgid, int __category));
54
55
56/* Set the current default message catalog to DOMAINNAME.
57 If DOMAINNAME is null, return the current default.
58 If DOMAINNAME is "", reset to the default of "messages". */
59extern char *textdomain __P ((__const char *__domainname));
60extern char *__textdomain __P ((__const char *__domainname));
61
62/* Specify that the DOMAINNAME message catalog will be found
63 in DIRNAME rather than in the system locale data base. */
64extern char *bindtextdomain __P ((__const char *__domainname,
65 __const char *__dirname));
66extern char *__bindtextdomain __P ((__const char *__domainname,
67 __const char *__dirname));
68
69
70/* Optimized version of the function above. */
71#if defined __OPTIMIZE__
72
73/* We need NULL for `gettext'. */
74# define __need_NULL
75# include <stddef.h>
76
77/* We need LC_MESSAGES for `dgettext'. */
78# include <locale.h>
79
80/* These must be macros. Inlined functions are useless because the
81 `__builtin_constant_p' predicate in dcgettext would always return
82 false. */
83
84# define gettext(msgid) dgettext (NULL, msgid)
85
86# define dgettext(domainname, msgid) \
87 dcgettext (domainname, msgid, LC_MESSAGES)
88
89# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
90/* Variable defined in loadmsgcat.c which gets incremented every time a
91 new catalog is loaded. */
92extern int _nl_msg_cat_cntr;
93
94# define dcgettext(domainname, msgid, category) \
95 (__extension__ \
96 ({ \
97 char *__result; \
98 if (__builtin_constant_p (msgid)) \
99 { \
100 static char *__translation__; \
101 static int __catalog_counter__; \
102 if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
103 { \
104 __translation__ = \
105 __dcgettext ((domainname), (msgid), (category)); \
106 __catalog_counter__ = _nl_msg_cat_cntr; \
107 } \
108 __result = __translation__; \
109 } \
110 else \
111 __result = __dcgettext ((domainname), (msgid), (category)); \
112 __result; \
113 }))
114# endif
115#endif /* Optimizing. */
116
117
118__END_DECLS
119
120#endif /* libintl.h */
Note: See TracBrowser for help on using the repository browser.