SMOLNET PORTAL home about changes
isigwinch - iomenu - interactive terminal-based selection menu	Err	bitreich.org	70
hgit clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu	URL:git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu	bitreich.org	70
1Log	/scm/iomenu/log.gph	bitreich.org	70
1Files	/scm/iomenu/files.gph	bitreich.org	70
1Refs	/scm/iomenu/refs.gph	bitreich.org	70
1Tags	/scm/iomenu/tag	bitreich.org	70
1README	/scm/iomenu/file/README.gph	bitreich.org	70
1LICENSE	/scm/iomenu/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 4a488ca1bbb3bf794bccdd502c5c64173f4b5bdb	/scm/iomenu/commit/4a488ca1bbb3bf794bccdd502c5c64173f4b5bdb.gph	bitreich.org	70
1parent 4ce5703054613b342e3bc0fb1b1d35f510984fbd	/scm/iomenu/commit/4ce5703054613b342e3bc0fb1b1d35f510984fbd.gph	bitreich.org	70
hAuthor: Josuah Demangeon <josuah.demangeon@gandi.net>	URL:mailto:josuah.demangeon@gandi.net	bitreich.org	70
iDate:   Thu, 18 May 2017 11:53:32 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
isigwinch	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M iomenu.c                            |      22 +++++++++++++++++-----	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 17 insertions(+), 5 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/iomenu.c b/iomenu.c	/scm/iomenu/file/iomenu.c.gph	bitreich.org	70
i@@ -1,5 +1,6 @@	Err	bitreich.org	70
i #include <fcntl.h>	Err	bitreich.org	70
i #include <locale.h>	Err	bitreich.org	70
i+#include <signal.h>	Err	bitreich.org	70
i #include <stdio.h>	Err	bitreich.org	70
i #include <stdlib.h>	Err	bitreich.org	70
i #include <string.h>	Err	bitreich.org	70
i@@ -58,10 +59,6 @@ set_terminal(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         struct termios new;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        /* get window size */	Err	bitreich.org	70
i-        if (ioctl(tty_fd, TIOCGWINSZ, &ws) < 0)	Err	bitreich.org	70
i-                die("ioctl");	Err	bitreich.org	70
i-	Err	bitreich.org	70
i         /* save cursor postition */	Err	bitreich.org	70
i         fputs("\033[s", stderr);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -434,7 +431,6 @@ input_get(void)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         input[0] = '\0';	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        print_screen();	Err	bitreich.org	70
i         while ((exit_code = input_key()) == CONTINUE)	Err	bitreich.org	70
i                 print_screen();	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -445,6 +441,21 @@ input_get(void)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i 	Err	bitreich.org	70
i static void	Err	bitreich.org	70
i+sigwinch()	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        extern struct winsize ws;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        /* get window size */	Err	bitreich.org	70
i+        if (ioctl(tty_fd, TIOCGWINSZ, &ws) < 0)	Err	bitreich.org	70
i+                die("ioctl");	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        print_screen();	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        signal(SIGWINCH, sigwinch);	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+static void	Err	bitreich.org	70
i usage(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         fprintf(stderr, "%s [-b] [-t] [-s] [-l lines] [-p prompt]\n", argv0);	Err	bitreich.org	70
i@@ -505,6 +516,7 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i         tty_fd =  open("/dev/tty", O_RDWR);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         set_terminal();	Err	bitreich.org	70
i+        sigwinch();	Err	bitreich.org	70
i         exit_code = input_get();  /* main loop */	Err	bitreich.org	70
i         reset_terminal();	Err	bitreich.org	70
i         close(tty_fd);	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/iomenu/commit/4a488ca1bbb3bf7...
Content-Typetext/plain; charset=utf-8