From: Miroslav Lichvar Date: Wed, 9 Jul 2008 14:06:17 +0000 (+0200) Subject: don't crash or hang when form has no focusable elements X-Git-Tag: r0-52-10~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf69773eed14b5c12b2d6041525167b1f3a13481;p=thirdparty%2Fnewt.git don't crash or hang when form has no focusable elements --- 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);