Fix previous change for Bug#6988.
authorKenichi Handa <handa@m17n.org>
Thu, 2 Feb 2012 09:07:29 +0000 (18:07 +0900)
committerKenichi Handa <handa@m17n.org>
Thu, 2 Feb 2012 09:07:29 +0000 (18:07 +0900)
lisp/ChangeLog
lisp/composite.el
src/ChangeLog
src/xdisp.c

index ce373a4..6c89f4e 100644 (file)
@@ -1,3 +1,7 @@
+2012-02-02  Kenichi Handa  <handa@m17n.org>
+
+       * (compose-region): Cancel previous change.
+
 2012-02-02  Kenichi Handa  <handa@m17n.org>
 
        * composite.el (compose-region, compose-string): Signal error for
index 739ec8b..72317ac 100644 (file)
@@ -211,7 +211,7 @@ or a vector or list of integers and rules.
 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
@@ -234,9 +234,7 @@ text in the composition."
   (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)))
 
@@ -269,9 +267,7 @@ Optional 5th argument MODIFICATION-FUNC is a function to call to
 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)
index eebb10f..d291f5f 100644 (file)
@@ -1,3 +1,8 @@
+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
index 864517b..75ea519 100644 (file)
@@ -24595,10 +24595,6 @@ x_produce_glyphs (struct it *it)
        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)
@@ -24630,7 +24626,7 @@ x_produce_glyphs (struct it *it)
       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)