[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: read-key-sequence(-vector) on Shift left/right gives[left]/[right],
RE: read-key-sequence(-vector) on Shift left/right gives[left]/[right], not [S-left]/[S-right] ?
Tue, 7 Sep 2004 17:47:32 -0700
It is documented in the doc strings, but I was misreading them. And I'm
happy that there is an option to these functions that cancels the Shift-drop
I do think it would be clearer to specifically say that the Shift modifier
is dropped (unless DONT-DOWNCASE-LAST is non-nil), instead of saying that
"downcasing" is done. I may not be the only person who misreads this,
thinking that downcasing involves letters only.
That is, the notion of substituting lowercase for uppercase is different (to
me anyway) from the notion of dropping the Shift modifier. I don't think of
[S-left] as being uppercase and [left] as being lowercase. In fact, I don't
think those terms properly apply here: case is a property of letters, not
key sequences or keyboard keys.
The confusion is all the more likely given the only info I could find on
this in the Emacs Lisp manual:
"If an input character is an upper-case letter and has no key binding,
but its lower-case equivalent has one, then `read-key-sequence'
converts the character to lower case."
It is not a matter of downcasing "upper-case letters".
From: Richard Stallman [mailto:address@hidden
2) Shouldn't it at least be documented in the doc strings of
read-key-sequence and read-key-sequence-vector?
It already is:
The third (optional) arg DONT-DOWNCASE-LAST, if non-nil, means do not
convert the last event to lower case. (Normally any upper case event
is converted to lower case if the original event is undefined and the lower
case equivalent is defined.)