diff --git a/userspace/libraries/LibC/stdio.cpp b/userspace/libraries/LibC/stdio.cpp index cfac0835..cc36462b 100644 --- a/userspace/libraries/LibC/stdio.cpp +++ b/userspace/libraries/LibC/stdio.cpp @@ -779,11 +779,17 @@ int putc_unlocked(int c, FILE* file) return (unsigned char)c; } + if (file->buffer_idx >= file->buffer_size) + if (fflush(file) == EOF) + return EOF; + file->buffer[file->buffer_idx] = c; file->buffer_idx++; + if ((file->buffer_type == _IOLBF && c == '\n') || file->buffer_idx >= file->buffer_size) if (fflush(file) == EOF) return EOF; + return (unsigned char)c; }