X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=src%2Ftrackfds.h;h=614b4bf8a0fb1d3181a57199133761339959f455;hb=73870d5ed5fc275c462eefff724e3b26502ce26a;hp=378c32719cba9caa8f65f2770197d53407adef0e;hpb=abc3d7889f3774717baf5795ffab2efb396d2570;p=coloredstderr%2Fcoloredstderr.git diff --git a/src/trackfds.h b/src/trackfds.h index 378c327..614b4bf 100644 --- a/src/trackfds.h +++ b/src/trackfds.h @@ -34,9 +34,19 @@ static size_t tracked_fds_space; * ENV_NAME_FDS has the following format: Each descriptor as string followed * by a comma; there's a trailing comma. Example: "2,4,". */ static void init_from_environment(void) { + const char *env; + + initialized = 1; tracked_fds_count = 0; - const char *env = getenv(ENV_NAME_FDS); + /* If ENV_NAME_FORCE_WRITE is set and not empty, allow writes to a non-tty + * device. Use with care! Mainly used for the test suite. */ + env = getenv(ENV_NAME_FORCE_WRITE); + if (env && env[0] != '\0') { + force_write_to_non_tty = 1; + } + + env = getenv(ENV_NAME_FDS); if (!env) { return; } @@ -117,8 +127,9 @@ static void update_environment(void) { #ifdef DEBUG -static void tracked_fds_debug() { - debug("tracked_fds: %d/%d\n", tracked_fds_count, tracked_fds_space); +static void tracked_fds_debug(void) { + debug("tracked_fds: %d/%d\t[%d]\n", tracked_fds_count, tracked_fds_space, + getpid()); size_t i; for (i = 0; i < tracked_fds_count; i++) { debug("tracked_fds[%d]: %d\n", i, tracked_fds[i]);