From 5fe2af91772fe8799d577234a6e1ca202b5524bf Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Wed, 15 Jun 2022 00:00:00 -0500 Subject: [PATCH] top: avoid premature forced loss of that bottom window <=== port of newlib f40fc402 ______________________________ original newlib message ----------------------------------- ( minus git hash ) In the commit shown below the bottom window was forced off if a full screen replacement function was invoked. It did so by setting Frames_signal after calling those routines from the keys_global function. However, there was sometimes a possibility such action was premature. At least two of those full screen replacement routines may issue an error message & return without corrupting the screen. As such, forcing off that bottom window is totally unnecessary. It therefore should be preserved. So this commit just moves the setting of Frames_signal to the full screen replacement routines when possible. Reference(s): . May, 2022 - bottom window forced off for some commit ........................................ Signed-off-by: Jim Warner --- top/top.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/top/top.c b/top/top.c index 90b02a59..ffd76c0e 100644 --- a/top/top.c +++ b/top/top.c @@ -2476,6 +2476,9 @@ signify_that: break; } } while (key != 'q' && key != kbd_ESC); + + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef unSCRL #undef swapEM #undef spewFI @@ -3633,8 +3636,11 @@ signify_that: } } while (key != 'q' && key != kbd_ESC); + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef mkSEL } // end: inspection_utility + #undef INSP_MKSL #undef INSP_RLEN #undef INSP_BUSY @@ -4758,7 +4764,8 @@ signify_that: } while (key != kbdAPPLY && key != kbdABORT); if (key == kbdABORT || key == kbd_ESC) wins_clrhlp(w, 0); - + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef kbdABORT #undef kbdAPPLY } // end: wins_colors @@ -5443,6 +5450,8 @@ signify_that: default: goto signify_that; } + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; } // end: help_view @@ -5575,8 +5584,6 @@ static void keys_global (int ch) { case '?': case 'h': help_view(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; mkVIZrow1 break; case 'B': @@ -5601,8 +5608,6 @@ static void keys_global (int ch) { break; case 'f': fields_utility(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; break; case 'g': win_select(0); @@ -5685,18 +5690,12 @@ static void keys_global (int ch) { pid = get_int(fmtmk(N_fmt(YINSP_pidsee_fmt), def)); if (pid > GET_NUM_ESC) { if (pid == GET_NUM_NOT) pid = def; - if (pid) { - inspection_utility(pid); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; - } + if (pid) inspection_utility(pid); } } break; case 'Z': wins_colors(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; mkVIZrow1 break; case '0':