Date: Thu, 5 Dec 2013 01:44:24 +0000 (UTC) From: Tom Rhodes <trhodes@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r258955 - head/usr.bin/script Message-ID: <201312050144.rB51iOXZ088213@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trhodes Date: Thu Dec 5 01:44:24 2013 New Revision: 258955 URL: http://svnweb.freebsd.org/changeset/base/258955 Log: Add -F to flush output after each write. With this, I can set up a pipe and allow a jr user to watch what I'm doing by running 'script -F pipefile' on it. While here, spell out the month in the .Dd tag like other manual pages. Modified: head/usr.bin/script/script.1 head/usr.bin/script/script.c Modified: head/usr.bin/script/script.1 ============================================================================== --- head/usr.bin/script/script.1 Thu Dec 5 01:21:45 2013 (r258954) +++ head/usr.bin/script/script.1 Thu Dec 5 01:44:24 2013 (r258955) @@ -28,7 +28,7 @@ .\" @(#)script.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd Oct 27, 2012 +.Dd December 4, 2013 .Dt SCRIPT 1 .Os .Sh NAME @@ -37,6 +37,7 @@ .Sh SYNOPSIS .Nm .Op Fl adfkpqr +.Op Fl F Ar pipe .Op Fl t Ar time .Op Ar file Op Ar command ... .Sh DESCRIPTION @@ -76,6 +77,12 @@ retaining the prior contents. When playing back a session with the .Fl p flag, do not sleep between records when playing back a timestamped session. +.It Fl F Ar pipe +Immediately flush output after each write. +This will allow a user to create a named pipe using +.Xr mkfifo 1 +and another user may watch the live session using a utility like +.Xr cat 1 . .It Fl f Create .Ar file.filemon Modified: head/usr.bin/script/script.c ============================================================================== --- head/usr.bin/script/script.c Thu Dec 5 01:21:45 2013 (r258954) +++ head/usr.bin/script/script.c Thu Dec 5 01:44:24 2013 (r258955) @@ -98,18 +98,18 @@ main(int argc, char *argv[]) char obuf[BUFSIZ]; char ibuf[BUFSIZ]; fd_set rfd; - int aflg, kflg, pflg, ch, k, n; + int aflg, Fflg, kflg, pflg, ch, k, n; int flushtime, readstdin; int fm_fd, fm_log; - aflg = kflg = pflg = 0; + aflg = Fflg = kflg = pflg = 0; usesleep = 1; rawout = 0; flushtime = 30; fm_fd = -1; /* Shut up stupid "may be used uninitialized" GCC warning. (not needed w/clang) */ - while ((ch = getopt(argc, argv, "adfkpqrt:")) != -1) + while ((ch = getopt(argc, argv, "adFfkpqrt:")) != -1) switch(ch) { case 'a': aflg = 1; @@ -117,6 +117,9 @@ main(int argc, char *argv[]) case 'd': usesleep = 0; break; + case 'F': + Fflg = 1; + break; case 'f': fflg = 1; break; @@ -283,6 +286,8 @@ main(int argc, char *argv[]) fflush(fscript); start = tvec; } + if (Fflg) + fflush(fscript); } finish(); done(0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312050144.rB51iOXZ088213>