Subject: 24.3.50; when tab-completing in 'M-x' : "Wrong type argument: numberp, nil"

From: Nicolas Richard <[email-masked]>
Date: Tue, 04 Mar 2014 15:12:42 +0100

Hi,

Reproduce:
emacs -Q -f toggle-debug-on-error --eval '(execute-kbd-macro (kbd "M-x f o o C-a <tab>"))'

backtrace:
Debugger entered--Lisp error: (wrong-type-argument numberp nil)
  zerop(nil)
  minibuffer-completion-help(5 8)
[the rest is of no particular interest]

Possible fix (i.e. Work© Fo® Me™):

--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1753,7 +1753,7 @@ variables.")
            (if completions "Sole completion" "No completions")))
 
       (let* ((last (last completions))
-             (base-size (cdr last))
+             (base-size (or (cdr last) 0))
              (prefix (unless (zerop base-size) (substring string 0 base-size)))
              (all-md (completion--metadata (buffer-substring-no-properties
                                             start (point))

-- 
Nico.