| 527 | | (let* ((pos (point)) |
|---|
| 528 | | (ov (make-overlay (point) (1+ (point)))) |
|---|
| 529 | | (ret (mw32-ime-input-method-function (char-to-string key))) |
|---|
| 530 | | (result (append (car ret) nil))) |
|---|
| 531 | | ;;; Continue to conversion if composition string cannot be |
|---|
| 532 | | ;;; convert into single ascii character. |
|---|
| 533 | | (unwind-protect |
|---|
| 534 | | (while (or |
|---|
| 535 | | (> (length (cadr ret)) 1) |
|---|
| 536 | | (and |
|---|
| 537 | | (cadr ret) |
|---|
| 538 | | (not (eq (string-to-char (japanese-hankaku (cadr ret))) |
|---|
| 539 | | (caddr ret))))) |
|---|
| 540 | | (insert (car ret)) |
|---|
| 541 | | (move-overlay ov pos (point)) |
|---|
| 542 | | (if input-method-highlight-flag |
|---|
| 543 | | (overlay-put ov 'face 'underline)) |
|---|
| 544 | | (sit-for 0) |
|---|
| 545 | | (setq ret (mw32-ime-input-method-function)) |
|---|
| 546 | | (setq result (append result (append (car ret) nil)))) |
|---|
| 547 | | (if (and (cadr ret) |
|---|
| 548 | | (eq (length (cadr ret)) 1) |
|---|
| 549 | | (eq (string-to-char (japanese-hankaku (cadr ret))) |
|---|
| 550 | | (caddr ret))) |
|---|
| 551 | | (setq unread-input-method-events |
|---|
| 552 | | (cons (caddr ret) unread-input-method-events))) |
|---|
| 553 | | (fep-force-off) |
|---|
| 554 | | (delete-region pos (point)) |
|---|
| 555 | | (delete-overlay ov)) |
|---|
| 556 | | result))) |
|---|
| | 527 | (let* ((pos (point)) |
|---|
| | 528 | (ov (make-overlay (point) (1+ (point)))) |
|---|
| | 529 | (ret (mw32-ime-input-method-function (char-to-string key))) |
|---|
| | 530 | (result (append (car ret) nil))) |
|---|
| | 531 | ;;; Continue to conversion if composition string cannot be |
|---|
| | 532 | ;;; convert into single ascii character. |
|---|
| | 533 | (unwind-protect |
|---|
| | 534 | (while (or |
|---|
| | 535 | (> (length (cadr ret)) 1) |
|---|
| | 536 | (and |
|---|
| | 537 | (cadr ret) |
|---|
| | 538 | (not (eq (string-to-char (japanese-hankaku (cadr ret))) |
|---|
| | 539 | (car (cddr ret)))))) |
|---|
| | 540 | (insert (car ret)) |
|---|
| | 541 | (move-overlay ov pos (point)) |
|---|
| | 542 | (if input-method-highlight-flag |
|---|
| | 543 | (overlay-put ov 'face 'underline)) |
|---|
| | 544 | (sit-for 0) |
|---|
| | 545 | (setq ret (mw32-ime-input-method-function)) |
|---|
| | 546 | (setq result (append result (append (car ret) nil)))) |
|---|
| | 547 | (if (and (cadr ret) |
|---|
| | 548 | (eq (length (cadr ret)) 1) |
|---|
| | 549 | (eq (string-to-char (japanese-hankaku (cadr ret))) |
|---|
| | 550 | (car (cddr ret)))) |
|---|
| | 551 | (setq unread-input-method-events |
|---|
| | 552 | (cons (car (cddr ret)) unread-input-method-events))) |
|---|
| | 553 | (fep-force-off) |
|---|
| | 554 | (delete-region pos (point)) |
|---|
| | 555 | (delete-overlay ov)) |
|---|
| | 556 | result))) |
|---|