From fdc110e05f1ede1746f68907aeeaf281d586af64 Mon Sep 17 00:00:00 2001 From: cgf Date: Sat, 28 Oct 2000 00:21:41 +0000 Subject: [PATCH] * strace.cc (main): Add a '-b' option. --- winsup/utils/ChangeLog | 4 ++++ winsup/utils/strace.cc | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index ccecec9a16..8896bcb88d 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,7 @@ +Fri Oct 27 20:20:29 2000 Christopher Faylor + + * strace.cc (main): Add a '-b' option. + 2000-10-18 DJ Delorie * ssp.c: new diff --git a/winsup/utils/strace.cc b/winsup/utils/strace.cc index 28067214b9..334a148d5d 100644 --- a/winsup/utils/strace.cc +++ b/winsup/utils/strace.cc @@ -23,6 +23,7 @@ static int numerror = 1; static int usecs = 1; static int delta = 1; static int hhmmss = 0; +static int bufsize = 0; static BOOL close_handle (HANDLE h, DWORD ok); @@ -492,7 +493,8 @@ handle_output_debug_string (DWORD id, LPVOID p, unsigned mask, FILE *ofile) child->last_usecs = usecs; if (numerror || !output_winerror (ofile, s)) fputs (s, ofile); - fflush (ofile); + if (!bufsize) + fflush (ofile); } static void @@ -575,12 +577,15 @@ main(int argc, char **argv) else pgm++; - while ((opt = getopt (argc, argv, "m:o:fndut")) != EOF) + while ((opt = getopt (argc, argv, "b:m:o:fndut")) != EOF) switch (opt) { case 'f': forkdebug ^= 1; break; + case 'b': + bufsize = atoi (optarg); + break; case 'm': mask = strtoul (optarg, NULL, 16); break; @@ -607,6 +612,9 @@ main(int argc, char **argv) if (!mask) mask = 1; + if (bufsize) + setvbuf (ofile, (char *) alloca (bufsize), _IOFBF, bufsize); + if (!ofile) ofile = stdout; -- 2.11.0