top: enable screen contents preservation at end-of-job
The title of this commit is actually quite misleading. Were it more accurate, it would at least mention a tty emulator's scrollback buffer, which was the cumulation of a long pursuit to reduce the SIGWINCH overhead when a window manager carelessly floods an application with that signal *while* a user is still resizing a window! Disabling and enabling that scrollback buffer resulted in the final top display replaced with original screen contents, a phenomenon acknowledged at the time but it also represented a user interface change which has now produced the first request for return to old behavior. After the SIGWINCH dust settled, another problem arose regarding behaviors under the 'screen' window manager. In response, top was refactored a bit to avoid display corruption. That was before discovering 'screen' could duplicate the scrollback buffer behavior top expected. As it turns out, the 'screen' refactoring had probably made scrollback buffer manipulation unnecessary. Still one could argue that a window should not be allowed to scroll while a constantly updating program was active. The solution represented in this commit returns former behavior at program end (retaining top's last screen). And if we ever wish to disable scrollback buffers, the associated logic was retained but made conditional. It is not reflected in configure.ac but might be someday. Lastly, this commit corrects cursor positioning when a ^C is issued under 'Fields Management' at any terminal that didn't have a scrollback buffer (i.e. a console). Reference(s): https://bugzilla.redhat.com/show_bug.cgi?id=977561 http://www.freelists.org/post/procps/top-library-miscellaneous-tweaks,1 . screen program refactor commit0fe393ff27
. scrollback buffer disabled commitdedaf6e1a8
. sigwinch management defines commitadca737758
commit4f33b6b8c5
Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
committed by
Jaromir Capik
parent
ce5e995921
commit
5c974ff44d
@ -41,6 +41,7 @@
|
||||
//#define INSP_SAVEBUF /* preserve 'Insp_buf' contents in a file */
|
||||
//#define INSP_SLIDE_1 /* when scrolling left/right don't move 8 */
|
||||
//#define OFF_HST_HASH /* use BOTH qsort+bsrch vs. hashing scheme */
|
||||
//#define OFF_SCROLLBK /* disable tty emulators scrollback buffer */
|
||||
//#define OFF_STDIOLBF /* disable our own stdout _IOFBF override */
|
||||
//#define PRETEND2_5_X /* pretend we're linux 2.5.x (for IO-wait) */
|
||||
//#define PRETEND8CPUS /* pretend we're smp with 8 ticsers (sic) */
|
||||
|
Reference in New Issue
Block a user