tRemove buffering to fileio instead of calling fflush - st - [fork] customized … | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 720cb816dcff55f8b75bdc2a8ffa265f460f5d55 | |
parent b9d5fec4f277b688b3bb4741134abf152e801e90 | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Wed, 12 Sep 2012 21:51:55 +0200 | |
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(-) | |
Diffstat: | |
M st.c | 12 +++++------- | |
1 file changed, 5 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -355,7 +355,7 @@ static STREscape strescseq; | |
static int cmdfd; | |
static pid_t pid; | |
static Selection sel; | |
-static FILE *fileio; | |
+static int iofd = -1; | |
static char **opt_cmd = NULL; | |
static char *opt_io = NULL; | |
static char *opt_title = NULL; | |
t@@ -821,9 +821,9 @@ ttynew(void) { | |
signal(SIGCHLD, sigchld); | |
if(opt_io) { | |
if(!strcmp(opt_io, "-")) { | |
- fileio = stdout; | |
+ iofd = STDOUT_FILENO; | |
} else { | |
- if(!(fileio = fopen(opt_io, "w"))) { | |
+ if((iofd = open(opt_io, O_WRONLY | O_CREAT, 06… | |
fprintf(stderr, "Error opening %s:%s\n… | |
opt_io, strerror(errno)); | |
} | |
t@@ -1599,10 +1599,8 @@ void | |
tputc(char *c) { | |
char ascii = *c; | |
- if(fileio) { | |
- putc(ascii, fileio); | |
- fflush(fileio); | |
- } | |
+ if(iofd != -1) | |
+ write(iofd, c, 1); | |
if(term.esc & ESC_START) { | |
if(term.esc & ESC_CSI) { |