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 96fd418befb74178138958e4803b35d2fc06c7a9
   DIR parent bbbcf8c9652404e8f9b01ff92e9bbeaf8e3a4bb2
   URI Author: Quentin Rameau <quinq@fifth.space>
       Date:   Thu, 22 Jun 2017 14:30:53 +0200
       
       Copy cmdline in main rather than in moldentry
       
       We would lose raw when fetching the item, and the logic of having
       connection data inside the parent is preserved
       
       Diffstat:
         M sacc.c                              |      31 ++++++++++++++++---------------
       
       1 file changed, 16 insertions(+), 15 deletions(-)
       ---
   DIR diff --git a/sacc.c b/sacc.c
       t@@ -375,17 +375,15 @@ delve(Item *hole)
        }
        
        Item *
       -parseurl(const char *URL)
       +moldentry(char *url)
        {
       -        Item *hole;
       -        char *p, *url, *host, *port = "gopher", *gopherpath = "1";
       +        Item *entry;
       +        char *p, *host = url, *port = "gopher", *gopherpath = "1";
                int parsed, ipv6;
        
       -        host = url = xstrdup(URL);
       -
                if (p = strstr(url, "://")) {
                        if (strncmp(url, "gopher", p - url))
       -                        die("Protocol not supported: %.*s (%s)", p - url, url, URL);
       +                        die("Protocol not supported: %.*s", p - url, url);
                        host = p + 3;
                }
        
       t@@ -419,20 +417,19 @@ parseurl(const char *URL)
                }
        
                if (*host == '\0' || *port == '\0' || ipv6)
       -                die("Can't parse url: %s", URL);
       +                die("Can't parse url");
        
                if (gopherpath[0] > '1')
       -                die("Gopher type not supported: %s (%s)",
       -                    typedisplay(gopherpath[0]), URL);
       -
       +                die("Gopher type not supported: %s",
       +                    typedisplay(gopherpath[0]));
        
                entry = xmalloc(sizeof(Item));
       -        entry->raw = url;
                entry->type = gopherpath[0];
                entry->username = entry->selector = ++gopherpath;
                entry->host = host;
                entry->port = port;
                entry->entry = entry;
       +        entry->raw = NULL;
                entry->dir = NULL;
        
                return entry;
       t@@ -441,15 +438,19 @@ parseurl(const char *URL)
        int
        main(int argc, char *argv[])
        {
       -        Item *hole;
       +        Item *entry;
       +        char *url;
        
                if (argc != 2)
                        usage();
        
       -        hole = parseurl(argv[1]);
       +        url = xstrdup(argv[1]);
       +
       +        entry = moldentry(url);
       +        delve(entry);
        
       -        delve(hole);
       -        free(hole); /* TODO free all tree recursively */
       +        free(entry); /* TODO free all tree recursively */
       +        free(url);
        
                return 0;
        }