Karl Kleinpaste wrote:
You're entitled to any opinion you wish to hold, and I'm
entitled to
mine, but let's just make it bloody damn clear that it is *you* who
are farting around with default behavior that has existed in Emacs for
something like 15 years
Yep. Mainly because the upshot of that default behaviour has been to
make `How do I get Delete and Backspace to work properly?' one of the
most frequently asked questions on comp.emacs.xemacs (aka
xemacs(a)xemacs.org).
As it happens, the original reason why I subscribed to
xemacs(a)xemacs.org a few years back was to ask that very question. The
answer at that time was to use `(load-library "delbackspace")', which
was basically a big kludge which did loads of stuff to various
keymaps, and still only partially worked.
I didn't particularly like this solution, questioned it, got flamed,
still questioned it, tried to fix it, and discovered that some of the
problems went far deeper than my understanding of XEmacs.
The bulk of the actual fixing (which is present in 20.4) was done by
Gary Foster, and involved systematically hunting down all of the
places where backspace, delete, \177, C-h etc were being used (and
often misused). As a result, the whole of delbackspace.el was
obsoleted by the delete-key-deletes-forward variable, which generally
seems to be considered an improvement.
The problem which remained in 20.4 was that things were still less
than perfect on a tty. If your <- key generated \177, then it was
hardcoded to `delete', and thereafter became indistinguishable from
the Delete key. You could always reconfigure things to use \010, but
then you lose C-h.
The changes to events.c involved a significant amount of (often
heated) discussion, and certainly weren't made just because someone
was bored, or because a few individuals didn't like a particular
default setting.
They were made primarily because the existing behaviour (which may
have `existed in Emacs for something like 15 years') caused real
problems for a significant number of people, and the problems couldn't
be worked around by changing existing variables.
The new behaviour should allow everyone to get the behaviour which
they desire. As for the defaults: there is no setting which will
please everyone. `Old timers' tend to have a quasi-religious belief
that \010 is Backspace and \177 is Delete. Newcomers generally just
want stuff to work right.
AFAICT, the current behaviour of using whichever code corresponds to
the erase character should satisfy everyone except those who have
their erase character set incorrectly (and if you don't want the key
which generates \177 to be treated as backspace, your erase character
probably *shouldn't* be \177).
Hardcoding \010 to backspace will annoy anyone whose backspace key
generates \177. This seems to cover most current Linux distributions,
which in turn probably accounts for more users than all other Unices
combined. Furthermore, these users tend to be at the novice end of the
scale when it comes to understanding such arcane concepts as character
terminals.
--
Glynn Clements <glynn(a)sensei.co.uk>