6012 |
glyphs have the same width. */ |
glyphs have the same width. */ |
6013 |
int single_glyph_width = it->pixel_width / it->nglyphs; |
int single_glyph_width = it->pixel_width / it->nglyphs; |
6014 |
int new_x; |
int new_x; |
6015 |
|
int x_before_this_char = x; |
6016 |
|
int hpos_before_this_char = it->hpos; |
6017 |
|
|
6018 |
for (i = 0; i < it->nglyphs; ++i, x = new_x) |
for (i = 0; i < it->nglyphs; ++i, x = new_x) |
6019 |
{ |
{ |
6045 |
{ |
{ |
6046 |
++it->hpos; |
++it->hpos; |
6047 |
it->current_x = new_x; |
it->current_x = new_x; |
6048 |
|
|
6049 |
|
/* The character's last glyph just barely fits |
6050 |
|
in this row. */ |
6051 |
if (i == it->nglyphs - 1) |
if (i == it->nglyphs - 1) |
6052 |
{ |
{ |
6053 |
|
/* If this is the destination position, |
6054 |
|
return a position *before* it in this row, |
6055 |
|
now that we know it fits in this row. */ |
6056 |
|
if (BUFFER_POS_REACHED_P ()) |
6057 |
|
{ |
6058 |
|
it->hpos = hpos_before_this_char; |
6059 |
|
it->current_x = x_before_this_char; |
6060 |
|
result = MOVE_POS_MATCH_OR_ZV; |
6061 |
|
break; |
6062 |
|
} |
6063 |
|
|
6064 |
set_iterator_to_next (it, 1); |
set_iterator_to_next (it, 1); |
6065 |
#ifdef HAVE_WINDOW_SYSTEM |
#ifdef HAVE_WINDOW_SYSTEM |
6066 |
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) |
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) |
10612 |
if (consider_all_windows_p) |
if (consider_all_windows_p) |
10613 |
{ |
{ |
10614 |
Lisp_Object tail, frame; |
Lisp_Object tail, frame; |
10615 |
int i, n = 0, size = 50; |
int i, n = 0, size = 5; |
10616 |
struct frame **updated |
struct frame **updated; |
10617 |
= (struct frame **) alloca (size * sizeof *updated); |
|
10618 |
|
FOR_EACH_FRAME (tail, frame) |
10619 |
|
size++; |
10620 |
|
|
10621 |
|
updated = (struct frame **) alloca (size * sizeof *updated); |
10622 |
|
|
10623 |
/* Recompute # windows showing selected buffer. This will be |
/* Recompute # windows showing selected buffer. This will be |
10624 |
incremented each time such a window is displayed. */ |
incremented each time such a window is displayed. */ |