From cf69773eed14b5c12b2d6041525167b1f3a13481 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 9 Jul 2008 16:06:17 +0200 Subject: [PATCH] don't crash or hang when form has no focusable elements --- form.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/form.c b/form.c index 765e8e3..fefa5c0 100644 --- a/form.c +++ b/form.c @@ -744,8 +744,9 @@ static struct eventResult formEvent(newtComponent co, struct event ev) { else if (new >= form->numComps) new = (form->numComps - 1); - while (!form->elements[new].co->takesFocus) - new = new - dir; + while (!form->elements[new].co->takesFocus && + new - dir >= 0 && new - dir < form->numComps) + new -= dir; } else { do { new += dir; @@ -755,6 +756,9 @@ static struct eventResult formEvent(newtComponent co, struct event ev) { new = form->numComps - 1; else if (new >= form->numComps) new = 0; + if (new == form->currComp) + /* back where we started */ + return er; } else if (new < 0 || new >= form->numComps) return er; } while (!form->elements[new].co->takesFocus); -- 2.47.2