Quote from "man man":
--8<---------------cut here---------------start------------->8---
Normally, when output is not being directed to a terminal (such as to a
file or a pipe), formatting characters are discarded to make it easier
to read the result without special tools.
--8<---------------cut here---------------end--------------->8---
However it does not happen with the current "man", as may be checked for
example by evaluating the following in Emacs:
(let ((buf (get-buffer-create "*man true*")))
(with-current-buffer buf
(call-process "man" nil t nil "true"))
(pop-to-buffer buf))
As you can see there are escape sequences (such as "^[[1m") there, which
shouldn't happen. Configuring man-db "--with-col" fixes the issue (at
least for me).
BTW (a note for Ludovic), the current man behaviour "breaks" completions
of many commands provided by "pcmpl-args" emacs package, because
'pcmpl-args-extract-argspecs-from-manpage' can't parse a man page to find
completions. For example, "sudo --<TAB>" (in shell-mode) doesn't complete
anything. After this patch it should work.
>From 2b2e4b79fa37f50587d195792df4e00b743acf1a Mon Sep 17 00:00:00 2001
From: Alex Kost <[email protected]>
Date: Tue, 21 Jul 2015 17:04:10 +0300
Subject: [PATCH 1/3] gnu: man-db: Pass --with-col to configure.
* gnu/packages/man.scm (man-db)[inputs]: Add 'util-linux'.
[arguments]: Add '--with-col' to configure flags.
---
gnu/packages/man.scm | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 3173fac..16b891c 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -30,7 +30,8 @@
#:use-module (gnu packages less)
#:use-module (gnu packages lynx)
#:use-module (gnu packages perl)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages linux))
(define-public libpipeline
(package
@@ -82,14 +83,16 @@ a flexible and convenient way.")
(let ((groff (assoc-ref %build-inputs "groff"))
(less (assoc-ref %build-inputs "less"))
(gzip (assoc-ref %build-inputs "gzip"))
- (bzip2 (assoc-ref %build-inputs "bzip2"))
- (xz (assoc-ref %build-inputs "xz")))
+ (bzip2 (assoc-ref %build-inputs "bzip2"))
+ (xz (assoc-ref %build-inputs "xz"))
+ (util (assoc-ref %build-inputs "util-linux")))
;; Invoke groff, less, gzip, bzip2, and xz directly from the store.
(append (list "--disable-setuid" ;; Disable setuid man user.
(string-append "--with-pager=" less "/bin/less")
(string-append "--with-gzip=" gzip "/bin/gzip")
(string-append "--with-bzip2=" bzip2 "/bin/gzip")
- (string-append "--with-xz=" xz "/bin/xz"))
+ (string-append "--with-xz=" xz "/bin/xz")
+ (string-append "--with-col=" util "/bin/col"))
(map (lambda (prog)
(string-append "--with-" prog "=" groff "/bin/" prog))
'("nroff" "eqn" "neqn" "tbl" "refer" "pic"))))
@@ -103,7 +106,8 @@ a flexible and convenient way.")
("gdbm" ,gdbm)
("groff" ,groff)
("less" ,less)
- ("libpipeline" ,libpipeline)))
+ ("libpipeline" ,libpipeline)
+ ("util-linux" ,util-linux)))
(native-search-paths
(list (search-path-specification
(variable "MANPATH")
--
2.4.3