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>
This commit is contained in:
Jim Warner 2022-06-15 00:00:00 -05:00 committed by Craig Small
parent 942b1b110c
commit 5fe2af9177

View File

@ -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':