diff lisp/ps-mule.el @ 61074:6a54f94240ca

(ps-mule-plot-string): Translate characters by ps-print-translation-table. (ps-mule-begin-job): Call find-charset-region/string with ps-print-translation-table.
author Kenichi Handa <handa@m17n.org>
date Tue, 29 Mar 2005 05:07:16 +0000
parents 0d38d6148c13
children d1615c2ff814
line wrap: on
line diff
--- a/lisp/ps-mule.el	Tue Mar 29 05:06:48 2005 +0000
+++ b/lisp/ps-mule.el	Tue Mar 29 05:07:16 2005 +0000
@@ -824,7 +824,9 @@
 
 Where ENDPOS is the end position of the sequence and RUN-WIDTH is the width of
 the sequence."
-  (setq ps-mule-current-charset (charset-after from))
+  (let ((ch (char-after from)))
+    (setq ps-mule-current-charset
+	  (char-charset (or (aref ps-print-translation-table ch) ch))))
   (let* ((wrappoint (ps-mule-find-wrappoint
 		     from to (ps-avg-char-width 'ps-font-for-text)))
 	 (to (car wrappoint))
@@ -832,6 +834,10 @@
 			      (ps-font-alist 'ps-font-for-text))))
 	 (font-spec (ps-mule-get-font-spec ps-mule-current-charset font-type))
 	 (string (buffer-substring-no-properties from to)))
+    (dotimes (i (length string))
+      (let ((ch (aref ps-print-translation-table (aref string i))))
+	(if ch
+	    (aset string i ch))))
     (cond
      ((= from to)
       ;; We can't print any more characters in the current line.
@@ -1469,13 +1475,15 @@
 	 (setq ps-mule-charset-list
 	       (delq 'ascii (delq 'eight-bit-control
 				  (delq 'eight-bit-graphic 
-					(find-charset-region from to))))
+					(find-charset-region
+					 from to ps-print-translation-table))))
 	       ps-mule-header-charsets
 	       (delq 'ascii (delq 'eight-bit-control
 				  (delq 'eight-bit-graphic 
 					(find-charset-string
 					 (mapconcat
-					  'identity header-footer-list ""))))))
+					  'identity header-footer-list "")
+					 ps-print-translation-table)))))
 	 (dolist (cs ps-mule-charset-list)
 	   (or (ps-mule-printable-p cs)
 	       (push cs unprintable-charsets)))