From 002cbde51f9c5f7a9ea39045c272d129c626f8d2 Mon Sep 17 00:00:00 2001
From: Kevin Ryde <user42@zip.com.au>
Date: Wed, 25 Nov 2009 22:42:11 +0000
Subject: [PATCH] * man.el (Man-completion-table): default-directory "/" in
 case doesn't otherwise exist.  process-environment COLUMNS=999 so as not to
 truncate long names.  process-connection-type pipe to avoid any chance of
 hitting the pseudo-tty TIOCGWINSZ.  (Further to Bug#3717.)

---
 lisp/ChangeLog | 8 ++++++++
 lisp/man.el    | 6 +++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fd586757b34..a7a1d93c286 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
+2009-11-25  Kevin Ryde  <user42@zip.com.au>
+
+	* man.el (Man-completion-table): default-directory "/" in case
+	doesn't otherwise exist.  process-environment COLUMNS=999 so as
+	not to truncate long names.  process-connection-type pipe to avoid
+	any chance of hitting the pseudo-tty TIOCGWINSZ.  (Further to
+	Bug#3717.)
+
 2009-11-25  Juri Linkov  <juri@jurta.org>
 
 	* man.el (Man-completion-table): Modify regexp to include
diff --git a/lisp/man.el b/lisp/man.el
index 25ba3eb0638..cbec29f1250 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -761,14 +761,18 @@ POS defaults to `point'."
       (unless (and Man-completion-cache
                    (string-prefix-p (car Man-completion-cache) string))
       (with-temp-buffer
+	(setq default-directory "/") ;; in case inherited doesn't exist
         ;; Actually for my `man' the arg is a regexp.  Don't know how
         ;; standard that is.  Also, it's not clear what kind of
         ;; regexp are accepted: under GNU/Linux it seems it's ERE-style,
         ;; whereas under MacOSX it seems to be BRE-style and
         ;; doesn't accept backslashes at all.  Let's not bother to
         ;; quote anything.
+ 	(let ((process-connection-type nil) ;; pipe
+	      (process-environment (copy-sequence process-environment)))
+	  (setenv "COLUMNS" "999") ;; don't truncate long names
           (call-process manual-program nil '(t nil) nil
-                        "-k" (concat "^" string))
+                        "-k" (concat "^" string)))
         (goto-char (point-min))
         (while (re-search-forward "^[^ \t\n]+\\(?: (.+?)\\)?" nil t)
           (push (match-string 0) table)))
-- 
2.39.5