bin/stty/util.c
/*
 * Gross, but since we're changing the control descriptor from 1 to 0, most
 * users will be probably be doing "stty > /dev/sometty" by accident.  If 1
 * and 2 are both ttys, but not the same, assume that 1 was incorrectly
 * redirected.
 */
Gross, but since we're changing the control descriptor from 1 to 0, most
users will be probably be doing "stty > /dev/sometty" by accident.  If 1
and 2 are both ttys, but not the same, assume that 1 was incorrectly
redirected.
Gross but since we ' re changing the control descriptor from 1 to 0 most users will be probably be doing " stty > / dev / sometty " by accident . If 1 and 2 are both ttys but not the same assume that 1 was incorrectly redirected .
void
checkredirect()
{
	struct stat sb1, sb2;
	if (isatty(STDOUT_FILENO) && isatty(STDERR_FILENO) &&
	    !fstat(STDOUT_FILENO, &sb1) && !fstat(STDERR_FILENO, &sb2) &&
	    (sb1.st_rdev != sb2.st_rdev))
warn("stdout appears redirected, but stdin is the control descriptor");
}
void checkredirect ( ) { struct stat sb1 , sb2 ; if ( isatty ( STDOUT_FILENO ) && isatty ( STDERR_FILENO ) && ! fstat ( STDOUT_FILENO , & sb1 ) && ! fstat ( STDERR_FILENO , & sb2 ) && ( sb1 . st_rdev != sb2 . st_rdev ) ) warn ( " " ) ; }
Gross, but since we're changing the control descriptor from 1 to 0, most
 users will be probably be doing "stty > /dev/sometty" by accident.
Gross but since we ' re changing the control descriptor from 1 to 0 most users will be probably be doing " stty > / dev / sometty " by accident .