external/cmapscompress/README.md
The format is designed to package some information from the CMap files located at external/cmap. Please notice for size optimization reasons, the original information blocks can be changed (split or joined) and items in the blocks can be swapped.
The data stored in binary format in network byte order (big-endian).
The following primitives used during encoding of the file:
The first byte is a header:
Then records follow. The records starts from the record header encoded as B, where bits 7-5 indicate record type (see description of other bits below):
The metadata record header bit 4-0 contain id of the metadata:
The records that have types 0 – 5, have the following fields in the header:
The amount of entries encoded as UN follows the header. The items records follow (see below).
Represents the following CMap block:
n begincodespacerange <start> <end> endcodespacerange
First record format is:
Next record format is:
Represents the following CMap block:
n beginnotdefrange <start> <end> code endnotdefrange
First record format is:
Next record format is:
Represents the following CMap block:
n begincidchar <char> code endcidchar
First record format is:
Next record format is:
Represents the following CMap block:
n begincidrange <start> <end> code endcidrange
First record format is:
Next record format is:
Represents the following CMap block:
n beginbfchar <char> <code> endbfchar
First record format is:
Next record format is:
Represents the following CMap block:
n beginbfrange <start> <end> <code> endbfrange
First record format is:
Next record format is: