summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/ChangeLog4
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/ChangeLog11
-rw-r--r--lisp/composite.el42
-rw-r--r--src/ChangeLog12
-rw-r--r--src/composite.c12
6 files changed, 61 insertions, 25 deletions
diff --git a/etc/ChangeLog b/etc/ChangeLog
index f1b38186f9d..5a54cada2f5 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-14 Kenichi Handa <handa@m17n.org>
+
+ * NEWS: Describe the change of auto-composition-mode.
+
2010-01-12 Glenn Morris <rgm@gnu.org>
* CONTRIBUTE, NEWS: Use bug-gnu-emacs rather than emacs-pretest-bug
diff --git a/etc/NEWS b/etc/NEWS
index 3b4faf099ce..cd5b9a82d32 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -122,6 +122,11 @@ international/ucs-normalize.el.
** Function arguments in *Help* buffers are now shown in upper-case.
Customize `help-downcase-arguments' to t to show them in lower-case.
+** Delete Auto Composition Mode. Now the variable
+`auto-composition-mode' is simply a buffer local variable. The
+commands `auto-composition-mode' and `global-auto-composition-mode'
+still works as before.
+
* Editing Changes in Emacs 23.2
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b9cd340f998..cf28cd6dfde 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-14 Kenichi Handa <handa@m17n.org>
+
+ * composite.el (auto-composition-mode): Make it a buffer local
+ variable (permanent-local).
+ (auto-composition-function): Set the default value to
+ auto-compose-chars.
+ (auto-composition-mode): Make it a simple function, not a minor
+ mode.
+ (global-auto-composition-mode): Likewise.
+ (turn-on-auto-composition-if-enabled): Delete it.
+
2010-01-12 Michael Albinus <michael.albinus@gmx.de>
* files.el (copy-directory): Compute target for recursive
diff --git a/lisp/composite.el b/lisp/composite.el
index ce7ea95800b..4e91945b1b6 100644
--- a/lisp/composite.el
+++ b/lisp/composite.el
@@ -744,10 +744,14 @@ This function is the default value of `auto-composition-function' (which see)."
(setq func 'compose-gstring-for-terminal))
(funcall func gstring))))
+(make-variable-buffer-local 'auto-composition-mode)
+(put 'auto-composition-mode 'permanent-local t)
+
(make-variable-buffer-local 'auto-composition-function)
+(setq-default auto-composition-function 'auto-compose-chars)
;;;###autoload
-(define-minor-mode auto-composition-mode
+(defun auto-composition-mode (&optional arg)
"Toggle Auto Composition mode.
With ARG, turn Auto Composition mode off if and only if ARG is a non-positive
number; if ARG is nil, toggle Auto Composition mode; anything else turns Auto
@@ -758,29 +762,23 @@ by functions registered in `composition-function-table' (which see).
You can use `global-auto-composition-mode' to turn on
Auto Composition mode in all buffers (this is the default)."
- nil nil nil
- (if noninteractive
- (setq auto-composition-mode nil))
- (cond (auto-composition-mode
- (setq auto-composition-function 'auto-compose-chars))
- (t
- (setq auto-composition-function nil))))
-
-(defun turn-on-auto-composition-if-enabled ()
- (if enable-multibyte-characters
- (auto-composition-mode 1)))
+ (interactive "P")
+ (setq auto-composition-mode
+ (if arg
+ (or (not (integerp arg)) (> arg 0))
+ (not auto-composition-mode))))
;;;###autoload
-(define-global-minor-mode global-auto-composition-mode
- auto-composition-mode turn-on-auto-composition-if-enabled
- ;; This :extra-args' appears to be the result of a naive copy&paste
- ;; from global-font-lock-mode.
- ;; :extra-args (dummy)
- :initialize 'custom-initialize-delay
- :init-value (not noninteractive)
- :group 'auto-composition
- :version "23.1")
-
+(defun global-auto-composition-mode (&optional arg)
+ "Toggle Auto-Composition mode in every possible buffer.
+With prefix arg, turn Global-Auto-Composition mode on if and only if arg
+is positive.
+See `auto-composition-mode' for more information on Auto-Composition mode."
+ (interactive "P")
+ (setq-default auto-composition-mode
+ (if arg
+ (or (not (integerp arg)) (> arg 0))
+ (not (default-value 'auto-composition-mode)))))
(defalias 'toggle-auto-composition 'auto-composition-mode)
diff --git a/src/ChangeLog b/src/ChangeLog
index 2642888113c..2ef9ea9eb5a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
+2010-01-14 Kenichi Handa <handa@m17n.org>
+
+ Make auto-composition work on all buffers even if they are
+ fundamental mode.
+
+ * composite.c (Vauto_composition_mode): New variable.
+ (composition_compute_stop_pos): Check Vauto_composition_mode
+ instead of Vauto_composition_function.
+ (composition_adjust_point, Ffind_composition_internal): Likewise.
+ (syms_of_composite): Declare Lisp variable
+ "auto-composition-mode" here.
+
2010-01-13 Kenichi Handa <handa@m17n.org>
Display buffer name, etc. in mode line by composing correctly.
diff --git a/src/composite.c b/src/composite.c
index edebf1e3136..3c2bf409eed 100644
--- a/src/composite.c
+++ b/src/composite.c
@@ -157,6 +157,7 @@ Lisp_Object composition_hash_table;
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 @@ composition_compute_stop_pos (cmp_it, charpos, bytepos, endpos, string)
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 @@ composition_adjust_point (last_pt, new_pt)
}
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 @@ See `find-composition' for more details. */)
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 @@ The default value is the function `compose-chars-after'. */);
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: