summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2008-08-01 12:46:30 +0000
committerKenichi Handa <handa@m17n.org>2008-08-01 12:46:30 +0000
commit430c6cede235d6c1b9197fdc30faddb20569b71a (patch)
treed1db2c1fa6854831a4fc7396a02d1b16d1128a93 /lisp
parent7ded3383490c55c98d56b86eae1a3ce78b82aa6a (diff)
downloademacs-430c6cede235d6c1b9197fdc30faddb20569b71a.tar.gz
(encode-coding-char): New optional arg CHARSET.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/international/mule-cmds.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 08b50cbee78..c5b05d629aa 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -2788,9 +2788,11 @@ If there's no description string for VALUE, return nil."
(function (lambda (x) (format "#x%02X" x))))
str " "))
-(defun encode-coding-char (char coding-system)
+(defun encode-coding-char (char coding-system &optional charset)
"Encode CHAR by CODING-SYSTEM and return the resulting string.
-If CODING-SYSTEM can't safely encode CHAR, return nil."
+If CODING-SYSTEM can't safely encode CHAR, return nil.
+The 3rd optional argument CHARSET, if non-nil, is a charset preferred
+on encoding."
(let* ((str1 (string-as-multibyte (string char)))
(str2 (string-as-multibyte (string char char)))
(found (find-coding-systems-string str1))
@@ -2806,6 +2808,9 @@ If CODING-SYSTEM can't safely encode CHAR, return nil."
;; string and two-char string, then check how many bytes at the
;; tail of both encoded strings are the same.
+ (when charset
+ (put-text-property 0 1 'charset charset str1)
+ (put-text-property 0 2 'charset charset str2))
(setq enc1 (encode-coding-string str1 coding-system)
i1 (length enc1)
enc2 (encode-coding-string str2 coding-system)