]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow customization of decoding of "man" command
authorEli Zaretskii <eliz@gnu.org>
Sun, 31 Dec 2017 16:20:12 +0000 (18:20 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sun, 31 Dec 2017 16:20:12 +0000 (18:20 +0200)
* 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)

lisp/man.el

index f7b1609c929662e15adfc8272343105ffb34414c..3241043bebd887775df6c6a8e8d1a30e719c4926 100644 (file)
@@ -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)