From 309d211cdee3c5661a0a6e1941979fe4501ed624 Mon Sep 17 00:00:00 2001 From: nick black Date: Sun, 13 Jun 2021 16:42:26 -0400 Subject: [PATCH] termdesc: only bounce back to cbreak if fd >= 0 #1469 --- src/lib/termdesc.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib/termdesc.c b/src/lib/termdesc.c index c5d2e653f..203dfbd01 100644 --- a/src/lib/termdesc.c +++ b/src/lib/termdesc.c @@ -398,7 +398,7 @@ int interrogate_terminfo(tinfo* ti, int fd, const char* termname, unsigned utf8, } } if(ncinputlayer_init(ti, stdin)){ - return -1; + goto err; } // our current sixel quantization algorithm requires at least 64 color // registers. we make use of no more than 256. @@ -406,11 +406,15 @@ int interrogate_terminfo(tinfo* ti, int fd, const char* termname, unsigned utf8, setup_sixel_bitmaps(ti); } if(!nocbreak){ - if(tcsetattr(fd, TCSANOW, &ti->tpreserved)){ - return -1; + if(fd >= 0){ + if(tcsetattr(fd, TCSANOW, &ti->tpreserved)){ + ncinputlayer_stop(&ti->input); + goto err; + } } } if(apply_term_heuristics(ti, termname, fd)){ + ncinputlayer_stop(&ti->input); goto err; } return 0;