X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fstdio%2Ffflush.c;h=af7095033bca73c25a5488ebc2769207e5483666;hp=cdbd39bc3ab1ef9ef2ccaa6a9eb0c310a6f338b3;hb=5afc74fbaa2371f30df0dc9fb7bc3afe6bd96137;hpb=e3cd6c5c265cd481db6e0c5b529855d99f0bda30 diff --git a/src/stdio/fflush.c b/src/stdio/fflush.c index cdbd39bc..af709503 100644 --- a/src/stdio/fflush.c +++ b/src/stdio/fflush.c @@ -15,20 +15,16 @@ static int __fflush_unlocked(FILE *f) f->wpos = f->wbase = f->wend = 0; f->rpos = f->rend = 0; - /* Hook for special behavior on flush */ - if (f->flush) f->flush(f); - return 0; } /* stdout.c will override this if linked */ -static FILE *const __dummy = 0; -weak_alias(__dummy, __stdout_to_flush); +static FILE *const dummy = 0; +weak_alias(dummy, __stdout_used); int fflush(FILE *f) { int r; - FILE *next; if (f) { FLOCK(f); @@ -37,15 +33,12 @@ int fflush(FILE *f) return r; } - r = __stdout_to_flush ? fflush(__stdout_to_flush) : 0; + r = __stdout_used ? fflush(__stdout_used) : 0; OFLLOCK(); - for (f=ofl_head; f; f=next) { + for (f=libc.ofl_head; f; f=f->next) { FLOCK(f); - //OFLUNLOCK(); - r |= __fflush_unlocked(f); - //OFLLOCK(); - next = f->next; + if (f->wpos > f->wbase) r |= __fflush_unlocked(f); FUNLOCK(f); } OFLUNLOCK();