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; break;
} }
} while (key != 'q' && key != kbd_ESC); } while (key != 'q' && key != kbd_ESC);
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
#undef unSCRL #undef unSCRL
#undef swapEM #undef swapEM
#undef spewFI #undef spewFI
@ -3633,8 +3636,11 @@ signify_that:
} }
} while (key != 'q' && key != kbd_ESC); } while (key != 'q' && key != kbd_ESC);
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
#undef mkSEL #undef mkSEL
} // end: inspection_utility } // end: inspection_utility
#undef INSP_MKSL #undef INSP_MKSL
#undef INSP_RLEN #undef INSP_RLEN
#undef INSP_BUSY #undef INSP_BUSY
@ -4758,7 +4764,8 @@ signify_that:
} while (key != kbdAPPLY && key != kbdABORT); } while (key != kbdAPPLY && key != kbdABORT);
if (key == kbdABORT || key == kbd_ESC) wins_clrhlp(w, 0); if (key == kbdABORT || key == kbd_ESC) wins_clrhlp(w, 0);
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
#undef kbdABORT #undef kbdABORT
#undef kbdAPPLY #undef kbdAPPLY
} // end: wins_colors } // end: wins_colors
@ -5443,6 +5450,8 @@ signify_that:
default: default:
goto signify_that; goto signify_that;
} }
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
} // end: help_view } // end: help_view
@ -5575,8 +5584,6 @@ static void keys_global (int ch) {
case '?': case '?':
case 'h': case 'h':
help_view(); help_view();
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
mkVIZrow1 mkVIZrow1
break; break;
case 'B': case 'B':
@ -5601,8 +5608,6 @@ static void keys_global (int ch) {
break; break;
case 'f': case 'f':
fields_utility(); fields_utility();
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
break; break;
case 'g': case 'g':
win_select(0); win_select(0);
@ -5685,18 +5690,12 @@ static void keys_global (int ch) {
pid = get_int(fmtmk(N_fmt(YINSP_pidsee_fmt), def)); pid = get_int(fmtmk(N_fmt(YINSP_pidsee_fmt), def));
if (pid > GET_NUM_ESC) { if (pid > GET_NUM_ESC) {
if (pid == GET_NUM_NOT) pid = def; if (pid == GET_NUM_NOT) pid = def;
if (pid) { if (pid) inspection_utility(pid);
inspection_utility(pid);
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
}
} }
} }
break; break;
case 'Z': case 'Z':
wins_colors(); wins_colors();
// signal that we just corrupted entire screen
Frames_signal = BREAK_screen;
mkVIZrow1 mkVIZrow1
break; break;
case '0': case '0':