source: trunk/third/texinfo/makeinfo/lang.h @ 17660

Revision 17660, 4.0 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17659, which included commits to RCS files with non-trunk default branches.
Line 
1/* lang.h -- declarations for language codes etc.
2   $Id: lang.h,v 1.1.1.1 2002-06-05 22:16:13 zacheiss Exp $
3
4   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20   Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>.  */
21
22#ifndef LANG_H
23#define LANG_H
24
25/* The language code which can be changed through @documentlanguage
26 * Actually we don't currently support this (may be in the future) ;-)
27 * These code are the ISO-639 two letter codes.
28 */
29typedef enum
30{
31  aa,  ab,  af,  am,  ar,  as,  ay,  az,
32  ba,  be,  bg,  bh,  bi,  bn,  bo,  br,
33  ca,  co,  cs,  cy,
34  da,  de,  dz,
35  el,  en,  eo,  es,  et,  eu,
36  fa,  fi,  fj,  fo,  fr,  fy,
37  ga,  gd,  gl,  gn,  gu,
38  ha,  he,  hi,  hr,  hu,  hy,
39  ia,  id,  ie,  ik,  is,  it,  iu,
40  ja,  jw,
41  ka,  kk,  kl,  km,  kn,  ko,  ks,  ku,  ky,
42  la,  ln,  lo,  lt,  lv,
43  mg,  mi,  mk,  ml,  mn,  mo,  mr,  ms,  mt,  my,
44  na,  ne,  nl,  no,
45  oc,  om,  or,
46  pa,  pl,  ps,  pt,
47  qu,
48  rm,  rn,  ro,  ru,  rw,
49  sa,  sd,  sg,  sh,  si,  sk,  sl,  sm,  sn,  so,  sq,  sr,  ss,  st,  su,  sv,  sw,
50  ta,  te,  tg,  th,  ti,  tk,  tl,  tn,  to,  tr,  ts,  tt,  tw,
51  ug,  uk,  ur,  uz,
52  vi,  vo,
53  wo,
54  xh,
55  yi,  yo,
56  za,  zh,  zu,
57  last_language_code
58} language_code_type;
59
60/* The current language code.  */
61extern language_code_type language_code;
62
63
64/* Information for each language.  */
65typedef struct
66{
67  language_code_type lc; /* language code as enum type */
68  char *abbrev;          /* two letter language code */
69  char *desc;            /* full name for language code */
70} language_type;
71
72extern language_type language_table[];
73
74
75
76/* The document encoding. This is usefull if we working e.g.
77 * with german Texinfo so we can produce correct german umlaut
78 * while creating output (--no-headers ASCII like).
79 */
80typedef enum {
81    no_encoding,
82    ISO_8859_1,    /* default for en, de, */
83    ISO_8859_2,    /* actualy not supported like the rest below */
84    ISO_8859_3,
85    ISO_8859_4,
86    ISO_8859_5,
87    ISO_8859_6,
88    ISO_8859_7,
89    ISO_8859_8,
90    ISO_8859_9,
91    ISO_8859_10,
92    ISO_8859_11,
93    ISO_8859_12,
94    ISO_8859_13,
95    ISO_8859_14,
96    ISO_8859_15,
97    last_encoding_code
98} encoding_code_type;
99
100/* The current document encoding, or null if not set.  */
101extern encoding_code_type document_encoding_code;
102
103
104/* Maps an HTML abbreviation to ISO and Unicode codes for a given code.  */
105
106typedef unsigned short int unicode_t; /* should be 16 bits */
107typedef unsigned char byte_t;
108
109typedef struct
110{
111  char *html;        /* HTML equivalent like umlaut auml => &auml; */
112  byte_t bytecode;   /* 8-Bit Code (ISO 8859-1,...) */
113  unicode_t unicode; /* Unicode in U+ convention */
114} iso_map_type;
115
116/* Information about the document encoding. */
117typedef struct
118{
119  encoding_code_type ec; /* document encoding type (see above enum) */
120  char *ecname;          /* encoding name like ISO-8859-1 */
121  iso_map_type *isotab;  /* address of ISO translation table */
122} encoding_type;
123
124/* Table with all the encoding codes that we recognize.  */
125extern encoding_type encoding_table[];
126
127
128/* The commands.  */
129extern void cm_documentlanguage (), cm_documentencoding ();
130
131/* Accents, other non-English characters.  */
132void cm_accent (), cm_special_char (), cm_dotless ();
133
134extern void cm_accent_umlaut (), cm_accent_acute (), cm_accent_cedilla (),
135  cm_accent_hat (), cm_accent_grave (), cm_accent_tilde ();
136
137#endif /* not LANG_H */
Note: See TracBrowser for help on using the repository browser.