Подробности

[В начало]

Проблема в реализации № 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

[В начало]