"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Tracey Emery <tracey@traceyemery.net>
Subject:
Re: tog: handle Home/End for log and diff views
To:
Christian Weisgerber <naddy@mips.inka.de>
Cc:
gameoftrees@openbsd.org, Jasper Lievisse Adriaanse <j@jasper.la>
Date:
Fri, 3 Sep 2021 14:14:46 -0600

Download raw body.

Thread
On Fri, Sep 03, 2021 at 09:55:15PM +0200, Christian Weisgerber wrote:
> Jasper Lievisse Adriaanse:
> 
> > Here's a diff that allows one to quickly navigate to the first or last
> > item of a particular view. Currently I've implemented it for the diff and
> > log views as these are the ones I use most often.
> 
> > diff --git a/tog/tog.1 b/tog/tog.1
> 
> Heresy!!
> 
> > --- a/tog/tog.c
> > +++ b/tog/tog.c
> > @@ -2406,6 +2406,14 @@ input_log_view(struct tog_view **new_view, struct tog_view *view, int ch)
> >  			log_scroll_up(s, 1);
> >  		select_commit(s);
> >  		break;
> > +	case KEY_HOME:
> > +		if (s->first_displayed_entry == NULL)
> > +			break;
> > +
> > +		s->selected = 0;
> > +		log_scroll_up(s, s->commits.ncommits);
> > +		select_commit(s);
> > +		break;
> >  	case KEY_PPAGE:
> >  	case CTRL('b'):
> >  		if (s->first_displayed_entry == NULL)
> 
> We can directly go to the head of the list, we don't need to traverse
> it backwards.
> 
> diff refs/heads/main refs/heads/tweak
> blob - 676aa5bfd38d46389ada9f6d333fc7b1eab64913
> blob + 026ea0f67b5944ff6c2f0bdd37d49b8d84fcca4c
> --- tog/tog.c
> +++ tog/tog.c
> @@ -2420,11 +2420,8 @@ input_log_view(struct tog_view **new_view, struct tog_
>  		break;
>  	case 'g':
>  	case KEY_HOME:
> -		if (s->first_displayed_entry == NULL)
> -			break;
> -
>  		s->selected = 0;
> -		log_scroll_up(s, s->commits.ncommits);
> +		s->first_displayed_entry = TAILQ_FIRST(&s->commits.head);
>  		select_commit(s);
>  		break;
>  	case KEY_PPAGE:
> -- 
> Christian "naddy" Weisgerber                          naddy@mips.inka.de

Yup, ok.

-- 

Tracey Emery