From 430c6cede235d6c1b9197fdc30faddb20569b71a Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Fri, 1 Aug 2008 12:46:30 +0000 Subject: [PATCH] (encode-coding-char): New optional arg CHARSET. --- lisp/international/mule-cmds.el | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 08b50cbee7..c5b05d629a 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) -- 2.39.2