summaryrefslogtreecommitdiff
path: root/lisp/man.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-12-31 18:20:12 +0200
committerEli Zaretskii <eliz@gnu.org>2017-12-31 18:20:12 +0200
commit39ca289a7a33d514c2a46f005db4e7173fb7e9f5 (patch)
treec39c7483c9d506d33428ba2aa873a67b20cd51a4 /lisp/man.el
parentf8240815ea1e44cf0b16552ed3a3676b2dc85787 (diff)
downloademacs-39ca289a7a33d514c2a46f005db4e7173fb7e9f5.tar.gz
Allow customization of decoding of "man" command
* lisp/man.el (Man-coding-system): New defcustom. (Man-start-calling): Use it, and also pay attention to user overriding coding-system-for-read. (Bug#29872)
Diffstat (limited to 'lisp/man.el')
-rw-r--r--lisp/man.el15
1 files changed, 14 insertions, 1 deletions
diff --git a/lisp/man.el b/lisp/man.el
index f7b1609c929..3241043bebd 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -268,6 +268,16 @@ Used in `bookmark-set' to get the default bookmark name."
:type 'string
:group 'man)
+;; This is for people who have UTF-8 encoded man pages in non-UTF-8
+;; locales, or who use Cygwin 'man' command from a native MS-Windows
+;; build of Emacs.
+(defcustom Man-coding-system nil
+ "Coding-system to decode output from the commands run by `man'.
+If this is nil, `man' will use `locale-coding-system'."
+ :type 'coding-system
+ :group 'man
+ :version "26.1")
+
(defcustom Man-mode-hook nil
"Hook run when Man mode is enabled."
:type 'hook
@@ -1003,7 +1013,10 @@ names or descriptions. The pattern argument is usually an
(coding-system-for-write 'raw-text-unix)
;; We must decode the output by a coding system that the
;; system's locale suggests in multibyte mode.
- (coding-system-for-read locale-coding-system)
+ (coding-system-for-read
+ (or coding-system-for-read ; allow overriding with "C-x RET c"
+ Man-coding-system
+ locale-coding-system))
;; Avoid possible error by using a directory that always exists.
(default-directory
(if (and (file-directory-p default-directory)