From: Eli Zaretskii Date: Sat, 5 Jun 2021 14:17:17 +0000 (+0300) Subject: Document the last change X-Git-Tag: emacs-28.0.90~2189 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=58de11fe1339a1248f9b0bccb3a3601a9d8f56c6;p=emacs.git Document the last change * doc/lispref/os.texi (Input Modes): Document the changes in the values of the META flag. * etc/NEWS: Call out the change in input-meta-mode. --- diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index 37fde0a953d..242c5ed1522 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -2369,11 +2369,17 @@ has no effect except in @sc{cbreak} mode. The argument @var{meta} controls support for input character codes above 127. If @var{meta} is @code{t}, Emacs converts characters with -the 8th bit set into Meta characters. If @var{meta} is @code{nil}, +the 8th bit set into Meta characters, before it decodes them as needed +(@pxref{Terminal I/O Encoding}). If @var{meta} is @code{nil}, Emacs disregards the 8th bit; this is necessary when the terminal uses -it as a parity bit. If @var{meta} is neither @code{t} nor @code{nil}, -Emacs uses all 8 bits of input unchanged. This is good for terminals -that use 8-bit character sets. +it as a parity bit. If @var{meta} is the symbol @code{encoded}, Emacs +first decodes the characters using all the 8 bits of each byte, and +then converts the decoded single-byte characters into Meta characters +if they have their eighth bit set. Finally, if @var{meta} is neither +@code{t} nor @code{nil} nor @code{encoded}, Emacs uses all 8 bits of +input unchanged, both before and after decoding them. This is good +for terminals that use 8-bit character sets and don't encode the Meta +modifier as the eighth bit. If @var{quit-char} is non-@code{nil}, it specifies the character to use for quitting. Normally this character is @kbd{C-g}. @@ -2398,9 +2404,11 @@ flow control for output to the terminal. This value is meaningful only when @var{interrupt} is @code{nil}. @item meta is @code{t} if Emacs treats the eighth bit of input characters as -the meta bit; @code{nil} means Emacs clears the eighth bit of every -input character; any other value means Emacs uses all eight bits as the -basic character code. +the Meta bit before decoding input; @code{encoded} if Emacs treats the +eighth bit of the decoded single-byte characters as the Meta bit; +@code{nil} if Emacs clears the eighth bit of every input character; +any other value means Emacs uses all eight bits as the basic character +code. @item quit is the character Emacs currently uses for quitting, usually @kbd{C-g}. @end table diff --git a/etc/NEWS b/etc/NEWS index e782603f0b2..7d53eafbae2 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -295,6 +295,17 @@ default, 9.5 MiB). Press '?' or 'C-h' in that prompt to read more about the different options to visit a file, how you can disable the prompt, and how you can tweak the file size threshold. ++++ +** Improved support for terminal emulators that encode the Meta flag. +Some terminal emulators set the 8th bit of Meta characters, and then +encode the resulting character code as if it were non-ASCII character +above codepoint 127. Previously, the only way of using these in Emacs +was to set up the terminal emulator to use the ESC characters to send +Meta characters to Emacs, e.g., send "ESC x" when the user types +'M-x'. You can now avoid the need for this setup of such terminal +emulators by using the new input-meta-mode with the special value +'encoded' with these terminal emulators. + * Editing Changes in Emacs 28.1