ireset SIGWINCH when spawning a child program for displaying text items - sacc - sacc(omys), simple console gopher client Err bitreich.org 70 hgit clone git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sacc/ URL:git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sacc/ bitreich.org 70 1Log /scm/sacc/log.gph bitreich.org 70 1Files /scm/sacc/files.gph bitreich.org 70 1Refs /scm/sacc/refs.gph bitreich.org 70 1Tags /scm/sacc/tag bitreich.org 70 1LICENSE /scm/sacc/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 0573022ce4ceab92394c35c5701abe061f2ec35a /scm/sacc/commit/0573022ce4ceab92394c35c5701abe061f2ec35a.gph bitreich.org 70 1parent eae2a995544b2b48c3a7debcb186a00aa0c400b3 /scm/sacc/commit/eae2a995544b2b48c3a7debcb186a00aa0c400b3.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Wed, 26 May 2021 16:18:22 +0200 Err bitreich.org 70 i Err bitreich.org 70 ireset SIGWINCH when spawning a child program for displaying text items Err bitreich.org 70 i Err bitreich.org 70 iWhen opening a text item in the pager such as less and then resizing the Err bitreich.org 70 iterminal it would garble/overwrite the terminal output because sacc was Err bitreich.org 70 iredrawn. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M sacc.c | 11 +++++++++++ Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 11 insertions(+), 0 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/sacc.c b/sacc.c /scm/sacc/file/sacc.c.gph bitreich.org 70 i@@ -285,10 +285,17 @@ printdir(Item *item) Err bitreich.org 70 i static void Err bitreich.org 70 i displaytextitem(Item *item) Err bitreich.org 70 i { Err bitreich.org 70 i+ struct sigaction sa; Err bitreich.org 70 i FILE *pagerin; Err bitreich.org 70 i int pid, wpid; Err bitreich.org 70 i Err bitreich.org 70 i+ sigemptyset(&sa.sa_mask); Err bitreich.org 70 i+ sa.sa_flags = SA_RESTART; Err bitreich.org 70 i+ sa.sa_handler = SIG_DFL; Err bitreich.org 70 i+ sigaction(SIGWINCH, &sa, NULL); Err bitreich.org 70 i+ Err bitreich.org 70 i uicleanup(); Err bitreich.org 70 i+ Err bitreich.org 70 i switch (pid = fork()) { Err bitreich.org 70 i case -1: Err bitreich.org 70 i diag("Couldn't fork."); Err bitreich.org 70 i@@ -304,6 +311,10 @@ displaytextitem(Item *item) Err bitreich.org 70 i ; Err bitreich.org 70 i } Err bitreich.org 70 i uisetup(); Err bitreich.org 70 i+ Err bitreich.org 70 i+ sa.sa_handler = uisigwinch; Err bitreich.org 70 i+ sigaction(SIGWINCH, &sa, NULL); Err bitreich.org 70 i+ uisigwinch(SIGWINCH); /* force redraw */ Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i static char * Err bitreich.org 70 .