Date: Thu, 16 Sep 2010 22:31:03 +0000 (UTC) From: "David E. O'Brien" <obrien@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r212770 - head/usr.bin/script Message-ID: <201009162231.o8GMV3Ov009118@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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]);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201009162231.o8GMV3Ov009118>