# HG changeset patch # User Kyle Lippincott # Date 1552532996 25200 # Node ID cde5827d09a73cddd67ff69035e33b37ada88de6 # Parent fa3b0ca9d74ff81df2578e4e336ec012aeac243a crecord: redraw the screen when starting up chunkselector Failure to do this can cause screen corruption like: [X] filename.cc I believe this might only happen in some terminals, and maybe only when using the "alternate screen". Regardless of the exact conditions to reproduce, it should be safe to always clear it when starting up and is probably the correct thing to do anyway :) Differential Revision: https://phab.mercurial-scm.org/D6131 diff -r fa3b0ca9d74f -r cde5827d09a7 mercurial/crecord.py --- a/mercurial/crecord.py Wed Mar 13 18:39:45 2019 -0700 +++ b/mercurial/crecord.py Wed Mar 13 20:09:56 2019 -0700 @@ -1764,6 +1764,12 @@ except curses.error: self.usecolor = False + # In some situations we may have some cruft left on the "alternate + # screen" from another program (or previous iterations of ourself), and + # we won't clear it if the scroll region is small enough to comfortably + # fit on the terminal. + self.stdscr.clear() + # available colors: black, blue, cyan, green, magenta, white, yellow # init_pair(color_id, foreground_color, background_color) self.initcolorpair(None, None, name="normal")