From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] trunk r116230: Fix bug #16558 with w32-shell-execute on remote file names. Date: Sun, 02 Feb 2014 21:33:18 -0500 Message-ID: References: <83ob2q4nbv.fsf@gnu.org> <83k3de41sc.fsf@gnu.org> <83iosx4iid.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1391394818 7305 80.91.229.3 (3 Feb 2014 02:33:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 3 Feb 2014 02:33:38 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Feb 03 03:33:45 2014 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WA9M1-0002o9-8G for ged-emacs-devel@m.gmane.org; Mon, 03 Feb 2014 03:33:45 +0100 Original-Received: from localhost ([::1]:43691 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WA9M0-0002tC-Kv for ged-emacs-devel@m.gmane.org; Sun, 02 Feb 2014 21:33:44 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36563) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WA9Lr-0002t2-7D for emacs-devel@gnu.org; Sun, 02 Feb 2014 21:33:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WA9Lj-0003f2-Sb for emacs-devel@gnu.org; Sun, 02 Feb 2014 21:33:35 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:34885) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WA9Lc-0003cz-53; Sun, 02 Feb 2014 21:33:20 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFFpYzZ/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOIYZwZgV6DFQ X-IPAS-Result: Av4EABK/CFFFpYzZ/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLNBIUGA0kiB4GwS2RCgOIYZwZgV6DFQ X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="46636032" Original-Received: from 69-165-140-217.dsl.teksavvy.com (HELO pastel.home) ([69.165.140.217]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 02 Feb 2014 21:33:18 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id B632E600F8; Sun, 2 Feb 2014 21:33:18 -0500 (EST) In-Reply-To: <83iosx4iid.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 02 Feb 2014 17:54:50 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.181 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:169355 Archived-At: > Btw, find-file-name-handler returns nil for file-exists-p when the > file name specifies a compressed file, so I'm not sure what bothered > you in the first place. Ha! Indeed, I had never noticed that `operations' property! Then I guess the current code is OK (tho it's still kind of a hack). >> And the reason we do that is because some file names are "normal" and >> others refer to non-files according to some w32 feature which can map >> them to some other tools. > The reason is described in the comment: if the file name is not > absolute and its name is not relative to the directory passed to the > system API, the API will fail. I'm having trouble understanding the above: can you give an example of a file which is neither absolute nor relative to the directory passed to the system API? >> I don't know that w32 feature at all, so it's hard for me to figure out >> what should be done, but it seems like file-exists-p is not the right >> thing to do anyway since the file name might be "normal" but refer to >> a file that doesn't exist yet. > Yes, that might happen, but then the file will be created in a > directory other than what the user expects it to, perhaps. So it would be a problem, right? Maybe instead of Ffile_exists_p a better option is to use a w32 system call along the lines of faccess or stat (after all, this presumed file name will be passed to the OS rather than to Emacs functions, so it shouldn't pay attention to file-name-handlers and things like that, right?). And to deal with "not yet created files" we shouldn't check the file itself but its directory. >> So, how does w32 decide whether a file name is "normal" or not? > We cannot know: it's up to the application that is associated with > DOCUMENT and OPERATION. So we don't actually know if the string we have is really a file name, and Ffile_exists_p is used to try and guess whether that's the case (because we need to adjust it somehow if that's the case)? Stefan