/[emacs]/emacs/leim/quail/indian.el
ViewVC logotype

Diff of /emacs/leim/quail/indian.el

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4.2.2 by fx, Sun Oct 6 20:53:43 2002 UTC revision 1.4.2.3 by handa, Thu Nov 7 06:26:17 2002 UTC
# Line 33  Line 33 
33  ;;; Code:  ;;; Code:
34    
35  (require 'quail)  (require 'quail)
 (require 'devan-util)  
36  (require 'ind-util)  (require 'ind-util)
37    (require 'devan-util)
 (defun quail-indian-preceding-char-position (position)  
   "Return the position of preceding composite character."  
   (let (prec-composed)  
     (if (characterp (char-before position)) ;; range o.k.  
         (if (setq prec-composed (find-composition (1- position)))  
             (car prec-composed)  
           (1- position))  
       nil)))  
   
 (defvar quail-indian-update-preceding-char nil)  
 (make-variable-frame-local 'quail-indian-update-preceding-char)  
38    
39  ;;; update function  ;;; update function
40    
# Line 63  Line 51 
51  ;;     quail-current-string :: corresponding string.  Created by database.  ;;     quail-current-string :: corresponding string.  Created by database.
52  ;;     todo :: (1) put modified translated string to quail-current-string.  ;;     todo :: (1) put modified translated string to quail-current-string.
53    
 (defun quail-indian-update-translation (control-flag)  
   ;;(message "input control-flag=%s, string=%s, key=%s"  
   ;;         control-flag quail-current-str quail-current-key)  
   ;; make quail-current-str string when possible.  
   (if (characterp quail-current-str)  
       (setq quail-current-str (char-to-string quail-current-str)))  
   ;; reset quail-indian-update-preceding-char if it's initial.  
   (if (= (overlay-start quail-overlay) (overlay-end quail-overlay))  
       (setq quail-indian-update-preceding-char nil))  
   ;; set quial-indian-update-preceding-char if appropriate.  
   (let* (prec-char-position composition-regexp  
          prec-char-str candidate-str match-pos match-end)  
     (when (and quail-current-str  
                (null input-method-use-echo-area)  
                (null input-method-exit-on-first-char)  
                (setq prec-char-position  
                      (quail-indian-preceding-char-position  
                       (overlay-start quail-overlay)))  
                (setq composition-regexp  
                      (if prec-char-position  
                          (caar (elt composition-function-table  
                                     (char-after prec-char-position)))))  
                ;; (null quail-indian-update-preceding-char)  
                (setq prec-char-str  
                      (buffer-substring prec-char-position  
                                        (overlay-start quail-overlay))  
                      candidate-str (concat prec-char-str quail-current-str)  
                      match-pos (string-match composition-regexp candidate-str)  
                      match-end (match-end 0))  
                (> match-end (length prec-char-str)))  
       (setq quail-indian-update-preceding-char prec-char-str)  
       (delete-region prec-char-position  
                      (overlay-start quail-overlay))))  
   ;; make quail-current-str string when possible.  
   (if (null quail-current-str)  
       (setq quail-current-str ""))  
   ;; set quail-current-str unless control-flag is number.  
   (if (numberp control-flag)  
       (setq quail-indian-update-preceding-char nil  
             quail-current-str  
             (if (equal quail-current-str "")  
                 (substring quail-current-key 0 control-flag)  
               (indian-compose-string quail-current-str))  
             unread-command-events  
             (string-to-list  
              (substring quail-current-key control-flag)))  
     (if quail-indian-update-preceding-char  
         (setq quail-current-str  
               (concat quail-indian-update-preceding-char  
                       quail-current-str)))  
     (setq quail-current-str  
           (indian-compose-string quail-current-str)))  
   (when (eq t control-flag)  
     ;; reset preceding-char if translation is terminated.  
     (setq quail-indian-update-preceding-char nil))  
     ;; compose to previous char if it looks possible.  
   ;;(message "  out control-flag=%s, string=%s, key=%s"  
   ;;         control-flag quail-current-str quail-current-key)  
   control-flag)  
   
54  ;;;  ;;;
55  ;;; Input by transliteration  ;;; Input by transliteration
56  ;;;  ;;;
# Line 130  Line 58 
58  (defun quail-define-indian-trans-package (hashtbls pkgname  (defun quail-define-indian-trans-package (hashtbls pkgname
59                                                     lang title doc)                                                     lang title doc)
60    (funcall 'quail-define-package pkgname lang title t doc    (funcall 'quail-define-package pkgname lang title t doc
61             nil nil nil nil nil nil t nil             nil nil nil nil nil nil t nil)
            'quail-indian-update-translation)  
62    (maphash    (maphash
63     (lambda (key val)     (lambda (key val)
64       (quail-defrule key (if (= (length val) 1)       (quail-defrule key (if (= (length val) 1)
# Line 176  Line 103 
103    (setq char-table (quail-indian-flatten-list char-table))    (setq char-table (quail-indian-flatten-list char-table))
104    (setq key-table (quail-indian-flatten-list key-table))    (setq key-table (quail-indian-flatten-list key-table))
105    (funcall 'quail-define-package pkgname lang title nil docstring    (funcall 'quail-define-package pkgname lang title nil docstring
106             nil nil nil nil nil nil nil nil             nil nil nil nil nil nil nil nil)
            'quail-indian-update-translation)  
107    (dolist (key key-table)    (dolist (key key-table)
108      (let ((val (pop char-table)))      (let ((val (pop char-table)))
109        (if (and key val)        (if (and key val)

Legend:
Removed from v.1.4.2.2  
changed lines
  Added in v.1.4.2.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26