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