デバッグ/保守している C/ncurses プログラムがあります。このプログラムは ripoffline を 2 回実行します。1 回目はタイトル バーを配置し、2 回目はページの上部にメニュー バーを配置します。
いくつかのメニューをドロップダウンする必要があるため、メニューをドロップダウンする前に画面を保存します。InitMenu 関数には、次のコードがあります。
savewin = newwin (0, 0, 0, 0);
overwrite (curscr, savewin);
wrefresh(savewin)
問題は、savewin がメニューと切り取られた行と共にコピーされていることですが、切り取られた行の下の画面に描画されます。これにより、破れた線が画面上に複製されます。
問題がどこにあるかを理解するだけで、しばらく時間がかかりました。今、私はそれを修正する方法がわかりません。理想的には、切り離された行なしで curscr を savewin にコピーしたいと考えています。何か案は?