Subject: Re: bug#12090: 24.1.50; "C-h c" mutilates M-c when c is a non-ASCII character

From: Andreas Schwab <[email-masked]>
Date: Mon, 30 Jul 2012 09:51:21 +0200

Eli Zaretskii <[email-masked]> writes:

> But then this fragment (see the line marked with "<<<<<<<"):
>
> 	  if (!INTEGERP (key)
> 	      || EQ (key, meta_prefix_char)
> 	      || (XINT (key) & meta_modifier))
> 	    {
> 	      args[len++] = Fsingle_key_description (meta_prefix_char, Qnil);
> 	      args[len++] = sep;
> 	      if (EQ (key, meta_prefix_char))
> 		continue;
> 	    }
> 	  else
> 	    XSETINT (key, (XINT (key) | meta_modifier) & ~0x80);  <<<<<<<<
>
> resets the 0x80 bit of 0x5d0, converting it to 0x550 in the process,
> which yields the Armenian character shown above.

This was added in commit b042457 back in 2004, and is most likely
unintented.  Fixed in trunk.

Andreas.

-- 
Andreas Schwab, [email-masked]
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."