From: Lennart Poettering Date: Thu, 27 Aug 2015 22:11:49 +0000 (+0200) Subject: pager: port fallback pager to use copy_bytes() X-Git-Tag: v226.4~1^2~109 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=48c6f15efc9def50e7556bb51517687fbaa2fff8 pager: port fallback pager to use copy_bytes() --- diff --git a/src/shared/pager.c b/src/shared/pager.c index b2635740f..d6474030c 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -31,18 +31,16 @@ #include "macro.h" #include "terminal-util.h" #include "signal-util.h" +#include "copy.h" static pid_t pager_pid = 0; noreturn static void pager_fallback(void) { - ssize_t n; - - do { - n = splice(STDIN_FILENO, NULL, STDOUT_FILENO, NULL, 64*1024, 0); - } while (n > 0); + int r; - if (n < 0) { - log_error_errno(errno, "Internal pager failed: %m"); + r = copy_bytes(STDIN_FILENO, STDOUT_FILENO, (off_t) -1, false); + if (r < 0) { + log_error_errno(r, "Internal pager failed: %m"); _exit(EXIT_FAILURE); }