font_test_data/
cmap.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//! cmap test data for scenarios not readily produced with ttx

use read_fonts::{be_buffer, be_buffer_add, test_helpers::BeBuffer};

/// Contains two codepoint ranges, both [6, 64]. Surely you don't duplicate them?
pub fn repetitive_cmap4() -> BeBuffer {
    // <https://learn.microsoft.com/en-us/typography/opentype/spec/cmap#format-4-segment-mapping-to-delta-values>
    be_buffer! {
      4_u16,                      // uint16	format
      0_u16,                      // uint16	length, unused
      0_u16,                      // uint16	language, unused
      4_u16,                      // uint16	segCountX2, 2 * 2 segments
      0_u16,                      // uint16	searchRange, unused
      0_u16,                      // uint16	entrySelector, unused
      0_u16,                      // uint16	rangeShift, unused
      // segCount endCode entries
      64_u16,                    // uint16	endCode[0]
      64_u16,                    // uint16	endCode[1]

      0_u16,                      // uint16	reservedPad, unused

      // segCount startCode entries
      6_u16,                      // uint16	startCode[0]
      6_u16,                      // uint16	startCode[1]

      // segCount idDelta entries
      0_u16,                      // uint16	idDelta[0]
      0_u16,                      // uint16	idDelta[1]

      // segCount idRangeOffset entries
      0_u16,                      // uint16	idRangeOffset[0]
      0_u16                       // uint16	idRangeOffset[1]

      // no glyphIdArray entries
    }
}