lpr: fflush stdout fix
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 26 Feb 2008 20:23:02 +0000 (20:23 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 26 Feb 2008 20:23:02 +0000 (20:23 -0000)
printutils/lpr.c

index 09fbc6ad144fb6c86eed833a3be9e14f62886585..913da6f0f296eef0998574dc9399d7fea5e9c6fd 100644 (file)
@@ -130,6 +130,7 @@ int lpqr_main(int argc, char *argv[])
                        cmd = (opts & LPQ_SHORT_FMT) ? 3 : 4;
  command:
                        printf("%c" "%s\n", cmd, queue);
+                       fflush(stdout);
                        bb_copyfd_eof(STDOUT_FILENO, old_stdout);
                }
 
@@ -225,6 +226,7 @@ int lpqr_main(int argc, char *argv[])
                st.st_size = 0; /* paranoia: fstat may theoretically fail */
                fstat(fd, &st);
                printf("\x3" "%"OFF_FMT"u d%s\n", st.st_size, remote_filename);
+               fflush(stdout);
                if (bb_copyfd_size(fd, STDOUT_FILENO, st.st_size) != st.st_size) {
                        // We're screwed. We sent less bytes than we advertised.
                        bb_error_msg_and_die("local file changed size?!");