Function: set-input-meta-mode

set-input-meta-mode is a function defined in keyboard.c.

Signature

(set-input-meta-mode META &optional TERMINAL)

Documentation

Enable or disable 8-bit input on TERMINAL.

If META is t, Emacs will accept 8-bit input, and interpret the 8th bit as the Meta modifier before it decodes the characters.

If META is encoded, Emacs will interpret the 8th bit of single-byte characters after decoding the characters.

If META is nil, Emacs will ignore the top bit, on the assumption it is parity.

Otherwise, Emacs will accept and pass through 8-bit input without specially interpreting the top bit.

This setting only has an effect on tty terminal devices.

Optional parameter TERMINAL specifies the tty terminal device to use. It may be a terminal object, a frame, or nil for the terminal used by the currently selected frame.

See also current-input-mode.

Source Code

// Defined in /usr/src/emacs/src/keyboard.c
{
  struct terminal *t = decode_tty_terminal (terminal);
  struct tty_display_info *tty;
  int new_meta;

  if (!t)
    return Qnil;
  tty = t->display_info.tty;

  if (NILP (meta))
    new_meta = 0;
  else if (EQ (meta, Qt))
    new_meta = 1;
  else if (EQ (meta, Qencoded))
    new_meta = 3;
  else
    new_meta = 2;

  if (tty->meta_key != new_meta)
    {
#ifndef DOS_NT
      /* this causes startup screen to be restored and messes with the mouse */
      reset_sys_modes (tty);
#endif

      tty->meta_key = new_meta;

#ifndef DOS_NT
      init_sys_modes (tty);
#endif
    }
  return Qnil;
}