Steps to Reproduce: 1. Install Mercurial 2. Install curses-windows (or any curses wrapper of PDCurses) 3. Run `hg --config ui.interface=curses commit -i` in a repository with changes Expected Results: There should be visible chunks to commit Actual Results: The only thing rendered is the top bar ("Select hunks to record...") I've traced this down to an error in `curseschunkselector.updatescreen`, specifically: try: self.printitem() self.updatescroll() self.chunkpad.refresh( self.firstlineofpadtoprint, 0, self.numstatuslines, 0, self.yscreensize - self.numstatuslines, self.xscreensize, ) except curses.error: pass The call to `chunkpad.refresh()` is refreshing the columns 0 to `self.xscreensize`, but `self.xscreensize` is the width, so it should be refreshing the range 0 to `self.xscreensize - 1`. With windows-curses (which wraps PDCurses), this results in an exception `prefresh() returned ERR`. Updating this to refresh up to `self.xscreensize-1` fixes the issue.
Fixed by https://mercurial-scm.org/repo/hg/rev/91c41ea14598 Barret Rennie <barret@brennie.ca> crecord: render chunkpad on Windows (issue6427) When using Windows wrappers of PDCurses (e.g., windows-curses), the chunkpad does not render when executing `hg commit -i`. This is due to attempting to refresh one too many columns of the pad. Differential Revision: https://phab.mercurial-scm.org/D9267 (please test the fix)
Bug was set to TESTING for 7 days, resolving