Subject: Re: bug#13113: 24.3.50; `x-create-frames' raises error trying to eval `directory-files' (???)

From: Eli Zaretskii <[email-masked]>
Date: Fri, 07 Dec 2012 21:07:33 +0200

> From: "Drew Adams" <[email-masked]>
> Cc: <[email-masked]>
> Date: Fri, 7 Dec 2012 10:53:41 -0800
> 
> > (and auto-save-list-file-prefix (file-directory-p 
> >                                   (file-name-directory
> >                                     auto-save-list-file-prefix)) 
> ...
> > which is a fragment from menu-bar.el:
> > 
> >     (bindings--define-key menu [recover-session]
> >       '(menu-item "Recover Crashed Session" recover-session
> >                   :enable
> >                   (and auto-save-list-file-prefix
> ...
> > > And why that should raise this error, and what this error means, I
> > > also have no idea.  This means nothing to me - what is going on
> > > here?
> > 
> > My crystal ball says that directory traversal functions were invoked
> > recursively, somehow.  This is not supported on Windows, or at least
> > that's my reading of the code.
> 
> Can you elaborate a bit on what you mean by directory traversal functions being
> invoked recursively?

Well, the above snippet calls directory-files later on, which is the
call that barfed.  This is one API that invokes directory traversal --
a function that reads and returns all the file names in a directory.
Another example is directory-files-and-attributes.  Also, any
file-name completion needs to traverse a directory.  If some Lisp form
in the call stack also called one of these functions, you could see
this "no error" error, according to my reading of the code.