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)
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>. */
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.
33 aa
, ab
, af
, am
, ar
, as
, ay
, az
,
34 ba
, be
, bg
, bh
, bi
, bn
, bo
, br
,
37 el
, en
, eo
, es
, et
, eu
,
38 fa
, fi
, fj
, fo
, fr
, fy
,
40 ha
, he
, hi
, hr
, hu
, hy
,
41 ia
, id
, ie
, ik
, is
, it
, iu
,
43 ka
, kk
, kl
, km
, kn
, ko
, ks
, ku
, ky
,
45 mg
, mi
, mk
, ml
, mn
, mo
, mr
, ms
, mt
, my
,
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
,
62 /* The current language code. */
63 extern language_code_type language_code
;
66 /* Information for each language. */
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 */
74 extern language_type language_table
[];
78 /* The document encoding. This is useful to produce true 8-bit
79 characters according to the @documentencoding. */
86 ISO_8859_3
, /* this and none of the rest are supported. */
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
;
115 char *html
; /* HTML equivalent like umlaut auml => ä */
116 byte_t bytecode
; /* 8-Bit Code (ISO 8859-1,...) */
117 unicode_t unicode
; /* Unicode in U+ convention */
120 /* Information about the document encoding. */
123 encoding_code_type ec
; /* document encoding type (see above enum) */
124 char *encname
; /* encoding name like "iso-8859-1", valid in
126 iso_map_type
*isotab
; /* address of ISO translation table */
129 /* Table with all the encoding codes that we recognize. */
130 extern encoding_type encoding_table
[];
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 */