GNU bug report logs - #7027
24.0.50; Dired error (wrong-type-arg stringp nil) with cons arg with wildcard in name

Previous Next

Package: emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Sun, 12 Sep 2010 22:07:02 UTC

Severity: normal

Tags: easy, moreinfo

Found in version 24.0.50

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Kangas <stefan <at> marxist.se>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#7027: closed (24.0.50; Dired error (wrong-type-arg stringp
 nil) with cons arg with wildcard in name)
Date: Fri, 17 Apr 2020 10:23:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 17 Apr 2020 12:22:25 +0200
with message-id <87y2qutnry.fsf <at> stefankangas.se>
and subject line Re: bug#7027: 24.0.50; Dired error (wrong-type-arg stringp nil) with cons arg with wildcard in name
has caused the debbugs.gnu.org bug report #7027,
regarding 24.0.50; Dired error (wrong-type-arg stringp nil) with cons arg with wildcard in name
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
7027: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7027
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: "Drew Adams" <drew.adams <at> oracle.com>
To: <bug-gnu-emacs <at> gnu.org>
Subject: 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'
 



[Message part 3 (message/rfc822, inline)]
From: Stefan Kangas <stefan <at> marxist.se>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 7027-done <at> debbugs.gnu.org, Drew Adams <drew.adams <at> oracle.com>
Subject: Re: bug#7027: 24.0.50;
 Dired error (wrong-type-arg stringp nil) with cons arg with wildcard
 in name
Date: Fri, 17 Apr 2020 12:22:25 +0200
Lars Ingebrigtsen <larsi <at> gnus.org> writes:

> "Drew Adams" <drew.adams <at> oracle.com> writes:
>
>> 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)
>
> Can you post the backtrace?
>
> [...]
>
>> 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.
>
> I tried reproducing with
>
> (ls-lisp-insert-directory nil '(97 108) nil (wildcard-to-regexp "b*.el") nil)
>
> but that fails with a different error since FILE can't be nil.

More information was requested, but none was given within 28 weeks, so
I'm closing this bug.  If this is still an issue, please reply to this
email (use "Reply to all" in your email client) and we can reopen the
bug report.

Best regards,
Stefan Kangas


This bug report was last modified 5 years and 37 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.