home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / lyx-0.13.2.tar.gz / lyx-0.13.2.tar / lyx-0.13.2 / intl / gettext.h < prev    next >
C/C++ Source or Header  |  1998-04-23  |  3KB  |  106 lines

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