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

David E. O'Brien obrien at FreeBSD.org
Thu Sep 16 22:31:04 UTC 2010


Author: obrien
Date: Thu Sep 16 22:31:03 2010
New Revision: 212770
URL: http://svn.freebsd.org/changeset/base/212770

Log:
  + Add the SCRIPT environmental variable to the sub-shell.  Its value is
  the name of the typescript file.
  + Add the 'command' argument (if supplied on the command line) to the
  typescript file.  This creates a more complete typescript when invoked
  this way - more equal to invoking script without supplying the 'command'
  argument.

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 Sep 16 22:11:55 2010	(r212769)
+++ head/usr.bin/script/script.1	Thu Sep 16 22:31:03 2010	(r212770)
@@ -117,6 +117,19 @@ The results are meant to emulate a hardc
 The following environment variable is utilized by
 .Nm :
 .Bl -tag -width SHELL
+.It Ev SCRIPT
+The
+.Ev SCRIPT
+environment variable is added to the sub-shell.
+If
+.Ev SCRIPT
+already existed in the users environment,
+its value is overwritten within the sub-shell.
+The value of
+.Ev SCRIPT
+is the name of the
+.Ar typescript
+file.
 .It Ev SHELL
 If the variable
 .Ev SHELL

Modified: head/usr.bin/script/script.c
==============================================================================
--- head/usr.bin/script/script.c	Thu Sep 16 22:11:55 2010	(r212769)
+++ head/usr.bin/script/script.c	Thu Sep 16 22:31:03 2010	(r212770)
@@ -235,14 +235,21 @@ static void
 doshell(char **av)
 {
 	const char *shell;
+	int k;
 
 	shell = getenv("SHELL");
 	if (shell == NULL)
 		shell = _PATH_BSHELL;
 
+	if (av[0])
+		for (k = 0 ; av[k] ; ++k)
+			fprintf(fscript, "%s%s", k ? " " : "", av[k]);
+		fprintf(fscript, "\r\n");
+
 	(void)close(master);
 	(void)fclose(fscript);
 	login_tty(slave);
+	setenv("SCRIPT", fname, 1);
 	if (av[0]) {
 		execvp(av[0], av);
 		warn("%s", av[0]);


More information about the svn-src-all mailing list