;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(defvar quail-indian-update-preceding-char nil)
(make-variable-frame-local 'quail-indian-update-preceding-char)
-;;; update function
-
-;; CONTROL-FLAG is integer (n)
+;; Input value ::
+;; CONTROL-FLAG is integer `n'
;; quail-current-key :: keyboard input.
-;; Only first n can be translated.
-;; quail-current-string :: corresonding string. Translated when last
-;; time CONTROL-FLAG is nil.
-;; todo :: (1) put last (len-n) char to unrread-command-event.
-;; (2) put translated string to quail-current-string.
+;; Only first `n' can be translated.
+;; quail-current-str :: corresonding string.
+;; jobs :: (1) put last (len-n) char to unrread-command-event.
+;; (2) put translated string to quail-current-str.
;;
-;; CONTROL-FLAG is t (terminate) or nil (proceed the translation)
+;; CONTROL-FLAG is t (terminate) or nil (proceed the translation)
;; quail-current-key :: keyboard input.
-;; quail-current-string :: corresponding string. Created by database.
-;; todo :: (1) put modified translated string to quail-current-string.
+;; quail-current-str :: corresponding string.
+;; jobs :: (1) put modified translated string to quail-current-str.
+;;
+;; When non-nil value is returned from quail-translation-update-function,
+;; the quail-current-str is split to characters and put into event queue,
+;; with `compose-last-char' event with composition info at the end.
(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 (char-valid-p quail-current-str)
(setq quail-current-str (char-to-string quail-current-str)))
+ ;(message "\n input control-flag=%s, str=%s, key=%s q-ind-upd-prec-char=%s"
+ ; control-flag quail-current-str quail-current-key
+ ; quail-indian-update-preceding-char)
;; 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.
+ ;; Check the preceding character of the quail region. If the
+ ;; preceding character can be composed with quail-current-str, then
+ ;; grab that preceding character into the quail-current-str and
+ ;; remove that char from the region.
(let* (prec-char-position composition-regexp
prec-char-str candidate-str match-pos match-end)
(when (and quail-current-str
+ (null quail-indian-update-preceding-char)
(null input-method-use-echo-area)
(null input-method-exit-on-first-char)
(setq prec-char-position
(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))
(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.
+ (setq quail-current-str
+ (indian-compose-string
+ (concat quail-indian-update-preceding-char
+ quail-current-str)))
(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
+ (setq 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.
+ (substring quail-current-key control-flag))))
+ (when control-flag
(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)
+ ;(message "output control-flag=%s, str=%s, key=%s q-ind-upd-prec-char=%s"
+ ; control-flag quail-current-str quail-current-key
+ ; quail-indian-update-preceding-char)
control-flag)
;;;
(vector val))))
(cdr hashtbls)))
-;;
-
-;; (quail-define-package "devanagari-itrans" "Devanagari" "DevIT" t "Devanagari ITRANS")
+;; This needs to be seen by quail-update-leim-list-file, but cannot be
+;; commented out because quail-update-leim-list-file ignores
+;; commented-out lines.
+(if nil
+ (quail-define-package "devanagari-itrans" "Devanagari" "DevIT" t "Devanagari ITRANS"))
(quail-define-indian-trans-package
indian-dev-itrans-v5-hash "devanagari-itrans" "Devanagari" "DevIT"
"Devanagari transliteration by ITRANS method.")
-;; (quail-define-package "devanagari-kyoto-harvard" "Devanagari" "DevKH" t "Devanagari Kyoto-Harvard")
+(if nil
+ (quail-define-package "devanagari-kyoto-harvard" "Devanagari" "DevKH" t "Devanagari Kyoto-Harvard"))
(quail-define-indian-trans-package
indian-dev-kyoto-harvard-hash
"devanagari-kyoto-harvard" "Devanagari" "DevKH"
"Devanagari transliteration by Kyoto-Harvard method.")
-;; (quail-define-package "devanagari-aiba" "Devanagari" "DevAB" t "Devanagari Aiba")
+(if nil
+ (quail-define-package "devanagari-aiba" "Devanagari" "DevAB" t "Devanagari Aiba"))
(quail-define-indian-trans-package
indian-dev-aiba-hash "devanagari-aiba" "Devanagari" "DevAB"
"Devanagari transliteration by Aiba-method.")
+(if nil
+ (quail-define-package "punjabi-itrans" "Punjabi" "PnjIT" t "Punjabi ITRANS"))
+(quail-define-indian-trans-package
+ indian-pnj-itrans-v5-hash "punjabi-itrans" "Punjabi" "PnjIT"
+ "Punjabi transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "gujarati-itrans" "Gujarati" "GjrIT" t "Gujarati ITRANS"))
+(quail-define-indian-trans-package
+ indian-gjr-itrans-v5-hash "gujarati-itrans" "Gujarati" "GjrIT"
+ "Gujarati transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "oriya-itrans" "Oriya" "OriIT" t "Oriya ITRANS"))
+(quail-define-indian-trans-package
+ indian-ori-itrans-v5-hash "oriya-itrans" "Oriya" "OriIT"
+ "Oriya transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "bengali-itrans" "Bengali" "BngIT" t "Bengali ITRANS"))
+(quail-define-indian-trans-package
+ indian-bng-itrans-v5-hash "bengali-itrans" "Bengali" "BngIT"
+ "Bengali transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "assamese-itrans" "Assamese" "AsmIT" t "Assamese ITRANS"))
+(quail-define-indian-trans-package
+ indian-asm-itrans-v5-hash "assamese-itrans" "Assamese" "AsmIT"
+ "Assamese transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "telugu-itrans" "Telugu" "TlgIT" t "Telugu ITRANS"))
+(quail-define-indian-trans-package
+ indian-tlg-itrans-v5-hash "telugu-itrans" "Telugu" "TlgIT"
+ "Telugu transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "kannada-itrans" "Kannada" "KndIT" t "Kannada ITRANS"))
+(quail-define-indian-trans-package
+ indian-knd-itrans-v5-hash "kannada-itrans" "Kannada" "KndIT"
+ "Kannada transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "malayalam-itrans" "Malayalam" "MlmIT" t "Malayalam ITRANS"))
+(quail-define-indian-trans-package
+ indian-mlm-itrans-v5-hash "malayalam-itrans" "Malayalam" "MlmIT"
+ "Malayalam transliteration by ITRANS method.")
+
+(if nil
+ (quail-define-package "tamil-itrans" "Tamil" "TmlIT" t "Tamil ITRANS"))
+(quail-define-indian-trans-package
+ indian-tml-itrans-v5-hash "tamil-itrans" "Tamil" "TmlIT"
+ "Tamil transliteration by ITRANS method.")
+
+
;;;
;;; Input by Inscript
;;;
(;; Inscripts
?# ?$ ?^ ?* ?\])))
-;; (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t "Devanagari keyboard Inscript")
+(if nil
+ (quail-define-package "devanagari-inscript" "Devanagari" "DevIS" t "Devanagari keyboard Inscript"))
(quail-define-inscript-package
indian-dev-base-table inscript-dev-keytable
"devanagari-inscript" "Devanagari" "DevIS"
"Devanagari keyboard Inscript.")
+(if nil
+ (quail-define-package "punjabi-inscript" "Punjabi" "PnjIS" t "Punjabi keyboard Inscript"))
+(quail-define-inscript-package
+ indian-pnj-base-table inscript-dev-keytable
+ "punjabi-inscript" "Punjabi" "PnjIS"
+ "Punjabi keyboard Inscript.")
+
+(if nil
+ (quail-define-package "gujarati-inscript" "Gujarati" "GjrIS" t "Gujarati keyboard Inscript"))
+(quail-define-inscript-package
+ indian-gjr-base-table inscript-dev-keytable
+ "gujarati-inscript" "Gujarati" "GjrIS"
+ "Gujarati keyboard Inscript.")
+
+(if nil
+ (quail-define-package "oriya-inscript" "Oriya" "OriIS" t "Oriya keyboard Inscript"))
+(quail-define-inscript-package
+ indian-ori-base-table inscript-dev-keytable
+ "oriya-inscript" "Oriya" "OriIS"
+ "Oriya keyboard Inscript.")
+
+(if nil
+ (quail-define-package "bengali-inscript" "Bengali" "BngIS" t "Bengali keyboard Inscript"))
+(quail-define-inscript-package
+ indian-bng-base-table inscript-dev-keytable
+ "bengali-inscript" "Bengali" "BngIS"
+ "Bengali keyboard Inscript.")
+
+(if nil
+ (quail-define-package "assamese-inscript" "Assamese" "AsmIS" t "Assamese keyboard Inscript"))
+(quail-define-inscript-package
+ indian-asm-base-table inscript-dev-keytable
+ "assamese-inscript" "Assamese" "AsmIS"
+ "Assamese keyboard Inscript.")
+
+(if nil
+ (quail-define-package "telugu-inscript" "Telugu" "TlgIS" t "Telugu keyboard Inscript"))
+(quail-define-inscript-package
+ indian-dev-base-table inscript-dev-keytable
+ "telugu-inscript" "Telugu" "TlgIS"
+ "Telugu keyboard Inscript.")
+
+(if nil
+ (quail-define-package "kannada-inscript" "Kannada" "KndIS" t "Kannada keyboard Inscript"))
+(quail-define-inscript-package
+ indian-knd-base-table inscript-dev-keytable
+ "kannada-inscript" "Kannada" "KndIS"
+ "Kannada keyboard Inscript.")
+
+(if nil
+ (quail-define-package "malayalam-inscript" "Malayalam" "MlmIS" t "Malayalam keyboard Inscript"))
+(quail-define-inscript-package
+ indian-mlm-base-table inscript-dev-keytable
+ "malayalam-inscript" "Malayalam" "MlmIS"
+ "Malayalam keyboard Inscript.")
+
+(if nil
+ (quail-define-package "tamil-inscript" "Tamil" "TmlIS" t "Tamil keyboard Inscript"))
+(quail-define-inscript-package
+ indian-tml-base-table inscript-dev-keytable
+ "tamil-inscript" "Tamil" "TmlIS"
+ "Tamil keyboard Inscript.")
+
+;;; arch-tag: 9e5a621e-f7d5-4fce-9543-0a51b407c940
;;; indian.el ends here