aboutsummaryrefslogtreecommitdiffstats
path: root/awk.h
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2017-03-20 21:15:03 +0200
committerArnold D. Robbins <arnold@skeeve.com>2017-03-20 21:15:03 +0200
commit7ec5068a7419cc4dddcf7e060077a1287217c5cd (patch)
tree9369b5591ddb5f0a48421b1b82abd4b02674195b /awk.h
parentde684770acc545bf14f85655d44fe91e9afa0ba3 (diff)
downloadegawk-7ec5068a7419cc4dddcf7e060077a1287217c5cd.tar.gz
egawk-7ec5068a7419cc4dddcf7e060077a1287217c5cd.tar.bz2
egawk-7ec5068a7419cc4dddcf7e060077a1287217c5cd.zip
Improve handling of EPIPE and fflush.
Diffstat (limited to 'awk.h')
-rw-r--r--awk.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/awk.h b/awk.h
index aae5e7ec..163ad362 100644
--- a/awk.h
+++ b/awk.h
@@ -1584,6 +1584,10 @@ extern bool inrec(IOBUF *iop, int *errcode);
extern int nextfile(IOBUF **curfile, bool skipping);
extern bool is_non_fatal_std(FILE *fp);
extern bool is_non_fatal_redirect(const char *str, size_t len);
+extern void ignore_sigpipe(void);
+extern void set_sigpipe_to_default(void);
+extern bool non_fatal_flush_std_file(FILE *fp);
+
/* main.c */
extern int arg_assign(char *arg, bool initing);
extern int is_std_var(const char *var);
@@ -1958,3 +1962,11 @@ erealloc_real(void *ptr, size_t count, const char *where, const char *var, const
return ret;
}
+
+#ifdef SIGPIPE
+#define ignore_sigpipe() signal(SIGPIPE, SIG_IGN)
+#define set_sigpipe_to_default() signal(SIGPIPE, SIG_DFL)
+#else
+#define ignore_sigpipe()
+#define set_sigpipe_to_default()
+#endif