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