Subject: bug#7291: 24.0.50; `non-essential' is incomprehensible

From: "Drew Adams" <[email-masked]>
Date: Fri, 29 Oct 2010 09:47:26 -0700

> >  Code that might perform a non-essential task can test this
> >  variable and dispense with performing the task if the value
> >  is non-nil.
> 
> No, this is backwards: e.g. Tramp doesn't know that what it does is
> non-essential, 

Precisely why I said that the task to be performed _might_ be non-essential.

Tramp knows that its operation might be disruptive, and it knows that some other
code might not want that disruption, and that to communicate that the other code
might indicate that the interruption action is "non-essential" (in which case it
should be skipped).

This variable is about conditionally inhibiting certain actions that could
disrupt the user.  It would be better for it to be named something that reflects
that, but I'm not going to fight that battle.  (Consequently, I won't bother to
suggest a different name.  I'll just say that that is what this var is about -
it is not about "non-essential" anything.)

> which is why it needs to look up non-essential 
> to figure that out.

And that is why I said that Tramp can test the variable and skip the task if the
value indicates non-essential.

We are saying the same thing, or trying to.

> The only reason it does such a look up is not because it
> suspects this is non-essential, but because it is about to do 
> something that may disturb the user, so it first wants to make
> sure it is really necessary to do it.

We agree about you wrote in this paragraph (starting with "Tramp doesn't know").
That's just what I tried to say too.  So I suggest you put such info into the
doc string.  I have no objection to your wording here or similar.

Both parts of the story need to be presented clearly: (1) the code such as Tramp
that conditionally disturbs the user (depending on the var value) and (2) the
code such as Icomplete that binds the var during an operation that it does not
want interrupted.

HTH.