From: Miroslav Lichvar Date: Wed, 15 Oct 2014 15:52:41 +0000 (+0200) Subject: handle NEWT_EXIT_ERROR in snack X-Git-Tag: r0-52-18~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=508a125b2d5386ef827a26bcfb1930ed84da57bc;p=thirdparty%2Fnewt.git handle NEWT_EXIT_ERROR in snack --- diff --git a/snack.c b/snack.c index f42fc65..b4cee2e 100644 --- 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)); diff --git a/snack.py b/snack.py index 0e42112..3708a4e 100644 --- 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()