Subject: bug#17950: 24.4.50; REGRESSION: `read-file-name' from a menu (mouse) treats "~/" as installation dir

From: Eli Zaretskii <[email-masked]>
Date: Sun, 06 Jul 2014 17:25:37 +0300

> Date: Sat, 5 Jul 2014 14:29:24 -0700 (PDT)
> From: Drew Adams <[email-masked]>
> 
> emacs -Q
> 
> (defun foo (file)
>   (interactive (list (read-file-name "Foo: " "~/")))
>   (message "File is `%s'" file))
> 
> (define-key menu-bar-file-menu [foo] '(menu-item "FOOOO" foo))
> 
> (expand-file-name "~/") ; correctly returns my home directory, as in
> previous Emacs versions.
> 
> And `M-x foo' correctly uses `~/' as the directory.
> 
> But invoking the same command `foo' from the menu (item `FOOOO') uses
> the Emacs installation directory instead.

I cannot reproduce this here with today's trunk.  When I select the
foo item from the menu, the file selection dialog that pops up shows
me my home directory, as I'd expect.

So something else is at work here.  Perhaps the important detail you
left out is how exactly did you invoke "emacs -Q".