Debian Buster :Графический интерфейс трекера (трекер -игла )отсутствует

Стандарт POSIX указывает, что ответ должен быть «утвердительным» для выполнения копирования, когда действует -i.

Для GNU cp, фактический ввод в этот момент обрабатывается функцией с именем yesno(). Эта функция определена в файлеlib/yesno.cисходного дистрибутива gnulib и выглядит так:

bool
yesno (void)
{
  bool yes;

#if ENABLE_NLS
  char *response = NULL;
  size_t response_size = 0;
  ssize_t response_len = getline (&response, &response_size, stdin);

  if (response_len <= 0)
    yes = false;
  else
    {
      /* Remove EOL if present as that's not part of the matched response,
         and not matched by $ for example.  */
      if (response[response_len - 1] == '\n')
        response[response_len - 1] = '\0';
      yes = (0 < rpmatch (response));
    }

  free (response);
#else
  /* Test against "^[yY]", hardcoded to avoid requiring getline,
     regex, and rpmatch.  */
  int c = getchar ();
  yes = (c == 'y' || c == 'Y');
  while (c != '\n' && c != EOF)
    c = getchar ();
#endif

  return yes;
}

Если NLS («Поддержка национальных языков» )используется , а не , можно увидеть, что единственный ответ, для которого функция возвращает true , — это ответ, который начинается с символом Yверхнего или нижнего регистра. Любой дополнительный или другой ввод отбрасывается.

Если используется NLS , вызывается функция rpmatch(), чтобы определить, был ли ответ утвердительным или нет. Назначение rpmatch()библиотечной функции NLS состоит в том, чтобы определить, является ли данная строка утвердительной или нет (с поддержкой интернационализации ).

В системах BSD соответствующая функция находится вsrc/bin/cp/utils.c:

/*
 * If the file exists and we're interactive, verify with the user.
 */
int
copy_overwrite(void)
{
        int ch, checkch;

        if (iflag) {
                (void)fprintf(stderr, "overwrite %s? ", to.p_path);
                checkch = ch = getchar();
                while (ch != '\n' && ch != EOF)
                        ch = getchar();
                if (checkch != 'y' && checkch != 'Y')
                        return (0);
        }
        return 1;
}

По сути, это то же самое, что и путь кода без -NLS в коде GNU.

1
28.07.2019, 19:06
1 ответ

Трекер больше не имеет собственного интерфейса поиска; вместо этого приложения GNOME, такие как «Документы» и «Музыка», будут использовать его индексы для своих функций поиска. Вы также можете искать содержимое файла в GNOME Shell :, откройте представление «Действия» и введите поисковый запрос.

Подробнее см. в документации по трекеру .

1
27.01.2020, 23:41

Теги

Похожие вопросы