1/*	$NetBSD$	*/
2
3/*
4 * DviChar.h
5 *
6 * descriptions for mapping dvi names to
7 * font indexes and back.  Dvi fonts are all
8 * 256 elements (actually only 256-32 are usable).
9 *
10 * The encoding names are taken from X -
11 * case insensitive, a dash separating the
12 * CharSetRegistry from the CharSetEncoding
13 */
14
15# define DVI_MAX_SYNONYMS	10
16# define DVI_MAP_SIZE		256
17# define DVI_HASH_SIZE		256
18
19typedef struct _dviCharNameHash {
20	struct _dviCharNameHash	*next;
21	const char		*name;
22	int			position;
23} DviCharNameHash;
24
25typedef struct _dviCharNameMap {
26    const char		*encoding;
27    int			special;
28    const char		*dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
29    DviCharNameHash	*buckets[DVI_HASH_SIZE];
30} DviCharNameMap;
31
32DviCharNameMap		*DviFindMap (char *);
33void			DviRegisterMap (DviCharNameMap *);
34#ifdef NOTDEF
35char			*DviCharName (DviCharNameMap *, int, int);
36#else
37#define DviCharName(map,index,synonym)	((map)->dvi_names[index][synonym])
38#endif
39int			DviCharIndex (DviCharNameMap *, const char *);
40