summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Warner <james.warner@comcast.net>2022-06-15 00:00:00 -0500
committerCraig Small <csmall@dropbear.xyz>2022-06-19 20:58:51 +1000
commit5fe2af91772fe8799d577234a6e1ca202b5524bf (patch)
tree06c39ff81d7ce7b77d1c9b345b3cdb6f1ab99458
parent942b1b110c348d78fb0180c693537b04ff0cecec (diff)
downloadprocps-ng-5fe2af91772fe8799d577234a6e1ca202b5524bf.tar.gz
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 <james.warner@comcast.net>
-rw-r--r--top/top.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/top/top.c b/top/top.c
index 90b02a5..ffd76c0 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':