Pregunta

Estoy haciendo un programa que muestra algo de información en ncurses y, a continuación, abre vim (utilizando system) para permitir al usuario editar un archivo.Después de vim se sale, sin embargo, el ncurses pantalla no volver a dibujar. refresh y wrefresh no hacer nada, lo que resulta en la completa destrozo de mi hermosa menú.

Así que, me voy enviados de vuelta a la línea de comandos.Los elementos de menú redibujar cuando me muevo a ellos.Moviendo un poco los resultados en algo que se parece a esto:

Tragedy

Como usted puede ver, yo ya no estoy en mi linda ncurses entorno.

Yo podría derribar ncurses completamente y poner las cosas de nuevo, pero luego de algunas cosas (como la posición del menú) no se conserva.

¿Cómo puedo hacer esto correctamente?Existe una mejor forma de llamar a algún programa externo y volver aquí con gracia?

¿Fue útil?

Solución

Nunca he tenido que reiniciar el maldiciones por completo.

lo que si hace algo como

def_prog_mode() entonces endwin()

ejecutar la llamada al sistema

y actualizar() debe restaurar

Otros consejos

Separado de su programa estatal de las maldiciones del estado.

La única manera limpia conozco es detener y reiniciar maldiciones por completo.Si su programa tiene una clara noción de su estado interno (como debe ser), entonces debería ser fácil volver a la misma posición.

Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top