--- st.1 | 6 ++++++ st.c | 14 +++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff -r cd73991ab465 -r c3514854da2a st.1 --- a/st.1 Mon Sep 03 21:50:22 2012 +0200 +++ b/st.1 Mon Sep 03 21:52:21 2012 +0200 _AT_@ -10,6 +10,8 @@ .RB [ \-w .IR windowid ] .RB [ \-v ] +.RB [ \-f +.IR file ] .RB [ \-e .IR command ...] .SH DESCRIPTION _AT_@ -30,6 +32,10 @@ .B \-v prints version information to stderr, then exits. .TP +.BI \-f " file" +writes all the I/O to +.I file +.TP .BI \-e " program " [ " arguments " "... ]" st executes .I program diff -r cd73991ab465 -r c3514854da2a st.c --- a/st.c Mon Sep 03 21:50:22 2012 +0200 +++ b/st.c Mon Sep 03 21:52:21 2012 +0200 _AT_@ -36,7 +36,7 @@ #define USAGE \ "st " VERSION " (c) 2010-2012 st engineers\n" \ - "usage: st [-t title] [-c class] [-w windowid] [-v] [-e command...]\n" + "usage: st [-t title] [-c class] [-w windowid] [-v] [-f file] [-e command...]\n" /* XEMBED messages */ #define XEMBED_FOCUS_IN 4 _AT_@ -342,7 +342,9 @@ static int cmdfd; static pid_t pid; static Selection sel; +static FILE *fileio; static char **opt_cmd = NULL; +static char *opt_io = NULL; static char *opt_title = NULL; static char *opt_embed = NULL; static char *opt_class = NULL; _AT_@ -776,6 +778,10 @@ close(s); cmdfd = m; signal(SIGCHLD, sigchld); + if (opt_io && !(fileio = fopen(opt_io, "w"))) { + fprintf(stderr, "Error opening %s:%s", + opt_io, strerror(errno)); + } } } _AT_@ -1534,6 +1540,9 @@ void tputc(char *c) { char ascii = *c; + + if (fileio) + putc(ascii, fileio); if(term.esc & ESC_START) { if(term.esc & ESC_CSI) { csiescseq.buf[csiescseq.len++] = ascii; _AT_@ -2269,6 +2278,9 @@ case 'w': if(++i < argc) opt_embed = argv[i]; break; + case 'f': + if (++i < argc) opt_io = argv[i]; + break; case 'e': /* eat every remaining arguments */ if(++i < argc) opt_cmd = &argv[i];Received on Mon Sep 03 2012 - 21:55:47 CEST
This archive was generated by hypermail 2.3.0 : Mon Sep 03 2012 - 22:00:11 CEST