From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: Why does (file-exists-p "") return t? Date: Sat, 11 Feb 2023 14:28:55 +0300 Message-ID: References: <834jrvm04q.fsf@gnu.org> <87wn4q1r6w.fsf@posteo.net> <63e7697c.1c0a0220.a6be.a36d@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26919"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.9+54 (af2080d) (2022-11-21) Cc: Edgar Vincent , eliz@gnu.org, help-gnu-emacs@gnu.org To: Bruno Barbier Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Feb 11 14:37:09 2023 Return-path: Envelope-to: geh-help-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 1pQq3v-0006kq-HT for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 11 Feb 2023 14:37:07 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pQq3L-0007G5-R5; Sat, 11 Feb 2023 08:36:31 -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 1pQq33-00070o-Jc for help-gnu-emacs@gnu.org; Sat, 11 Feb 2023 08:36:20 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pQq2x-0007XE-Ie; Sat, 11 Feb 2023 08:36:12 -0500 Original-Received: from localhost ([::ffff:197.239.13.175]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000103950.0000000063E799C4.00000837; Sat, 11 Feb 2023 06:36:04 -0700 Mail-Followup-To: Bruno Barbier , Edgar Vincent , eliz@gnu.org, help-gnu-emacs@gnu.org Content-Disposition: inline In-Reply-To: <63e7697c.1c0a0220.a6be.a36d@mx.google.com> Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:142705 Archived-At: * Bruno Barbier [2023-02-11 13:10]: > > * Edgar Vincent [2023-02-10 00:11]: > >> I didn’t know that file-exists-p used expand-file-name, but it does seem obvious. > > > > To avoid the problem maybe you should use `expand-file-name' before > > you check it with `file-exists-p' > > > > As otherwise you may check the wrong path. > > Why ? > > One of the first thing `file-exists-p' is doing is to call > `expand-file-name' to expand the file name. I don't see how calling > `expand-file-name' before would help. I understand you and I am sure in most use cases it is not necessary as it will be expanded later. Sometimes I wish to expand it before for reason that `default-directory' sometimes changes: - practically, I sometimes wish to have "/home/user/public_html" as part of directory, and to check for file existence only if that is part of the path. - When I use Tramp, my program my give me wrong answer by design, as I maybe did not want to check anything on remote system, but program is not aware of it by alone. Of course, to avoid similar cases, I can keep `default-directory': (let ((default-directory "something")) (before doing something else)) There is pertinent use case where I am receiving "" from database, and instead of `expand-file-name' I want to consider it "no file name", and checking would take place only when there is no empty string, as otherwis I would get information how file exists for "" which is not meant to be by design. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/