]> git.ipfire.org Git - thirdparty/newt.git/commitdiff
handle NEWT_EXIT_ERROR in snack
authorMiroslav Lichvar <mlichvar@redhat.com>
Wed, 15 Oct 2014 15:52:41 +0000 (17:52 +0200)
committerMiroslav Lichvar <mlichvar@redhat.com>
Wed, 15 Oct 2014 15:55:58 +0000 (17:55 +0200)
snack.c
snack.py

diff --git a/snack.c b/snack.c
index f42fc6571446e948860e5147d703f4c9ef79ea57..b4cee2ecb44d7b8d4f04cf2c0d856a2ccc38d2c9 100644 (file)
--- a/snack.c
+++ b/snack.c
@@ -1019,8 +1019,10 @@ static PyObject * formRun(snackForm * s, PyObject * args) {
        return Py_BuildValue("(si)", "timer", 0);
     else if (result.reason == NEWT_EXIT_FDREADY)
        return Py_BuildValue("(si)", "fdready", result.u.watch);
-    else
+    else if (result.reason == NEWT_EXIT_COMPONENT)
        return Py_BuildValue("(si)", "widget", result.u.co);
+    else
+       return Py_BuildValue("(si)", "error", 0);
 }
 
 static PyObject * formHotKey(snackForm * s, PyObject * args) {
@@ -1455,6 +1457,7 @@ MOD_INIT(_snack)
     setitemstring_decref(d, "FORM_EXIT_WIDGET", PyString_FromString("widget"));
     setitemstring_decref(d, "FORM_EXIT_TIMER", PyString_FromString("timer"));
     setitemstring_decref(d, "FORM_EXIT_FDREADY", PyString_FromString("fdready"));
+    setitemstring_decref(d, "FORM_EXIT_ERROR", PyString_FromString("error"));
 
     setitemstring_decref(d, "KEY_TAB", PyInt_FromLong(NEWT_KEY_TAB));
     setitemstring_decref(d, "KEY_ENTER", PyInt_FromLong(NEWT_KEY_ENTER));
index 0e4211223f851e98556be267e2e2f744d42aa675..3708a4e2e5ec351f30331463e685b937b3957e00 100644 (file)
--- a/snack.py
+++ b/snack.py
@@ -350,8 +350,9 @@ class Form:
             return "TIMER"
         elif (what == _snack.FORM_EXIT_FDREADY):
             return self.filemap[which]
-
-        return hotkeys[which]
+        elif (what == _snack.FORM_EXIT_HOTKEY):
+            return hotkeys[which]
+        raise RuntimeError("EOF or IO error")
 
     def draw(self):
         self.w.draw()