t* sacc + cursorline and uri preview
       
   URI git clone git://git.codevoid.de/sacc-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR LICENSE
       ---
   DIR commit 90277d09e34282cbd7c21fbc6b0f5190aca3df21
   DIR parent 38704075332efd50523896ea0ae68275b7fe0a0f
   URI Author: Quentin Rameau <quinq@fifth.space>
       Date:   Fri,  1 Sep 2017 16:09:47 +0200
       
       Add keys to scroll to next/prev browseable entry
       
       Diffstat:
         M config.def.h                        |       2 ++
         M ui_ti.c                             |      25 +++++++++++++++++++++++++
       
       2 files changed, 27 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/config.def.h b/config.def.h
       t@@ -2,7 +2,9 @@
        
        /* Screen UI navigation keys */
        #define _key_lndown        'j' /* move one line down */
       +#define _key_entrydown        'J' /* move to next link */
        #define _key_lnup        'k' /* move one line up */
       +#define _key_entryup        'K' /* move to next link */
        #define _key_pgdown        ' ' /* move one screen down */
        #define _key_pgup        'b' /* move one screen up */
        #define _key_home        'g' /* move to the top of page */
   DIR diff --git a/ui_ti.c b/ui_ti.c
       t@@ -334,6 +334,25 @@ jumptoline(Item *entry, ssize_t line, int absolute)
                return;
        }
        
       +static ssize_t
       +nearentry(Item *entry, int direction)
       +{
       +        Dir *dir = entry->dat;
       +        size_t item, lastitem;
       +
       +        if (!dir)
       +                return -1;
       +        lastitem = dir->nitems;
       +        item = dir->curline + direction;
       +
       +        for (; item >= 0 && item < lastitem; item += direction) {
       +                if (dir->items[item]->type != 'i')
       +                        return item;
       +        }
       +
       +        return dir->curline;
       +}
       +
        Item *
        uiselectitem(Item *entry)
        {
       t@@ -394,6 +413,9 @@ uiselectitem(Item *entry)
                        lndown:
                                movecurline(entry, 1);
                                continue;
       +                case _key_entrydown:
       +                        jumptoline(entry, nearentry(entry, 1), 1);
       +                        continue;
                        case _key_pgdown:
                        pgdown:
                                jumptoline(entry, dir->printoff + plines, 0);
       t@@ -406,6 +428,9 @@ uiselectitem(Item *entry)
                        lnup:
                                movecurline(entry, -1);
                                continue;
       +                case _key_entryup:
       +                        jumptoline(entry, nearentry(entry, -1), 1);
       +                        continue;
                        case _key_pgup:
                        pgup:
                                jumptoline(entry, dir->printoff - plines, 0);