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