TIC(1M)
НАЗВАНИЕ
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
сохранились бы.