Sync usage with man page.
[netbsd-mini2440.git] / gnu / dist / texinfo / makeinfo / lang.h
blob8e0bc35a927f2c27f87cbc4d50c080c798856812
1 /* $NetBSD$ */
3 /* lang.h -- declarations for language codes etc.
4 Id: lang.h,v 1.6 2004/04/11 17:56:47 karl Exp
6 Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
11 any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 Originally written by Karl Heinz Marbaise <kama@hippo.fido.de>. */
24 #ifndef LANG_H
25 #define LANG_H
27 /* The language code which can be changed through @documentlanguage
28 * Actually we don't currently support this (may be in the future) ;-)
29 * These code are the ISO-639 two letter codes.
31 typedef enum
33 aa, ab, af, am, ar, as, ay, az,
34 ba, be, bg, bh, bi, bn, bo, br,
35 ca, co, cs, cy,
36 da, de, dz,
37 el, en, eo, es, et, eu,
38 fa, fi, fj, fo, fr, fy,
39 ga, gd, gl, gn, gu,
40 ha, he, hi, hr, hu, hy,
41 ia, id, ie, ik, is, it, iu,
42 ja, jw,
43 ka, kk, kl, km, kn, ko, ks, ku, ky,
44 la, ln, lo, lt, lv,
45 mg, mi, mk, ml, mn, mo, mr, ms, mt, my,
46 na, ne, nl, no,
47 oc, om, or,
48 pa, pl, ps, pt,
49 qu,
50 rm, rn, ro, ru, rw,
51 sa, sd, sg, sh, si, sk, sl, sm, sn, so, sq, sr, ss, st, su, sv, sw,
52 ta, te, tg, th, ti, tk, tl, tn, to, tr, ts, tt, tw,
53 ug, uk, ur, uz,
54 vi, vo,
55 wo,
56 xh,
57 yi, yo,
58 za, zh, zu,
59 last_language_code
60 } language_code_type;
62 /* The current language code. */
63 extern language_code_type language_code;
66 /* Information for each language. */
67 typedef struct
69 language_code_type lc; /* language code as enum type */
70 char *abbrev; /* two letter language code */
71 char *desc; /* full name for language code */
72 } language_type;
74 extern language_type language_table[];
78 /* The document encoding. This is useful to produce true 8-bit
79 characters according to the @documentencoding. */
81 typedef enum {
82 no_encoding,
83 US_ASCII,
84 ISO_8859_1,
85 ISO_8859_2,
86 ISO_8859_3, /* this and none of the rest are supported. */
87 ISO_8859_4,
88 ISO_8859_5,
89 ISO_8859_6,
90 ISO_8859_7,
91 ISO_8859_8,
92 ISO_8859_9,
93 ISO_8859_10,
94 ISO_8859_11,
95 ISO_8859_12,
96 ISO_8859_13,
97 ISO_8859_14,
98 ISO_8859_15,
99 last_encoding_code
100 } encoding_code_type;
102 /* The current document encoding, or null if not set. */
103 extern encoding_code_type document_encoding_code;
105 /* If an encoding is not supported, just keep it as a string. */
106 extern char *unknown_encoding;
108 /* Maps an HTML abbreviation to ISO and Unicode codes for a given code. */
110 typedef unsigned short int unicode_t; /* should be 16 bits */
111 typedef unsigned char byte_t;
113 typedef struct
115 char *html; /* HTML equivalent like umlaut auml => &auml; */
116 byte_t bytecode; /* 8-Bit Code (ISO 8859-1,...) */
117 unicode_t unicode; /* Unicode in U+ convention */
118 } iso_map_type;
120 /* Information about the document encoding. */
121 typedef struct
123 encoding_code_type ec; /* document encoding type (see above enum) */
124 char *encname; /* encoding name like "iso-8859-1", valid in
125 HTML and Emacs */
126 iso_map_type *isotab; /* address of ISO translation table */
127 } encoding_type;
129 /* Table with all the encoding codes that we recognize. */
130 extern encoding_type encoding_table[];
133 /* The commands. */
134 extern void cm_documentlanguage (void),
135 cm_documentencoding (void);
137 /* Accents, other non-English characters. */
138 void cm_accent (int arg), cm_special_char (int arg),
139 cm_dotless (int arg, int start, int end);
141 extern void cm_accent_umlaut (int arg, int start, int end),
142 cm_accent_acute (int arg, int start, int end),
143 cm_accent_cedilla (int arg, int start, int end),
144 cm_accent_hat (int arg, int start, int end),
145 cm_accent_grave (int arg, int start, int end),
146 cm_accent_tilde (int arg, int start, int end);
148 extern char *current_document_encoding (void);
150 #endif /* not LANG_H */