Subject: bug#16617: 24.3.50; REGRESSION: `C-q ?' pops up annoying *Char Help* buffer

From: Drew Adams <[email-masked]>
Date: Thu, 3 Apr 2014 13:58:25 -0700 (PDT)

> It's clear, I just don't agree that it's a problem.  It is intended
> behavior shared by many other Emacs commands.
> 
> > Why should `C-q ?' show any "help"?
>
> Because '?' is a help character.

1. Not in most contexts, it is not.  Did you type your reply message in
   Emacs?  When you typed `?', did Emacs pop up a help buffer?  If not,
   do you wish it had?

2. And `C-h' IS a help character in most contexts.  And yet `C-q C-h'
   inserts a Control-Q character - it does NOT pop up a help buffer.
   So the argument that help characters must behave the way you claim
   just does not hold water.

> > Why doesn't it just insert the character `?'?  `C-q w' inserts the
> > character `w'.  Why should `C-q ?' act differently?
> 
> For the same reason "M-x ?" triggers a different response than "M-x w".

3. `?' is specifically bound to a help command, `minibuffer-completion-help',
   in `minibuffer-local-must-match-map'.  It is not bound to a help char
   in the recipe I gave (e.g. in *scratch*).

4. And I specifically stated that THIS bug report is NOT for the cases
   where `?' is bound to a help command.  Even though the same arguments
   hold for that rare case as well, I will not include it as part of this
   bug report.  I'm willing to limit THIS bug report to the vast majority
   of cases: those in which `?' is NOT bound to a help character.

> You can say this till Kingdom Come, it won't change the basic facts:
> this is a very old feature,

It is still a regression wrt even older behavior. 

> and I at least see no reason to remove it,

Too bad.

> since Emacs behaves like that in many other commands.

Name one.  What is similar to this?

> End of story.
> 
> > > I don't know why '?' should also be excluded
> >
> > It is an ordinary, printable, self-inserting character in the
> > context I reported.
> 
> No, it isn't.  It is a character that invokes help.

No, it is NOT.  Not in the contexts that THIS bug report is about.

emacs -Q
In *scratch*: `C-q ?'

`?' is not a character that invokes help in *scratch*.  Likewise
in most buffers/modes.

You try to distract us by giving an example of `?' in
`minibuffer-local-must-match-map', where it IS a help character.
That's a shame.

And even there, I would argue (but not for this bug report) that
`C-q ?' should just insert `?'.

> > `C-q' is SUPPOSED to insert ordinary, self-inserting characters.
> 
> And "M-x" is supposed to echo the next word, but '?' still behaves
> differently there.

No, again a strawman.  M-x does lots of things.  And `?' is not a
word-constituent in the minibuffer for M-x.  It is not even
self-inserting.  It is 100% irrelevant to THIS bug.

(Oh and BTW, IMO `?' *should* be self-inserting in the minibuffer.)

> Just let go, Drew.  You keep repeating the same arguments, and they
> didn't fly the first time.

Ditto.  But I would suggest that you think a little more about this.

Do I really care?  Not so much, except in so far as I care about
Emacs.  I probably came across this bug by accidentally hitting
`C-q ?' instead of `C-q C-?' or something - I really don't recall.

As you point out, this has been broken for a long time.  And I only
recently noticed it.  It doesn't bother me if you leave this broken
forever.  That would be too bad for Emacs (unclean), but I wouldn't
lose any sleep over it.  Have a nice day.