Подробности
[В начало]
Проблема в реализации № 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
[В начало]