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

Златоуст.Ru

 

 

      INFOCMP(1M)                                         INFOCMP(1M)

      НАЗВАНИЕ
      	infocmp - сравнение или печать информации о характерис-
      	тиках терминалов, хранящейся в базе данных terminfo

      СИНТАКСИС
	 infocmp [-d][-c][-n][-I][-L][-C][-r][-u][-s [d][i][l][c]][-v][-V][-1]
		 [-w ширина] [-A каталог] [-B каталог] [терминал ...]

      ОПИСАНИЕ
      	Утилита infocmp используется  для  сравнения  элементов
      	базы   данных   terminfo(4),  для  перезаписи  элемента
      	terminfo,  определяемого  по  значению  ключевого  поля
      	use=, а также для вывода в различных форматах скомпили-
      	рованного   описания   характеристик   терминалов  [см.
      	term(4)]. Во всех случаях сначала печатаются булевы по-
      	ля, затем числовые, а затем  поля,  содержащие  цепочки
      	символов.

      	Терминалы задаются своими именами.

           Подразумеваемые опции
      	Если  опции  не  указаны, подразумевается опция -I. При
      	этом, если указано несколько терминалов, подразумевает-
      	ся еще и опция -d.

           Опции сравнения [-d] [-c] [-n]
      	Утилита infocmp сравнивает описание характеристик  пер-
      	вого  указанного терминала с остальными указанными тер-
      	миналами. Если какая-либо из характеристик присутствует
      	только у одного из терминалов,  возвращается  значение,
      	зависящее от типа характеристики: F для булевой, -1 для
      	числовой, NULL для характеристики, описываемой цепочкой
      	символов.

      	-d   Напечатать список характеристик, по которым терми-
      	     налы различаются. Если есть два описания для одно-
      	     го и того же терминала или для похожих терминалов,
      	     утилита infocmp покажет разницу между ними. Обычно
      	     это требуется, если два человека составили  описа-
      	     ния  одного  и того же терминала и желательно выя-
      	     вить различия между описаниями.

      	-c   Напечатать список характеристик, являющихся общими
      	     для  двух терминалов. Характеристики, которых нет,
      	     игнорируются. Эту  опцию  можно  использовать  для
      	     быстрой  проверки  того,  стоит ли применять опцию
      	     -u.

      	-n   Напечатать  список  характеристик, отсутствующих у
      	     заданных терминалов. Если  терминалы  не  указаны,
      	     дважды  используется значение переменной окружения
      	     TERM. Опция -n позволяет быстро узнать,  не  оста-
      	     лась  ли  какая-нибудь характеристика за пределами
      	     рассмотрения.

           Опции получения исходного листинга [-I] [-L] [-C] [-r]
      	Опции -I, -L, -C используются для выдачи исходного лис-
      	тинга характеристик каждого из указанных терминалов.

      	-I   Использовать имена terminfo(4).

      	-L   Использовать длинные имена, перечисленные во вклю-
      	     чаемом файле .

      	-C   Использовать имена termcap [см. terminfo(4)].

      	-r   Преобразовывать все характеристики к виду termcap;
      	     применяется вместе с опцией -C.

      	Если терминалы не указаны, используется значение  пере-
      	менной окружения TERM.

      	Текст, сгенерированный по опции -C, можно без переделок
      	использовать как элемент базы данных termcap, однако не
      	исключена  ситуация,  когда некоторые параметризованные
      	цепочки символов к формату termcap привести не удалось.
      	Утилита infocmp пытается преобразовать всю параметризо-
      	ванную информацию; то, что  преобразовать  не  удалось,
      	особо  помечается в выводе и делается комментарием. По-
      	добные фрагменты следует редактировать вручную.

      	Вся информация о заполнителях цепочек символов  собира-
      	ется  вместе  и  помещается в начало цепочки, как этого
      	требует termcap. Обязательные заполнители  (заканчиваю-
      	щиеся символом /) становятся при этом необязательными.

      	Все  переменные  termcap,  которые  не поддерживаются в
      	terminfo, но могут быть вычислены по другим  переменным
      	terminfo,  будут включены в число результатов. Преобра-
      	зуются не все компоненты terminfo, а только те, которые
      	присутствовали в termcap. Использование опции -r снима-
      	ет это ограничение и приводит к выводу всех характерис-
      	тик в виде termcap.

      	Отметим, что поскольку информация о заполнителях  выно-
      	сится в начало, не все характеристики выводятся, обяза-
      	тельное заполнение не поддерживается, а цепочки termcap
      	не обладают гибкостью цепочек terminfo, иногда оказыва-
      	ется невозможным преобразовать характеристику terminfo,
      	описываемую цепочкой символов, в эквивалентную характе-
      	ристику termcap. Если, впоследствии, преобразовать опи-
      	сание  из формата termcap обратно в формат terminfo, не
      	обязательно получится то, с чего начинали.

      	Ниже  приводятся  некоторые  параметризованные  цепочки
      	terminfo, их эквиваленты в termcap и  типы  терминалов,
      	использующих эти последовательности:

              Terminfo                    Termcap   Терминалы
              %p1%c                       %.        adm
              %p1%d                       %d        hp, ANSI, vt100
              %p1%'x'%+%c                 %+x       concept
              %i                          %i        ANSI, vt100
              %p1%?%'x'%>%t%p1%'y'%+%;    %>xy      concept
              %p2 выводится раньше %p1    %r        hp

           Опция use= [-u]
      	-u   Сгенерировать  описание в формате terminfo первого
      	     из перечисленных терминалов относительно  описаний
      	     остальных  терминалов. Описание генерируется путем
      	     анализа различий первого терминала и  других  ука-
      	     занных  терминалов и генерации описания, в котором
      	     используются поля use=. Таким образом можно  вклю-
      	     чить  в  описание  терминала  фрагменты, общие для
      	     группы терминалов. Еще одно применение  опции  -u:
      	     если  описания  сходных  терминалов составлялись в
      	     разное время или разными людьми,  утилита  infocmp
      	     покажет,  что нужно сделать, чтобы получить описа-
      	     ние одного терминала относительно другого.

      	Если какая-либо характеристика  отсутствует  у  первого
      	терминала, но какой-либо из остальных терминалов ею об-
      	ладает,  то  при печати такая характеристика помечается
      	символом @. Значение,  соответствующее  характеристике,
      	печатается, если это значение имеется в описании перво-
      	го  терминала и отсутствует во всех остальных описаниях
      	или не совпадает с первым  из  тех  описаний  остальных
      	терминалов, в которых оно присутствует.

      	Порядок, в котором указываются остальные имена термина-
      	лов, существен. Поскольку компилятор  terminfo-описаний
      	tic(1M)  обрабатывает все характеристики слева направо,
      	указание двух полей use=,  которые  содержат  различные
      	значения  для одной и той же характеристики, приведет к
      	различным результатам при изменении порядка  элементов.
      	Утилита  infocmp отмечает все обнаруженные противоречия
      	такого сорта.

      	С другой стороны,  указание  какой-либо  характеристики
      	после  соответствующего  ей  поля use= приводит к тому,
      	что это указание  игнорируется.  Использование  утилиты
      	infocmp  для  воссоздания  описания  может быть хорошей
      	проверкой корректности исходного описания.

      	Еще одной ошибкой, вызывающей возрастание времени  ком-
      	пиляции,  является  употребление избыточных полей use=.
      	Утилита infocmp помечает такие поля.

           Остальные опции [-s [d] [i] [l] [c]] [-v] [-V] [-1] [-w ширина]
      	-s   Отсортировать поля каждого типа в  соответствии  с
      	     порядком, определяемым следующим аргументом:

      	     d  оставить  поля  в том порядке, в каком они хра-
      		нятся в базе данных terminfo;

      	     i  отсортировать по terminfo-имени;

      	     l  отсортировать по длинному C-имени;

      	     c  отсортировать по termcap-имени.

      	     Из четырех перечисленных  аргументов  должен  быть
      	     задан  ровно  один. Если опция -s не указана, поля
      	     каждого типа сортируются по terminfo-имени, но ес-
      	     ли указана опция -C,  сортировка  производится  по
      	     termcap-имени,  а  если  указана  опция  -L, то по
      	     длинному C-имени.

      	-v   Во время работы программы выводить  в  стандартный
      	     протокол трассировочную информацию.

      	-V   Вывести  в стандартный протокол версию программы и
      	     завершиться.

      	-1   Печатать поля по одному в строке. Без этой опции в
      	     строке печатается  несколько  полей,  максимальная
      	     ширина по умолчанию - 60 символов.

      	-w ширина
      	    Установить ширину вывода.

           Изменение базы данных [-A каталог] [-B каталог]
      	Место,   где  находится  скомпилированная  база  данных
      	terminfo(4),  определяется  по   переменной   окружения
      	TERMINFO.  Если эта переменная не определена или в ука-
      	занной базе данных  терминал  не  найден,  используется
      	системная база данных (обычно /usr/lib/terminfo). Опции
      	-A  и -B служат для изменения описанного порядка. Опция
      	-A определяет базу данных для первого терминала, а  оп-
      	ция -B определяет базу данных для остальных терминалов.
      	Таким  образом  можно  сравнивать описания терминалов с
      	одинаковыми именами, хранящиеся в разных  базах  данных
      	(например, описания одного и того же терминала, создан-
      	ные  разными  людьми).  Если  опции  -A и -B не заданы,
      	сравниваемые терминалы должны иметь различные имена.

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

      ДИАГНОСТИКА
      	malloc is out of space!
      	     Программе  не  хватило  памяти  для обработки всех
      	     описаний. Запустите утилиту infocmp несколько раз,
      	     указывая меньшее число терминалов.

      	use= order dependency found
      	     Значение в относительном описании одного терминала
      	     не совпадает со значением в относительном описании
      	     другого терминала.

      	'use=терминал' did not add anything for the description
      	     Использование относительного описания не добавляет
      	     терминалу никаких новых характеристик.

      	must  have at least two terminal names for a comparison
      	to be done
      	     Опции -u, -d и -c  требуют  указания  как  минимум
      	     двух терминалов.

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

      ПРИМЕЧАНИЯ
      	База данных termcap, использовавшаяся в ранних  версиях
      	ОС UNIX, в будущих версиях может не поддерживаться.



 

 

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

Мое резюме

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

Ресурсы сети

Фотоальбом

 

 

 

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