X-Git-Url: https://ruderich.org/simon/gitweb/?p=coloredstderr%2Fcoloredstderr.git;a=blobdiff_plain;f=src%2Fcoloredstderr.c;h=727c580895b7814d18bba43ec832e905ba7ff6b4;hp=72a881fb866ab12e0e92188c58456e4e2979c1a7;hb=86352712fdc5fa08777eca1458f4ef6bbe579e7b;hpb=0a2617527c9b46a587a8f34571a54347cd5c4b5a diff --git a/src/coloredstderr.c b/src/coloredstderr.c index 72a881f..727c580 100644 --- a/src/coloredstderr.c +++ b/src/coloredstderr.c @@ -64,6 +64,19 @@ static int force_write_to_non_tty; /* See hookmacros.h for the decision if a function call is colored. */ +/* Prevent inlining into hook functions because it may increase the number of + * spilled registers unnecessarily. As it's not called very often accept the + * additional call. */ +static int isatty_noinline(int fd) __noinline; +static int isatty_noinline(int fd) { + int saved_errno = errno; + int result = isatty(fd); + errno = saved_errno; + + return result; +} + + static void dup_fd(int oldfd, int newfd) { #ifdef DEBUG debug("%3d -> %3d\t\t\t[%d]\n", oldfd, newfd, getpid());