changeset 45334:695ae1bd8fa4

(eval-and-compile): Add a trivial replacement for a possibly missing encode-char. (ps-mule-font-info-database-bdf): Add associations for Unicode fonts. Doc fix. (ps-mule-font-info-database-ps-bdf): Doc fix. (ps-mule-encode-ucs2): New function for encoding Unicode characters.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 17 May 2002 14:09:39 +0000
parents 5d4cefa40da1
children 656d185d7b1c
files lisp/ps-mule.el
diffstat 1 files changed, 39 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ps-mule.el	Fri May 17 13:17:21 2002 +0000
+++ b/lisp/ps-mule.el	Fri May 17 14:09:39 2002 +0000
@@ -1,6 +1,6 @@
 ;;; ps-mule.el --- provide multi-byte character facility to ps-print
 
-;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <vinicius@cpqd.com.br>
 ;;	Kenichi Handa <handa@etl.go.jp> (multi-byte characters)
@@ -159,7 +159,10 @@
 	    (setq i (1+ i)))
 	  multibyte)))
   (or (fboundp 'string-make-multibyte)
-      (defalias 'string-make-multibyte 'copy-sequence)))
+      (defalias 'string-make-multibyte 'copy-sequence))
+  (or (fboundp 'encode-char)
+      (defun encode-char (ch ccs)
+	ch)))
 
 
 ;;;###autoload
@@ -417,16 +420,22 @@
      (normal bdf ("ind24-mule.bdf" "mule-indian-24.bdf") ps-mule-encode-7bit 2))
     (tibetan
      (normal bdf ("tib24p-mule.bdf" "tib24-mule.bdf" "mule-tibmdx-24.bdf")
-	     ps-mule-encode-7bit 2)))
+	     ps-mule-encode-7bit 2))
+    (mule-unicode-0100-24ff
+     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2))
+    (mule-unicode-2500-33ff
+     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2))
+    (mule-unicode-e000-ffff
+     (normal bdf "etl24-unicode.bdf" ps-mule-encode-ucs2 2)))
   "Sample setting of the `ps-mule-font-info-database' to use BDF fonts.
 BDF (Bitmap Distribution Format) is a format used for distributing X's font
 source file.
 
-Current default value list for BDF fonts is included in `intlfonts-1.2' which is
-a collection of X11 fonts for all characters supported by Emacs.
+Current default value list for BDF fonts is included in `intlfonts-1.2'
+which is a collection of X11 fonts for all characters supported by Emacs.
 
-Using this list as default value to `ps-mule-font-info-database', all characters
-including ASCII and Latin-1 are printed by BDF fonts.
+Using this list as default value to `ps-mule-font-info-database', all
+characters including ASCII and Latin-1 are printed by BDF fonts.
 
 See also `ps-mule-font-info-database-ps-bdf'.")
 
@@ -435,13 +444,13 @@
 	(cdr (cdr ps-mule-font-info-database-bdf)))
   "Sample setting of the `ps-mule-font-info-database' to use BDF fonts.
 
-Current default value list for BDF fonts is included in `intlfonts-1.2' which is
-a collection of X11 fonts for all characters supported by Emacs.
+Current default value list for BDF fonts is included in `intlfonts-1.2'
+which is a collection of X11 fonts for all characters supported by Emacs.
 
-Using this list as default value to `ps-mule-font-info-database', all characters
-except ASCII and Latin-1 characters are printed by BDF fonts.  ASCII and Latin-1
-characters are printed by PostScript font specified by `ps-font-family' and
-`ps-header-font-family'.
+Using this list as default value to `ps-mule-font-info-database', all
+characters except ASCII and Latin-1 characters are printed with BDF fonts.
+ASCII and Latin-1 characters are printed with PostScript font specified
+by `ps-font-family' and `ps-header-font-family'.
 
 See also `ps-mule-font-info-database-bdf'.")
 
@@ -503,6 +512,23 @@
   (defun ps-mule-encode-ethiopic (string)
     string))
 
+;; Special encoding for mule-unicode-* characters.
+(defun ps-mule-encode-ucs2 (string)
+  (let* ((len (ps-mule-chars-in-string string))
+	 (str (make-string (* 2 len) 0))
+	 (i 0)
+	 (j 0)
+	 ch hi lo)
+    (while (< i len)
+      (setq ch (encode-char (ps-mule-string-char string i) 'ucs)
+	    hi (lsh ch -8)
+	    lo (logand ch 255))
+      (aset str j hi)
+      (aset str (1+ j) lo)
+      (setq i (1+ i)
+	    j (+ j 2)))
+    str))
+
 ;; A charset which we are now processing.
 (defvar ps-mule-current-charset nil)