svn commit: r258955 - head/usr.bin/script

Tom Rhodes trhodes at FreeBSD.org
Thu Dec 5 01:44:25 UTC 2013


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


More information about the svn-src-head mailing list