# 5.2. Некорректная работа приложений

Некоторые программы могут работать с ошибками, будучи запущенными в эмуляторе терминала под X.

## 5.2.1. MC (midnight commander 4.1.21)

- MC реагирует на изменение размеров окна (до того, как была нажата какая-либо клавиша) и на события мыши только тогда, когда установлен тип терминала "xterm". Однако, эти события не являются специфичными для xterm, например, их может также генерировать консоль Linux.

- После нажатия ˆO (переключение в альтернативный экран) Midnight Commander не передает событие по изменению размера своей вспомогательной оболочке. Вы можете проверить это на xterm или любом другом эмуляторе терминала.

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

- При изменении размеров окна в момент, когда на экране присутствуют панели MC, на экран выдаются как минимум символы перевода строки, но часто еще что-то, кроме них.

- Замечено, что при интенсивном обмене теряется часть текста. Поскольку мне удалось воспроизвести эту ошибку в эмуляторах kvt, rxvt и xterm, и я убедился, что данные теряются уже на уровне read(3), причину нужно искать где-то еще. Учитывая то, что этот эффект наблюдался только в MC, я полагаю, что он вызван особенностями реализации вспомогательной оболочки Midnight Commander.

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

## 5.2.2. Vim 4.6

- при завершении выдает на экран символ перевода строки, в результате на втором экране образуется странная картинка (в этом случае vim используется совместно с mc в качестве редактора по умолчанию).

## 5.2.3. dselect (интерфейс к менеджеру пакетов системы Debian):

- предполагает черный цвет фона, поэтому следует установить цветовую схему "белое на черном". Кроме того, при работе в режиме эмуляции консоли программой неправильно обрабатываются события по изменению размера окна, что приводит к ошибке "Segmentation fault".