TIC(1M) TIC(1М) НАЗВАНИЕ tic - компилятор для базы данных terminfo СИНТАКСИС |tic [-v[число]] [-c] файл ОПИСАНИЕ Утилита tic транслирует файл terminfo(4) из исходного формата в скомпилированный. Результат помещается в со- ответствующий подкаталог каталога /usr/lib/terminfo. Скомпилированный формат необходим для использования подпрограммами библиотеки curses(3X). Смысл аргументов утилиты tic: -v[число] Выдавать в стандартный протокол сообщения о про- цессе компиляции. Необязательный аргумент число должен лежать в пределах от 1 до 10 включительно. Чем больше число, тем детальнее выдаваемая инфор- мация. Подразумеваемое значение числа равно 1. -c Только проверить файл на наличие ошибок. При этом ошибки в полях use= не контролируются. файл Содержит одно или более описаний терминалов в ис- ходном формате [см. terminfo(4)]. Каждое описание задает характеристики конкретного терминала. Если при компиляции встречается поле use=терминал, то утилита tic дополняет описание, используя двоичный файл из каталога /usr/lib/terminfo (если терминал описан в файле, то используется описание из файла; если установлена переменная окружения TERMINFO, то ее значение используется вместо /usr/lib/ terminfo). Утилита tic при этом дублирует все ха- рактеристики терминала в генерируемом описании, кроме тех, которые явно заданы в исходном описа- нии. Если установлена переменная окружения TERMINFO, то ее значение используется вместо /usr/lib/terminfo для п мещения результатов компиляции. ПРЕДОСТЕРЕЖЕНИЯ Общий размер скомпилированного описания не должен пре- вышать 4096 байт. Поле имени не должно превышать 128 байт. Имена терминалов, состоящие более чем из 14 символов, будут обрезаны до 14 символов, при этом будет выдано предупреждение. Если используется опция -c, одинаковые имена терминалов не диагностируются, однако без опции -c диагностика вы- дается. ДИАГНОСТИКА Большинству диагностических сообщений предшествует при- мерный номер строки, к которой относится сообщение и имя терминала, описание которого обрабатывалось. mkdir ... returns bad status Указанный каталог не может быть создан. File does not start with terminal names in column one Первым элементом файла, после комментариев, должен быть список имен терминалов. Token after seek(2) not NAMES Видимо, компилируемый файл изменился во время ком- пиляции. Not enough memory for use_list element или Out of memory Программе не хватает доступной памяти [malloc(3C) завершился неудачей]. Can't open ... Указанный файл не может быть создан. Error in writing ... В указанный файл нельзя писать. Can't link ... to ... Неудача при выполнении системного вызова link(2). Error in re-reading compiled file ... Скомпилированный файл не может быть повторно счи- тан. Premature EOF Описание кончилось, хотя компилятор ожидал продол- жения. Backspaced off beginning of line Эта ошибка означает, что с компилятором что-то не в порядке. Unknown Capability - "..." Обнаружена указанная неизвестная характеристика. Wrong type used for capability Например, булевой характеристике задается числовое значение. Unknown token type За именем поля должен следовать один из символов: @ для отмены, , для булева поля, # для числового, = для поля, содержащего цепочку символов. "..." : bad term name или Line ...: Illegal terminal name - "..." Указанное имя некорректно. Имена не должны вклю- чать пробелы и символы / и должны начинаться с буквы или цифры. "..." : terminal name too long Обнаружено слишком длинное имя терминала. "..." : terminal name too short Обнаружено односимвольное имя терминала. "..." : filename too long, truncating to "..." Указанное имя файла обрезано до 14 символов из-за ограничений системы UNIX на длину имен файлов. "..." defined in more than one entry. Entry being used is "..." Повторное описание характеристик. Terminal name "..." synonym for itself Имя указано дважды в списке синонимов. At least one synonym must begin with a letter Хотя бы одно имя терминала должно начинаться с буквы. Illegal character - "..." Обнаружен некорректный символ. Newline in middle of terminal name Список имен терминалов не завершается запятой. Missing comma Пропущена запятая. Missing numeric value После числовой характеристики не указано значение. NULL string value Чтобы сказать, что характеристика, описываемая це- почкой символов, отсутствует, надо отменить ее. Very long string found. Missing comma? Обнаружена очень длинная цепочка символов. Unknown option. Usage is: ... Неизвестная опция. Too many file names. Usage is: В командной строке можно указать только одно имя файла. "..." non-existant or permission denied В указанный каталог нельзя писать. "..." is not a directory Указанный файл не является каталогом. "..." permission denied Нет прав доступа. "...": Not a directory Утилита tic хочет использовать указанное имя, как имя каталога, но уже существует файл с таким им нем. SYSTEM ERROR!! Fork failed!!! Системный вызов fork(2) закончился неудачей. Error in following up use-links. Either there is a loop in the links or they reference non-existant terminals. The following is a list of entries involved: Либо в описании использован use=терминал, а терми- нал не существует, либо терминал каким-либо обра- зом ссылается на данное описание. ФАЙЛЫ /usr/lib/terminfo/?/* Скомпилированная база данных опи- саний терминалов. СМ.ТАКЖЕ curses(3X), term(4), terminfo(4) в Справочнике програм- миста. СЮРПРИЗЫ Чтобы существующие выполняемые файлы из старых версий системы UNIX могли использовать базу данных terminfo, порождаемую новым компилятором, отмененные характерис тики не помечаются как отмененные в скомпилированном формате, если в имя терминала не входит символ +. Такие имена терминалов используются только для включения в другие описания с помощью use=. Они не должны использо- ваться для реальных терминалов. Пример: |4415+nl, kf1@, kf2@, ... |4415+base, kf1=\EOc, kf2=\EOd, ... |4415-nl|4415 terminal without keys | use=4415+nl,use=4415+base, Этот пример работает так, как и ожидается, определения для клавиш в описании терминала 4415-nl отсутствуют. Однако, если бы в имени терминала 4415+nl отсутствовал +, то отмена клавиш не занеслась бы в скомпилированный файл и определения клавиш в описании терминала 4415-nl сохранились бы.