X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fegg.git;a=blobdiff_plain;f=egg-cnv.el;h=bd947dcf89bb191006e361d578795b696fdb2b85;hp=f9df95d90c504ddcce9b233788e97c5686d8d293;hb=cfd2771a57243d763ff08dfd2e78cb2ddbc3b546;hpb=0db6050c7bc8d536788b1d424357695375d768e2 diff --git a/egg-cnv.el b/egg-cnv.el index f9df95d..bd947dc 100644 --- a/egg-cnv.el +++ b/egg-cnv.el @@ -9,7 +9,7 @@ ;; Maintainer: NIIBE Yutaka ;; Keywords: mule, multilingual, input method -;; This file will be part of GNU Emacs (in future). +;; This file is part of EGG. ;; EGG is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -376,7 +376,7 @@ 'egg-bunsetsu-last last 'local-map egg-conversion-map)) (if egg-conversion-face - (put-text-property p p1 'face (egg-get-conversion-face))))) + (egg-set-face p p1 (egg-get-conversion-face))))) (defun egg-insert-bunsetsu-list (bunsetsu-info-list &optional last) (let ((l bunsetsu-info-list) @@ -556,7 +556,6 @@ (interactive "p") (egg-reconvert-bunsetsu-internal n 'egg-start-conversion)) -;; XXX: not working. Should change protocol to backend? (defun egg-decide-before-point () (interactive) (let ((inhibit-read-only t) @@ -574,13 +573,13 @@ bl (setcdr bl (list (egg-get-bunsetsu-info (point))))) (if (get-text-property (point) 'egg-bunsetsu-last) (progn - (egg-end-conversion (cdr bunsetsu-list)) + (egg-end-conversion (cdr bunsetsu-list) nil) (setq bunsetsu-list (setq bl (list nil))))) (setq p (point)) (forward-char) (set-text-properties p (point) nil))) (if (cdr bunsetsu-list) - (egg-end-conversion (cdr bunsetsu-list))) + (egg-end-conversion (cdr bunsetsu-list) nil)) (if (get-text-property (point) 'egg-end) (progn ;; delete close marker @@ -601,45 +600,10 @@ (delete-region (point) (+ (point) (length egg-conversion-close))) (its-restart source t)))) -(defun egg-decide-bunsetsu (&optional end-marker) - (let ((in-loop t) - p bunsetsu-info-list bl) - (setq p (point)) - (while in-loop - (let ((bl1 (cons (egg-get-bunsetsu-info p) nil))) - (if bl - (setq bl (setcdr bl bl1)) - (setq bunsetsu-info-list (setq bl bl1)))) - (forward-char) - (remove-text-properties p (point) '(face nil - intangible nil - local-map nil - read-only nil - egg-bunsetsu-last nil)) - (setq p (point)) - (if (or (and end-marker (= p end-marker)) - (get-text-property p 'egg-end)) - (setq in-loop nil) - (setq p (1- p)) - (delete-region p (1+ p)))) ; Delete bunsetsu separator - bunsetsu-info-list)) - (defun egg-exit-conversion () (interactive) - (let ((inhibit-read-only t) - start bunsetsu-list) - (if (get-text-property (1- (point)) 'egg-start) - (setq start (1- (point))) - (setq start (1- (previous-single-property-change (point) 'egg-start)))) - (goto-char start) - ;; Delete open marker - (delete-region start (+ start (length egg-conversion-open))) - (setq bunsetsu-list (egg-decide-bunsetsu)) - ;; Delete close marker - (delete-region (point) (+ (point) (length egg-conversion-close))) - (egg-end-conversion bunsetsu-list nil) - (egg-do-auto-fill) - (run-hooks 'input-method-after-insert-chunk-hook))) + (goto-char (next-single-property-change (point) 'egg-end)) + (egg-decide-before-point)) (defun egg-abort-conversion () (interactive)