Function: define-coding-system-alias

define-coding-system-alias is a function defined in coding.c.

Signature

(define-coding-system-alias ALIAS CODING-SYSTEM)

Documentation

Define ALIAS as an alias for CODING-SYSTEM.

Probably introduced at or before Emacs version 20.3.

Source Code

// Defined in /usr/src/emacs/src/coding.c
{
  Lisp_Object spec, aliases, eol_type, val;

  CHECK_SYMBOL (alias);
  CHECK_CODING_SYSTEM_GET_SPEC (coding_system, spec);
  aliases = AREF (spec, 1);
  /* ALIASES should be a list of length more than zero, and the first
     element is a base coding system.  Append ALIAS at the tail of the
     list.  */
  while (!NILP (XCDR (aliases)))
    aliases = XCDR (aliases);
  XSETCDR (aliases, list1 (alias));

  eol_type = AREF (spec, 2);
  if (VECTORP (eol_type))
    {
      Lisp_Object subsidiaries;
      int i;

      subsidiaries = make_subsidiaries (alias);
      for (i = 0; i < 3; i++)
	Fdefine_coding_system_alias (AREF (subsidiaries, i),
				     AREF (eol_type, i));
    }

  Fputhash (alias, spec, Vcoding_system_hash_table);
  Vcoding_system_list = Fcons (alias, Vcoding_system_list);
  val = Fassoc (Fsymbol_name (alias), Vcoding_system_alist, Qnil);
  if (NILP (val))
    Vcoding_system_alist = Fcons (Fcons (Fsymbol_name (alias), Qnil),
				  Vcoding_system_alist);

  return Qnil;
}