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

From:
Christian Weisgerber <naddy@mips.inka.de>
Subject:
Re: tog: tree view page up/down bugs
To:
gameoftrees@openbsd.org
Date:
Sun, 29 Nov 2020 17:16:30 +0100

Download raw body.

Thread
  • Christian Weisgerber:

    tog: tree view page up/down bugs

  • Stefan Sperling:
    
    > Rebased diff. I've just comitted another trivial change which overlaps.
    > 
    > diff 6e88edf0cbe9b44bb70c2b59d313aea6b5197a8e 19366d097e5368b7850c41aa2dfb2587054eb22e
    > blob - 8442a98a5d8df651d1a68212c02dc9bb7284c585
    > blob + 1e86a0b31d06f8b7654c3cf6f435d952ee57bb6b
    > --- tog/tog.c
    > +++ tog/tog.c
    
    I can't get that one to misbehave.  ok
    
    
    You can also garbage-collect tree_scroll_up()'s "view" parameter.
    
    Well.
    
    I'm hesitant to give this sort of backseat commentary, but various
    display-related functions in tog.c take an awful lot of parameters
    that are actually redundant.
    
      tree_scroll_up(struct tog_view *view,
          struct got_tree_entry **first_displayed_entry, int maxscroll,
          struct got_tree_object *tree, int isroot)
    
    view is not used, but there is another way to see this if we look
    at the caller:
    
                    tree_scroll_up(view, &s->first_displayed_entry, 1,
                        s->tree, s->tree == s->root);
    
                    tree_scroll_up(view, &s->first_displayed_entry,
                        MAX(0, view->nlines - 3), s->tree, s->tree == s->root);
    
    The first_displayed_entry, tree, and isroot arguments are really
    extracted from view, so this could also be refactored to
    
      tree_scroll_up(struct tog_view *view, int maxscroll)
    
    Now, tree_scroll_up() is a simple case, but there are things like
    this:
    
            err = draw_tree_entries(view, &s->first_displayed_entry,
                &s->last_displayed_entry, &s->selected_entry,
                &s->ndisplayed, s->tree_label, s->show_ids, parent_path,
                s->tree, s->selected, view->nlines, s->tree == s->root,
                &s->colors, s->repo);
    
    At 14 arguments, that looks more like a compiler regression test
    and could be simplified to draw_tree_entries(view, parent_path).
    
    -- 
    Christian "naddy" Weisgerber                          naddy@mips.inka.de
    
    
    
  • Christian Weisgerber:

    tog: tree view page up/down bugs