Chong Yidong writes: > [I sent this message several weeks ago, and received no response. > Resending.] > >> On Tue, 2008-09-30 at 13:20 -0400, Chong Yidong wrote: >>> > emacs -Q >>> >>> > (setq debug-on-error t) >>> > C-x C-f /ftp:www.fbeck.net@ftp.strato.de: >>> > [TAB] >>> >>> > Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) >>> > signal(wrong-type-argument (char-or-string-p nil)) >>> > completion--some(#[(style) "^H A@\n^K\f$" [style >>> > completion-styles-alist >>> >>> I can't reproduce this, also using latest CVS and `emacs -Q'. Could you >>> try to debug the problem? >> >> Not sure. What should I do? > > First, could you go to minibuffer.el, evaluate it (M-x eval-buffer), > trigger the error again, and post the backtrace? This should produce a > more informative backtrace. I'm sorry, I ment to get back to you, but unfortunatley this is one of the errors that only happen occasionally. I tried a couple of scenarios, like with and without networking, but could not reliably reproduce the error. It does still happen from time to time. Now, I followd your advice and produced a somewhat more informative backtrace. How do I get rid of the ellipses? (print-length is nil) Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) signal(wrong-type-argument (char-or-string-p nil)) (if firsterror (signal (car firsterror) (cdr firsterror))) (or res (if firsterror (signal ... ...))) (let ((firsterror nil) res) (while (and ... xs) (condition-case err ... ...)) (or res (if firsterror ...))) completion--some((lambda (style) (funcall (nth 1 ...) string table pred point)) (basic partial-completion)) (if (and (symbolp table) (get table ...)) (funcall table string pred nil point) (completion--some (lambda ... ...) completion-styles)) completion-try-completion(#("/ftp:www.fbeck.net@ftp.strato.de:" 1 32 (gnus-callback gnus-button-push gnus-data #)) read-file-name-internal nil 33) funcall(completion-try-completion #("/ftp:www.fbeck.net@ftp.strato.de:" 1 32 (gnus-callback gnus-button-push gnus-data #)) read-file-name-internal nil 33) (let* ((beg ...) (end ...) (string ...) (comp ...)) (cond (... ... ... ...) (... ...) (t ...))) completion--do-completion() (let ((--cl-var-- ...)) (cond (... nil) (... ... ... t) (... ... ... t) (t t))) (case (completion--do-completion) (0 nil) (1 (goto-char ...) (minibuffer-message "Sole completion") t) (3 (goto-char ...) (minibuffer-message "Complete, but not unique") t) (t t)) (if (window-live-p window) (with-current-buffer (window-buffer window) (if ... ... ...) nil) (case (completion--do-completion) (0 nil) (1 ... ... t) (3 ... ... t) (t t))) (let ((window minibuffer-scroll-window)) (if (window-live-p window) (with-current-buffer ... ... nil) (case ... ... ... ... ...))) minibuffer-complete() call-interactively(minibuffer-complete nil nil) completing-read("Find file: " read-file-name-internal nil nil "~/Material/src/emacs/lisp/" file-name-history "~/Material/src/emacs/lisp/") (progn (add-hook (quote minibuffer-setup-hook) setup-hook) (completing-read prompt (quote read-file-name-internal) nil mustmatch insdef (quote file-name-history) default-filename)) (unwind-protect (progn (add-hook ... setup-hook) (completing-read prompt ... nil mustmatch insdef ... default-filename)) (remove-hook (quote minibuffer-setup-hook) setup-hook)) (let (setup-hook) (setq setup-hook (list ... ... ...)) (unwind-protect (progn ... ...) (remove-hook ... setup-hook))) (let ((--cl-dir-- ...)) (setf (symbol-value --cl-dir--) (file-name-as-directory ...)) (let (setup-hook) (setq setup-hook ...) (unwind-protect ... ...))) (lexical-let ((dir ...)) (minibuffer-with-setup-hook (lambda nil ...) (completing-read prompt ... nil mustmatch insdef ... default-filename))) (if (not (next-read-file-uses-dialog-p)) (lexical-let (...) (minibuffer-with-setup-hook ... ...)) (let (...) (when ... ... ...) (if default-filename ...) (setq add-to-history t) (x-file-dialog prompt dir default-filename mustmatch ...))) (let* ((val ...) (replace-in-history ...)) (when (eq val default-filename) (if ... ...) (setq val "")) (unless val (error "No file name specified")) (if (and default-filename ...) (setq val default-filename)) (setq val (substitute-in-file-name val)) (if replace-in-history (let ... ... ...) (if add-to-history ...)) val) (let ((completion-ignore-case read-file-name-completion-ignore-case) (minibuffer-completing-file-name t) (read-file-name-predicate ...) (add-to-history nil)) (let* (... ...) (when ... ... ...) (unless val ...) (if ... ...) (setq val ...) (if replace-in-history ... ...) val)) (if read-file-name-function (funcall read-file-name-function prompt dir default-filename mustmatch initial predicate) (let (... ... ... ...) (let* ... ... ... ... ... ... val))) (let ((insdef ...)) (if read-file-name-function (funcall read-file-name-function prompt dir default-filename mustmatch initial predicate) (let ... ...))) read-file-name("Find file: " nil "/home/flo/Material/src/emacs/lisp/" nil) find-file-read-args("Find file: " nil) byte-code("ÁÂ…Ã\"‡" [find-file-confirm-nonexistent-file find-file-read-args "Find file: " confirm-only] 3) call-interactively(find-file nil nil)