diff options
author | bdrewery <bdrewery@FreeBSD.org> | 2016-03-28 16:21:45 +0000 |
---|---|---|
committer | bdrewery <bdrewery@FreeBSD.org> | 2016-03-28 16:21:45 +0000 |
commit | 047bc664325a0d69c6f49563ecab5e7be26d254e (patch) | |
tree | b7e50cec51d2fa5432600b39ae738e4b10681ccb /usr.bin/script/script.c | |
parent | eccbb81df1af9e821df14be236ec9c5ce33eb43d (diff) | |
download | FreeBSD-src-047bc664325a0d69c6f49563ecab5e7be26d254e.zip FreeBSD-src-047bc664325a0d69c6f49563ecab5e7be26d254e.tar.gz |
MFC r296526:
Record command exit status in the typescript file when running simple
commands.
Relnotes: yes
Diffstat (limited to 'usr.bin/script/script.c')
-rw-r--r-- | usr.bin/script/script.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/usr.bin/script/script.c b/usr.bin/script/script.c index c990849..82a9b2e 100644 --- a/usr.bin/script/script.c +++ b/usr.bin/script/script.c @@ -74,7 +74,7 @@ static int child; static const char *fname; static char *fmfname; static int fflg, qflg, ttyflg; -static int usesleep, rawout; +static int usesleep, rawout, showexit; static struct termios tt; @@ -107,6 +107,7 @@ main(int argc, char *argv[]) flushtime = 30; fm_fd = -1; /* Shut up stupid "may be used uninitialized" GCC warning. (not needed w/clang) */ + showexit = 0; while ((ch = getopt(argc, argv, "adfkpqrt:")) != -1) switch(ch) { @@ -195,7 +196,8 @@ main(int argc, char *argv[]) (void)fprintf(fscript, "Script started on %s", ctime(&tvec)); if (argv[0]) { - fprintf(fscript, "command: "); + showexit = 1; + fprintf(fscript, "Command: "); for (k = 0 ; argv[k] ; ++k) fprintf(fscript, "%s%s", k ? " " : "", argv[k]); @@ -355,9 +357,13 @@ done(int eno) if (rawout) record(fscript, NULL, 0, 'e'); if (!qflg) { - if (!rawout) + if (!rawout) { + if (showexit) + (void)fprintf(fscript, "\nCommand exit status:" + " %d", eno); (void)fprintf(fscript,"\nScript done on %s", ctime(&tvec)); + } (void)printf("\nScript done, output file is %s\n", fname); if (fflg) { (void)printf("Filemon done, output file is %s\n", |