I'm not subscribed to this list, so if you want me to reply, please CC
me explicitly. Besides, this discussion should be moved to
address@hidden, since I don't see anything Cygwin specific here
at this point.
Date: Thu, 15 Aug 2013 16:55:18 -0400
From: Ryan Johnson <address@hidden>
On 15/08/2013 1:10 PM, Eli Zaretskii wrote:
Date: Thu, 15 Aug 2013 12:58:02 -0400
From: Ken Brown <address@hidden>
CC: Eli Zaretskii <address@hidden>
Eli is the expert on bidi.c (he wrote it). He can probably tell you
whether you've really bumped into an emacs bug here.
There's nothing wrong with bidi.c here, it just aborts because it is
handed an invalid character codepoint. It would have been useful to
see the value of that character.
I guess I would just consider crashing to be overkill for a bad byte on
the input stream...
It's not a crash, it's a deliberate abort. Any invalid codepoint at
such low level of the Emacs display engine means only one thing: a
bug, and a grave one at that. Such bugs must be flagged prominently
and unequivocally, prompting users to report them. We could in
principle "recover" by substituting some other character, but such
recovery would only sweep a grave problem under the carpet. Since
Emacs isn't a safety-critical program, and auto-saves your edits
before it commits suicide, such recovery feature is deemed
inappropriate, and detrimental to the general quality of Emacs code in
the long run.
and in any case, if 5-byte UTF-8 is illegal, and
worth dying for, wouldn't it make sense to die right away rather than
processing it so something else can croak down the road?
See above: yes, it's worth dying for, because I'm quite sure this is a
sign of a very serious trouble in the session anyway. Why does it
matter for you, as a user, whether we abort here or "down the road"?
The principle is to die as soon as possible, because in many cases
this allows to identify the culprit faster and easier. IOW, dying
sooner and faster helps the Emacs maintainers to find and fix problems
without any real effect on the users.