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