Fixes garbage selections when switching to/from the alternate screen. How to reproduce: - Be in primary screen. - Select something. - Run this (switches to alternate screen, positions the cursor at the bottom, triggers selscroll(), and then goes back to primary screen): tput smcup; tput cup $(tput lines) 0; echo foo; tput rmcup - Notice how the (visual) selection now covers a different line. The reason is that selscroll() calls selnormalize() and that cannot find the original range anymore. It's all empty lines now, so it snaps to "select the whole line".master