Subject: bug#6299: In read-file-name: (args-out-of-range "c:" 0 3)

From: Lennart Borgman <[email-masked]>
Date: Sat, 29 May 2010 23:24:37 +0200

On Sat, May 29, 2010 at 11:18 PM, Stefan Monnier
<[email-masked]> wrote:
>> Debugger entered--Lisp error: (args-out-of-range "c:" 0 3)
>>   signal(args-out-of-range ("c:" 0 3))
>>   completion--some(#[(style) "        \236A@\n \f
>> $\207" [style completion-styles-alist string table pred point] 5]
>> (basic partial-completion emacs22))
>
> First thing: edit completion--some o as to replace condition-case with
> condition-case-no-debug.  This way the error won't be delayed and you'll
> get a more precise backtrace.

OK:

Debugger entered--Lisp error: (args-out-of-range "c:" 0 3)
  completion-pcm--find-all-completions("c:" read-file-name-internal
file-exists-p 2 completion-pcm--filename-try-filter)
  completion-pcm--find-all-completions("c:/em" read-file-name-internal
file-exists-p 5 completion-pcm--filename-try-filter)
  completion-pcm-try-completion("c:/em" read-file-name-internal file-exists-p 5)
  #[(style) " 	\236A@\n \f
$\207" [style completion-styles-alist string table pred point]
5](partial-completion)
  funcall(#[(style) " 	\236A@\n \f
$\207" [style completion-styles-alist string table pred point] 5]
partial-completion)
  (setq res (funcall fun arg))
  (progn (setq arg (pop xs)) (setq res (funcall fun arg)))
  (lambda nil (progn (setq arg ...) (setq res ...)))()
  funcall((lambda nil (progn (setq arg ...) (setq res ...))))
  (if debug-on-error (funcall body) (condition-case err (funcall body)
(error ... nil)))
  (let ((body ...)) (if debug-on-error (funcall body) (condition-case
err ... ...)))
  (condition-case-no-debug err (progn (setq arg ...) (setq res ...))
(error (unless firsterror ... ...) nil))
  (while (and (not res) xs) (condition-case-no-debug err (progn ...
...) (error ... nil)))
  (let ((firsterror nil) arg res) (while (and ... xs)
(condition-case-no-debug err ... ...)) (or res (if firsterror ...)))
  completion--some(#[(style) " 	\236A@\n \f
$\207" [style completion-styles-alist string table pred point] 5]
(basic partial-completion emacs22))
  completion-try-completion("c:/em" read-file-name-internal file-exists-p 5)
  completion--do-completion()
  minibuffer-complete()
  call-interactively(minibuffer-complete nil nil)
  completing-read("Find file: " read-file-name-internal file-exists-p
nil "c:/emacs/p/100522/emacs/lisp/" file-name-history
"c:/emacs/p/100522/emacs/lisp/")
  ad-Orig-read-file-name("Find file: " nil
"c:/emacs/p/100522/emacs/lisp/" nil nil nil)
  (setq ad-return-value (ad-Orig-read-file-name prompt dir
default-filename mustmatch initial predicate))
  (let ((viper-minibuffer-exit-hook ...)) (setq ad-return-value
(ad-Orig-read-file-name prompt dir default-filename mustmatch initial
predicate)))
  (let (ad-return-value) (let (...) (setq ad-return-value ...)) ad-return-value)
  read-file-name("Find file: " nil "c:/emacs/p/100522/emacs/lisp/")
  (cons (read-file-name "Find file: " nil default-directory) (cond
(... ...) (... ...)))
  call-interactively(find-file nil nil)