Подробности

[В начало]

Проблема в реализации № V0017

Краткое описание

FT_Get_Name_Index возвращает 0 вместо индекса глифа

Подробное описание

Согласно FreeType2 API reference, функция FT_Get_Name_Index возвращает индекс глифа с данным именем, 0 при этом означает, что код соответствующего символа не определён.

Однако функция FT_Get_Name_Index возвращает 0 для существующих глифов "asterisk", "space", "zero" и т.д. для некоторых TrueType/OpenType шрифтов (см. прикреплённый пример)

Раздел стандарта

Linux Standard Base Desktop Specification 3.2, Chapter 12. Libraries, 12.1 Interfaces for libfreetype, который ссылается на FreeType-2.1.10 API Reference, section "Base Interface"

Способ воспроизведения

  1. Распакуйте прикреплённый архив
  2. Скомпилируйте и скомпонуйте программу-пример, которая в нём хранится
  3. Запустите программу-пример, указав в командной строке в качестве аргументов имя файла шрифта, имя глифа и правильный индекс этого глифа в данном шрифте:
    ./basic_glyph MuktiNarrow.ttf zero 19
    ./basic_glyph MuktiNarrow.ttf asterisk 13
    ./basic_glyph FreeMono.ttf asterisk 13
    ./basic_glyph FreeMono.ttf space 3
    Правильный индекс глифа можно узнать с помощью какой-либо программы для редактирования шрифтов, например, FontForge.

Компонент

freetype 2.1.10 or later

Принято

freetype-devel mailing list, #42, 2009.01

Статус

Исправлено в freetype 2.3.9

[В начало]