summaryrefslogtreecommitdiff
path: root/lisp/international
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-11-01 06:23:08 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-11-01 06:23:08 +0000
commitcd0cf71c4f41023a8d9c20b3a26e44b980992b5a (patch)
treeb763cfec551254e2228335be4e218ed7a9a19109 /lisp/international
parentc40bb1ba81a5df164f0b9b61e3480c55808717b7 (diff)
parent895725e10c0fb68ed21abb48183cc8843bcaadf3 (diff)
downloademacs-cd0cf71c4f41023a8d9c20b3a26e44b980992b5a.tar.gz
Merged from miles@gnu.org--gnu-2005 (patch 142-148, 615-628)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-615 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-616 Add lisp/mh-e/.arch-inventory * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-617 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-618 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-619 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-620 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-621 Merge from gnus--rel--5.10 * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-622 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-623 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-624 Update from CVS: lisp/smerge-mode.el: Add 'tools' to file keywords. * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-625 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-626 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-627 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-628 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-142 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-143 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-144 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-145 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-146 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-147 Update from CVS * miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-148 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-435
Diffstat (limited to 'lisp/international')
-rw-r--r--lisp/international/mule.el4
-rw-r--r--lisp/international/quail.el32
-rw-r--r--lisp/international/utf-7.el1
3 files changed, 31 insertions, 6 deletions
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index d51d871abe8..20bf5696f2e 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -85,7 +85,9 @@ Return t if file exists."
;; Make `kill-buffer' quiet.
(set-buffer-modified-p nil))
;; Have the original buffer current while we eval.
- (eval-buffer buffer nil file
+ (eval-buffer buffer nil
+ ;; This is compatible with what `load' does.
+ (if purify-flag file fullname)
;; If this Emacs is running with --unibyte,
;; convert multibyte strings to unibyte
;; after reading them.
diff --git a/lisp/international/quail.el b/lisp/international/quail.el
index 0f9cc8f231d..3998764957e 100644
--- a/lisp/international/quail.el
+++ b/lisp/international/quail.el
@@ -1598,13 +1598,21 @@ Quail map for the sequence."
(or (and (consp def) (aref (cdr def) (car (car def))))
def
(and (> len 1)
- (let ((str (quail-get-current-str
- (1- len)
- (quail-map-definition (quail-lookup-key
- quail-current-key (1- len))))))
+ (let* ((str (quail-get-current-str
+ (1- len)
+ (quail-map-definition (quail-lookup-key
+ quail-current-key (1- len)))))
+ (substr1 (substring quail-current-key (1- len) len))
+ (str1 (and (quail-deterministic)
+ (quail-get-current-str
+ 1
+ (quail-map-definition (quail-lookup-key
+ substr1 1))))))
(if str
(concat (if (stringp str) str (char-to-string str))
- (substring quail-current-key (1- len) len)))))))
+ (if str1
+ (if (stringp str1) str1 (char-to-string str1))
+ substr1)))))))
(defvar quail-guidance-translations-starting-column 20)
@@ -1720,6 +1728,20 @@ sequence counting from the head."
;; And, we can terminate the current translation.
t)
+ ((quail-deterministic)
+ ;; No way to handle the last character in this context.
+ ;; Commit the longest successfully translated characters, and
+ ;; handle the remaining characters in a new loop.
+ (setq def nil)
+ (while (and (not def) (> len 1))
+ (setq len (1- len))
+ (setq def (quail-map-definition
+ (quail-lookup-key quail-current-key len))))
+ (if def (setq quail-current-str
+ (quail-get-current-str len def))
+ (setq quail-current-str (aref quail-current-key 0)))
+ len)
+
(t
;; No way to handle the last character in this context.
(setq def (quail-map-definition
diff --git a/lisp/international/utf-7.el b/lisp/international/utf-7.el
index 6340dafc12a..68d77123cde 100644
--- a/lisp/international/utf-7.el
+++ b/lisp/international/utf-7.el
@@ -36,6 +36,7 @@
;;; Code:
+;;;###autoload(autoload-coding-system 'utf-7 '(require 'utf-7))
(make-coding-system
'utf-7 0 ?U
"UTF-7 encoding of Unicode (RFC 2152)"