diff options
author | Jesper Dahl Nyerup | 2014-02-10 11:53:18 +0100 |
---|---|---|
committer | Karel Zak | 2014-02-10 19:24:28 +0100 |
commit | 7f1d48363823f7da47ca56f84eb4b2155c5ed36b (patch) | |
tree | 6d381e67b551f2c151a6e9f25e10c60794ffb0fa /term-utils/scriptreplay.c | |
parent | cal: remove unnecessary static variables (diff) | |
download | kernel-qcow2-util-linux-7f1d48363823f7da47ca56f84eb4b2155c5ed36b.tar.gz kernel-qcow2-util-linux-7f1d48363823f7da47ca56f84eb4b2155c5ed36b.tar.xz kernel-qcow2-util-linux-7f1d48363823f7da47ca56f84eb4b2155c5ed36b.zip |
scriptreplay: Add --maxdelay option.
This option caps the delay between updates, to avoid long pauses in
transcript playback.
Signed-off-by: Jesper Dahl Nyerup <nyerup@one.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'term-utils/scriptreplay.c')
-rw-r--r-- | term-utils/scriptreplay.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/term-utils/scriptreplay.c b/term-utils/scriptreplay.c index 46468be24..4738a8c6a 100644 --- a/term-utils/scriptreplay.c +++ b/term-utils/scriptreplay.c @@ -46,6 +46,7 @@ usage(FILE *out) fputs(_(" -t, --timing <file> script timing output file\n" " -s, --typescript <file> script terminal session output file\n" " -d, --divisor <num> speed up or slow down execution with time divisor\n" + " -m, --maxdelay <num> wait at most this many seconds between updates\n" " -V, --version output version information and exit\n" " -h, --help display this help and exit\n\n"), out); @@ -130,8 +131,8 @@ main(int argc, char *argv[]) { FILE *tfile, *sfile; const char *sname = NULL, *tname = NULL; - double divi = 1; - int c, diviopt = FALSE, idx; + double divi = 1, maxdelay = 0; + int c, diviopt = FALSE, maxdelayopt = FALSE, idx; unsigned long line; size_t oldblk = 0; char ch; @@ -140,6 +141,7 @@ main(int argc, char *argv[]) { "timing", required_argument, 0, 't' }, { "typescript", required_argument, 0, 's' }, { "divisor", required_argument, 0, 'd' }, + { "maxdelay", required_argument, 0, 'm' }, { "version", no_argument, 0, 'V' }, { "help", no_argument, 0, 'h' }, { NULL, 0, 0, 0 } @@ -156,7 +158,7 @@ main(int argc, char *argv[]) textdomain(PACKAGE); atexit(close_stdout); - while ((ch = getopt_long(argc, argv, "t:s:d:Vh", longopts, NULL)) != -1) + while ((ch = getopt_long(argc, argv, "t:s:d:m:Vh", longopts, NULL)) != -1) switch(ch) { case 't': tname = optarg; @@ -168,6 +170,10 @@ main(int argc, char *argv[]) diviopt = TRUE; divi = getnum(optarg); break; + case 'm': + maxdelayopt = TRUE; + maxdelay = getnum(optarg); + break; case 'V': printf(_("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING); @@ -191,7 +197,8 @@ main(int argc, char *argv[]) sname = idx < argc ? argv[idx++] : "typescript"; if (!diviopt) divi = idx < argc ? getnum(argv[idx]) : 1; - + if (maxdelay < 0) + maxdelay = 0; tfile = fopen(tname, "r"); if (!tfile) err(EXIT_FAILURE, _("cannot open %s"), tname); @@ -219,6 +226,9 @@ main(int argc, char *argv[]) } delay /= divi; + if (maxdelayopt && delay > maxdelay) + delay = maxdelay; + if (delay > SCRIPT_MIN_DELAY) delay_for(delay); |