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

From:
Stefan Sperling <stsp@stsp.name>
Subject:
Re: tog cleanup: simplify ref/tree_scroll function calls
To:
Christian Weisgerber <naddy@mips.inka.de>
Cc:
gameoftrees@openbsd.org
Date:
Tue, 1 Dec 2020 11:47:44 +0100

Download raw body.

Thread
On Mon, Nov 30, 2020 at 10:38:31PM +0100, Christian Weisgerber wrote:
> simplify the (ref|tree)_scroll_(up|down) function signatures
> 
> Pass only the view state and scroll amount to these functions;
> remove unused parameters and those that are contained in the view
> state.
> 
> Is this the right direction?
> Any style issues?
> Did I screw up the conversion?  (It tests fine for me.)

I cannot spot any problems. Ok :)

> diff 34ba691717f92f1469abdb1fdcb04351278668a2 /home/naddy/got
> blob - 37a8fe8842d345b89c8c004db5cb3f7c0adcf699
> file + tog/tog.c
> --- tog/tog.c
> +++ tog/tog.c
> @@ -4986,47 +4986,45 @@ draw_tree_entries(struct tog_view *view,
>  }
>  
>  static void
> -tree_scroll_up(struct tog_view *view,
> -    struct got_tree_entry **first_displayed_entry, int maxscroll,
> -    struct got_tree_object *tree, int isroot)
> +tree_scroll_up(struct tog_tree_view_state *s, int maxscroll)
>  {
>  	struct got_tree_entry *te;
> +	int isroot = s->tree == s->root;
>  	int i = 0;
>  
> -	if (*first_displayed_entry == NULL)
> +	if (s->first_displayed_entry == NULL)
>  		return;
>  
> -	te = got_tree_entry_get_prev(tree, *first_displayed_entry);
> +	te = got_tree_entry_get_prev(s->tree, s->first_displayed_entry);
>  	while (i++ < maxscroll) {
>  		if (te == NULL) {
>  			if (!isroot)
> -				*first_displayed_entry = NULL;
> +				s->first_displayed_entry = NULL;
>  			break;
>  		}
> -		*first_displayed_entry = te;
> -		te = got_tree_entry_get_prev(tree, te);
> +		s->first_displayed_entry = te;
> +		te = got_tree_entry_get_prev(s->tree, te);
>  	}
>  }
>  
>  static void
> -tree_scroll_down(struct got_tree_entry **first_displayed_entry, int maxscroll,
> -	struct got_tree_entry *last_displayed_entry,
> -	struct got_tree_object *tree)
> +tree_scroll_down(struct tog_tree_view_state *s, int maxscroll)
>  {
>  	struct got_tree_entry *next, *last;
>  	int n = 0;
>  
> -	if (*first_displayed_entry)
> -		next = got_tree_entry_get_next(tree, *first_displayed_entry);
> +	if (s->first_displayed_entry)
> +		next = got_tree_entry_get_next(s->tree,
> +		    s->first_displayed_entry);
>  	else
> -		next = got_object_tree_get_first_entry(tree);
> +		next = got_object_tree_get_first_entry(s->tree);
>  
> -	last = last_displayed_entry;
> +	last = s->last_displayed_entry;
>  	while (next && last && n++ < maxscroll) {
> -		last = got_tree_entry_get_next(tree, last);
> +		last = got_tree_entry_get_next(s->tree, last);
>  		if (last) {
> -			*first_displayed_entry = next;
> -			next = got_tree_entry_get_next(tree, next);
> +			s->first_displayed_entry = next;
> +			next = got_tree_entry_get_next(s->tree, next);
>  		}
>  	}
>  }
> @@ -5412,8 +5410,7 @@ input_tree_view(struct tog_view **new_view, struct tog
>  			s->selected--;
>  			break;
>  		}
> -		tree_scroll_up(view, &s->first_displayed_entry, 1,
> -		    s->tree, s->tree == s->root);
> +		tree_scroll_up(s, 1);
>  		break;
>  	case KEY_PPAGE:
>  	case CTRL('b'):
> @@ -5425,8 +5422,7 @@ input_tree_view(struct tog_view **new_view, struct tog
>  			if (s->first_displayed_entry == NULL)
>  				s->selected = 0;
>  		}
> -		tree_scroll_up(view, &s->first_displayed_entry,
> -		    MAX(0, view->nlines - 3), s->tree, s->tree == s->root);
> +		tree_scroll_up(s, MAX(0, view->nlines - 3));
>  		break;
>  	case 'j':
>  	case KEY_DOWN:
> @@ -5438,8 +5434,7 @@ input_tree_view(struct tog_view **new_view, struct tog
>  		    == NULL)
>  			/* can't scroll any further */
>  			break;
> -		tree_scroll_down(&s->first_displayed_entry, 1,
> -		    s->last_displayed_entry, s->tree);
> +		tree_scroll_down(s, 1);
>  		break;
>  	case KEY_NPAGE:
>  	case CTRL('f'):
> @@ -5450,8 +5445,7 @@ input_tree_view(struct tog_view **new_view, struct tog
>  				s->selected = s->ndisplayed - 1;
>  			break;
>  		}
> -		tree_scroll_down(&s->first_displayed_entry, view->nlines - 3,
> -		    s->last_displayed_entry, s->tree);
> +		tree_scroll_down(s, view->nlines - 3);
>  		break;
>  	case KEY_ENTER:
>  	case '\r':
> @@ -5853,43 +5847,39 @@ done:
>  }
>  
>  static void
> -ref_scroll_up(struct tog_view *view,
> -    struct tog_reflist_entry **first_displayed_entry, int maxscroll,
> -    struct tog_reflist_head *refs)
> +ref_scroll_up(struct tog_ref_view_state *s, int maxscroll)
>  {
>  	struct tog_reflist_entry *re;
>  	int i = 0;
>  
> -	if (*first_displayed_entry == TAILQ_FIRST(refs))
> +	if (s->first_displayed_entry == TAILQ_FIRST(&s->refs))
>  		return;
>  
> -	re = TAILQ_PREV(*first_displayed_entry, tog_reflist_head, entry);
> +	re = TAILQ_PREV(s->first_displayed_entry, tog_reflist_head, entry);
>  	while (i++ < maxscroll) {
>  		if (re == NULL)
>  			break;
> -		*first_displayed_entry = re;
> +		s->first_displayed_entry = re;
>  		re = TAILQ_PREV(re, tog_reflist_head, entry);
>  	}
>  }
>  
>  static void
> -ref_scroll_down(struct tog_reflist_entry **first_displayed_entry, int maxscroll,
> -	struct tog_reflist_entry *last_displayed_entry,
> -	struct tog_reflist_head *refs)
> +ref_scroll_down(struct tog_ref_view_state *s, int maxscroll)
>  {
>  	struct tog_reflist_entry *next, *last;
>  	int n = 0;
>  
> -	if (*first_displayed_entry)
> -		next = TAILQ_NEXT(*first_displayed_entry, entry);
> +	if (s->first_displayed_entry)
> +		next = TAILQ_NEXT(s->first_displayed_entry, entry);
>  	else
> -		next = TAILQ_FIRST(refs);
> +		next = TAILQ_FIRST(&s->refs);
>  
> -	last = last_displayed_entry;
> +	last = s->last_displayed_entry;
>  	while (next && last && n++ < maxscroll) {
>  		last = TAILQ_NEXT(last, entry);
>  		if (last) {
> -			*first_displayed_entry = next;
> +			s->first_displayed_entry = next;
>  			next = TAILQ_NEXT(next, entry);
>  		}
>  	}
> @@ -6204,14 +6194,13 @@ input_ref_view(struct tog_view **new_view, struct tog_
>  			s->selected--;
>  			break;
>  		}
> -		ref_scroll_up(view, &s->first_displayed_entry, 1, &s->refs);
> +		ref_scroll_up(s, 1);
>  		break;
>  	case KEY_PPAGE:
>  	case CTRL('b'):
>  		if (s->first_displayed_entry == TAILQ_FIRST(&s->refs))
>  			s->selected = 0;
> -		ref_scroll_up(view, &s->first_displayed_entry,
> -		    MAX(0, view->nlines - 1), &s->refs);
> +		ref_scroll_up(s, MAX(0, view->nlines - 1));
>  		break;
>  	case 'j':
>  	case KEY_DOWN:
> @@ -6222,8 +6211,7 @@ input_ref_view(struct tog_view **new_view, struct tog_
>  		if (TAILQ_NEXT(s->last_displayed_entry, entry) == NULL)
>  			/* can't scroll any further */
>  			break;
> -		ref_scroll_down(&s->first_displayed_entry, 1,
> -		    s->last_displayed_entry, &s->refs);
> +		ref_scroll_down(s, 1);
>  		break;
>  	case KEY_NPAGE:
>  	case CTRL('f'):
> @@ -6233,8 +6221,7 @@ input_ref_view(struct tog_view **new_view, struct tog_
>  				s->selected = s->ndisplayed - 1;
>  			break;
>  		}
> -		ref_scroll_down(&s->first_displayed_entry,
> -		    view->nlines - 1, s->last_displayed_entry, &s->refs);
> +		ref_scroll_down(s, view->nlines - 1);
>  		break;
>  	case CTRL('l'):
>  		ref_view_free_refs(s);
> -- 
> Christian "naddy" Weisgerber                          naddy@mips.inka.de
> 
>