Подробности

[В начало]

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

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

Поведение функции FcStrSetAddFilename противоречит документации

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

В описании функции FcStrSetAddFilename сказано: "Adds a copy s to set, The copy is created with FcStrCopyFilename so that leading '~' values are replaced with the value of the HOME environment variable". Так как в случае, когда имя входного файла не является полным путем и не начинается с символа '~', функция FcStrCopyFilename добавляет в начало возвращаемой строки текущую директорию, то и функция FcStrSetAddFilename в этом случае добавляет в множество не ту строку, которая туда должна быть добавлена согласно документации.

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

Fontconfig Developers Reference, Version 2.4.2

Пример

        #define FILENAME        "asd"
	FcStrSet 		*ss;
	FcBool 			b;

	if (!(ss = FcStrSetCreate ()))
	{
		printf ("Could not create StrSet\n");
	}
        printf ("Adding the filename: '%s'\n", FILENAME);
        FcStrSetAddFilename (ss, (FcChar8 *)FILENAME);
    
        b = FcStrSetMember (ss, (FcChar8 *)FILENAME);
        if (b != FcTrue)
        {
            printf ("The string '%s' was not found in the set.\n", FILENAME);
        }
    

Компонент

fontconfig 2.4.1 or later

Принято

freedesktop.org Bugzilla 12965

Статус

Исправлено в fontconfig 2.5.0

[В начало]