aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2018-01-22 21:38:54 +0200
committerArnold D. Robbins <arnold@skeeve.com>2018-01-22 21:38:54 +0200
commitdf879c99ee77225dae7d75a7b7783224941a1e99 (patch)
treeab09a0278581cebdadbc02ab802b7afe13395944 /main.c
parent49194a4b354f7187a6089cb2700f7025db51439a (diff)
downloadegawk-df879c99ee77225dae7d75a7b7783224941a1e99.tar.gz
egawk-df879c99ee77225dae7d75a7b7783224941a1e99.tar.bz2
egawk-df879c99ee77225dae7d75a7b7783224941a1e99.zip
Fix inplace tests on BSD systems.
Diffstat (limited to 'main.c')
-rw-r--r--main.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main.c b/main.c
index 55983789..79782a81 100644
--- a/main.c
+++ b/main.c
@@ -246,6 +246,14 @@ main(int argc, char **argv)
if ((cp = getenv("GAWK_LOCALE_DIR")) != NULL)
locale_dir = cp;
+#if defined(F_GETFL) && defined(O_APPEND)
+ int flags = fcntl(fileno(stderr), F_GETFL, NULL);
+ if (flags >= 0 && (flags & O_APPEND) == 0) {
+ flags |= O_APPEND;
+ (void) fcntl(fileno(stderr), F_SETFL, flags);
+ }
+#endif
+
#if defined(LOCALEDEBUG)
initial_locale = locale;
#endif