But the problem with remapping \177 as keysym "BS" is that it means
one's keyboard is not bound the same way under X /vs./ inside an xterm.
Right now, I've got two XEmacsen running Gnus: One locally, under X,
on my main home system for mail which I handle here (
charcoal.com),
and one remotely, inside a local xterm, at JPRC for most things.
Under X, I hit Delete and I get DEL, I hit Backspace and I get BS, I
hit `C-h' and I get `C-h'. These bindings seem to be shifted
circularly inside an xterm, so that I hit Delete and I get BS, and I
hit Backspace and I get `C-h'. This is to say that I can't even
expect to get the same result from hitting the exact same keys within
an xterm as I get under X.
This is extremely peculiar, and a fabulous loss of coherency to me.
It's not a matter of being a crusty holdover to DEC; it's a matter of
a single keyboard attached to 2 instances of a single program not
providing identical keyboard interfaces. In order to get the same
keyboard interface, every keymap in every XEmacs mode will have to
duplicate every entry containing <delete> so that it also binds the
<backspace> case. Until that happens, lots of other folks who, as
myself, split a lot of time between "under X" and "in an xterm" will
find exactly the same problem, and if 21 were to go out the door the
way it is right now, most of those other folks wouldn't be very
understanding of the soft underbelly of the Keymap Purity Hit Squad;
they'll just complain about why their Delete has stopped being a
<delete>...but only in an xterm. Philosophy is great, but it doesn't
solve the problem of lost keymap capabilities.
20.4 had no problem with this. In 20.4, at least the limit of
X/terminal keymap difficulty was that hitting the Backspace key simply
unavoidably duplicated the existing binding on `C-h'. 20.4 didn't
willfully *move* one binding to another key, which is what 21 has done.
If there's some way provided by which to turn off or alter the
"aggressively translate \177 to an arbitrary keysym," I'd love to know
it. The documentation seems to have no help on this -- the *Info*
files for 21 still refer to DEL in its typical use as executing
"delete-backward-char", so it appears that these things haven't been
updated since at least v19, considering that even in 20, DEL's usual
binding is "backward-or-forward-delete-char". I've tried fiddling
with keyboard-translate -- things like (keyboard-translate '(?\177
DEL)) and related variations -- to no good effect, nor any effect at
all, in fact. A look at lisp/events.el was not informative, since I
see no indication of the base \177->BS translation there.