mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

TERM(4)                                                 TERM(4)

НАЗВАНИЕ 
	term - формат скомпилированного файла описаний термина-
	лов

СИНТАКСИС 
	/usr/lib/terminfo/?/*

ОПИСАНИЕ 
	Скомпилированные  terminfo(4) описания помещаются в ка-
	талог /usr/lib/terminfo. Чтобы предотвратить последова-
	тельный поиск в огромном каталоге, используется  двуху-
	ровневая  схема: /usr/lib/terminfo/с/имя, где имя - это
	имя терминала, а с - первый символ имени. Так,  скомпи-
	лированное описание терминала att4425 находится в файле
	/usr/lib/terminfo/a/att4425. Синонимы реализуются с по-
	мощью ссылок на один и тот же скомпилированный файл.

	Формат  скомпилированных файлов выбран так, чтобы он не
	зависел от оборудования. Считается, что байт содержит 8
	бит, но не делается  никаких  предположений  о  порядке
	байт  или  размножении  знака.  Таким образом, двоичные
	файлы terminfo(4) могут быть перенесены на любое обору-
	дование, в котором байт содержит 8 бит.

	Короткие  целые  числа записываются в двух восьмибитных
	байтах. Первый байт содержит наименее  значимые  8  бит
	значения,  второй  содержит наиболее значимые 8 бит (то
	есть значение равно 256*второй_байт+первый_байт).  Зна-
	чение -1 представляется в виде 0377,0377, значение -2 -
	в  виде  0376,0377, остальные отрицательные числа недо-
	пустимы. На компьютерах, на которых эти  соглашения  не
	соответствуют  оборудованию,  необходимо  читать  целые
	числа как 2 байта, а затем вычислять значение,  обеспе-
	чивая таким образом переносимость скомпилированных фай-
	лов  на  разные  типы компьютеров. Значение, равное -1,
	обычно означает, что указанная характеристика у  терми-
	нала  отсутствует.  Значение,  равное -2, означает, что
	характеристика отменена в исходном описании terminfo(4)
	и считается отсутствующей.

	Скомпилированный файл создается из исходных файлов опи-
	саний терминалов [см опцию -I в infocmp(1M)] с  помощью
	компилятора  tic(1M). Чтение этого файла производится с
	помощью процедуры setupterm [см. curses(3X)].

	Скомпилированный  файл  делится на 6 секций: заголовок,
	имена терминалов, флаги, числа, цепочки символов,  таб-
	лица цепочек.

	Секция  заголовок находится в начале файла. В этой сек-
	ции содержатся 6 коротких целых чисел:

	1.   Магическое число (восьмеричное 0432).

	2.   Размер (в байтах) секции имен.

	3.   Размер (в байтах) секции флагов.

	4.   Количество коротких целых в секции чисел.

	5.   Количество  коротких целых (смещений) в секции це-
	     почек символов.

	6.   Размер (в байтах) таблицы цепочек.

	Следующей идет секция имен терминалов. В ней содержится
	первая строка из описания terminfo(4), в которой  пере-
	числяются  различные имена данного терминала, разделен-
	ные символами | [см. term(5)]. Эта  секция  завершается
	нулевым байтом.

	В секции флагов под каждый флаг  отводится  один  байт.
	Этот  байт  равен  0 или 1, в зависимости от того, при-
	сутствует соответствующая характеристика или отсутству-
	ет. Значение 2 означает, что  соответствующая  характе-
	ристика отменена. Характеристики перечисляются в том же
	порядке, что и во включаемом файле .

	Между секцией флагов и секцией чисел при  необходимости
	вставляется  нулевой  байт, обеспечивающий выравнивание
	начала секции чисел по границе полуслова. Все  короткие
	целые выравниваются по границе полуслова.

	Секция  чисел  похожа на секцию флагов. Описание каждой
	характеристики занимает 2 байта и представляется корот-
	ким целым числом. Значения -1 и -2 означают, что харак-
	теристика отсутствует.

	Секция цепочек устроена аналогично. Описание каждой ха-
	рактеристики занимает 2 байта и представляется коротким
	целым числом. Значения -1 и -2 означают,  что  характе-
	ристика отсутствует. В противном случае значение предс-
	тавляет  собой смещение цепочки от начала таблицы цепо-
	чек. Специальные символы типа ^X или \c записываются во
	внутреннем виде, а не в виде  пары  печатных  символов.
	Информация  о  заполнителях ($) и о параметрах (%x)
	записывается в текстовом виде, без интерпретации.

	Последней секцией является таблица цепочек. Она  содер-
	жит  все  цепочки  символов,  на которые есть ссылки из
	секции цепочек. Каждая цепочка завершается нулевым бай-
	том.

	Отметим, что процедура setupterm может быть  рассчитана
	на другой набор характеристик, чем тот, который реально
	присутствует в файле. База данных может измениться пос-
	ле  компиляции  setupterm,  из-за чего в ней могут поя-
	виться нераспознаваемые  характеристики  или  наоборот,
	setupterm  может распознавать больше характеристик, чем
	реально  описано  в  базе  данных.  Для   того,   чтобы
	setupterm  могла  работать во всех случаях, в заголовок
	включены размеры других  секций.  Новые  характеристики
	должны добавляться после уже существующих.

	В качестве примера ниже  приводится  восьмеричный  дамп
	описания терминала Data General Dasher D200:

 d200|d100|data general dasher 200,                                  
         am, bw,                                                     
         cols#80, lines#24,                                          
         bel=^G, clear=\f, cr=\r, cub1=^Y, cud1=^Z, cuf1=^X,         
         cup=^P%p2%c%p1%c, cuu1=^W, el=^K, home=\b, ind=\n,          
         kcub1=^Y, kcud1=^Z, kcuf1=^X, kcuu1=^W, kf0=^^z,            
         kf1=^^q, kf2=^^r, kf3=^^s, kf4=^^t, kf5=^^u, kf6=^^v,       
         kf7=^^w, kf8=^^x, kf9=^^y, khome=\b, lf0=f10, nel=\n,       
         rmso=^^E, rmul=^U, smso=^^D, smul=^T,                       

 0000 032 001   "  \0 033  \0  \r  \0   ) 001   z  \0   d   2   0   0
 0020   |   d   1   0   0   |   d   a   t   a       g   e   n   e   r
 0040   a   l       d   a   s   h   e   r       2   0   0  \0 001 001
 0060  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0
 0100  \0  \0  \0  \0  \0  \0  \0  \0  \0  \0   P  \0 377 377 030  \0
 0120 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 0140 377 377 377 377 377 377   "  \0   &  \0 377 377 377 377   $  \0
 0160   <  \0 377 377 377 377 377 377   .  \0   *  \0   >  \0 377 377
 0200   (  \0 377 377 377 377   ,  \0 377 377   :  \0 377 377 377 377
 0220 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 0240 377 377 377 377 377 377 377 377 377 377   u  \0   x  \0 377 377
 0260 377 377 377 377 377 377 377 377 377 377   p  \0   s  \0 377 377
 0300 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 0320 377 377 377 377 377 377 377 377 377 377 377 377 377 377   D  \0
 0340 377 377 377 377 377 377   J  \0   M  \0 377 377   P  \0   S  \0
 0360   V  \0   Y  \0   \  \0   _  \0   b  \0   e  \0   h  \0 377 377
 0400 377 377   B  \0 377 377 377 377 377 377   F  \0 377 377 377 377
 0420 377 377   H  \0 377 377 377 377   j  \0 377 377 377 377 377 377
 0440 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 0460 377 377   n  \0 377 377 377 377 377 377 377 377 377 377 377 377
 0500 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 *                                                                   
 0540 377 377 377 377 377 377   @  \0 377 377 377 377 377 377 377 377
 0560 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
 *                                                                   
 1260 377 377 377 377 377 377   d   2   0   0   |   d   1   0   0   |
 1300   d   a   t   a       g   e   n   e   r   a   l       d   a   s
 1320   h   e   r       2   0   0  \0 007  \0  \f  \0  \r  \0 031  \0
 1340 032  \0 030  \0 020   %   p   2   %   c   %   p   1   %   c  \0
 1360 027  \0 013  \0  \b  \0  \n  \0 031  \0 032  \0 030  \0 027  \0
 1400 036   z  \0 036   q  \0 036   r  \0 036   s  \0 036   t  \0 036
 1420   u  \0 036   v  \0 036   w  \0 036   x  \0 036   y  \0  \b  \0
 1440   f   1   0  \0  \n  \0 036   E  \0 025  \0 036   D  \0 024  \0
 1460                                                                

ФАЙЛЫ 
	/usr/lib/terminfo/?/* Скомпилированная база данных опи-
			      саний терминалов.
	/usr/unclude/term.h   Включаемый   файл   описаний  для
			      terminfo(4).

СМ. ТАКЖЕ 
	curses(3X), terminfo(4), term(5).
	infocmp(1M) в Справочнике администратора.

ОГРАНИЧЕНИЯ 
	Общий  размер скомпилированного описания каждого терми-
	нала не должен превышать 4096 байт; размер секции  имен
	терминалов не должен превышать 128 байт.



TERM(5)                                                 TERM(5)

НАЗВАНИЕ 
	term - соглашения об именах терминалов

ОПИСАНИЕ 
	Имена  из этого файла используются некоторыми командами
	[например, man(1), tabs(1), tput(1), vi(1), curses(3X)]
	и  рассматриваются,  в  качестве  значения   переменной
	$TERM,   как   часть   окружения  shell'а  [см.  sh(1),
	profile(4), environ(5)].

	Исходные файлы terminfo(4) содержат элементы, состоящие
	из полей, разделенных запятыми. [Чтобы получить  исход-
	ное   описание   терминала,   используйте  опцию  -I  в
	infocmp(1M).] Пробелы и табуляции после запятых игнори-
	руются. В первой строке каждого  описания  терминала  в
	базе  данных  terminfo(4)  задаются  имена,  по которым
	terminfo(4) распознает терминал. Имена разделяются сим-
	волами |. Первое имя задает наиболее часто используемое
	сокращение  для терминала [это имя и нужно использовать
	как значение  переменной  TERM  в  $HOME/.profile,  см.
	profile(4)], последнее имя - длинное, полностью опреде-
	ляющее терминал, все остальные имена являются синонима-
	ми первого.

	Имена терминалов (кроме последнего) должны выбираться в
	соответствии  со  следующими  соглашениями.  Необходимо
	выбрать  некоторое базовое имя, определяющее терминаль-
	ное оборудование, например, для терминала AT&T 4425 та-
	ким именем может быть att4425. Длина базового имени  не
	более  восьми  символов, в него могут входить малые ла-
	тинские буквы и цифры. При выборе имени терминала целе-
	сообразно опираться на название фирмы-производителя,  а
	не поставщика. Терминалы одного и того же производителя
	не должны иметь различных базовых имен. Модели одного и
	того же терминала, различные режимы,  в  которых  может
	функционировать оборудование, или режимы, которые пред-
	почитают пользователи, обозначаются суффиксами, начина-
	ющимися  с  символа -. Так, терминал AT&T 4425 в режиме
	132 колонок обозначится  как  att4425-w.  Рекомендуется
	использовать следующие суффиксы:

        Суффикс  Значение                              Примеры
        -w       Расширенный режим (более 80 колонок)  att4425-w
        -am      С автоматическими границами (этот     vt100-am
                 суффикс обычно используется по умолчанию) 
        -nam     Без автоматических границ             vt100-nam
        -число   Количество строк на экране            aaa-60
        -na      Нет клавиш управления курсором        c100-na
        -числоp  Количество страниц памяти             c100-4p
        -rv      Инвертированное изображение           att4415-rv

	Чтобы предотвратить конфликты имен при описании различ-
	ных  режимов (например, -w), не рекомендуется в базовых
	именах использовать дефис. Очень хорошо, если все имена
	терминалов, которые занесены в базу данных terminfo(4),
	являются уникальными. Описатели терминалов, которые ис-
	пользуются  только  для  включения в другие описатели с
	помощью use=, должны содержать в своем имени +,  напри-
	мер 4415+nl.

	Ниже  перечислены  некоторые  имена  терминалов; полный
	список можно получить с помощью команды

	     ls  -C /usr/lib/terminfo/?

	1520         Datamedia 1520
	155          Motorola EXORterm 155
	1620         Diablo 1620 и другие, использующие принтер
		     HyType II
	1620-12      То же, в режиме 12 точек
	165          Motorola EXORset 165
	2621         Серия Hewlett-Packard HP2621
	2631         Принтер Hewlett-Packard 2631
	2631-c       Принтер Hewlett-Packard 2631 - уплотненный
		     режим
	2631-e       Принтер Hewlett-Packard 2631 - расширенный
		     режим
	2640,hp2640  Серия Hewlett-Packard HP2640
	2645,hp2645  Серия Hewlett-Packard HP264n (но не 2640)
	3270         Модель IBM 3270
	300          DASI/DTC/GSI 300  и  другие,  использующие
		     принтер HyType I
	300-12       То же, в режиме 12 точек
	300s         DASI/DTC/GSI 300s
	382          DTC 382
	300s-12      То же, в режиме 12 точек
	3045         Datamedia 3045
	33,tty33     AT&T-терминал, модель 33 KSR
	35,tty35     AT&T-терминал, модель 35 KSR
	37,tty37     AT&T-терминал, модель 37 KSR
	40-2         AT&T-терминал, модель 40/2
	40-4         AT&T-терминал, модель 40/4
	4540         AT&T-терминал, модель 4540
	4000a        Trendata 4000a
	4014         Tektronix 4014
	43           Модель 43 KSR
	450          DASI 450 (то же, что и Diablo 1620)
	450-12       То же, в режиме 12 точек
	735          Texas Instruments TI735 and TI725
	745          Texas Instruments TI745
	dumb         Общее имя для терминалов, которые отверга-
		     ют  обратный прогон бумаги и другие специ-
		     альные управляющие последовательности
	sync         Общее имя для синхронных терминалов,  сов-
		     местимых с TELETYPE 4540
	hp           Hewlett-Packard (то же, что и 2645)
	lp           Общее имя для строчных принтеров
	tn1200       General Electric TermiNet 1200
	tn300        General Electric TermiNet 300
	tvi950       TeleVideo 950

	Команды,  поведение  которых зависит от типа терминала,
	должны обрабатывать аргументы  вида  -T  имя_терминала;
	если  такого аргумента нет, команда должна получить тип
	терминала из переменной окружения $TERM, в  которой,  в
	свою очередь, должно содержаться имя_терминала.

ФАЙЛЫ 
	/usr/lib/terminfo/?/* Скомпилированная база данных опи-
			      саний терминалов.

СМ. ТАКЖЕ 
	curses(3X), profile(4), terminfo(4), environ(5).
	sh(1),  stty(1),  tabs(1),  tplot(1G), tput(1), vi(1) в
	Справочнике пользователя.
	infocmp(1M) в Справочнике администратора.

СЮРПРИЗЫ 
	Не все программы используют сформулированные выше  сог-
	лашения.  Некоторые программы, использующие базу данных
	описаний терминалов, проводят принцип независимости  от
	номенклатуры устройств непоследовательно.




 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк