diff options
author | June McEnroe <programble@gmail.com> | 2018-02-25 23:47:03 -0500 |
---|---|---|
committer | June McEnroe <programble@gmail.com> | 2018-02-25 23:47:03 -0500 |
commit | 31a7776de7ef59b3018fafa6cb6ced6e730bcd10 (patch) | |
tree | cdd9c314efaccc83e533a55321a230a7b3330267 | |
parent | Echo at end of output (diff) | |
download | stream-31a7776de7ef59b3018fafa6cb6ced6e730bcd10.tar.gz stream-31a7776de7ef59b3018fafa6cb6ced6e730bcd10.zip |
Remove winch
Diffstat (limited to '')
-rw-r--r-- | winch.c | 57 |
1 files changed, 0 insertions, 57 deletions
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 <programble@gmail.com> - * - * 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 <http://www.gnu.org/licenses/>. - */ - -#include <err.h> -#include <fcntl.h> -#include <signal.h> -#include <sys/ioctl.h> -#include <sysexits.h> -#include <unistd.h> - -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; -} |