(handle_single_display_spec): Fix handling of space
authorKim F. Storm <storm@cua.dk>
Mon, 23 Jan 2006 13:14:01 +0000 (13:14 +0000)
committerKim F. Storm <storm@cua.dk>
Mon, 23 Jan 2006 13:14:01 +0000 (13:14 +0000)
property on char from string: set *position rather than
it->current.pos.
(produce_stretch_glyph): Reduce width of stretch glyphs so they
don't get wider than the window (unless truncate-lines is on).

src/xdisp.c

index a6632dd..fa09c07 100644 (file)
@@ -4148,7 +4148,7 @@ handle_single_display_spec (it, spec, object, position,
        {
          it->method = GET_FROM_STRETCH;
          it->object = value;
-         it->current.pos = it->position = start_pos;
+         *position = it->position = start_pos;
        }
 #ifdef HAVE_WINDOW_SYSTEM
       else
@@ -19671,6 +19671,10 @@ produce_stretch_glyph (it)
   else
     ascent = (height * FONT_BASE (font)) / FONT_HEIGHT (font);
 
+  if (width > 0 && !it->truncate_lines_p
+      && it->current_x + width > it->last_visible_x)
+    width = it->last_visible_x - it->current_x - 1;
+
   if (width > 0 && height > 0 && it->glyph_row)
     {
       Lisp_Object object = it->stack[it->sp - 1].string;