it* sacc + cursorline and uri preview Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/sacc-sdk URL:git://git.codevoid.de/sacc-sdk codevoid.de 70 1Log /git/sacc-sdk/log.gph codevoid.de 70 1Files /git/sacc-sdk/files.gph codevoid.de 70 1Refs /git/sacc-sdk/refs.gph codevoid.de 70 1LICENSE /git/sacc-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit df00adaaab6055bb54114462d6b219dbefc34e9f /git/sacc-sdk/commit/df00adaaab6055bb54114462d6b219dbefc34e9f.gph codevoid.de 70 1parent 9f28e4b1417e9623801170c697cc00435eb1b9b0 /git/sacc-sdk/commit/9f28e4b1417e9623801170c697cc00435eb1b9b0.gph codevoid.de 70 hAuthor: Quentin Rameau URL:mailto:quinq@fifth.space codevoid.de 70 iDate: Tue, 26 Sep 2017 18:16:11 +0200 Err codevoid.de 70 i Err codevoid.de 70 iHandle output redirection to a pipe Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M sacc.c | 51 +++++++++++++++++++++++++++++-- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 48 insertions(+), 3 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/sacc.c b/sacc.c /git/sacc-sdk/file/sacc.c.gph codevoid.de 70 it@@ -27,6 +27,7 @@ static char *mainurl; Err codevoid.de 70 i static Item *mainentry; Err codevoid.de 70 i static int devnullfd; Err codevoid.de 70 i static int parent = 1; Err codevoid.de 70 i+static int interactive; Err codevoid.de 70 i Err codevoid.de 70 i void Err codevoid.de 70 i die(const char *fmt, ...) Err codevoid.de 70 it@@ -168,6 +169,25 @@ typedisplay(char t) Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i static void Err codevoid.de 70 i+printdir(Item *item) Err codevoid.de 70 i+{ Err codevoid.de 70 i+ Dir *dir; Err codevoid.de 70 i+ Item *items; Err codevoid.de 70 i+ size_t i, nitems; Err codevoid.de 70 i+ Err codevoid.de 70 i+ if (!item || !(dir = item->dat)) Err codevoid.de 70 i+ return; Err codevoid.de 70 i+ Err codevoid.de 70 i+ items = dir->items; Err codevoid.de 70 i+ nitems = dir->nitems; Err codevoid.de 70 i+ Err codevoid.de 70 i+ for (i = 0; i < nitems; ++i) { Err codevoid.de 70 i+ printf("%s%s\n", Err codevoid.de 70 i+ typedisplay(items[i].type), items[i].username); Err codevoid.de 70 i+ } Err codevoid.de 70 i+} Err codevoid.de 70 i+ Err codevoid.de 70 i+static void Err codevoid.de 70 i displaytextitem(Item *item) Err codevoid.de 70 i { Err codevoid.de 70 i FILE *pagerin; Err codevoid.de 70 it@@ -626,6 +646,26 @@ searchitem(Item *entry, Item *item) Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i static void Err codevoid.de 70 i+printout(Item *hole) Err codevoid.de 70 i+{ Err codevoid.de 70 i+ if (!hole) Err codevoid.de 70 i+ return; Err codevoid.de 70 i+ Err codevoid.de 70 i+ switch (hole->type) { Err codevoid.de 70 i+ case '0': Err codevoid.de 70 i+ if (dig(hole, hole)) Err codevoid.de 70 i+ puts(hole->raw); Err codevoid.de 70 i+ return; Err codevoid.de 70 i+ case '1': Err codevoid.de 70 i+ case '+': Err codevoid.de 70 i+ if (dig(hole, hole)) Err codevoid.de 70 i+ printdir(hole); Err codevoid.de 70 i+ default: Err codevoid.de 70 i+ return; Err codevoid.de 70 i+ } Err codevoid.de 70 i+} Err codevoid.de 70 i+ Err codevoid.de 70 i+static void Err codevoid.de 70 i delve(Item *hole) Err codevoid.de 70 i { Err codevoid.de 70 i Item *entry = NULL; Err codevoid.de 70 it@@ -732,7 +772,8 @@ cleanup(void) Err codevoid.de 70 i rmdir(tmpdir); Err codevoid.de 70 i free(mainentry); Err codevoid.de 70 i free(mainurl); Err codevoid.de 70 i- uicleanup(); Err codevoid.de 70 i+ if (interactive) Err codevoid.de 70 i+ uicleanup(); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i static void Err codevoid.de 70 it@@ -752,7 +793,8 @@ setup(void) Err codevoid.de 70 i die("open: /dev/null: %s", strerror(errno)); Err codevoid.de 70 i if (mkdir(tmpdir, S_IRWXU) < 0 && errno != EEXIST) Err codevoid.de 70 i die("mkdir: %s: %s", tmpdir, strerror(errno)); Err codevoid.de 70 i- uisetup(); Err codevoid.de 70 i+ if(interactive = isatty(1)) Err codevoid.de 70 i+ uisetup(); Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i int Err codevoid.de 70 it@@ -766,7 +808,10 @@ main(int argc, char *argv[]) Err codevoid.de 70 i mainurl = xstrdup(argv[1]); Err codevoid.de 70 i Err codevoid.de 70 i mainentry = moldentry(mainurl); Err codevoid.de 70 i- delve(mainentry); Err codevoid.de 70 i+ if (interactive) Err codevoid.de 70 i+ delve(mainentry); Err codevoid.de 70 i+ else Err codevoid.de 70 i+ printout(mainentry); Err codevoid.de 70 i Err codevoid.de 70 i exit(0); Err codevoid.de 70 i } Err codevoid.de 70 .