From 3ccbaef87bb70273a6181b298aee01b0cb1f29ab Mon Sep 17 00:00:00 2001 From: sin Date: Thu, 10 Mar 2016 17:00:12 +0000 Subject: [PATCH] Fix initscr() crash on NetBSD NetBSD has its own curses implementation and initscr() does not terminate with an error if TERM is not set properly. Instead check the return value and exit if an initialization error occurs. --- noice.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/noice.c b/noice.c index 489caabe..a588a55c 100644 --- a/noice.c +++ b/noice.c @@ -257,7 +257,16 @@ entrycmp(const void *va, const void *vb) void initcurses(void) { - initscr(); + char *term; + + if (initscr() == NULL) { + term = getenv("TERM"); + if (term != NULL) + fprintf(stderr, "error opening terminal: %s\n", term); + else + fprintf(stderr, "failed to initialize curses\n"); + exit(1); + } cbreak(); noecho(); nonl();