top: eliminate a potential abend when exiting 'A' mode
In that issue cited below, Tyson Nottingham identified
a potential abend which was associated with 'alternate
display mode' plus that troublesome 'mkVIZrow1' macro.
He also offered a perfectly adequate fix for that bug.
I refer to that macro as troublesome since it's now so
widely used and sometimes (by design) causes 'begtask'
to go negative (invalid). And now I found yet one more
place where it should have been used but wasn't ('f').
It's also troublesome as evidenced by some git history
listed below. Heck, there was even a commit addressing
the same symptoms (alternate display mode abend) which
Tyson suffered. Clearly, the current design is flawed.
So, with those two issues in mind, I've refactored the
approach to maintaining a visible task in the 1st row.
Henceforth, a 'mkVIZrow1' macro will be issued in only
two places: once at startup and after most keystrokes.
Such an approach likely results in additional calls to
the 'window_hlp' routine that aren't really necessary.
But, it provides a cleaner design less prone to errors
in the future. Besides, such additional overhead would
only be incurred when interacting with the user. Thus,
new costs are of no concern and will never be noticed.
Reference(s):
. Tyson Nottingham reported problem
https://gitlab.com/procps-ng/procps/-/issues/245
. Jun, 2018 - visible row 1 tasks first addressed
commit
6aedeac667267b24ba7f03914eec768d661651ed
. Jun, 2018 - adressed edge case, new bugs created
commit
9d59ddc4661453dc65a8fc81dd75bfea40b7696c
. Sep, 2018 - additional edge case addressed
commit
59f02f19c796cdd83a9ec8751f83e10c42080a44
. May, 2021 - some abends fixed, new error created
commit
8281ac4f98cf04c51cbeb746d214201531d660ec
. Jun, 2021 - try to prorect against future errors
commit
2ea082b4af6f4751548e7583fe7430cd97935318
. Sep, 2021 - integrate mkVIZ & 'focused' tasks
commit
69978e365043f27305e487709474947bb377084d
Discovered by: Tyson Nottingham
Signed-off-by: Jim Warner <james.warner@comcast.net>