From 3af7a0daf5baf71eefff8a70551d65057b1aa785 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 4 Sep 2012 10:44:34 -0400 Subject: [PATCH] Disable word wrap in list mode when stdout is a pipe to make "sudo -l | grep ..." more useful. Adapted from a diff by Daniel Kopecek. --- plugins/sudoers/sudo_nss.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/sudoers/sudo_nss.c b/plugins/sudoers/sudo_nss.c index ceccc7b32..da3333f10 100644 --- a/plugins/sudoers/sudo_nss.c +++ b/plugins/sudoers/sudo_nss.c @@ -18,6 +18,8 @@ #include #include +#include + #include #ifdef STDC_HEADERS # include @@ -261,11 +263,15 @@ display_privs(struct sudo_nss_list *snl, struct passwd *pw) { struct sudo_nss *nss; struct lbuf defs, privs; - int count, olen; + struct stat sb; + int cols, count, olen; debug_decl(display_privs, SUDO_DEBUG_NSS) - lbuf_init(&defs, output, 4, NULL, sudo_user.cols); - lbuf_init(&privs, output, 4, NULL, sudo_user.cols); + cols = sudo_user.cols; + if (fstat(STDOUT_FILENO, &sb) == 0 && S_ISFIFO(sb.st_mode)) + cols = 0; + lbuf_init(&defs, output, 4, NULL, cols); + lbuf_init(&privs, output, 4, NULL, cols); /* Display defaults from all sources. */ lbuf_append(&defs, _("Matching Defaults entries for %s on this host:\n"), -- 2.40.0