changeset 71161:938915517680

(next_element_from_composition): Set it->object to it->string if composition is coming from string. (set_cursor_from_row): Don't return 0 unless row displays a continued line. (dump_glyph): Dump composite glyph.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Fri, 02 Jun 2006 09:39:43 +0000
parents 070b40db0b2a
children 1e8648fd980a
files src/xdisp.c
diffstat 1 files changed, 22 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Fri Jun 02 08:49:25 2006 +0000
+++ b/src/xdisp.c	Fri Jun 02 09:39:43 2006 +0000
@@ -6238,6 +6238,8 @@
   it->position = (STRINGP (it->string)
 		  ? it->current.string_pos
 		  : it->current.pos);
+  if (STRINGP (it->string))
+    it->object = it->string;
   return 1;
 }
 
@@ -11777,7 +11779,7 @@
 
       /* If we reached the end of the line, and end was from a string,
 	 cursor is not on this line.  */
-      if (glyph == end)
+      if (glyph == end && row->continued_p)
 	return 0;
     }
 
@@ -14961,6 +14963,25 @@
 	       glyph->left_box_line_p,
 	       glyph->right_box_line_p);
     }
+  else if (glyph->type == COMPOSITE_GLYPH)
+    {
+      fprintf (stderr,
+	       "  %5d %4c %6d %c %3d 0x%05x %c %4d %1.1d%1.1d\n",
+	       glyph - row->glyphs[TEXT_AREA],
+	       '+',
+	       glyph->charpos,
+	       (BUFFERP (glyph->object)
+		? 'B'
+		: (STRINGP (glyph->object)
+		   ? 'S'
+		   : '-')),
+	       glyph->pixel_width,
+	       glyph->u.cmp_id,
+	       '.',
+	       glyph->face_id,
+	       glyph->left_box_line_p,
+	       glyph->right_box_line_p);
+    }
 }