Skip to content

Commit

Permalink
Merge pull request #366 from olebole/purge-on-ctrlc
Browse files Browse the repository at this point in the history
Use fpurge/__fpurge to cancel buffered output
  • Loading branch information
olebole committed Jan 29, 2024
2 parents de4e326 + fe2334c commit 3b72208
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions unix/os/zxwhen.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
*/

#include <stdio.h>
#ifdef __GLIBC__
#include <stdio_ext.h>
#endif
#include <signal.h>

#include <math.h>
Expand Down Expand Up @@ -32,8 +35,10 @@ int debug_sig = 0;
/* If the OS allows, cancel any buffered output. If the OS doesn't,
* do nothing.
*/
#ifdef __APPLE__
#define fcancel(fp) ((fp)->_r = (fp)->_w = 0)
#if defined(__APPLE__) || defined(BSD) || defined(__USE_BSD)
#define fcancel(fp) (void)fpurge(fp)
#elif defined(__GLIBC__)
#define fcancel(fp) __fpurge(fp)
#else
#define fcancel(fp)
#endif
Expand Down

0 comments on commit 3b72208

Please # to comment.