Function: ps-mule-plot-composition

ps-mule-plot-composition is a byte-compiled function defined in ps-mule.el.gz.

Signature

(ps-mule-plot-composition COMPOSITION FONT-SPEC-TABLE)

Documentation

Generate PostScript code for plotting COMPOSITION with FONT-SPEC-TABLE.

Source Code

;; Defined in /usr/src/emacs/lisp/ps-mule.el.gz
(defun ps-mule-plot-composition (composition font-spec-table)
  "Generate PostScript code for plotting COMPOSITION with FONT-SPEC-TABLE."
  (ps-output "[")
  (let ((components (copy-sequence (nth 2 composition)))
	(font-spec nil))
    (dotimes (i (length components))
      (let ((elt (aref components i))
	    this-spec)
	(if (consp elt)
	    ;; ELT is a composition rule.
	    (ps-output (format " %d" (encode-composition-rule elt)))
	  ;; ELT is a glyph character.
	  (setq this-spec
		(ps-mule-get-font-spec elt font-spec-table font-spec))
	  (or (vectorp this-spec)
	      ;; Can't print CHAR.   Replace it with '?'.
	      (setq elt ??
		    this-spec
		    (ps-mule-get-font-spec elt font-spec-table font-spec)))
	  (setq font-spec this-spec)
	  (let* ((bytes (ps-mule-font-spec-bytes font-spec))
		 (code (ps-mule-encode-char elt font-spec))
		 (font-id (ps-mule-font-spec-font-id font-spec))
		 (str (make-string (if (= font-id 0) 1 (+ 2 bytes)) 0)))
	    (if (= font-id 0)
		(aset str 0 code)
	      (aset str 0 ps-mule-esc-char)
	      (aset str 1 font-id)
	      (if (= bytes 1)
		  (aset str 2 code)
		(aset str 2 (/ code 256))
		(aset str 3 (% code 256))))
	    (ps-output "[")
	    (ps-output-string str)
	    (ps-output (if (eq (ps-mule-font-spec-src font-spec) 'bdf)
			   (format "/C%02X-%X" (ps-mule-font-spec-id font-spec)
				   elt)
			 "false"))
	    (ps-output "]"))))))
  (ps-output " ] " (if (nth 3 composition) "RLC" "RBC") "\n"))