Mercurial > emacs
changeset 52794:f4d906e31662
(Qcoding_system_define_form): New variable.
(syms_of_coding): Intern and staticpro it.
(Fcheck_coding_system): Try to autoload the definition of
CODING-SYSTEM.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Tue, 07 Oct 2003 01:29:12 +0000 |
parents | d1e36b6d5891 |
children | 2e3d2f94a2ba |
files | src/coding.c |
diffstat | 1 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/coding.c Mon Oct 06 22:56:43 2003 +0000 +++ b/src/coding.c Tue Oct 07 01:29:12 2003 +0000 @@ -366,6 +366,10 @@ Lisp_Object Qstart_process, Qopen_network_stream; Lisp_Object Qtarget_idx; +/* If a symbol has this property, evaluate the value to define the + symbol as a coding system. */ +Lisp_Object Qcoding_system_define_form; + Lisp_Object Vselect_safe_coding_system_function; int coding_system_require_warning; @@ -6375,7 +6379,14 @@ (coding_system) Lisp_Object coding_system; { - CHECK_SYMBOL (coding_system); + Lisp_Object define_form; + + define_form = Fget (coding_system, Qcoding_system_define_form); + if (! NILP (define_form)) + { + Fput (coding_system, Qcoding_system_define_form, Qnil); + safe_eval (define_form); + } if (!NILP (Fcoding_system_p (coding_system))) return coding_system; while (1) @@ -7595,6 +7606,9 @@ Qutf_8 = intern ("utf-8"); staticpro (&Qutf_8); + Qcoding_system_define_form = intern ("coding-system-define-form"); + staticpro (&Qcoding_system_define_form); + defsubr (&Scoding_system_p); defsubr (&Sread_coding_system); defsubr (&Sread_non_nil_coding_system);