# HG changeset patch # User Augie Fackler # Date 1611347520 18000 # Node ID a936e570288daffd18bd1d518ce0bf885891c823 # Parent 8477c91b5e8e981e531e78f885197401fbee7ddf histedit: notice when the main window underflows height and abort If you try to have a 13-line-tall terminal and use curses histedit, it fails by spinning in an infinite loop due to the catch-all ignore of curses errors on line 1682 of histedit.py. We should also fix that catch-all ignore of curses errors (what other demons lurk here, I wonder?) but we can trivially catch this case and guide the user to a happy path. We've seen this mostly in IDE users that have a tendency to have really tiny embedded terminal windows. Differential Revision: https://phab.mercurial-scm.org/D9854 diff -r 8477c91b5e8e -r a936e570288d hgext/histedit.py --- a/hgext/histedit.py Fri Jan 22 15:29:12 2021 -0500 +++ b/hgext/histedit.py Fri Jan 22 15:32:00 2021 -0500 @@ -1581,10 +1581,19 @@ def layout(mode): maxy, maxx = stdscr.getmaxyx() helplen = len(helplines(mode)) + mainlen = maxy - helplen - 12 + if mainlen < 1: + raise error.Abort( + _(b"terminal dimensions %d by %d too small for curses histedit") + % (maxy, maxx), + hint=_( + b"enlarge your terminal or use --config ui.interface=text" + ), + ) return { b'commit': (12, maxx), b'help': (helplen, maxx), - b'main': (maxy - helplen - 12, maxx), + b'main': (mainlen, maxx), } def drawvertwin(size, y, x):