C - vai de interface ncurses para o programa externo e volta
-
16-09-2020 - |
Pergunta
Eu estou fazendo um programa que exibe algumas informações em ncurses e, em seguida, abre o vim (usando system
) para permitir que o usuário edite um arquivo.Depois vim é encerrado, porém, o ncurses tela não redesenhar. refresh
e wrefresh
não fazer nada, o que resulta na completa destruindo minha bela menu.
Então, fui enviado de volta para a linha de comando.Os itens de menu redesenhar quando eu passar para eles.Movendo-se um pouco resulta em algo que se parece com isso:
Como você pode ver, eu não sou na minha linda ncurses ambiente.
Eu poderia derrubar ncurses completamente e definir as coisas novamente, mas, em seguida, algumas coisas (como a posição do menu) não é mantida.
Como posso fazer isso corretamente?Não há melhor maneira de chamar algum programa externo e retorno aqui graciosamente?
Solução
Eu nunca tive que reiniciar maldições inteiramente.
que se você faz algo que gosta
def_prog_mode() em seguida, endwin()
executar a chamada de sistema
e refresh() deve restaurá-lo
Outras dicas
Separe seu programa de estado da maldições estado.
A única maneira limpa eu sei que é para parar e reiniciar maldições inteiramente.Se o seu programa tiver um limpo noção de seu estado interno (como deveria), então ele deve ser fácil voltar para a mesma posição.
Boa sorte!