X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fpager.c;h=58b62fdccfab66cd430c5bb304ef4c7dbd3cc2fd;hb=30ab6a0fc1bb950c4dcd90dcd3dfe00a810c7fc1;hp=286394072567458582e852e5af9236337d44b968;hpb=56f64d95763a799ba4475daf44d8e9f72a1bd474;p=elogind.git diff --git a/src/shared/pager.c b/src/shared/pager.c index 286394072..58b62fdcc 100644 --- a/src/shared/pager.c +++ b/src/shared/pager.c @@ -19,7 +19,6 @@ along with systemd; If not, see . ***/ -#include #include #include #include @@ -28,7 +27,9 @@ #include "pager.h" #include "util.h" +#include "process-util.h" #include "macro.h" +#include "terminal-util.h" static pid_t pager_pid = 0; @@ -67,10 +68,8 @@ int pager_open(bool jump_to_end) { * pager so that we get the value from the actual tty */ columns(); - if (pipe(fd) < 0) { - log_error_errno(errno, "Failed to create pager pipe: %m"); - return -errno; - } + if (pipe(fd) < 0) + return log_error_errno(errno, "Failed to create pager pipe: %m"); parent_pid = getpid(); @@ -93,7 +92,7 @@ int pager_open(bool jump_to_end) { if (!less_opts) less_opts = "FRSXMK"; if (jump_to_end) - less_opts = strappenda(less_opts, " +G"); + less_opts = strjoina(less_opts, " +G"); setenv("LESS", less_opts, 1); /* Make sure the pager goes away when the parent dies */ @@ -126,10 +125,8 @@ int pager_open(bool jump_to_end) { } /* Return in the parent */ - if (dup2(fd[1], STDOUT_FILENO) < 0) { - log_error_errno(errno, "Failed to duplicate pager pipe: %m"); - return -errno; - } + if (dup2(fd[1], STDOUT_FILENO) < 0) + return log_error_errno(errno, "Failed to duplicate pager pipe: %m"); safe_close_pair(fd); return 1; @@ -176,10 +173,8 @@ int show_man_page(const char *desc, bool null_stdio) { args[1] = desc; pid = fork(); - if (pid < 0) { - log_error_errno(errno, "Failed to fork: %m"); - return -errno; - } + if (pid < 0) + return log_error_errno(errno, "Failed to fork: %m"); if (pid == 0) { /* Child */