Subject: Re: bug#5303: 23.1.91; Cannot load .emacs-history from savehist.el

From: Eli Zaretskii <[email-masked]>
Date: Wed, 20 Jan 2010 05:39:13 -0500

> From: Michael Albinus <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked],  [email-masked]
> Date: Wed, 20 Jan 2010 10:45:55 +0100
> 
> ! 	  handler = Ffind_file_name_handler (string,
> ! 					     NILP (Vinhibit_file_name_operation)
> ! 					     ? Qfile_exists_p
> ! 					     : Vinhibit_file_name_operation);

But this assumes that `openp is called for the same file op for which
the value inhibit-file-name-operation was set, doesn't it?  I'm not
sure such an assumption is safe: `openp' is a very popular utility
function, it is called by many Lisp APIs, and could very well be
called by some primitive that has nothing to do with
inhibit-file-name-operation's value.

> > Tramp inhibits the file name handler of `load'. `openp' checks for a
> > file name handler of `file-exists-p', which is not inhibited.

Let me turn the table and ask you: why doesn't Tramp inhibit _all_ its
file name handlers in this case?  IIUC, what we want here is to have
`load' do its thing with a local file.  So which other handlers could
we want to be active in this case?

(There's still a broader issue with the apparent discrepancy between
the handler test in `load' and the similar test in `openp', of
course.)