1151497Sru/*
2151497Sru * DviChar.h
3151497Sru *
4151497Sru * descriptions for mapping dvi names to
5151497Sru * font indexes and back.  Dvi fonts are all
6151497Sru * 256 elements (actually only 256-32 are usable).
7151497Sru *
8151497Sru * The encoding names are taken from X -
9151497Sru * case insensitive, a dash separating the
10151497Sru * CharSetRegistry from the CharSetEncoding
11151497Sru */
12151497Sru
13151497Sru# define DVI_MAX_SYNONYMS	10
14151497Sru# define DVI_MAP_SIZE		256
15151497Sru# define DVI_HASH_SIZE		256
16151497Sru
17151497Srutypedef struct _dviCharNameHash {
18151497Sru	struct _dviCharNameHash	*next;
19151497Sru	const char		*name;
20151497Sru	int			position;
21151497Sru} DviCharNameHash;
22151497Sru
23151497Srutypedef struct _dviCharNameMap {
24151497Sru    const char		*encoding;
25151497Sru    int			special;
26151497Sru    const char		*dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS];
27151497Sru    DviCharNameHash	*buckets[DVI_HASH_SIZE];
28151497Sru} DviCharNameMap;
29151497Sru
30151497SruDviCharNameMap		*DviFindMap (char *);
31151497Sruvoid			DviRegisterMap (DviCharNameMap *);
32151497Sru#ifdef NOTDEF
33151497Sruchar			*DviCharName (DviCharNameMap *, int, int);
34151497Sru#else
35151497Sru#define DviCharName(map,index,synonym)	((map)->dvi_names[index][synonym])
36151497Sru#endif
37151497Sruint			DviCharIndex (DviCharNameMap *, const char *);
38