If it is a character, it is an alternate character to display instead
of the text in the region.
-If it is a string, the elements are one or more alternate characters. In
+If it is a string, the elements are alternate characters. In
this case, TAB element has a special meaning. If the first
character is TAB, the glyphs are displayed with left padding space
so that no pixel overlaps with the previous column. If the last
(let ((modified-p (buffer-modified-p))
(inhibit-read-only t))
(if (or (vectorp components) (listp components))
- (setq components (encode-composition-components components))
- (if (= (length components) 0)
- (error "Invalid composition component: %s" components)))
+ (setq components (encode-composition-components components)))
(compose-region-internal start end components modification-func)
(restore-buffer-modified-p modified-p)))
adjust the composition when it gets invalid because of a change of
text in the composition."
(if (or (vectorp components) (listp components))
- (setq components (encode-composition-components components))
- (if (= (length components) 0)
- (error "Invalid composition component: %s" components)))
+ (setq components (encode-composition-components components)))
(or start (setq start 0))
(or end (setq end (length string)))
(compose-string-internal string start end components modification-func)
+2012-02-02 Kenichi Handa <handa@m17n.org>
+
+ (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is
+ 0, do not call append_composite_glyph.
+
2012-02-02 Kenichi Handa <handa@m17n.org>
* xdisp.c (BUILD_COMPOSITE_GLYPH_STRING): Initialize first_s to
it->glyph_row->contains_overlapping_glyphs_p = 1;
it->pixel_width = cmp->pixel_width;
- if (it->pixel_width == 0)
- /* We assure that all visible glyphs have at least 1-pixel
- width. */
- it->pixel_width = 1;
it->ascent = it->phys_ascent = cmp->ascent;
it->descent = it->phys_descent = cmp->descent;
if (face->box != FACE_NO_BOX)
if (it->descent < 0)
it->descent = 0;
- if (it->glyph_row)
+ if (it->glyph_row && cmp->glyph_len > 0)
append_composite_glyph (it);
}
else if (it->what == IT_COMPOSITION)