Subject: Re: bug#23425: master branch: `message' wrongly corrupts ' to curly quote.

From: Alan Mackenzie <[email-masked]>
Date: Fri, 9 Jun 2017 20:38:20 +0000

Hello, Drew.

On Fri, Jun 09, 2017 at 13:17:01 -0700, Drew Adams wrote:
> > This would render format strings containing these new specifiers
> > unusable on Older Emacsen.  This would be worked around by providing
> > advice to message, to be applied by external packages using the new
> > specifiers.

> Just what did you have in mind for that?

That this advice, applied to message in Emacs <26, would strip the %
from %` and %' in format strings.  So that, for example, the format
string "%`%s%'" would get converted to "`%s'" for older Emacsen.

> > There would be a significant amount of work amending format strings
> > which currently use ` and ' to use %` and %'.

> That's the problem for Emacs maintainers.  But the problem for
> 3rd-party code is much bigger, because it often needs to support
> more than just the latest release.  Clement pointed this out well.

This is the purpose of the above advice to message.

> A user, including a Lisp user, should be able to write ' or ` and
> get what s?he writes.  No behind-the-scenes application of makeup.
> No prettying-up at all - you write ' and you get '.  Simple. Clear.
> Lovely. Useful.  No need for high-heels.

I agree with you completely, which is why I am proposing this amendment.

> > I think the topic has been pretty thoroughly discussed.  Are there any
> > objections remaining to me implementing this change and committing it to
> > master?

> Sorry, but I cannot be in favor of this proposal, as I understand
> it so far.

That puzzles me, since we seem to agree about everything else on this
issue.

> But I'm even less in favor of what's already been done: making
> quote-translation the default behavior.  That's both a tragedy
> and a travesty.  I cannot imagine what the maintainers were
> thinking when they let this one get through.

> It's fine to provide easy ways to _allow_ for different kinds of
> quote translation.  But quote chars (including but not limited to
> ` and ') should NOT be translated by default.

This is what I am proposing: a ` or ' in the format string should stand
for itself, like any other character bar %.  %` would get translated
either to itself or a curly quote, depending on the user's settings.

> By default, chars should be respected for what they are.  Emacs
> should not substitute other chars just because someone working
> on Emacs development considered the substitute chars prettier
> or more modern.  That's nuts.  One overly zealous coder wreaked
> havoc, and we'll be wrestling with the result for a long time.

I agree with you.  In message format strings, % should be _the_ special
character.  We need one.  We don't need more than one.

-- 
Alan Mackenzie (Nuremberg, Germany).