From: Kenichi Handa Date: Wed, 10 Sep 2008 05:49:38 +0000 (+0000) Subject: (compose-gstring-for-graphic): Fix previous change. X-Git-Tag: emacs-pretest-23.0.90~2934 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c0a839aeac3ea341d1c1fbae1a87cc6d9a193cd6;p=emacs.git (compose-gstring-for-graphic): Fix previous change. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 027adaf56b7..90aa1e14a45 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2008-09-10 Kenichi Handa + + * composite.el (compose-gstring-for-graphic): Fix previous change. + 2008-09-10 Glenn Morris * info.el (Info-try-follow-nearest-node): Fix doc typo. @@ -242,6 +246,7 @@ * composite.el (find-composition): Mention about the automatic composition in the docstring. + (compose-gstring-for-graphic): Fix handling "above" marks. * descr-text.el (describe-char): Fix handling of automatic composition. diff --git a/lisp/composite.el b/lisp/composite.el index fdf8dcd223c..6d1a2f0bba5 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -579,56 +579,64 @@ All non-spacing characters has this function in (de (lglyph-descent glyph)) (ce (/ (+ lb rb) 2)) xoff yoff) - (if (and - class (>= class 200) (<= class 240) - (cond - ((= class 200) - (setq xoff (- lbearing ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 202) - (if (> as 0) (setq as 0)) - (setq xoff (- center ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 204) - (if (> as 0) (setq as 0)) - (setq xoff (- rbearing ce) - yoff (if (> as 0) 0 (+ descent as)))) - ((= class 208) - (setq xoff (- lbearing rb))) - ((= class 210) - (setq xoff (- rbearing lb))) - ((= class 212) - (setq xoff (- lbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 214) - (setq xoff (- center ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 216) - (setq xoff (- rbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de))))) - ((= class 218) - (setq xoff (- lbearing ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 220) - (setq xoff (- center ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 222) - (setq xoff (- rbearing ce) - yoff (if (> as 0) 0 (+ descent as gap)))) - ((= class 224) - (setq xoff (- lbearing rb))) - ((= class 226) - (setq xoff (- rbearing lb))) - ((= class 228) - (setq xoff (- lbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))) - ((= class 230) - (setq xoff (- center ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))) - ((= class 232) - (setq xoff (- rbearing ce) - yoff (if (>= de 0) 0 (- ascent (- de) gap)))))) - (lglyph-set-adjustment glyph (- xoff width) yoff)))))) + (when (and class (>= class 200) (<= class 240)) + (setq xoff 0 yoff 0) + (cond + ((= class 200) + (setq xoff (- lbearing ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 202) + (if (> as 0) (setq as 0)) + (setq xoff (- center ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 204) + (if (> as 0) (setq as 0)) + (setq xoff (- rbearing ce) + yoff (if (> as 0) 0 (+ descent as)))) + ((= class 208) + (setq xoff (- lbearing rb))) + ((= class 210) + (setq xoff (- rbearing lb))) + ((= class 212) + (setq xoff (- lbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 214) + (setq xoff (- center ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 216) + (setq xoff (- rbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de)))) + ((= class 218) + (setq xoff (- lbearing ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 220) + (setq xoff (- center ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 222) + (setq xoff (- rbearing ce) + yoff (if (> as 0) 0 (+ descent as gap)))) + ((= class 224) + (setq xoff (- lbearing rb))) + ((= class 226) + (setq xoff (- rbearing lb))) + ((= class 228) + (setq xoff (- lbearing ce) + yoff (if (>= de 0) 0 (- (- ascent) de gap)))) + ((= class 230) + (setq xoff (- center ce) + yoff (if (>= de 0) 0 (- (- ascent) de gap)))) + ((= class 232) + (setq xoff (- rbearing ce) + yoff (if (>= de 0) 0 (- (+ ascent de) gap))))) + (lglyph-set-adjustment glyph (- xoff width) yoff) + (setq lb (+ lb xoff) + rb (+ lb xoff) + as (- as yoff) + de (+ de yoff))) + (if (< ascent as) + (setq ascent as)) + (if (< descent de) + (setq descent de)))))) (let ((i 0)) (while (and (< i nglyphs) (setq glyph (lgstring-glyph gstring i))) (lglyph-set-from-to glyph 0 (1- nchars))