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.
This commit is contained in:
Tom Rhodes 2013-12-05 01:44:24 +00:00
parent 96632c1b9c
commit 8d105abc4f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=258955
2 changed files with 16 additions and 4 deletions

View File

@ -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

View File

@ -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);