~ubuntu-branches/ubuntu/maverick/texinfo/maverick

« back to all changes in this revision

Viewing changes to intl/gmo.h

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Preining
  • Date: 2005-10-28 15:10:30 UTC
  • mto: (2.1.1 dapper) (3.1.4 hardy)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20051028151030-9nsf2s2k2z3fktjt
Tags: upstream-4.8
ImportĀ upstreamĀ versionĀ 4.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* Description of GNU message catalog format: general file layout.
2
 
   Copyright (C) 1995, 1997, 2000, 2001 Free Software Foundation, Inc.
 
2
   Copyright (C) 1995, 1997, 2000-2002, 2004 Free Software Foundation, Inc.
3
3
 
4
4
   This program is free software; you can redistribute it and/or modify it
5
5
   under the terms of the GNU Library General Public License as published
29
29
 
30
30
/* Revision number of the currently used .mo (binary) file format.  */
31
31
#define MO_REVISION_NUMBER 0
 
32
#define MO_REVISION_NUMBER_WITH_SYSDEP_I 1
32
33
 
33
34
/* The following contortions are an attempt to use the C preprocessor
34
35
   to determine an unsigned integral type that is 32 bits wide.  An
75
76
  nls_uint32 magic;
76
77
  /* The revision number of the file format.  */
77
78
  nls_uint32 revision;
 
79
 
 
80
  /* The following are only used in .mo files with major revision 0 or 1.  */
 
81
 
78
82
  /* The number of strings pairs.  */
79
83
  nls_uint32 nstrings;
80
84
  /* Offset of table with start offsets of original strings.  */
81
85
  nls_uint32 orig_tab_offset;
82
 
  /* Offset of table with start offsets of translation strings.  */
 
86
  /* Offset of table with start offsets of translated strings.  */
83
87
  nls_uint32 trans_tab_offset;
84
 
  /* Size of hashing table.  */
 
88
  /* Size of hash table.  */
85
89
  nls_uint32 hash_tab_size;
86
 
  /* Offset of first hashing entry.  */
 
90
  /* Offset of first hash table entry.  */
87
91
  nls_uint32 hash_tab_offset;
 
92
 
 
93
  /* The following are only used in .mo files with minor revision >= 1.  */
 
94
 
 
95
  /* The number of system dependent segments.  */
 
96
  nls_uint32 n_sysdep_segments;
 
97
  /* Offset of table describing system dependent segments.  */
 
98
  nls_uint32 sysdep_segments_offset;
 
99
  /* The number of system dependent strings pairs.  */
 
100
  nls_uint32 n_sysdep_strings;
 
101
  /* Offset of table with start offsets of original sysdep strings.  */
 
102
  nls_uint32 orig_sysdep_tab_offset;
 
103
  /* Offset of table with start offsets of translated sysdep strings.  */
 
104
  nls_uint32 trans_sysdep_tab_offset;
88
105
};
89
106
 
 
107
/* Descriptor for static string contained in the binary .mo file.  */
90
108
struct string_desc
91
109
{
92
 
  /* Length of addressed string.  */
93
 
  nls_uint32 length;
94
 
  /* Offset of string in file.  */
95
 
  nls_uint32 offset;
96
 
};
 
110
  /* Length of addressed string, not including the trailing NUL.  */
 
111
  nls_uint32 length;
 
112
  /* Offset of string in file.  */
 
113
  nls_uint32 offset;
 
114
};
 
115
 
 
116
/* The following are only used in .mo files with minor revision >= 1.  */
 
117
 
 
118
/* Descriptor for system dependent string segment.  */
 
119
struct sysdep_segment
 
120
{
 
121
  /* Length of addressed string, including the trailing NUL.  */
 
122
  nls_uint32 length;
 
123
  /* Offset of string in file.  */
 
124
  nls_uint32 offset;
 
125
};
 
126
 
 
127
/* Descriptor for system dependent string.  */
 
128
struct sysdep_string
 
129
{
 
130
  /* Offset of static string segments in file.  */
 
131
  nls_uint32 offset;
 
132
  /* Alternating sequence of static and system dependent segments.
 
133
     The last segment is a static segment, including the trailing NUL.  */
 
134
  struct segment_pair
 
135
  {
 
136
    /* Size of static segment.  */
 
137
    nls_uint32 segsize;
 
138
    /* Reference to system dependent string segment, or ~0 at the end.  */
 
139
    nls_uint32 sysdepref;
 
140
  } segments[1];
 
141
};
 
142
 
 
143
/* Marker for the end of the segments[] array.  This has the value 0xFFFFFFFF,
 
144
   regardless whether 'int' is 16 bit, 32 bit, or 64 bit.  */
 
145
#define SEGMENTS_END ((nls_uint32) ~0)
97
146
 
98
147
/* @@ begin of epilog @@ */
99
148