avoid setting errno when checking for tty
authorRich Felker <dalias@aerifal.cx>
Fri, 15 Apr 2011 16:04:13 +0000 (12:04 -0400)
committerRich Felker <dalias@aerifal.cx>
Fri, 15 Apr 2011 16:04:13 +0000 (12:04 -0400)
setting errno here is completely valid, but some programs, notably
busybox printf, assume that errno will not be set during output and
treat this as an error condition. in any case, skipping it slightly
reduces code size and saves time.

src/stdio/__fdopen.c
src/stdio/__stdout_write.c

index 235d348fa201f658a784aaa0a116620eedf353ce..a01026741bb93d2b864a081210b30a50fe784580 100644 (file)
@@ -30,7 +30,7 @@ FILE *__fdopen(int fd, const char *mode)
 
        /* Activate line buffered mode for terminals */
        f->lbf = EOF;
-       if (!(f->flags & F_NOWR) && !syscall(SYS_ioctl, fd, TCGETS, &tio))
+       if (!(f->flags & F_NOWR) && !__syscall(SYS_ioctl, fd, TCGETS, &tio))
                f->lbf = '\n';
 
        /* Initialize op ptrs. No problem if some are unneeded. */
index 4683ffc3b0059c2a5966144d70e0934e2a743db5..0cf7123606ec1f69c563df4f05e19647ac02e87b 100644 (file)
@@ -4,7 +4,7 @@ size_t __stdout_write(FILE *f, const unsigned char *buf, size_t len)
 {
        struct termios tio;
        f->write = __stdio_write;
-       if (!(f->flags & F_SVB) && syscall(SYS_ioctl, f->fd, TCGETS, &tio))
+       if (!(f->flags & F_SVB) && __syscall(SYS_ioctl, f->fd, TCGETS, &tio))
                f->lbf = -1;
        return __stdio_write(f, buf, len);
 }