Mercurial > emacs
changeset 26883:c1e6932eea92
(ps-plot-region): Handle new composition.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 15 Dec 1999 00:38:58 +0000 |
parents | 5b331ff3b477 |
children | 8063bfbd8b08 |
files | lisp/ps-print.el |
diffstat | 1 files changed, 19 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ps-print.el Wed Dec 15 00:34:01 1999 +0000 +++ b/lisp/ps-print.el Wed Dec 15 00:38:58 1999 +0000 @@ -4709,7 +4709,16 @@ (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 @@ (= 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)))