From: Richard M. Stallman Date: Fri, 6 Mar 1998 21:33:37 +0000 (+0000) Subject: (quail-defrule-internal): New arg REPLACE. X-Git-Url: http://git.hcoop.net/bpt/emacs.git/commitdiff_plain/171666af2dcfc455cb1f69d0ad9ce85919e441cc?hp=ecd57ad40f7c73c39e80656cd14191add2f9040c (quail-defrule-internal): New arg REPLACE. (quail-defrule): Call quail-defrule-internal with REPLACE t. --- diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 69b8982a7b..ded94b76d0 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -798,7 +798,7 @@ If TRANSLATION is a Quail map or a function symbol which returns a Quail map, ',(let ((l rules) (map (list nil))) (while l - (quail-defrule-internal (car (car l)) (car (cdr (car l))) map) + (quail-defrule-internal (car (car l)) (car (cdr (car l))) map t) (setq l (cdr l))) map))) @@ -841,7 +841,7 @@ current Quail package." (quail-defrule-internal key translation (quail-map))) ;;;###autoload -(defun quail-defrule-internal (key trans map) +(defun quail-defrule-internal (key trans map &optional append) "Define KEY as TRANS in a Quail map MAP." (if (null (stringp key)) "Invalid Quail key `%s'" key) @@ -891,7 +891,9 @@ current Quail package." (error "Quail key %s is too short" key) (setcdr entry trans)) (setcdr entry (append trans (cdr map))))) - (setcar map trans))))) + (if (and append (stringp (car map)) (stringp trans)) + (setcar map (concat (car map) trans)) + (setcar map trans)))))) (defun quail-get-translation (def key len) "Return the translation specified as DEF for KEY of length LEN.