John H. Palmieri writes:
I think my questions still stand: should describe-key describe the
shifted arrow keys?
Yes. I'll fix the docs for 21.2 within a few days unless someone else
gets there first. Maybe. Maybe I'll just revert the patch until it
is correctly implemented, or the current bug-prone implementation is
justified.
NB: If you are on a slow enough connection, you will see that C-h k
Shift-Down echoes "Sh-down" before describing "down."
I do not understand why the behavior was implemented by detecting the
keyboard state within the functions, rather than adding new functions
to be bound to the Sh-motion chords. It is begging for exactly the
bug you have reported.
The only good reason I can think of at the moment is that somehow
XEmacs doesn't really know about shifted motion keys, but that seems
highly unlikely given that `describe-key' reports it correctly in the
echo.
Theoretically the programmer may have intended that the shift key be
_continuously_ held down, but this is not the actual behavior.
Shifted motion keys extend or retract the existing region, no matter
how it was established, or whether the shift key is released in the
interim (as long as you don't use unshifted motion ... hm, if you
establish the region without shifted motion, then unshifted motion
extends the region; oh, yuck).
Should the documentation for the (unshifted)
arrow keys say what happens if you hold down the shift key (including
references to the variables shifted-motion-... and unshifted-motion-...)?
Yes. The absence is a bug, and the (ir)responsible programmer is
sentenced to 20 lashes with a wet noodle.
Should describe-bindings have listings for the shifted arrow keys?
Yes. 20 more lashes.
(I think I would be satisfied if the documentation that describe-key
provides for the arrow keys had a sentence or two describing their
It's not just the arrow keys. It's all the non-ASCII-control motion
keys. I'm going to have to grep for those damn variables to find out
what to fix.
default behavior when the shift key is held down, along with
reference
to the appropriate customizable variables. I don't quite know how to
do this, since 'C-n' and 'down' both run next-line, and hence both
give the same documentation when you run describe-key, but they behave
differently when you hold down the shift key.)
This is evil, isn't it. This amounts to subversion of the self-
documentation system. It _is_ possible to assign a different function
to shifted ASCII controls (for perversity's sake, I tested this with
`(define-key global-map [(control N)] #'previous-line)' which does
what you would expect, and `describe-key' and `describe-bindings' both
reflect the change). Can you guess how Shift-Down behaves if I
substitute `(shift down)' for `(control N)'?
I change the sentence to "40 lashes with a wet poodle."
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."