On Mon, May 19, 2014 at 08:18:02AM +0200, Vitezslav Samel wrote:
On Sun, May 18, 2014 at 04:46:42PM +1200, Nikola Pajkovsky wrote:
> Vitezslav Samel <vitezslav(a)samel.cz> writes:
>
> > Signed-off-by: Vitezslav Samel <vitezslav(a)samel.cz>
> > ---
> > src/ifstats.c | 160
+++++++++++++++++++++++++++++++---------------------------
> > 1 file changed, 85 insertions(+), 75 deletions(-)
> >
> > diff --git a/src/ifstats.c b/src/ifstats.c
> > index 7c5df73..72df2d8 100644
> > --- a/src/ifstats.c
> > +++ b/src/ifstats.c
> > @@ -407,6 +407,87 @@ static void scrollgstatwin(struct iftab *table, int
direction, int lines)
> > showrates(table);
> > }
> >
> > +static void ifstats_process_key(struct iftab *table, int ch)
> > +{
> > + switch (ch) {
> > + case KEY_UP:
> > + scrollgstatwin(table, SCROLLDOWN, 1);
> > + break;
> > + case KEY_DOWN:
> > + scrollgstatwin(table, SCROLLUP, 1);
> > + break;
> > + case KEY_PPAGE:
> > + case '-':
> > + scrollgstatwin(table, SCROLLDOWN, LINES - 5);
> > + break;
> > + case KEY_NPAGE:
> > + case ' ':
> > + scrollgstatwin(table, SCROLLUP, LINES - 5);
> > + break;
> > + case KEY_HOME:
> > + scrollgstatwin(table, SCROLLDOWN, INT_MAX);
> > + break;
> > + case KEY_END:
> > + scrollgstatwin(table, SCROLLUP, INT_MAX);
> > + break;
> > + case 12:
> > + case 'l':
> > + case 'L':
> > + tx_refresh_screen();
> > + break;
> > + case 'Q':
> > + case 'q':
> > + case 'X':
> > + case 'x':
> > + case 27:
> > + case 24:
> > + exitloop = 1;
> > + break;
> > + case ERR:
> > + default:
> > + /* no key ready, do nothing */
> > + break;
> > + }
> > +}
>
> I will modify this to return 1 if we exit loop, otherwise return 0 like
> that.
>
> if (ch != ERR)
> exitloop = ifstats_process_key(&table, ch);
>
> I think, it makes more sense instead of modify "somewhere" exitloop.
NAK, it changes behaviour: it resets exitloop to 0 every time whatever key
(barring 'Q' or 'X' or other quitting key) is pressed; we don't care
in 1-thread (current) mode, but we care in multi-threaded mode (which I'm
worning on): if some other thread sets exitloop to 1 (due to error for
working on
;-))
example), this change would reset it back to 0 when holding down-key
for example.
Cheers,
Vita