From 73385ba764ef4d614717a7403bd5d082f4ab3e34 Mon Sep 17 00:00:00 2001 From: Lukas Mai Date: Sun, 4 Feb 2018 09:56:17 +0100 Subject: [PATCH] unibi-dump: accept a filename as argument --- tools/unibi-dump.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tools/unibi-dump.c b/tools/unibi-dump.c index cb086e4..3137b47 100644 --- a/tools/unibi-dump.c +++ b/tools/unibi-dump.c @@ -30,6 +30,9 @@ THE SOFTWARE. #include #include +#include +#include +#include static void print_str_esc(const char *s) { if (!s) { @@ -58,10 +61,26 @@ static void print_str_esc(const char *s) { } } -int main(void) { - unibi_term *const ut = unibi_from_env(); +static unibi_term *get_term(const char *s) { + unibi_term *ut; + if (s) { + ut = unibi_from_file(s); + if (!ut) { + fprintf(stderr, "unibi_from_file(): %s: %s\n", s, strerror(errno)); + } + } else { + ut = unibi_from_env(); + if (!ut) { + const char *name = getenv("TERM"); + fprintf(stderr, "unibi_from_env(): %s: %s\n", name ? name : "(null)", strerror(errno)); + } + } + return ut; +} + +int main(int argc, char **argv) { + unibi_term *const ut = get_term(argc > 1 ? argv[1] : NULL); if (!ut) { - perror("unibi_from_env"); return 1; }