C - Переход от NCURSES UI к внешней программе и обратно

StackOverflow https://stackoverflow.com/questions/3258163

  •  16-09-2020
  •  | 
  •  

Вопрос

Я делаю программу, которая отображает некоторую информацию в NCurses, а затем открывает VIM (используя system), чтобы позволить пользователю редактировать файл.После того, как VIM выходит, хотя экран NCurses не будет перерисован.refresh и wrefresh не делают ничего, что привело к полному разбиванию моего прекрасного меню.

Итак, я отправляюсь обратно в командную строку.Пункты меню перерисовываются, когда я переезжаю к ним.Двигаясь немного приводит к тому, что выглядит так:

Tragedy

Как вы можете видеть, я больше не нахожусь в своей симпатичной среде Ncurses.

Я мог полностью разбросить NCurses и снова настроить вещи, но тогда некоторые вещи (например, положение меню) не сохраняется.

Как мне это сделать правильно?Есть ли лучший способ назвать некоторую внешнюю программу и возвращаться здесь изящно?

Это было полезно?

Решение

Мне никогда не приходилось полностью перезапустить проклятия.

Что, если вы сделаете что-то вроде

def_prog_mode () затем endwin ()

Выполнить системный вызов

и обновление () должно восстановить его

Другие советы

Отделите состояние программы из состояния проклятия.

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

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top