Subject: 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 20:42:58 +0200

> From: "Drew Adams" <[email-masked]>
> Date: Fri, 7 Dec 2012 08:30:52 -0800
> 
> This is with my setup, not emacs -Q.
> 
> I added a call to `(debug)' in a section of my code that is eval'd during
> application of a completion function for file names.  Below is what happened.
> 
> What should have happened: *Backtrace* opens in a separate, special-display
> frame (because "*Backtrace*" matches my value of `special-display-regexps').

Is it possible to have a recipe starting with "emacs -Q"

> Apparently, when Emacs tried to create the frame it ran into some problems in
> `x-create-frame'.  Why `x-create-frame' would call `directory-files' on
> "~/.emacs.d/auto-save-list/" I have no idea.

Evidently, because of this:

  (and auto-save-list-file-prefix (file-directory-p (file-name-directory auto-save-list-file-prefix)) (directory-files (file-name-directory auto-save-list-file-prefix) nil (concat "\\`" (regexp-quote (file-name-nondirectory auto-save-list-file-prefix))) t))

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
                       (file-directory-p
                        (file-name-directory auto-save-list-file-prefix))
                       (directory-files
                        (file-name-directory auto-save-list-file-prefix)
                        nil
                        (concat "\\`"
                                (regexp-quote
                                 (file-name-nondirectory
                                  auto-save-list-file-prefix)))
                        t))
                  :help "Recover edits from a crashed session"))

> 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.

However, it's hard to be sure without a test case.

> BTW, why is Emacs suddenly formatting the `report-emacs-bug' text I wrote?  I
> copied (`M-w') and yanked (`C-y') the backtrace into that report buffer, then
> pasted, after `C-c C-c', from the clipboard into my mail client (Outlook), as
> usual.  But now it seems that each line gets split at the same position and
> `=<newline>' is added.
> 
> Is this a new feature?  Is there a way to turn it off or otherwise control it?
> Why `='?

It's called "quoted-printable".  I have no idea how Emacs decided to
do that.