forked from mirrors/qmk_userspace
		
	Work around WinCompose issue for U+Axxx or U+Exxx (#18260)
* Work around WinCompose issue for U+Axxx or U+Exxx * tzarc's more efficient version Co-authored-by: Thomas <mail@tpreisner.de>
This commit is contained in:
		
					parent
					
						
							
								f0940a6fe4
							
						
					
				
			
			
				commit
				
					
						a3a47a6556
					
				
			
		
					 1 changed files with 17 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -324,19 +324,26 @@ void register_hex(uint16_t hex) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
void register_hex32(uint32_t hex) {
 | 
			
		||||
    bool onzerostart = true;
 | 
			
		||||
    bool first_digit        = true;
 | 
			
		||||
    bool needs_leading_zero = (unicode_config.input_mode == UC_WINC);
 | 
			
		||||
    for (int i = 7; i >= 0; i--) {
 | 
			
		||||
        if (i <= 3) {
 | 
			
		||||
            onzerostart = false;
 | 
			
		||||
        }
 | 
			
		||||
        // Work out the digit we're going to transmit
 | 
			
		||||
        uint8_t digit = ((hex >> (i * 4)) & 0xF);
 | 
			
		||||
        if (digit == 0) {
 | 
			
		||||
            if (!onzerostart) {
 | 
			
		||||
                send_nibble_wrapper(digit);
 | 
			
		||||
 | 
			
		||||
        // If we're still searching for the first digit, and found one
 | 
			
		||||
        // that needs a leading zero sent out, send the zero.
 | 
			
		||||
        if (first_digit && needs_leading_zero && digit > 9) {
 | 
			
		||||
            send_nibble_wrapper(0);
 | 
			
		||||
        }
 | 
			
		||||
        } else {
 | 
			
		||||
 | 
			
		||||
        // Always send digits (including zero) if we're down to the last
 | 
			
		||||
        // two bytes of nibbles.
 | 
			
		||||
        bool must_send = i < 4;
 | 
			
		||||
 | 
			
		||||
        // If we've found a digit worth transmitting, do so.
 | 
			
		||||
        if (digit != 0 || !first_digit || must_send) {
 | 
			
		||||
            send_nibble_wrapper(digit);
 | 
			
		||||
            onzerostart = false;
 | 
			
		||||
            first_digit = false;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue