1/* gettextP.h -- header describing internals of gettext library
2   Copyright (C) 1995 Free Software Foundation, Inc.
3
4This program is free software; you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation; either version 2, or (at your option)
7any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program; if not, write to the Free Software
16Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17
18#ifndef _GETTEXTP_H
19#define _GETTEXTP_H
20
21/* @@ end of prolog @@ */
22
23#ifndef __P
24# if __STDC__
25#  define __P(args) args
26# else
27#  define __P(args) ()
28# endif
29#endif
30
31#ifndef W
32# define W(flag, data) ((flag) ? SWAP (data) : (data))
33#endif
34
35
36static nls_uint32 SWAP __P ((nls_uint32 i));
37
38static inline nls_uint32
39SWAP (i)
40     nls_uint32 i;
41{
42  return (i << 24) | ((i & 0xff00) << 8) | ((i >> 8) & 0xff00) | (i >> 24);
43}
44
45
46struct loaded_domain
47{
48  struct loaded_domain *next;
49  struct loaded_domain *successor[31];
50
51  const char *filename;
52  int decided;
53
54  const char *data;
55  int must_swap;
56  nls_uint32 nstrings;
57  struct string_desc *orig_tab;
58  struct string_desc *trans_tab;
59  nls_uint32 hash_size;
60  nls_uint32 *hash_tab;
61};
62
63struct binding
64{
65  struct binding *next;
66  char *domainname;
67  char *dirname;
68};
69
70struct loaded_domain *_nl_find_domain __P ((const char *__dirname,
71					    char *__locale,
72					    const char *__domainname));
73void _nl_load_domain __P ((struct loaded_domain *__domain));
74
75const char *_nl_expand_alias __P ((const char *__name));
76
77/* @@ begin of epilog @@ */
78
79#endif /* gettextP.h  */
80