C - Andando da NCurses UI al programma esterno e indietro
-
16-09-2020 - |
Domanda
Sto facendo un programma che visualizza alcune informazioni in Ncurses, quindi Apre Vim (utilizzando system
) per consentire all'utente di modificare un file.Dopo che Vim è uscito, tuttavia, la schermata Ncurses non si ridisegna.refresh
e wrefresh
Non fare nulla, con conseguente completa cestino del mio bellissimo menu.
Allora, mi viene inviato alla riga di comando.Le voci del menu ridisegna quando mi trasferisco.Spostarsi intorno a un po 'risultati in qualcosa che sembra questo:
Come puoi vedere, non sono più nel mio grazioso ambiente Ncurses,.
Potrei abbattere completamente Ncurses e impostare di nuovo le cose, ma poi alcune cose (come la posizione del menu) non è conservata.
Come lo faccio correttamente?C'è un modo migliore per chiamare un programma esterno e tornare qui con grazia?
Soluzione
Non ho mai dovuto riavviare i cursi interamente.
Cosa succede se fai qualcosa come
def_prog_mode () allora Endwin ()
Esegui la chiamata di sistema
e Aggiorna () dovrebbe ripristinarlo
Altri suggerimenti
Separa il tuo stato del programma dallo stato delle cursire.
L'unico modo pulito che conosco è fermare e riavviare i cursi interamente.Se il tuo programma ha una nozione pulita del suo stato interno (come dovrebbe), dovrebbe essere facile tornare alla stessa posizione.
Buona fortuna!