* xdisp.c (set_cursor_from_row): Simplify conditionals,

to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
This commit is contained in:
Paul Eggert 2011-10-11 22:50:15 -07:00
parent 0324f3af3d
commit b5525cacc3
2 changed files with 25 additions and 20 deletions

View file

@ -1,5 +1,8 @@
2011-10-12 Paul Eggert <eggert@cs.ucla.edu>
* xdisp.c (set_cursor_from_row): Simplify conditionals,
to pacify GCC 4.6.1 x86-64 with -O2 -Wstrict-overflow.
* lread.c (read_escape): Allow hex escapes as large as ?\xfffffff.
Some packages use them to denote characters with modifiers.

View file

@ -13874,27 +13874,9 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
glyph--;
}
}
else if (match_with_avoid_cursor
/* A truncated row may not include PT among its
character positions. Setting the cursor inside the
scroll margin will trigger recalculation of hscroll
in hscroll_window_tree. But if a display string
covers point, defer to the string-handling code
below to figure this out. */
|| (!string_seen
&& ((row->truncated_on_left_p && pt_old < bpos_min)
|| (row->truncated_on_right_p && pt_old > bpos_max)
/* Zero-width characters produce no glyphs. */
|| (!empty_line_p
&& (row->reversed_p
? glyph_after > glyphs_end
: glyph_after < glyphs_end)))))
else if (match_with_avoid_cursor)
{
if (!match_with_avoid_cursor
&& row->truncated_on_left_p && pt_old < bpos_min)
cursor = glyph_before;
else
cursor = glyph_after;
cursor = glyph_after;
x = -1;
}
else if (string_seen)
@ -14033,6 +14015,26 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
&& row->continued_p)
return 0;
}
/* A truncated row may not include PT among its character positions.
Setting the cursor inside the scroll margin will trigger
recalculation of hscroll in hscroll_window_tree. But if a
display string covers point, defer to the string-handling
code below to figure this out. */
else if (row->truncated_on_left_p && pt_old < bpos_min)
{
cursor = glyph_before;
x = -1;
}
else if ((row->truncated_on_right_p && pt_old > bpos_max)
/* Zero-width characters produce no glyphs. */
|| (!empty_line_p
&& (row->reversed_p
? glyph_after > glyphs_end
: glyph_after < glyphs_end)))
{
cursor = glyph_after;
x = -1;
}
}
compute_x: