⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encoding.h

📁 one of the linux gd libraries
💻 H
字号:
/******************************************************************* encoding.h**** Copyright 1998 Clark Cooper** All rights reserved.**** This program is free software; you can redistribute it and/or** modify it under the same terms as Perl itself.*/#ifndef ENCODING_H#define ENCODING_H 1#define ENCMAP_MAGIC	0xfeebfacetypedef struct prefixmap {  unsigned char	min;  unsigned char len;			/* 0 => 256 */  unsigned short bmap_start;  unsigned char ispfx[32];  unsigned char ischar[32];} PrefixMap;typedef struct encinf{  unsigned short	prefixes_size;  unsigned short	bytemap_size;  int			firstmap[256];  PrefixMap		*prefixes;  unsigned short	*bytemap;} Encinfo;typedef struct encmaphdr{  unsigned int		magic;  char			name[40];  unsigned short	pfsize;  unsigned short	bmsize;  int			map[256];} Encmap_Header;/*================================================================** Structure of Encoding map binary encoding**** Note that all shorts and ints are in network order,** so when packing or unpacking with perl, use 'n' and 'N' respectively.** In C, use the htonl family of functions.**** The basic structure is:****	_______________________**	|Header (including map expat needs for 1st byte)**	|PrefixMap * pfsize**	|   This section isn't included for single-byte encodings.**	|   For multiple byte encodings, when a byte represents a prefix**	|   then it indexes into this vector instead of mapping to a**	|   Unicode character. The PrefixMap type is declared above. The**	|   ispfx and ischar fields are bitvectors indicating whether**	|   the byte being mapped is a prefix or character respectively.**	|   If neither is set, then the character is not mapped to Unicode.**	|**	|   The min field is the 1st byte mapped for this prefix; the**	|   len field is the number of bytes mapped; and bmap_start is**	|   the starting index of the map for this prefix in the overall**	|   map (next section).**	|unsigned short * bmsize**	|   This section also is omitted for single-byte encodings.**	|   Each short is either a Unicode scalar or an index into the**	|   PrefixMap vector.**** The header for these files is declared above as the Encmap_Header type.** The magic field is a magic number which should match the ENCMAP_MAGIC** macro above. The next 40 bytes stores IANA registered name for the** encoding. The pfsize field holds the number of PrefixMaps, which should** be zero for single byte encodings. The bmsize field holds the number of** shorts used for the overall map.**** The map field contains either the Unicode scalar encoded by the 1st byte** or -n where n is the number of bytes that such a 1st byte implies (Expat** requires that the number of bytes to encode a character is indicated by** the 1st byte) or -1 if the byte doesn't map to any Unicode character.**** If the encoding is a multiple byte encoding, then there will be PrefixMap** and character map sections. The 1st PrefixMap (index 0), covers a range** of bytes that includes all 1st byte prefixes.**** Look at convert_to_unicode in Expat.xs to see how this data structure** is used.*/#endif  /* ndef ENCODING_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -