aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar sin <sin@2f30.org>2016-03-10 17:00:12 +0000
committerGravatar sin <sin@2f30.org>2016-03-10 17:03:12 +0000
commit3ccbaef87bb70273a6181b298aee01b0cb1f29ab (patch)
tree23a669c7af49ea4baf9b2f56b85c184368dbde90
parent829bcdd7d419b8e07d77edfa9b9878f0f399a99f (diff)
downloadnnn-3ccbaef87bb70273a6181b298aee01b0cb1f29ab.tar.gz
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.
-rw-r--r--noice.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/noice.c b/noice.c
index 489caab..a588a55 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();