Provided by: libcaca-dev_0.99.beta19-2ubuntu0.18.04.3_amd64 bug

NAME

       libcaca-fontThe libcaca font format (version 1)
        - All types are big endian.

       struct
       {
       magic:
          uint8_t caca_header[2];    // ""
          uint8_t caca_file_type[2]; // "FT"

       font_header:
          uint32_t control_size;     // Control size (font_data - font_header)
          uint32_t data_size;        // Data size (EOF - font_data)

          uint16_t version;          // Font format version
                                     //  bit 0: set to 1 if font is compatible
                                     //         with version 1 of the format
                                     //  bits 1-15: unused yet, must be 0

          uint16_t blocks;           // Number of blocks in the font
          uint32_t glyphs;           // Total number of glyphs in the font

          uint16_t bpp;              // Bits per pixel for glyph data (valid
                                     // Values are 1, 2, 4 and 8)
          uint16_t width;            // Standard glyph width
          uint16_t height;           // Standard glyph height
          uint16_t maxwidth;         // Maximum glyph width
          uint16_t maxheight;        // Maximum glyph height

          uint16_t flags;            // Feature flags
                                     //  bit 0: set to 1 if font is fixed width
                                     //  bits 1-15: unused yet, must be 0

       block_info:
          struct
          {
             uint32_t start;         // Unicode index of the first glyph
             uint32_t stop;          // Unicode index of the last glyph + 1
             uint32_t index;         // Glyph info index of the first glyph
          }
          block_list[blocks];

       glyph_info:
          struct
          {
             uint16_t width;         // Glyph width in pixels
             uint16_t height;        // Glyph height in pixels
             uint32_t data_offset;   // Offset (starting from data) to the data
                                     // for the first character
          }
          glyph_list[glyphs];

       control_extension_1:
       control_extension_2:
          ...
       control_extension_N:
          ...                        // reserved for future use

       font_data:
          uint8_t data[data_size];   // glyph data

       data_extension_1:
       data_extension_2:
          ...
       data_extension_N:
          ...                        // reserved for future use
       };