Fix utf-8-auto and missing cl-deftype #43
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Due to upcoming changes in Emacs 29.1 utf-8-auto now produces a byte
order mark at the start of strings and no longer matches utf-8-unix.
Emacs is also not equipped to deal with byte order marks appearing on
their own, and will parse them as a symbol with the name \uFEFF (eek).
The end result is that trying to decode utf-8-auto with utf-8-unix in
Emacs 29 will result in an insanity inducing bug where calling read on
a string with a byte order mark (that doesn't render!!!) appears to
produce ... absolutely nothing, which turns out to be the symbol
mentioned above.
emacs-mirror/emacs@cfd2b35
Given the absolute nightmare that byte order marks cause in Emacs, I strongly suggest switching everything over to
utf-8-unix
to avoid nasty cases like this in the future, and to save 3 bytes on every message!