emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/ps-mule.el,v


From: Kenichi Handa
Subject: [Emacs-diffs] Changes to emacs/lisp/ps-mule.el,v
Date: Wed, 20 Feb 2008 12:15:58 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Kenichi Handa <handa>   08/02/20 12:15:57

Index: ps-mule.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ps-mule.el,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- ps-mule.el  1 Feb 2008 16:01:05 -0000       1.58
+++ ps-mule.el  20 Feb 2008 12:15:57 -0000      1.59
@@ -579,10 +579,7 @@
 f2, f3, h0, h1, and H0 respectively."
   (let* ((font-spec nil)
         (font-id 0)
-        (string-list nil)
-        ;; At most 4-byte (EscChar FONT-ID CODE1 CODE2) per character.
-        (str (make-string (* (- to from) 4) 0))
-        (i 0))
+        (code-list nil))
     (goto-char from)
     (while (< (point) to)
       (let* ((char (following-char))
@@ -594,30 +591,20 @@
          (setq char ??
                this-spec (ps-mule-get-font-spec char font-spec-table nil)
                this-id (ps-mule-font-spec-font-id this-spec)))
-       (or (= font-id this-id)
-           (progn
-             (if font-spec
-                 (setq string-list (cons (substring str 0 i) string-list)
-                       i 0))
+       (unless (= font-id this-id)
              (setq font-id this-id)
-             (or (= font-id 0)
-                 (progn
-                   (aset str i ps-mule-esc-char)
-                   (setq i (1+ i))
-                   (aset str i font-id)
-                   (setq i (1+ i))))))
+         (push ps-mule-esc-char code-list)
+         (push font-id code-list))
        (setq font-spec this-spec)
        (if (< char 128)
-           (aset str i char)
+           (push char code-list)
          (let* ((code (ps-mule-encode-char char font-spec)))
            (if (= (ps-mule-font-spec-bytes font-spec) 1)
-               (aset str i code)
-             (aset str i (/ code 256))
-             (setq i (1+ i))
-             (aset str i (% code 256)))))
-       (setq i (1+ i))
+               (push code code-list)
+             (push (/ code 256) code-list)
+             (push (% code 256) code-list))))
        (forward-char 1)))
-    (nreverse (cons (substring str 0 i) string-list))))
+    (apply 'unibyte-string (nreverse code-list))))
 
 (defun ps-mule-plot-composition (composition font-spec-table)
   "Generate PostScript code for plotting COMPOSITION with FONT-SPEC-TABLE."
@@ -687,11 +674,10 @@
       (cond ((= (point) stop)
             (if (= stop to)
                 (setq endpos stop)
-              (if (< from stop)
-                  (dolist (l (ps-mule-encode-region from (point)
+              (when (< from stop)
+                (ps-output-string (ps-mule-encode-region from (point)
                                                     font-spec-table))
-                    (ps-output-string l)
-                    (ps-output " S\n")))
+                (ps-output " S\n"))
               (setq width (* (nth 5 composition) average-width))
               (if (< ps-width-remaining (+ run-width width))
                   (setq endpos stop)
@@ -721,10 +707,9 @@
                 (setq run-width (+ run-width width))
                 (forward-char 1))))))
 
-    (if (< from endpos)
-       (dolist (l (ps-mule-encode-region from endpos font-spec-table))
-         (ps-output-string l)
-         (ps-output " S\n")))
+    (when (< from endpos)
+      (ps-output-string (ps-mule-encode-region from endpos font-spec-table))
+      (ps-output " S\n"))
     (goto-char point)
     (cons endpos run-width)))
 
@@ -1042,13 +1027,13 @@
 Any other value is treated as \"/H0\"."
   (with-temp-buffer
     (insert string)
-    (ps-mule-encode-region (point-min) (point-max)
+    (list (ps-mule-encode-region (point-min) (point-max)
                           (aref ps-mule-font-spec-tables
                                 (aref ps-mule-font-number-to-type
                                       (cond ((string= fonttag "/h0") 4)
                                             ((string= fonttag "/h1") 5)
                                             ((string= fonttag "/L0") 6)
-                                            (t 0)))))))
+                                                  (t 0))))))))
 
 ;;;###autoload
 (defun ps-mule-begin-job (from to)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]