use HIBYTE_WORD16/LOBYTE_WORD16 to get the bytes from short type values

This commit is contained in:
VincentWei
2018-02-01 23:12:42 +08:00
parent d9c95e1900
commit f4ccf7ee1c
3 changed files with 18 additions and 17 deletions

View File

@@ -3718,8 +3718,8 @@ static int utf16le_conv_from_uc32 (UChar32 wc, unsigned char* mchar)
}
if (wc < 0x10000) {
mchar [0] = LOBYTE (wc);
mchar [1] = HIBYTE (wc);
mchar [0] = LOBYTE_WORD16 (wc);
mchar [1] = HIBYTE_WORD16 (wc);
return 2;
}
@@ -3730,10 +3730,10 @@ static int utf16le_conv_from_uc32 (UChar32 wc, unsigned char* mchar)
w1 |= (wc >> 10);
w2 |= (wc & 0x03FF);
mchar [0] = LOBYTE (w1);
mchar [1] = HIBYTE (w1);
mchar [2] = LOBYTE (w2);
mchar [3] = HIBYTE (w2);
mchar [0] = LOBYTE_WORD16 (w1);
mchar [1] = HIBYTE_WORD16 (w1);
mchar [2] = LOBYTE_WORD16 (w2);
mchar [3] = HIBYTE_WORD16 (w2);
return 4;
}
@@ -3944,8 +3944,8 @@ static int utf16be_conv_from_uc32 (UChar32 wc, unsigned char* mchar)
}
if (wc < 0x10000) {
mchar [1] = LOBYTE (wc);
mchar [0] = HIBYTE (wc);
mchar [1] = LOBYTE_WORD16 (wc);
mchar [0] = HIBYTE_WORD16 (wc);
return 2;
}
@@ -3956,10 +3956,10 @@ static int utf16be_conv_from_uc32 (UChar32 wc, unsigned char* mchar)
w1 |= (wc >> 10);
w2 |= (wc & 0x03FF);
mchar [1] = LOBYTE (w1);
mchar [0] = HIBYTE (w1);
mchar [3] = LOBYTE (w2);
mchar [2] = HIBYTE (w2);
mchar [1] = LOBYTE_WORD16 (w1);
mchar [0] = HIBYTE_WORD16 (w1);
mchar [3] = LOBYTE_WORD16 (w2);
mchar [2] = HIBYTE_WORD16 (w2);
return 4;
}

View File

@@ -396,7 +396,7 @@ static void handle_scancode_on_keydown (int scancode, key_info* kinfo)
key_map = __mg_key_maps [shift_final];
if (key_map != NULL) {
keysym = key_map [scancode];
kinfo->type = HIBYTE (keysym);
kinfo->type = HIBYTE_WORD16 (keysym);
if (kinfo->type >= 0xf0) {
kinfo->type -= 0xf0;
@@ -406,7 +406,7 @@ static void handle_scancode_on_keydown (int scancode, key_info* kinfo)
if (key_map)
keysym = key_map [scancode];
kinfo->type =HIBYTE(keysym);
kinfo->type = HIBYTE_WORD16 (keysym);
/*Now, the kinfo->type maybe changed to KT_ARABIC_COMPOSE.
* So we have to deal with this situation */
if(kinfo->type >= 0xf0){
@@ -423,7 +423,7 @@ static void handle_scancode_on_keydown (int scancode, key_info* kinfo)
key_map = __mg_key_maps[shift_final ^(1<<KG_SHIFT)];
if (key_map)
keysym = key_map [scancode];
kinfo->type =HIBYTE(keysym);
kinfo->type = HIBYTE_WORD16 (keysym);
if(kinfo->type >= 0xf0){
kinfo->type -= 0xf0;
@@ -457,7 +457,7 @@ static void handle_scancode_on_keyup (int scancode, key_info* kinfo)
key_map = __mg_key_maps [shift_final];
if (key_map != NULL) {
keysym = key_map [scancode];
kinfo->type = HIBYTE (keysym);
kinfo->type = HIBYTE_WORD16 (keysym);
if (kinfo->type >= 0xf0) {
kinfo->type -= 0xf0;

View File

@@ -423,7 +423,8 @@ static int keyboard_update (void)
}
else {
scancode = unicode;
//printf ("scancode = %d\n", scancode);
_MG_PRINTF ("IAL>PCXVFB: get a key state change (%s): scancode = %d\n",
press?"pressed":"released", scancode);
kbd_state [scancode] = press;
if (press)
last = scancode;