]> git.eshelyaron.com Git - emacs.git/commitdiff
(Qcoding_system_define_form): New variable.
authorKenichi Handa <handa@m17n.org>
Tue, 7 Oct 2003 01:29:12 +0000 (01:29 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 7 Oct 2003 01:29:12 +0000 (01:29 +0000)
(syms_of_coding): Intern and staticpro it.
(Fcheck_coding_system): Try to autoload the definition of
CODING-SYSTEM.

src/coding.c

index 6d36cc397c6bf02a6a524e480e1bfdc79442c8f6..47bfbf5cacbbbf936336be5024c0b350dde54bf3 100644 (file)
@@ -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);