/[cvs]/eggdrop1.9/intl/gettextP.h
ViewVC logotype

Annotation of /eggdrop1.9/intl/gettextP.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (hide annotations) (download) (as text)
Fri Mar 7 11:30:34 2003 UTC (16 years, 10 months ago) by tothwolf
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +70 -80 lines
File MIME type: text/x-csrc
* Upgraded gettext to version 0.11.5.

1 ite 1.1 /* Header describing internals of libintl library.
2 tothwolf 1.2 Copyright (C) 1995-1999, 2000-2002 Free Software Foundation, Inc.
3 ite 1.1 Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
4    
5     This program is free software; you can redistribute it and/or modify it
6     under the terms of the GNU Library General Public License as published
7     by the Free Software Foundation; either version 2, or (at your option)
8     any later version.
9    
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13     Library General Public License for more details.
14    
15     You should have received a copy of the GNU Library General Public
16     License along with this program; if not, write to the Free Software
17     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18     USA. */
19    
20     #ifndef _GETTEXTP_H
21     #define _GETTEXTP_H
22    
23     #include <stddef.h> /* Get size_t. */
24    
25     #ifdef _LIBC
26     # include "../iconv/gconv_int.h"
27     #else
28     # if HAVE_ICONV
29     # include <iconv.h>
30     # endif
31     #endif
32    
33     #include "loadinfo.h"
34    
35 tothwolf 1.2 #include "gmo.h" /* Get nls_uint32. */
36 ite 1.1
37     /* @@ end of prolog @@ */
38    
39     #ifndef PARAMS
40 tothwolf 1.2 # if __STDC__ || defined __GNUC__ || defined __SUNPRO_C || defined __cplusplus || __PROTOTYPES
41 ite 1.1 # define PARAMS(args) args
42     # else
43     # define PARAMS(args) ()
44     # endif
45     #endif
46    
47     #ifndef internal_function
48     # define internal_function
49     #endif
50    
51 tothwolf 1.2 #ifndef attribute_hidden
52     # define attribute_hidden
53     #endif
54    
55 ite 1.1 /* Tell the compiler when a conditional or integer expression is
56     almost always true or almost always false. */
57     #ifndef HAVE_BUILTIN_EXPECT
58     # define __builtin_expect(expr, val) (expr)
59     #endif
60    
61     #ifndef W
62     # define W(flag, data) ((flag) ? SWAP (data) : (data))
63     #endif
64    
65    
66     #ifdef _LIBC
67     # include <byteswap.h>
68     # define SWAP(i) bswap_32 (i)
69     #else
70     static inline nls_uint32
71     SWAP (i)
72     nls_uint32 i;
73     {
74     return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
75     }
76     #endif
77    
78    
79 tothwolf 1.2 /* In-memory representation of system dependent string. */
80     struct sysdep_string_desc
81 ite 1.1 {
82 tothwolf 1.2 /* Length of addressed string, including the trailing NUL. */
83     size_t length;
84     /* Pointer to addressed string. */
85     const char *pointer;
86 ite 1.1 };
87    
88     /* The representation of an opened message catalog. */
89     struct loaded_domain
90     {
91 tothwolf 1.2 /* Pointer to memory containing the .mo file. */
92 ite 1.1 const char *data;
93 tothwolf 1.2 /* 1 if the memory is mmap()ed, 0 if the memory is malloc()ed. */
94 ite 1.1 int use_mmap;
95 tothwolf 1.2 /* Size of mmap()ed memory. */
96 ite 1.1 size_t mmap_size;
97 tothwolf 1.2 /* 1 if the .mo file uses a different endianness than this machine. */
98 ite 1.1 int must_swap;
99 tothwolf 1.2 /* Pointer to additional malloc()ed memory. */
100     void *malloced;
101    
102     /* Number of static strings pairs. */
103 ite 1.1 nls_uint32 nstrings;
104 tothwolf 1.2 /* Pointer to descriptors of original strings in the file. */
105     const struct string_desc *orig_tab;
106     /* Pointer to descriptors of translated strings in the file. */
107     const struct string_desc *trans_tab;
108    
109     /* Number of system dependent strings pairs. */
110     nls_uint32 n_sysdep_strings;
111     /* Pointer to descriptors of original sysdep strings. */
112     const struct sysdep_string_desc *orig_sysdep_tab;
113     /* Pointer to descriptors of translated sysdep strings. */
114     const struct sysdep_string_desc *trans_sysdep_tab;
115    
116     /* Size of hash table. */
117 ite 1.1 nls_uint32 hash_size;
118 tothwolf 1.2 /* Pointer to hash table. */
119     const nls_uint32 *hash_tab;
120     /* 1 if the hash table uses a different endianness than this machine. */
121     int must_swap_hash_tab;
122    
123 ite 1.1 int codeset_cntr;
124     #ifdef _LIBC
125     __gconv_t conv;
126     #else
127     # if HAVE_ICONV
128     iconv_t conv;
129     # endif
130     #endif
131     char **conv_tab;
132    
133     struct expression *plural;
134     unsigned long int nplurals;
135     };
136    
137     /* We want to allocate a string at the end of the struct. But ISO C
138     doesn't allow zero sized arrays. */
139     #ifdef __GNUC__
140     # define ZERO 0
141     #else
142     # define ZERO 1
143     #endif
144    
145     /* A set of settings bound to a message domain. Used to store settings
146     from bindtextdomain() and bind_textdomain_codeset(). */
147     struct binding
148     {
149     struct binding *next;
150     char *dirname;
151     int codeset_cntr; /* Incremented each time codeset changes. */
152     char *codeset;
153     char domainname[ZERO];
154     };
155    
156     /* A counter which is incremented each time some previous translations
157     become invalid.
158     This variable is part of the external ABI of the GNU libintl. */
159     extern int _nl_msg_cat_cntr;
160    
161 tothwolf 1.2 #ifndef _LIBC
162     const char *_nl_locale_name PARAMS ((int category, const char *categoryname));
163     #endif
164    
165 ite 1.1 struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
166     char *__locale,
167     const char *__domainname,
168     struct binding *__domainbinding))
169     internal_function;
170     void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
171     struct binding *__domainbinding))
172     internal_function;
173     void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
174     internal_function;
175     const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
176     struct loaded_domain *__domain,
177     struct binding *__domainbinding))
178     internal_function;
179     void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
180     internal_function;
181    
182     char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
183     struct binding *domainbinding,
184     const char *msgid, size_t *lengthp))
185     internal_function;
186    
187     #ifdef _LIBC
188     extern char *__gettext PARAMS ((const char *__msgid));
189     extern char *__dgettext PARAMS ((const char *__domainname,
190     const char *__msgid));
191     extern char *__dcgettext PARAMS ((const char *__domainname,
192     const char *__msgid, int __category));
193     extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
194     unsigned long int __n));
195     extern char *__dngettext PARAMS ((const char *__domainname,
196     const char *__msgid1, const char *__msgid2,
197     unsigned long int n));
198     extern char *__dcngettext PARAMS ((const char *__domainname,
199     const char *__msgid1, const char *__msgid2,
200     unsigned long int __n, int __category));
201     extern char *__dcigettext PARAMS ((const char *__domainname,
202     const char *__msgid1, const char *__msgid2,
203     int __plural, unsigned long int __n,
204     int __category));
205     extern char *__textdomain PARAMS ((const char *__domainname));
206     extern char *__bindtextdomain PARAMS ((const char *__domainname,
207     const char *__dirname));
208     extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
209     const char *__codeset));
210     #else
211 tothwolf 1.2 extern char *libintl_gettext PARAMS ((const char *__msgid));
212     extern char *libintl_dgettext PARAMS ((const char *__domainname,
213     const char *__msgid));
214     extern char *libintl_dcgettext PARAMS ((const char *__domainname,
215     const char *__msgid, int __category));
216     extern char *libintl_ngettext PARAMS ((const char *__msgid1,
217     const char *__msgid2,
218     unsigned long int __n));
219     extern char *libintl_dngettext PARAMS ((const char *__domainname,
220     const char *__msgid1,
221     const char *__msgid2,
222     unsigned long int __n));
223     extern char *libintl_dcngettext PARAMS ((const char *__domainname,
224     const char *__msgid1,
225     const char *__msgid2,
226     unsigned long int __n,
227     int __category));
228     extern char *libintl_dcigettext PARAMS ((const char *__domainname,
229     const char *__msgid1,
230     const char *__msgid2,
231     int __plural, unsigned long int __n,
232     int __category));
233     extern char *libintl_textdomain PARAMS ((const char *__domainname));
234     extern char *libintl_bindtextdomain PARAMS ((const char *__domainname,
235     const char *__dirname));
236     extern char *libintl_bind_textdomain_codeset PARAMS ((const char *__domainname,
237     const char *__codeset));
238 ite 1.1 #endif
239    
240     /* @@ begin of epilog @@ */
241    
242     #endif /* gettextP.h */

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23