[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#7027: 24.0.50; Dired error (wrong-type-arg stringp nil) with cons ar
From: |
Drew Adams |
Subject: |
bug#7027: 24.0.50; Dired error (wrong-type-arg stringp nil) with cons arg with wildcard in name |
Date: |
Sun, 12 Sep 2010 15:08:23 -0700 |
emacs -Q
Eval this: (dired '("TTTT" "111.el" "b*.el")), assuming there is a file
111.el and some file matching b*.el (but no file with name "b*.el",
i.e. with a literal `*' in the name).
You get this error: (wrong-type-argument stringp nil)
The problem is in `ls-lisp-insert-directory':
(defun ls-lisp-insert-directory
(file switches time-index wildcard-regexp full-directory-p)
"..."
(if (or wildcard-regexp full-directory-p)
(let* ((dir (file-name-as-directory file))
...))))
This gets eval'd (where the ^@ is really a control char):
(ls-lisp-insert-directory nil (97 108) nil "\\`b[^^@]*\\.el\\'" nil)
That happens because of this call:
(insert-directory "b*.el" "-al" nil nil)
which calls (string-match "[[?*]" "b*.el") returning 1 (non-nil).
(file-exists-p "b*.el") then returns nil,
and (wildcard-to-regexp "b*.el") returns the regexp shown above.
A proper message should be shown (but no error raised) saying, as for
any non-existent file, "b*.el: doesn't exist or is inaccessible".
And processing should then continue, displaying Dired with all of the
existing files that correspond to the names in the cons arg (e.g. 111.el
in this case).
In GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
of 2010-09-06 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4) --no-opt --cflags
-Ic:/imagesupport/include'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#7027: 24.0.50; Dired error (wrong-type-arg stringp nil) with cons arg with wildcard in name,
Drew Adams <=