Remove buffering to fileio instead of calling fflush
By default text files are line buffered, and this means that -f option will not write the line until a \n is printed. This is not very useful for debugging, so a call to fflush was added. This patch substitute this call (which will be done by each character painted) by the full remove of the buffering in the file. --- st.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
This commit is contained in:
parent
b9d5fec4f2
commit
720cb816dc
12
st.c
12
st.c
|
@ -355,7 +355,7 @@ static STREscape strescseq;
|
||||||
static int cmdfd;
|
static int cmdfd;
|
||||||
static pid_t pid;
|
static pid_t pid;
|
||||||
static Selection sel;
|
static Selection sel;
|
||||||
static FILE *fileio;
|
static int iofd = -1;
|
||||||
static char **opt_cmd = NULL;
|
static char **opt_cmd = NULL;
|
||||||
static char *opt_io = NULL;
|
static char *opt_io = NULL;
|
||||||
static char *opt_title = NULL;
|
static char *opt_title = NULL;
|
||||||
|
@ -821,9 +821,9 @@ ttynew(void) {
|
||||||
signal(SIGCHLD, sigchld);
|
signal(SIGCHLD, sigchld);
|
||||||
if(opt_io) {
|
if(opt_io) {
|
||||||
if(!strcmp(opt_io, "-")) {
|
if(!strcmp(opt_io, "-")) {
|
||||||
fileio = stdout;
|
iofd = STDOUT_FILENO;
|
||||||
} else {
|
} else {
|
||||||
if(!(fileio = fopen(opt_io, "w"))) {
|
if((iofd = open(opt_io, O_WRONLY | O_CREAT, 0666)) < 0) {
|
||||||
fprintf(stderr, "Error opening %s:%s\n",
|
fprintf(stderr, "Error opening %s:%s\n",
|
||||||
opt_io, strerror(errno));
|
opt_io, strerror(errno));
|
||||||
}
|
}
|
||||||
|
@ -1599,10 +1599,8 @@ void
|
||||||
tputc(char *c) {
|
tputc(char *c) {
|
||||||
char ascii = *c;
|
char ascii = *c;
|
||||||
|
|
||||||
if(fileio) {
|
if(iofd != -1)
|
||||||
putc(ascii, fileio);
|
write(iofd, c, 1);
|
||||||
fflush(fileio);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(term.esc & ESC_START) {
|
if(term.esc & ESC_START) {
|
||||||
if(term.esc & ESC_CSI) {
|
if(term.esc & ESC_CSI) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user