Add ENV_NAME_FORCE_WRITE to force writes to non-tty devices.

This commit is contained in:
Simon Ruderich
2013-06-01 21:13:23 +02:00
parent 7d4d8e0784
commit 96710bc3fa
3 changed files with 19 additions and 6 deletions

View File

@@ -42,6 +42,8 @@ static size_t (*real_fwrite)(const void *, size_t, size_t, FILE *);
/* Did we already (try to) parse the environment and setup the necessary
* variables? */
static int initialized;
/* Force hooked writes even when not writing to a tty. Used for tests. */
static int force_write_to_non_tty;
#include "constants.h"
@@ -56,16 +58,17 @@ static int initialized;
/* Should the "action" handler be invoked for this file descriptor? */
static int check_handle_fd(int fd) {
/* Never touch anything not going to a terminal. */
if (!isatty(fd)) {
return 0;
}
/* Load state from environment. Only necessary once per process. */
if (!initialized) {
init_from_environment();
}
/* Never touch anything not going to a terminal - unless we are explicitly
* asked to do so. */
if (!force_write_to_non_tty && !isatty(fd)) {
return 0;
}
if (tracked_fds_count == 0) {
return 0;
}