2011-01-17 2 views
0

Я занимаюсь преобразованием действительно старого приложения на 25 лет.Терминал Xterm и код изменения размера

Он посылает управляющую последовательность, чтобы сделать экран 132 символов шириной ...
Однако это не работало, и я поставил XTERM equilivment, что, кажется, работает в большинстве случаев ..

Это

"\x1B[8;50;132t" 

Хотя экран изменяет с успехом существует проблема Вот код, который использует программу COBOL для выполнения команды

pg -f FILETOSHOW 

с использованием CALL "SYSTEM" USING BY CONTENT DS-REC
где DS-REC является вышеприведенной командой ....

Проблемы в том, что, хотя экран изменяет данные печатаются с предыдущими настройками ... Вызов снова программа решает эту проблему и печатает правильно. ..
Разве никто не знает, должен ли я послать еще один код эвакуации?

ответ

-1

Не полагайтесь на эти коды эвакуации. xterm не будет устанавливать размер, превышающий размер экрана. Поэтому, учитывая, что у пользователя есть достаточно большой шрифт и/или экран с достаточно маленьким экраном, он автоматически не получит свой терминал 132x50, а тем более автоматическая калибровка сделает это. (например люсид консоль на 15pt на 1024x600 минус панели задач и WM Деко дает мне комнату для 85x28 клеток.) ​​

Если ваша программа требует такого неудобного размера ЕТ из 132x50, запросить его пользователя в качестве предварительного условия. Или просто запустите свою программу на любом переменном размере.

2

Последовательность побег описана в XTERM управляющих последовательностей, в разделе «Functions using CSI , ordered by the final character(s)», по этой линии:

CSI Ps ; Ps ; Ps t 

Это один из элементов управления адаптировано из dtterm, и в частности

Изменение размера текстовой области данной высота и ширина в символах. Неисправные параметры повторно используют текущую высоту или ширину . Для нулевых параметров используйте высоту или ширину дисплея .

Он был реализован в xterm в 1996 году (patch #18).

Поскольку некоторые пользователи просматривают операции такого рода, как проблема безопасности (в том числе изменения размера шрифта), ресурс windowOps был добавлен в 2003 году (patch #174), чтобы позволить упаковщикам изменить поведения по умолчанию. Этот ресурс может быть изменен во время выполнения с помощью записи в меню, а также непосредственно задан в ресурсах пользователя.

Короче говоря, эта функция присутствует в xterm, но для ее использования могут потребоваться (простые) изменения конфигурации.

Контрольная последовательность для изменения размера окна xterm представляет собой запрос диспетчеру окна. Диспетчер окон может не соблюдать запрос, например, для менеджеров оконных панелей, которые всегда будут терпеть неудачу. Кроме того, поскольку xterm не изменяет размер шрифта динамически, он может выйти из строя, если размер шрифта слишком велик, чтобы разрешить 132 столбца на экране. Шрифт fixed, вероятно, работает для современных больших дисплеев (мой монитор 1280x1024 может отображать 60x210 с некоторыми слабыми), но большие шрифты не могут.

Когда он не может изменить размер как можно большего размера, это менеджер окон, который обрабатывает запрос: xterm забыл к моменту завершения запроса и примет все, что делает оконный менеджер.