;; Maintainer: NIIBE Yutaka <gniibe@mri.co.jp>
;; 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
'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)
(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)
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
(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)