diff options
author | ache <ache@FreeBSD.org> | 1994-12-30 16:09:31 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-12-30 16:09:31 +0000 |
commit | 319b403916158fbde498b6bd5e494ad91a122c22 (patch) | |
tree | 67041f45827a69bcfaf475609076a8fff174fc9f /usr.bin/talk/init_disp.c | |
parent | 25a5fb98620fbab0b47cd399913603405728819d (diff) | |
download | FreeBSD-src-319b403916158fbde498b6bd5e494ad91a122c22.zip FreeBSD-src-319b403916158fbde498b6bd5e494ad91a122c22.tar.gz |
Add check for writeable terminal
Submitted by: mark@grondar.za (and slightly modified)
Diffstat (limited to 'usr.bin/talk/init_disp.c')
-rw-r--r-- | usr.bin/talk/init_disp.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/usr.bin/talk/init_disp.c b/usr.bin/talk/init_disp.c index 5bebcd8..ee99556 100644 --- a/usr.bin/talk/init_disp.c +++ b/usr.bin/talk/init_disp.c @@ -42,12 +42,31 @@ static char sccsid[] = "@(#)init_disp.c 8.2 (Berkeley) 2/16/94"; #include <sys/ioctl.h> #include <sys/ioctl_compat.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> #include <signal.h> #include <err.h> #include "talk.h" /* + * Make sure the callee can write to the screen + */ +void check_writeable() +{ + char *tty; + struct stat sb; + + if ((tty = ttyname(STDERR_FILENO)) == NULL) + err(1, "ttyname"); + if (stat(tty, &sb) < 0) + err(1, "%s", tty); + if (!(sb.st_mode & S_IWGRP)) + errx(1, "The callee cannot write to this terminal, use \"mesg y\"."); +} + +/* * Set up curses, catch the appropriate signals, * and build the various windows. */ |