~ubuntu-branches/ubuntu/feisty/mp4h/feisty

« back to all changes in this revision

Viewing changes to intl/gettext.h

  • Committer: Bazaar Package Importer
  • Author(s): Denis Barbier
  • Date: 2003-11-06 20:34:24 UTC
  • Revision ID: james.westby@ubuntu.com-20031106203424-nqx14tkfeirx01r3
Tags: upstream-1.3.1
ImportĀ upstreamĀ versionĀ 1.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* Description of GNU message catalog format: general file layout.
 
2
   Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
 
3
 
 
4
   This program is free software; you can redistribute it and/or modify it
 
5
   under the terms of the GNU Library General Public License as published
 
6
   by 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 GNU
 
12
   Library General Public License for more details.
 
13
 
 
14
   You should have received a copy of the GNU Library General Public
 
15
   License along with this program; if not, write to the Free Software
 
16
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 
17
   USA.  */
 
18
 
 
19
#ifndef _GETTEXT_H
 
20
#define _GETTEXT_H 1
 
21
 
 
22
#if HAVE_LIMITS_H || _LIBC
 
23
# include <limits.h>
 
24
#endif
 
25
 
 
26
/* @@ end of prolog @@ */
 
27
 
 
28
/* The magic number of the GNU message catalog format.  */
 
29
#define _MAGIC 0x950412de
 
30
#define _MAGIC_SWAPPED 0xde120495
 
31
 
 
32
/* Revision number of the currently used .mo (binary) file format.  */
 
33
#define MO_REVISION_NUMBER 0
 
34
 
 
35
/* The following contortions are an attempt to use the C preprocessor
 
36
   to determine an unsigned integral type that is 32 bits wide.  An
 
37
   alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
 
38
   as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
 
39
   when cross-compiling.  */
 
40
 
 
41
#if __STDC__
 
42
# define UINT_MAX_32_BITS 4294967295U
 
43
#else
 
44
# define UINT_MAX_32_BITS 0xFFFFFFFF
 
45
#endif
 
46
 
 
47
/* If UINT_MAX isn't defined, assume it's a 32-bit type.
 
48
   This should be valid for all systems GNU cares about because
 
49
   that doesn't include 16-bit systems, and only modern systems
 
50
   (that certainly have <limits.h>) have 64+-bit integral types.  */
 
51
 
 
52
#ifndef UINT_MAX
 
53
# define UINT_MAX UINT_MAX_32_BITS
 
54
#endif
 
55
 
 
56
#if UINT_MAX == UINT_MAX_32_BITS
 
57
typedef unsigned nls_uint32;
 
58
#else
 
59
# if USHRT_MAX == UINT_MAX_32_BITS
 
60
typedef unsigned short nls_uint32;
 
61
# else
 
62
#  if ULONG_MAX == UINT_MAX_32_BITS
 
63
typedef unsigned long nls_uint32;
 
64
#  else
 
65
  /* The following line is intended to throw an error.  Using #error is
 
66
     not portable enough.  */
 
67
  "Cannot determine unsigned 32-bit data type."
 
68
#  endif
 
69
# endif
 
70
#endif
 
71
 
 
72
 
 
73
/* Header for binary .mo file format.  */
 
74
struct mo_file_header
 
75
{
 
76
  /* The magic number.  */
 
77
  nls_uint32 magic;
 
78
  /* The revision number of the file format.  */
 
79
  nls_uint32 revision;
 
80
  /* The number of strings pairs.  */
 
81
  nls_uint32 nstrings;
 
82
  /* Offset of table with start offsets of original strings.  */
 
83
  nls_uint32 orig_tab_offset;
 
84
  /* Offset of table with start offsets of translation strings.  */
 
85
  nls_uint32 trans_tab_offset;
 
86
  /* Size of hashing table.  */
 
87
  nls_uint32 hash_tab_size;
 
88
  /* Offset of first hashing entry.  */
 
89
  nls_uint32 hash_tab_offset;
 
90
};
 
91
 
 
92
struct string_desc
 
93
{
 
94
  /* Length of addressed string.  */
 
95
  nls_uint32 length;
 
96
  /* Offset of string in file.  */
 
97
  nls_uint32 offset;
 
98
};
 
99
 
 
100
/* @@ begin of epilog @@ */
 
101
 
 
102
#endif  /* gettext.h  */