From: Kenichi Handa Date: Tue, 7 Oct 2003 01:29:12 +0000 (+0000) Subject: (Qcoding_system_define_form): New variable. X-Git-Tag: ttn-vms-21-2-B4~8589 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a362520d437614d9c4937d6f89c0b0997f00cf90;p=emacs.git (Qcoding_system_define_form): New variable. (syms_of_coding): Intern and staticpro it. (Fcheck_coding_system): Try to autoload the definition of CODING-SYSTEM. --- diff --git a/src/coding.c b/src/coding.c index 6d36cc397c6..47bfbf5cacb 100644 --- a/src/coding.c +++ b/src/coding.c @@ -366,6 +366,10 @@ Lisp_Object Qcall_process, Qcall_process_region, Qprocess_argument; 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 @@ The value of property should be a vector of length 5. */) (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 @@ syms_of_coding () 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);