From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#28513: 25.1; ido insists on guessing the wrong directory Date: Tue, 15 Dec 2020 07:42:10 +0100 Message-ID: <875z531sfx.fsf@gnus.org> References: <3526ABC6-2389-492A-83D7-A26195A6FC37@gmail.com> <875z575iog.fsf@gnus.org> <88f8e8d4-581b-85f8-92e6-8607d533cd77@yandex.ru> <87o8ix4zq6.fsf@gnus.org> <871rfs1gqt.fsf@gnus.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4385"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Guillaume Salagnac , 28513@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Dec 15 07:45:44 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kp45f-000126-Nw for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 15 Dec 2020 07:45:43 +0100 Original-Received: from localhost ([::1]:34796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kp45e-00066B-Ku for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 15 Dec 2020 01:45:42 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49288) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kp434-00035w-Iw for bug-gnu-emacs@gnu.org; Tue, 15 Dec 2020 01:43:08 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:43594) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kp433-0004Eq-Mg for bug-gnu-emacs@gnu.org; Tue, 15 Dec 2020 01:43:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kp433-00068Z-JB for bug-gnu-emacs@gnu.org; Tue, 15 Dec 2020 01:43:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 15 Dec 2020 06:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28513 X-GNU-PR-Package: emacs Original-Received: via spool by 28513-submit@debbugs.gnu.org id=B28513.160801454423543 (code B ref 28513); Tue, 15 Dec 2020 06:43:01 +0000 Original-Received: (at 28513) by debbugs.gnu.org; 15 Dec 2020 06:42:24 +0000 Original-Received: from localhost ([127.0.0.1]:55140 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp42S-00067f-4G for submit@debbugs.gnu.org; Tue, 15 Dec 2020 01:42:24 -0500 Original-Received: from quimby.gnus.org ([95.216.78.240]:52350) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp42Q-00067T-HE for 28513@debbugs.gnu.org; Tue, 15 Dec 2020 01:42:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=qyh4Q/Zx2tSG3Xg6eFyxgZy+xkl79TdAsB9JsgRZtAQ=; b=bw2+NQfy61Zso4XXP9FZphbYwN xsefwsO8wqP3HUSumqKMcR+empTGFJkv4534exfYttrbYbsIhNqReEHl1apnyZIXyxj9F4zTJYdGV yXN7NW5yJaldCyDVCf1BlGTzTgE6LozC6kJ/tnQr/uDYUXwWb1YJ0BmSgacEocmvhMok=; Original-Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kp42G-000646-1g; Tue, 15 Dec 2020 07:42:16 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAGFBMVEUoM2RORmJXIyWS Rz0pFhcgFBQhK1n///8YXJYjAAAAAWJLR0QHFmGI6wAAAAd0SU1FB+QMDwYSBz6Pl6EAAAG6SURB VDjLbZNNjtwgEIWZTa3jG0RlvI/MBUakyLqFwGtW3P8IeQXYxiPTalri49Ufr435+sWr3R2vzu3M f8y0/LoxiwLh3zMQ5mgVWPEDFNI9CwcW75hDPBVVtxD9Frck3oY0ADWQk+W0ZREFZQ6VxYcckCfk f6aR2vagJOccUs4HdUULJUrw1XWUObno9QHaEY3k53WsDxkEo6FIPZjiz+iDevKEYHIqbiBYZ7Bj blC0zqb6EaoHWR2HG5TeOVZ0zvEFmoBuEB6hOvDcAd2dd7DyujcFTWMfAGNXsCzLOavQinLe2iuH 6UMUgUl2z9uzD4yDG9hD/p7fPEdYQYGVq49WVYIL/qIme3Xex04Jdos7XIUavodAH4XgqGBZXcen olZ1it9t9gIPsU3HDQx5FgAPIHBJKcVUBUR6wOy5ARzh/qkIaEQVCfbB/TuUTQynw9R42jLnYPgW Inj0U5tvq/4gB3pTgU3hU2o71HIr4zKnuGILRx1LVWw9UsddFRMohAxemkxmYBQAWdQb8gyMKmzr /Amovi0F5XzjJyD8I8qyfOFDD1CpvIbC0MwrqPqHe0/+XtbPMFe+/2td6gjK62nSAAAAJXRFWHRk YXRlOmNyZWF0ZQAyMDIwLTEyLTE1VDA2OjE4OjA3KzAwOjAwV6szdwAAACV0RVh0ZGF0ZTptb2Rp ZnkAMjAyMC0xMi0xNVQwNjoxODowNyswMDowMCb2i8sAAAAASUVORK5CYII= X-Now-Playing: Anne Pigalle's _Everything Could Be So Perfect..._: "Souvenir d'un Paris" In-Reply-To: (Dmitry Gutov's message of "Tue, 15 Dec 2020 04:23:29 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:196133 Archived-At: Dmitry Gutov writes: >> So this isn't an ido problem at all -- it's a bug in `write-file'? >> Or >> rather... >> (let ((default-directory "/tmp/")) (read-file-name "Foo: ")) >> If you just hit RET there, it'll return `buffer-file-name'. > > But there is a difference between having default-directory set to > /tmp/ and typing /tmp/ yourself. There is. However, I don't think the way (let ((default-directory "/tmp/")) (read-file-name "Foo: ")) works is logical. We're clearly presenting the user with an interface that seems like we're doing something in /tmp/, but RET returns buffer-file-name. The following would be more logical, in my opinion. But it's a very low-level change, so it's... ticklish. It should give the same results 99% of the time (because binding default-directory and then calling read-file-name isn't the usual pattern, I think?), but would fix this issue. Opinions? diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 456193d52e..d1f1bf3758 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -2814,7 +2814,9 @@ read-file-name-default (unless default-filename (setq default-filename (cond - ((null initial) buffer-file-name) + ((null initial) + (expand-file-name (file-name-nondirectory buffer-file-name) + default-directory)) ;; Special-case "" because (expand-file-name "" "/tmp/") returns ;; "/tmp" rather than "/tmp/" (bug#39057). ((equal "" initial) dir) -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no