Подробности
[В начало]
Проблема в реализации № S0595
Краткое описание
Поведение функции FcStrCopyFilename противоречит документации
Подробное описание
В описании функции FcStrCopyFilename сказано: "Just like FcStrCopy except that it converts any leading '~' characters in s to the value of the HOME environment variable". В свою очередь документация функции FcStrCopy гласит:"Allocates memory, copies s and returns the resulting buffer". Но, если имя входного файла не является полным путем и не начинается с символа '~', то функция FcStrCopyFilename добавляет в начало возвращаемой строки текущую директорию.
Например, если текущая директория программы '/home/ssdk/Testing/FcStringUtils/', то при вызове с параметром '123' функция FcStrCopyFilename возвращает
строку '/home/ssdk/Testing/FcStringUtils/123', что противоречит ее описанию.
Раздел стандарта
Fontconfig Developers Reference, Version 2.4.2
Пример
FcChar8 *res; res = FcStrCopyFilename ((FcChar8 *)"asd"); printf ("FcStrCopyFilename(\"asd\") returns '%s'\n", res); /* * Documentation states: * Just like FcStrCopy except that it converts any leading '~' characters * in s to the value of the HOME environment variable * * So FcStrCopyFilename("asd") should return "asd" */
Способы устранения
Привести реализацию функции в соответствие с ее документацией или, наоборот, привести документацию в соответствие с реализацией.
Компонент
fontconfig 2.4.1 or later
Принято
freedesktop.org Bugzilla 12964
Статус
Исправлено в fontconfig 2.5.0
[В начало]