Subject: bug#9632: wrong-type-argument stringp mailcap-save-binary-file

From: Dave Abrahams <[email-masked]>
Date: Thu, 29 Sep 2011 16:06:53 -0400

I just tried to hit `v' on a PGP key (with an .asc suffix) and BOOM.

--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument stringp mailcap-save-binary-file)
  string-match("" mailcap-save-binary-file)
  (and (or non-prefix-dot (if ... ... ...)) (string-match re name))
  (if (and (or non-prefix-dot ...) (string-match re name)) (cond (... ...) (... ...) (... ...) (... ...) (t ...)))
  (let ((name ...)) (if (and ... ...) (cond ... ... ... ... ...)))
  (lambda (item) (let (...) (if ... ...)) t)(mailcap-save-binary-file)
  mapc((lambda (item) (let (...) (if ... ...)) t) ("/usr/bin/open %s" mailcap-save-binary-file))
  (condition-case error (mapc (lambda ... ... t) items) (invalid-regexp (setq ido-incomplete-regexp t matches ...)))
  (let* ((case-fold-search ido-case-fold) (slash ...) (text ...) (rex0 ...) (rexq ...) (re ...) (full-re ...) (suffix-re ...) (prefix-re ...) (non-prefix-dot ...) full-matches suffix-matches prefix-matches matches) (setq ido-incomplete-regexp nil) (condition-case error (mapc ... items) (invalid-regexp ...)) (when prefix-matches (ido-trace "prefix match" prefix-matches) (setq matches ...)) (when suffix-matches (ido-trace "suffix match" ...) (setq matches ...)) (when full-matches (ido-trace "full match" ...) (setq matches ...)) (when (and ... ido-enable-flex-matching ... ...) (setq re ...) (if ido-enable-prefix ...) (mapc ... items)) matches)
  ido-set-matches-1(("/usr/bin/open %s" mailcap-save-binary-file) t)
  (setq ido-matches (ido-set-matches-1 (reverse ido-cur-list) (not ido-rotate)) ido-rotate nil)
  (progn (setq ido-matches (ido-set-matches-1 ... ...) ido-rotate nil))
  (if ido-rescan (progn (setq ido-matches ... ido-rotate nil)))
  (when ido-rescan (setq ido-matches (ido-set-matches-1 ... ...) ido-rotate nil))
  ido-set-matches()
  (while (not done) (ido-trace "\n_LOOP_" ido-text-init) (setq ido-exit nil) (setq ido-rescan t) (setq ido-rotate nil) (setq ido-text "") (when ido-set-default-item (setq ido-default-item ...) (if ... ...) (ido-trace "new default" ido-default-item) (if ido-default-item ...) (setq ido-set-default-item nil)) (if ido-process-ignore-lists-inhibit (setq ido-process-ignore-lists nil)) (if (and ido-use-merged-list ... ...) (let ... ... ...)) (cond (ido-keep-item-list ...) (... ...) (... ...) (... ...) (... ...) (t nil)) (setq ido-rotate-temp nil) (if ido-process-ignore-lists-inhibit (setq ido-process-ignore-lists t ido-process-ignore-lists-inhibit nil)) (ido-set-matches) (if (and ido-matches ...) (setq ido-try-merged-list t)) (let (... ... ... ... ... ...) (setq ido-exit nil) (setq ido-final-text ...)) (ido-trace "read-from-minibuffer" ido-final-text) (if (get-buffer ido-completion-buffer) (kill-buffer ido-completion-buffer)) (ido-trace "\n_EXIT_" ido-exit) (cond (... ... nil) (... ...) (... ... nil) (... ...) (... ...) (... ...) (... ... ...) (... ... ...) (... ...) (t ... ...)))
  (let ((ido-cur-item item) (ido-entry-buffer ...) (ido-process-ignore-lists t) (ido-process-ignore-lists-inhibit nil) (ido-set-default-item t) ido-default-item ido-selected ido-final-text (done nil) (icomplete-mode nil) ido-cur-list ido-ignored-list (ido-rotate-temp nil) (ido-keep-item-list nil) (ido-use-merged-list nil) (ido-try-merged-list t) (ido-pre-merge-state nil) (ido-case-fold ido-case-fold) (ido-enable-prefix ido-enable-prefix) (ido-enable-regexp ido-enable-regexp) (ido-show-confirm-message nil)) (ido-setup-completion-map) (setq ido-text-init initial) (setq ido-input-stack nil) (run-hooks (quote ido-setup-hook)) (while (not done) (ido-trace "\n_LOOP_" ido-text-init) (setq ido-exit nil) (setq ido-rescan t) (setq ido-rotate nil) (setq ido-text "") (when ido-set-default-item ... ... ... ... ...) (if ido-process-ignore-lists-inhibit ...) (if ... ...) (cond ... ... ... ... ... ...) (setq ido-rotate-temp nil) (if ido-process-ignore-lists-inhibit ...) (ido-set-matches) (if ... ...) (let ... ... ...) (ido-trace "read-from-minibuffer" ido-final-text) (if ... ...) (ido-trace "\n_EXIT_" ido-exit) (cond ... ... ... ... ... ... ... ... ... ...)) (add-to-history (or history ...) ido-selected) ido-selected)
  ido-read-internal(list "Viewer: " nil nil nil nil)
  (let ((ido-current-directory nil) (ido-directory-nonreadable nil) (ido-directory-too-big nil) (ido-context-switch-command ...) (ido-choice-list choices)) (ido-common-initialization) (ido-read-internal (quote list) prompt hist def require-match initial-input))
  ido-completing-read("Viewer: " (mailcap-save-binary-file "/usr/bin/open %s") nil nil nil nil nil)
  gnus-ido-completing-read("Viewer: " (mailcap-save-binary-file "/usr/bin/open %s") nil nil nil nil)
  gnus-completing-read("Viewer" (mailcap-save-binary-file "/usr/bin/open %s"))
  mm-interactively-view-part((#<buffer  *mm*<3>> ("application/octet-stream") base64 nil ("attachment" (filename . "0F31DE07 - Personal.asc")) nil nil nil))
  gnus-mime-view-part()
  call-interactively(gnus-mime-view-part nil nil)
--8<---------------cut here---------------end--------------->8---

No Gnus v0.18
GNU Emacs 23.3.1 (x86_64-apple-darwin10.8.0, Carbon Version 1.6.0 AppKit 1038.36)
 of 2011-09-12 on pluto.luannocracy.com
200 Leafnode NNTP Daemon, version 1.11.8 running at localhost (my fqdn: pluto.boostpro.com)
500 Unknown command

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com