| Сервер поддерживается Центром Информационных Технологий (095) 932-9212, 932-9213, 939-0783 E-mail: info@citforum.ru

Сервер содержит море(!) аналитической информации | CIT Forum CD-ROM

### 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 сохранились бы.

Comments: info@citmgu.ru Designed by Andrey Novikov Copyright © CIT