Subject: Re: bug#20623: XML and HTML files with encoding/charset="utf-8" declaration loose BOM; Coding system is reset from utf-8-with-signature to utf-8 on save

From: Eli Zaretskii <[email-masked]>
Date: Sun, 12 Aug 2018 22:07:57 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked], [email-masked]
> Date: Sat, 11 Aug 2018 20:04:05 -0400
> 
> You say that the code I wrote is not needed to make sure an existing
> latin-1-mac setting isn't overwritten by a latin-1 guess.  I expect this
> is indeed true (otherwise I think we'd have had bug-reports about it),
> but I don't know where that is handled.

It is handled inside select-safe-coding-system, which first invokes
find-auto-coding to decide which encoding is appropriate (and as part
of that, looks at XML or HTML charset information declared by the
text), and then, if the encoding it got doesn't specify the EOL
conversion, it uses the EOL conversion from the buffer's encoding or
from the appropriate defaults.

Since XML/HTML charset tags never specify the EOL conversion, it
follows that Emacs will never override the EOL conversion of the
buffer, it will only use the charset for "text conversion".

I hope this answers your question.