Подробности

[В начало]

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

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

FcConfigSetCurrent не делает текущую конфигурацию шрифтов конфигурацией по умолчанию

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

В описании функции FcConfigSetCurrent сказано: "Sets the current default configuration to config". Но после изменения конфигурации шрифтов она не делает её конфигурацией по умолчанию.

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

Fontconfig Developers Reference, Version 2.4.2

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

  1. Получаем текущую конфигурацию шрифтов (FcConfigGetCurrent).
  2. Меняем в этой конфигурации один из параметров - интервал сканирования (с помощью FcConfigGetRescanInverval и FcConfigSetRescanInverval)
  3. Пытаемся сделать текущей данную конфигурацию с измененным интервалом сканирования (с помощью FcConfigSetCurrent).
  4. Снова получаем текущию конфигурацию шрифтов (FcConfigGetCurrent).
  5. Вызываем FcConfigGetRescanInverval.
FcConfigGetRescanInverval возвращает неправильное значение. Т.е. не то значение, что мы установили на шаге 2.

Пример

    FcConfig        *fc;
    int             fc_ri_old, fc_ri_new;
    
    if (!(fc = FcConfigGetCurrent ()))
    {
        printf ("Could not get current config\n");
    }
    fc_ri_old = FcConfigGetRescanInverval (fc);
    FcConfigSetRescanInverval (fc, fc_ri_old + 10);

    if (!FcConfigSetCurrent (fc))
    {
        printf ("FcConfigSetCurrent failed\n");
    }
    if (!(fc = FcConfigGetCurrent ()))
    {
        printf ("Could not get current config\n");
    }
    fc_ri_new = FcConfigGetRescanInverval (fc);
    printf ("Rescan interval from the new current config "
            "is %d, (should be %d).\n", fc_ri_new, fc_ri_old + 10);

    /*
     *    fc_ri_new should be equal to fc_ri_old + 10
     */

Компонент

fontconfig 2.4.1 or later

Окружение

Архитектуры

x86_64

Принято

freedesktop.org Bugzilla 12992

[В начало]