Instead of killing all overlays when resizing, just kill the ones
that cannot be resized, and the resized the rest. This fixes a bug
where the window-list (or a group-window) is aborted when
layer-size changes (because window-size changed, or
caption/hardstatus etc. was toggled). This also makes the code
robust. So if you are looking at a window/display list, and the
window-size is changed, the list won't go away.
Double cell characters that end a line are not properly displayed
when there are split regions. Takeshi Banse detected the problem and
a fix for it in Savannag bug #29106. A better fix for this was
applied in the unicode++ branch, but that won't work in 'master'.
This is approximately the same fix, in a slightly different way.
Some distributions ( mandriva for example ) use
-Werror=format-security by default when build C software to try to
enhance code quality and prevent security bugs. As the policy is to
correct all occurences of the error ( so there is no false positive,
nor question about to fix it or not ), a patch that fix the
error on gnu screen 4.0.3 have been added to the package. I have
rediffed it against latest git snapshot, to be sent upstream.
It mainly add "%s" where applicable.
When there are no splits, pausing output on a layer isn't necessary,
since it doesn't hit the performance. But we do want to continue to
pause output when there are splits to improve scrolling performance.
Fixes savannah bug #29055. Thanks to Kazuo Teramoto for reporting
the bug and testing the fix.
Height of a window can be negative, when both hardstatus and caption
are turned on, and the terminal size is reduced to one-line height.
So handle those cases more gracefully.
Fixes savannah bug #29037.
It looks like 'ys' can be negative at times, which results in invalid
memory reads, and possibly writes. Valgrind log from Friedrich Delgado
Friedrichs in savannah bug #29050.
Press '/' to enter the search string, then pressing 'n' will search
forward, and 'N' will search backward. Press '/' again to change the
search string.
If defined SHADOWPW, we may have passwd records in core, that the user
would not be able to access otherwise. In that case, we should not dump
core, as the core file would contain the passwd records, and would be
readable for the user.
We do not explicitly check for eff_uid == 0, because if his real_uid is
also 0 he could have read all this anyway. Leaving only the cases where the
two uids differ.
This window list should be better than the old one, mostly
code-wise, as there's yet no new functionality. However, it should
be much simpler to add typeahead search and other nifty things now
than before.
Update the window-list whenever window ordering/etc. changes. There
is an unusual bug where the selection in a list changes
automatically when switching windows in another display. Need to
investigate this issue. Also, left to do: support nested list, and
advanced navigations introduced (e.g. toggle MRU, nestedness etc.)
The window list now uses the list-framework. The basic window list
is working. The list for a group, or nested/mru lists still need
some work. This is going to be a much simpler code than before.
The list of displays uses this framework. Eventually, the list of
windows, bindkeys etc. will also use this framework.
In the list of displays, you can press 'd' to detach the selected
display (and 'D' to power-detach).
Eventually, the plan is to add typeahead search in the list too.
Excluding the PID from the expansion of $STY makes it possible to
do, e.g. 'source screenrc-$STY' to load session-specific commands.
If the PID is desired, for some reason, then '$PID.$STY' should be
used instead.
This is another bug introduced when the max number of windows was
made configurable. Bug reported by Christian Ebert in
<20100218160955.GC21624@krille.blacktrash.org>.
And fix a typo.