Mercurial > emacs
changeset 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 | 387093451b82 (current diff) b727bf889482 (diff) |
children | 0d5d2e53a07c |
files | etc/ChangeLog etc/NEWS lisp/ChangeLog lisp/composite.el src/ChangeLog src/composite.c |
diffstat | 6 files changed, 61 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/etc/ChangeLog Wed Jan 13 10:33:19 2010 +0900 +++ b/etc/ChangeLog Thu Jan 14 12:44:36 2010 +0900 @@ -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
--- a/etc/NEWS Wed Jan 13 10:33:19 2010 +0900 +++ b/etc/NEWS Thu Jan 14 12:44:36 2010 +0900 @@ -122,6 +122,11 @@ ** 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
--- a/lisp/ChangeLog Wed Jan 13 10:33:19 2010 +0900 +++ b/lisp/ChangeLog Thu Jan 14 12:44:36 2010 +0900 @@ -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
--- a/lisp/composite.el Wed Jan 13 10:33:19 2010 +0900 +++ b/lisp/composite.el Thu Jan 14 12:44:36 2010 +0900 @@ -744,10 +744,14 @@ (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 @@ 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)
--- a/src/ChangeLog Wed Jan 13 10:33:19 2010 +0900 +++ b/src/ChangeLog Thu Jan 14 12:44:36 2010 +0900 @@ -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.
--- 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: