[x] convert to C program instead of shell script,
    + make it exec into lwl instead of calling it via a shell
[x] Find/implement a gopher client + digester

[ ] figure out how to deal with retrieved filenames accurately
    - gopher, you can use the selector (i think..?)
    - http/https, it's a messy part of the protocol. Which sucks a lot :(

[ ] Use temporary files for saving any files
    - use open() with O_TMPFILE 
    - session dir default in config.h is /tmp,
      or specified with -C (standard flag for this)

[ ] Use tmpfiles for session history
    - keep all pages in the current session saved to files under a tmp dir (?)
                                                   *or w tmp filename prefix?
    - with a "session" file that lists them in order, newline-separated?
      (we gucci, the max number is like 600,000 (/proc/sys/fs/file-max))
    still need to work out a few details on this....

[ ] Use a more suckless HTTP/HTTPS implementation than wget
    -> perhaps hurl? Shorter, but kinda ugly of code
     + doesn't actually implement important http things, like redirects.

[/] interpret protocol + viewer from URI
    [x] Default to "file" scheme when no url is provided
    [x] file: try to open local file relative to pwd
    [x] http,https: download with wget
    [ ] ftp?
    [x] gopher: TODO.... make "wget but for gopher"? (A: hurl, for now...)

[ ] (ACTUALLY) determine filetype and determine behavior based on that
    [ ] .html: digest then view with lwl
    [ ] .gph: digest then view with lwl
    [ ] .txt/.md/(no ext): view directly with lwl/less
    [ ] .png/.jpg/etc: use feh? (as an example, not in my config)

[ ] extract scheme- and extension-based behavior into config.h
