From 33df19541aabc8879f0892c5dcbdcd75ecce3281 Mon Sep 17 00:00:00 2001 From: Nick Downing Date: Mon, 30 Jan 2017 18:56:32 +1100 Subject: [PATCH] Change isatty() emulation to (incomplete) TIOCGETP emulation, so sh displays $ --- include/stdio.h | 2 +- lib/libc/linux/sys/Makefile | 4 ++-- lib/libc/linux/sys/ioctl.c | 10 ++++++++++ lib/libc/linux/sys/isatty.c | 15 --------------- 4 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 lib/libc/linux/sys/isatty.c diff --git a/include/stdio.h b/include/stdio.h index a61197e..fe550b1 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -92,7 +92,7 @@ extern struct _iobuf { /*int clearerr __P((register FILE *iop));*/ /* stdio/doprnt.c */ -int _doprnt __P((u_char *fmt0, va_list argp, register FILE *fp)); +int _doprnt __P((char *fmt, va_list argp, register FILE *fp)); /* stdio/doscan.c */ int _doscan __P((FILE *iop, register char *fmt, register va_list argp)); diff --git a/lib/libc/linux/sys/Makefile b/lib/libc/linux/sys/Makefile index 5250aa6..6f1e8eb 100644 --- a/lib/libc/linux/sys/Makefile +++ b/lib/libc/linux/sys/Makefile @@ -10,14 +10,14 @@ LD=ld SRCS= chmod.c chown.c close.c dup2.c dup.c _exit.c fchmod.c fchown.c \ fstat.c ftruncate.c getdtablesize.c getegid.c geteuid.c getgid.c \ getpagesize.c getpgrp.c getpid.c getppid.c gettimeofday.c getuid.c \ - ioctl.c isatty.c link.c linux.c lseek.c lstat.c read.c readv.c sbrk.c \ + ioctl.c link.c linux.c lseek.c lstat.c read.c readv.c sbrk.c \ setpgrp.c setregid.c setreuid.c settimeofday.c sigvec.c stat.c \ symlink.c sync.c truncate.c umask.c unlink.c vopen.c write.c writev.c OBJS= chmod.o chown.o close.o dup2.o dup.o _exit.o fchmod.o fchown.o \ fstat.o ftruncate.o getdtablesize.o getegid.o geteuid.o getgid.o \ getpagesize.o getpgrp.o getpid.o getppid.o gettimeofday.o getuid.o \ - ioctl.o isatty.o link.o linux.o lseek.o lstat.o read.o readv.o sbrk.o \ + ioctl.o link.o linux.o lseek.o lstat.o read.o readv.o sbrk.o \ setpgrp.o setregid.o setreuid.o settimeofday.o sigvec.o stat.o \ symlink.o sync.o truncate.o umask.o unlink.o vopen.o write.o writev.o TAGSFILE=tags diff --git a/lib/libc/linux/sys/ioctl.c b/lib/libc/linux/sys/ioctl.c index 81fd9ea..c0e825c 100644 --- a/lib/libc/linux/sys/ioctl.c +++ b/lib/libc/linux/sys/ioctl.c @@ -1,7 +1,9 @@ #include #include #include +#include +#include #include #include #include @@ -9,6 +11,14 @@ int ioctl(d, r, p) int d; u_long r; void *p; { switch (r) { + case TIOCGETP: + if (!nox_isatty((nox_int)d)) { + errno = ENOTTY; + return -1; + } + /* just fake success for now */ + bzero(p, sizeof(struct sgttyb)); + return 0; case TIOCGWINSZ: { struct nox_winsize ws; if (nox_ioctl((nox_int)d, nox_TIOCGWINSZ, &ws)) { diff --git a/lib/libc/linux/sys/isatty.c b/lib/libc/linux/sys/isatty.c deleted file mode 100644 index 9eb4727..0000000 --- a/lib/libc/linux/sys/isatty.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -#include -#include -#include "linux.h" - -int isatty(f) int f; { - nox_int res; - - res = nox_isatty(f); - if (res == (nox_int)-1) - errno = htot_errno(nox_errno); - return (int)res; -} -- 2.34.1