Function: kkc-update-conversion

kkc-update-conversion is a byte-compiled function defined in kkc.el.gz.

Signature

(kkc-update-conversion &optional ALL)

Source Code

;; Defined in /usr/src/emacs/lisp/international/kkc.el.gz
;; Update the conversion area with the latest conversion selected.
;; ALL if non-nil means to update the whole area, else update only
;; inside quail-overlay-head.

(defun kkc-update-conversion (&optional all)
  (goto-char (overlay-start kkc-overlay-head))
  (cond ((= (car kkc-current-conversions) 0) ; Hiragana
	 (let ((i 0))
	   (while (< i kkc-length-converted)
	     (insert (aref kkc-current-key i))
	     (setq i (1+ i)))))
	((= (car kkc-current-conversions) -1) ; Katakana
	 (let ((i 0))
	   (while (< i kkc-length-converted)
	     (insert (japanese-katakana (aref kkc-current-key i)))
	     (setq i (1+ i)))))
	(t
	 (insert (nth (car kkc-current-conversions) kkc-current-conversions))))
  (delete-region (point) (overlay-start kkc-overlay-tail))
  (if all
      (let ((len (length kkc-current-key))
	    (i kkc-length-converted))
	(delete-region (overlay-start kkc-overlay-tail)
		       (overlay-end kkc-overlay-head))
	(while (< i kkc-length-head)
	  (if (= (car kkc-current-conversions) -1)
	      (insert (japanese-katakana (aref kkc-current-key i)))
	    (insert (aref kkc-current-key i)))
	  (setq i (1+ i)))
	(let ((pos (point)))
	  (while (< i len)
	    (insert (aref kkc-current-key i))
	    (setq i (1+ i)))
	  (move-overlay kkc-overlay-head
			(overlay-start kkc-overlay-head) pos)
	  (delete-region (point) (overlay-end kkc-overlay-tail)))))
  (unwind-protect
      (run-hook-with-args 'kkc-after-update-conversion-functions
			  (overlay-start kkc-overlay-head)
			  (overlay-end kkc-overlay-head))
    (goto-char (overlay-end kkc-overlay-tail))))