1
0
mirror of https://github.com/rfivet/uemacs.git synced 2025-11-23 11:41:15 -05:00

Fix regression on key command input for M-^X and ^X^X.

This commit is contained in:
2021-08-07 13:46:14 +08:00
parent c55a72ad26
commit 1cdc889f6f
2 changed files with 28 additions and 26 deletions

18
bind.c
View File

@@ -448,22 +448,19 @@ static const char *getfname( unsigned keycode, const char *failmsg) {
* String key name TO Command Key
*
* char *keyname; name of key to translate to Command key form
* fmt: [M-][^X][^][FN]X
* fmt: [M-|^X][^][FN]X
* returns ~0 on invalid sequence
*/
static unsigned int stock( char *keyname) {
/* parse it up */
unsigned c = 0 ;
/* first, the META prefix */
/* first, the prefix META or ^X */
if( *keyname == 'M' && keyname[ 1] == '-') {
c = META ;
keyname += 2 ;
}
/* control-x prefix */
if( *keyname == '^' && keyname[ 1] == 'X') {
c |= CTLX ;
} else if( *keyname == '^' && keyname[ 1] == 'X') {
c = CTLX ;
keyname += 2 ;
}
@@ -487,10 +484,9 @@ static unsigned int stock( char *keyname) {
if( *keyname < 32 || *keyname == 0x7F) {
c |= CTRL ;
*keyname ^= 0x40 ;
}
/* make sure we are not lower case (not with function keys) */
if( *keyname >= 'a' && *keyname <= 'z' && !(c & SPEC))
} else if( c && !(c & SPEC)
&& *keyname >= 'a' && *keyname <= 'z')
/* make sure we are not lower case (not with function keys) */
*keyname -= 32 ;
/* the final sequence... */