From 31a7776de7ef59b3018fafa6cb6ced6e730bcd10 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Sun, 25 Feb 2018 23:47:03 -0500 Subject: Remove winch --- winch.c | 57 --------------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 winch.c (limited to 'winch.c') diff --git a/winch.c b/winch.c deleted file mode 100644 index be63c52..0000000 --- a/winch.c +++ /dev/null @@ -1,57 +0,0 @@ -/* Copyright (c) 2018, Curtis McEnroe - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#include -#include -#include -#include -#include -#include - -static struct { - int read; - int write; -} fd; - -static void sigwinch() { - struct winsize window; - int error = ioctl(STDERR_FILENO, TIOCGWINSZ, &window); - if (error) err(EX_IOERR, "TIOCGWINSZ"); - - ssize_t size = write(fd.write, &window, sizeof(window)); - if (size < 0) err(EX_IOERR, "write(%d)", fd.write); - if ((size_t)size < sizeof(window)) errx(EX_IOERR, "short write(%d)", fd.write); -} - -int winch(void) { - int error = pipe((int *)&fd); - if (error) err(EX_OSERR, "pipe"); - - error = fcntl(fd.read, F_SETFD, FD_CLOEXEC); - if (error) err(EX_IOERR, "fcntl"); - - error = fcntl(fd.write, F_SETFD, FD_CLOEXEC); - if (error) err(EX_IOERR, "fcntl"); - - struct sigaction action = { - .sa_handler = sigwinch, - .sa_flags = SA_RESTART, - }; - error = sigaction(SIGWINCH, &action, NULL); - if (error) err(EX_OSERR, "sigaction"); - - return fd.read; -} -- cgit 1.4.1