From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#68815: Unexpected behavior with read-file-name and functional REQUIRE-MATCH argument Date: Tue, 30 Jan 2024 08:08:11 -0500 Message-ID: References: <8734ufyxoy.fsf@breatheoutbreathe.in> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="29468"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: michael_heerdegen@web.de, Philip Kaludercic , 68815@debbugs.gnu.org, Eli Zaretskii To: Joseph Turner Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 30 14:09:02 2024 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 1rUnrK-0007SH-EY for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 30 Jan 2024 14:09:02 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rUnrE-0006Tn-KL; Tue, 30 Jan 2024 08:08:56 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rUnrC-0006St-9t for bug-gnu-emacs@gnu.org; Tue, 30 Jan 2024 08:08:54 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rUnrC-00011D-1l for bug-gnu-emacs@gnu.org; Tue, 30 Jan 2024 08:08:54 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rUnrK-0003GQ-6Q for bug-gnu-emacs@gnu.org; Tue, 30 Jan 2024 08:09:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 30 Jan 2024 13:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68815 X-GNU-PR-Package: emacs Original-Received: via spool by 68815-submit@debbugs.gnu.org id=B68815.170662011412512 (code B ref 68815); Tue, 30 Jan 2024 13:09:02 +0000 Original-Received: (at 68815) by debbugs.gnu.org; 30 Jan 2024 13:08:34 +0000 Original-Received: from localhost ([127.0.0.1]:34554 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rUnqr-0003Fk-Mo for submit@debbugs.gnu.org; Tue, 30 Jan 2024 08:08:33 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:16044) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rUnqm-0003FR-Cv for 68815@debbugs.gnu.org; Tue, 30 Jan 2024 08:08:33 -0500 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 27D584411A1; Tue, 30 Jan 2024 08:08:13 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1706620092; bh=ohgAeCDy5FLMKlVjheUs3wEck7qhlIEG80+HGrObjBM=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=k/1r0mAsEQdUWoFqKqm6AwABx/o4zlorGFeJkSpV4vG64slq8wXw/oGJWHOJr/u4W AlCpK3JRqpKYmHXmGYiqE68H10zk8s2xCwU713Sm5EVZoUyDoZe2vCM5U9V1KfPwNy W8is1QcZ4iEWYKsJfHGZfXCm4zUEKIUaqQGAuE/bUKsjqqphrKvgeTRHG3Ci5yMGdG H8a8eqHruT56At6kwQnMFQ6s1tpwhHfehFgai/nrRQf2sxrkIM7HFDDjpC6c+6OzXF aMaDW6nMgcZo2ntCT7CexTVGvRykDnSJPRNZODwS4tL/OMrJThcLN3S1V2e//UaT3b e/bArHc6C9ecA== Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id F3D30441278; Tue, 30 Jan 2024 08:08:11 -0500 (EST) Original-Received: from pastel (104-222-119-131.cpe.teksavvy.com [104.222.119.131]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id BCA1412062F; Tue, 30 Jan 2024 08:08:11 -0500 (EST) In-Reply-To: <8734ufyxoy.fsf@breatheoutbreathe.in> (Joseph Turner's message of "Tue, 30 Jan 2024 01:00:47 -0800") 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:279173 Archived-At: > emacs -Q on the tip of the emacs-29 branch (after commit 77f5d4d523a), ru= n... > > (let ((default-directory "~/")) > (read-directory-name "Clone into new or empty directory: " nil nil > (lambda (dir) (or (not (file-exists-p dir)) > (directory-empty-p dir))))) > > ...then type "/tmp/" (the whole minibuffer now reads "~//tmp") then RET. > > Expected: Completion does not exit, instead saying "[No match]". Ah, that good old problem about whether PRED should apply to the quoted or to the unquoted string =F0=9F=99=81 I think here the bug is in `read-directory-name` (and `read-file-name`) since their PRED arg is expected to apply to the (unquoted) file name itself (i.e. the thing that would be returned by the function), rather than to the quoted representation used in the minibuffer. They should wrap PRED so as to pass the arg through `substitute-in-file-name` (or otherwise arrange to make sure PRED is called with an unquoted file name). Stefan