changeset 25556:40f0e9e5b821

crecord: add mechanism for error reporting Before this patch, there was no way to report errors in the crecord ui. This patch introduces a new variable errorstr. If set, its content replaces the top banner displayed in crecord until a key is pressed.
author Laurent Charignon <lcharignon@fb.com>
date Fri, 05 Jun 2015 13:53:49 -0700
parents 838fa1932ff8
children 52c552a05414
files mercurial/crecord.py
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/crecord.py	Fri Jun 05 13:32:52 2015 -0700
+++ b/mercurial/crecord.py	Fri Jun 05 13:53:49 2015 -0700
@@ -511,6 +511,7 @@
 
         self.ui = ui
 
+        self.errorstr = None
         # list of all chunks
         self.chunklist = []
         for h in headerlist:
@@ -976,6 +977,12 @@
 
         # print out the status lines at the top
         try:
+            if self.errorstr is not None:
+                printstring(self.statuswin, self.errorstr, pairname='legend')
+                printstring(self.statuswin, 'Press any key to continue',
+                            pairname='legend')
+                self.statuswin.refresh()
+                return
             printstring(self.statuswin,
                         "SELECT CHUNKS: (j/k/up/dn/pgup/pgdn) move cursor; "
                         "(space/A) toggle hunk/all; (e)dit hunk;",
@@ -1601,6 +1608,9 @@
             self.updatescreen()
             try:
                 keypressed = self.statuswin.getkey()
+                if self.errorstr is not None:
+                    self.errorstr = None
+                    continue
             except curses.error:
                 keypressed = "foobar"
             if self.handlekeypressed(keypressed):