diff src/composite.c @ 106812:23c562723a8d

Make auto-composition work on all buffers even if they are fundamental mode.
author Kenichi Handa <handa@m17n.org>
date Thu, 14 Jan 2010 12:44:36 +0900
parents 142b86c0d21d
children 0d5d2e53a07c
line wrap: on
line diff
--- a/src/composite.c	Wed Jan 13 10:33:19 2010 +0900
+++ b/src/composite.c	Thu Jan 14 12:44:36 2010 +0900
@@ -157,6 +157,7 @@
 Lisp_Object Vcompose_chars_after_function;
 
 Lisp_Object Qauto_composed;
+Lisp_Object Vauto_composition_mode;
 Lisp_Object Vauto_composition_function;
 Lisp_Object Qauto_composition_function;
 Lisp_Object Vcomposition_function_table;
@@ -1039,7 +1040,7 @@
   if (NILP (string) && PT > charpos && PT < endpos)
     cmp_it->stop_pos = PT;
   if (NILP (current_buffer->enable_multibyte_characters)
-      || ! FUNCTIONP (Vauto_composition_function))
+      || NILP (Vauto_composition_mode))
     return;
   if (bytepos < 0)
     {
@@ -1478,7 +1479,7 @@
     }
 
   if (NILP (current_buffer->enable_multibyte_characters)
-      || ! FUNCTIONP (Vauto_composition_function))
+      || NILP (Vauto_composition_mode))
     return new_pt;
 
   /* Next check the automatic composition.  */
@@ -1661,7 +1662,7 @@
   if (!find_composition (from, to, &start, &end, &prop, string))
     {
       if (!NILP (current_buffer->enable_multibyte_characters)
-	  && FUNCTIONP (Vauto_composition_function)
+	  && ! NILP (Vauto_composition_mode)
 	  && find_automatic_composition (from, to, &start, &end, &gstring,
 					 string))
 	return list3 (make_number (start), make_number (end), gstring);
@@ -1788,6 +1789,11 @@
   Qauto_composition_function = intern_c_string ("auto-composition-function");
   staticpro (&Qauto_composition_function);
 
+  DEFVAR_LISP ("auto-composition-mode", &Vauto_composition_mode,
+	       doc: /* Non-nil if Auto-Composition mode is enabled.
+Use the command `auto-composition-mode' to change this variable. */);
+  Vauto_composition_mode = Qt;
+
   DEFVAR_LISP ("auto-composition-function", &Vauto_composition_function,
 	       doc: /* Function to call to compose characters automatically.
 This function is called from the display routine with four arguments: