diff --git a/expand.c b/expand.c index 6c453fd..60c5623 100644 --- a/expand.c +++ b/expand.c @@ -74,18 +74,18 @@ expand(const char *file, FILE *fp, int tabstop) if (col) col--; bol = 0; - writerune(&r); + writerune("", stdout, &r); break; case '\n': col = 0; bol = 1; - writerune(&r); + writerune("", stdout, &r); break; default: col++; if (r != ' ') bol = 0; - writerune(&r); + writerune("", stdout, &r); break; } } diff --git a/libutf/writerune.c b/libutf/writerune.c index 0615860..eb9cfac 100644 --- a/libutf/writerune.c +++ b/libutf/writerune.c @@ -7,16 +7,16 @@ #include "../utf.h" void -writerune(Rune *r) +writerune(const char *file, FILE *fp, Rune *r) { char buf[UTFmax]; int n; if ((n = runetochar(buf, r)) > 0) { - fwrite(buf, n, 1, stdout); - if (ferror(stdout)) { - fprintf(stderr, "stdout: write error: %s\n", - strerror(errno)); + fwrite(buf, n, 1, fp); + if (ferror(fp)) { + fprintf(stderr, "%s: write error: %s\n", + file, strerror(errno)); exit(1); } } diff --git a/utf.h b/utf.h index 44c5bba..26b9a6f 100644 --- a/utf.h +++ b/utf.h @@ -50,4 +50,4 @@ int isupperrune(Rune); int isdigitrune(Rune); int readrune(const char *, FILE *, Rune *); -void writerune(Rune *); +void writerune(const char *, FILE *, Rune *);