From: Kenichi Handa Date: Wed, 15 Dec 1999 00:38:58 +0000 (+0000) Subject: (ps-plot-region): Handle new composition. X-Git-Tag: emacs-pretest-21.0.90~5725 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=9d4d60c169ef4c9b1769a710cf8a74c964521856;p=emacs.git (ps-plot-region): Handle new composition. --- diff --git a/lisp/ps-print.el b/lisp/ps-print.el index 1f68b6e46eb..6a62ffec180 100644 --- a/lisp/ps-print.el +++ b/lisp/ps-print.el @@ -4709,7 +4709,16 @@ EndDSCPage\n") (if (re-search-forward ps-control-or-escape-regexp to t) ;; region with some control characters or some multi-byte characters (let* ((match-point (match-beginning 0)) - (match (char-after match-point))) + (match (char-after match-point)) + (composition (find-composition from (1+ match-point)))) + (if composition + (if (and (nth 2 composition) + (<= (car composition) match-point)) + (progn + (setq match-point (car composition) + match 0) + (goto-char (nth 1 composition))) + (setq composition nil))) (when (< from match-point) (ps-mule-set-ascii-font) (ps-plot 'ps-basic-plot-string from match-point bg-color)) @@ -4734,13 +4743,19 @@ EndDSCPage\n") (= ps-height-remaining ps-print-height)) (ps-next-page))) + (composition ; a composite sequence + (ps-plot 'ps-mule-plot-composition match-point (point) bg-color)) + + ; characters from ^@ to ^_ and ((> match 255) ; a multi-byte character - (let ((charset (char-charset match))) + (let* ((charset (char-charset match)) + (composition (find-composition match-point to)) + (stop (if (nth 2 composition) (car composition) to))) (or (eq charset 'composition) - (while (eq (charset-after) charset) + (while (and (< (point) stop) (eq (charset-after) charset)) (forward-char 1))) (ps-plot 'ps-mule-plot-string match-point (point) bg-color))) - ; characters from ^@ to ^_ and + (t ; characters from 127 to 255 (ps-control-character match))) (setq from (point)))