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