I implemented ripoffline(3) in NetBSD and it shipped in-8. It now transpires there were a few problems with the implementation, mainly in regards to screen resizing, which is an extension to POSIX, but supported by ncurses and PDCurses.
Many improvements have been made with regards to compability with NetBSD and the others, but there are the following caveats:
- NetBSD will only resize stdscr, curscr and virtscr windows (like PDCurses)
- NetBSD clears the window when resized
- NetBSD will re-size and re-position the ripped off lines (like ncurses)
- NetBSD will not change LINES when ripoffline is called and may offset stdscr to it’s relative position on the screen. This means that portable application should check getbegyx and getmaxyx for the size and location of stdscr.
The expectation is that the client will re-draw all windows, including ripped off windows on a KEY_RESIZE event. It’s also expected that the client will re-size any other windows as it has a clearer idea of where things should be on the screen to it’s proportion rather than curses guesstimating.