Package: emacs-goodies-el
Version: 24.10-1
Severity: normal

When the perl-doc package is not installed, and starting from "emacs
-q", M-x perldoc gives an error

        Wrong type argument: stringp, t

I think in perldoc-functions-alist the call

        (shell-command "perldoc -u perlfunc" t t)

is incorrect, emacs doesn't allow t for the error output (nil or no
arg gives the same as stdout, if that's the intention.)

I think the change below will give a friendly message when the
necessary perldoc program is not found.


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i586)
Kernel: Linux 2.6.10-1-386
Locale: LANG=C, LC_CTYPE=C (charmap=ISO-8859-1) (ignored: LC_ALL set to en_AU)

Versions of packages emacs-goodies-el depends on:
ii  bash                          3.0-15     The GNU Bourne Again SHell
ii  emacs21 [emacsen]             21.4a-1    The GNU Emacs editor

-- no debconf information


--- perldoc.el.old      2005-06-18 17:26:22.838829608 +1000
+++ perldoc.el  2005-06-18 17:35:38.849303168 +1000
@@ -89,14 +89,18 @@
           (case-fold-search nil))
       (set-buffer tmp-buffer)
       (erase-buffer)
-      (shell-command "perldoc -u perlfunc" t t)
+      (shell-command "perldoc -u perlfunc" t)
       (goto-char (point-min))
       (search-forward "Alphabetical Listing of Perl Functions" nil t)
       (while (re-search-forward
               "^=item \\(\\([a-z][^ //\n]*\\)\\|\\(I<\\(.*\\)> \\)\\)" nil t)
         (let ((entry (list (or (match-string 2)(match-string 4)))))
           (when (not (member entry perldoc-functions-alist))
-            (push entry perldoc-functions-alist)))))
+            (push entry perldoc-functions-alist))))
+      ;; no output means the perldoc program doesn't exist or is only the
+      ;; debian perl package dummy script
+      (unless perldoc-functions-alist
+        (error "`perldoc' program not available")))
     perldoc-functions-alist))
 
 ;;;###autoload

Reply via email to