Commit 138c0ae8 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Use macros from dispextern.h where appropriate.

 src/xdisp.c (display_tool_bar_line, redisplay_tool_bar)
 (redisplay_internal, set_cursor_from_row, try_window)
 (try_window_id, dump_glyph_row, extend_face_to_end_of_line)
 (display_line, notice_overwritten_cursor)
 (mouse_face_from_buffer_pos, note_mouse_highlight): Use
 MATRIX_ROW_DISPLAYS_TEXT_P.
 (note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
 (mouse_face_from_string_pos, fast_find_string_pos): Use
 MATRIX_ROW_VPOS.
 src/xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
 src/w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
 src/xdisp.c (try_cursor_movement): Use MATRIX_ROW and
 MATRIX_MODE_LINE_ROW.
 src/dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
parent 7d051e21
2013-03-10 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_tool_bar_line, redisplay_tool_bar)
(redisplay_internal, set_cursor_from_row, try_window)
(try_window_id, dump_glyph_row, extend_face_to_end_of_line)
(display_line, notice_overwritten_cursor)
(mouse_face_from_buffer_pos, note_mouse_highlight): Use
MATRIX_ROW_DISPLAYS_TEXT_P.
(note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
(mouse_face_from_string_pos, fast_find_string_pos): Use
MATRIX_ROW_VPOS.
* xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
* w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
* xdisp.c (try_cursor_movement): Use MATRIX_ROW and
MATRIX_MODE_LINE_ROW.
* dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
2013-03-10 handa <handa@gnu.org> 2013-03-10 handa <handa@gnu.org>
   
* lisp.h (adjust_after_replace): Extern it. * lisp.h (adjust_after_replace): Extern it.
......
...@@ -3392,8 +3392,8 @@ update_window (struct window *w, bool force_p) ...@@ -3392,8 +3392,8 @@ update_window (struct window *w, bool force_p)
rif->update_window_begin_hook (w); rif->update_window_begin_hook (w);
yb = window_text_bottom_y (w); yb = window_text_bottom_y (w);
row = desired_matrix->rows; row = MATRIX_ROW (desired_matrix, 0);
end = row + desired_matrix->nrows - 1; end = MATRIX_MODE_LINE_ROW (desired_matrix);
/* Take note of the header line, if there is one. We will /* Take note of the header line, if there is one. We will
update it below, after updating all of the window's lines. */ update it below, after updating all of the window's lines. */
......
...@@ -5824,7 +5824,7 @@ Text larger than the specified size is clipped. */) ...@@ -5824,7 +5824,7 @@ Text larger than the specified size is clipped. */)
int row_width; int row_width;
/* Stop at the first empty row at the end. */ /* Stop at the first empty row at the end. */
if (!row->enabled_p || !row->displays_text_p) if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
break; break;
/* Let the row go over the full width of the frame. */ /* Let the row go over the full width of the frame. */
...@@ -5885,7 +5885,7 @@ Text larger than the specified size is clipped. */) ...@@ -5885,7 +5885,7 @@ Text larger than the specified size is clipped. */)
struct glyph *last; struct glyph *last;
int row_width; int row_width;
if (!row->enabled_p || !row->displays_text_p) if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
break; break;
row->full_width_p = 1; row->full_width_p = 1;
row_width = row->pixel_width; row_width = row->pixel_width;
......
...@@ -11711,7 +11711,8 @@ display_tool_bar_line (struct it *it, int height) ...@@ -11711,7 +11711,8 @@ display_tool_bar_line (struct it *it, int height)
no additional border below the possibly empty tool-bar lines. no additional border below the possibly empty tool-bar lines.
So to make the extra empty lines look "normal", we have to So to make the extra empty lines look "normal", we have to
use the tool-bar face for the border too. */ use the tool-bar face for the border too. */
if (!row->displays_text_p && !EQ (Vauto_resize_tool_bars, Qgrow_only)) if (!MATRIX_ROW_DISPLAYS_TEXT_P (row)
&& !EQ (Vauto_resize_tool_bars, Qgrow_only))
it->face_id = DEFAULT_FACE_ID; it->face_id = DEFAULT_FACE_ID;
   
extend_face_to_end_of_line (it); extend_face_to_end_of_line (it);
...@@ -11732,7 +11733,7 @@ display_tool_bar_line (struct it *it, int height) ...@@ -11732,7 +11733,7 @@ display_tool_bar_line (struct it *it, int height)
compute_line_metrics (it); compute_line_metrics (it);
   
/* If line is empty, make it occupy the rest of the tool-bar. */ /* If line is empty, make it occupy the rest of the tool-bar. */
if (!row->displays_text_p) if (!MATRIX_ROW_DISPLAYS_TEXT_P (row))
{ {
row->height = row->phys_height = it->last_visible_y - row->y; row->height = row->phys_height = it->last_visible_y - row->y;
row->visible_height = row->height; row->visible_height = row->height;
...@@ -11947,13 +11948,13 @@ redisplay_tool_bar (struct frame *f) ...@@ -11947,13 +11948,13 @@ redisplay_tool_bar (struct frame *f)
/* If there are blank lines at the end, except for a partially /* If there are blank lines at the end, except for a partially
visible blank line at the end that is smaller than visible blank line at the end that is smaller than
FRAME_LINE_HEIGHT, change the tool-bar's height. */ FRAME_LINE_HEIGHT, change the tool-bar's height. */
if (!row->displays_text_p if (!MATRIX_ROW_DISPLAYS_TEXT_P (row)
&& row->height >= FRAME_LINE_HEIGHT (f)) && row->height >= FRAME_LINE_HEIGHT (f))
change_height_p = 1; change_height_p = 1;
   
/* If row displays tool-bar items, but is partially visible, /* If row displays tool-bar items, but is partially visible,
change the tool-bar's height. */ change the tool-bar's height. */
if (row->displays_text_p if (MATRIX_ROW_DISPLAYS_TEXT_P (row)
&& MATRIX_ROW_BOTTOM_Y (row) > it.last_visible_y && MATRIX_ROW_BOTTOM_Y (row) > it.last_visible_y
&& MATRIX_ROW_BOTTOM_Y (row) < max_tool_bar_height) && MATRIX_ROW_BOTTOM_Y (row) < max_tool_bar_height)
change_height_p = 1; change_height_p = 1;
...@@ -13144,7 +13145,7 @@ redisplay_internal (void) ...@@ -13144,7 +13145,7 @@ redisplay_internal (void)
/* If this row displays text now but previously didn't, /* If this row displays text now but previously didn't,
or vice versa, w->window_end_vpos may have to be or vice versa, w->window_end_vpos may have to be
adjusted. */ adjusted. */
if ((it.glyph_row - 1)->displays_text_p) if (MATRIX_ROW_DISPLAYS_TEXT_P (it.glyph_row - 1))
{ {
if (XFASTINT (w->window_end_vpos) < this_line_vpos) if (XFASTINT (w->window_end_vpos) < this_line_vpos)
wset_window_end_vpos (w, make_number (this_line_vpos)); wset_window_end_vpos (w, make_number (this_line_vpos));
...@@ -13754,7 +13755,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, ...@@ -13754,7 +13755,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
/* Skip over glyphs not having an object at the start and the end of /* Skip over glyphs not having an object at the start and the end of
the row. These are special glyphs like truncation marks on the row. These are special glyphs like truncation marks on
terminal frames. */ terminal frames. */
if (row->displays_text_p) if (MATRIX_ROW_DISPLAYS_TEXT_P (row))
{ {
if (!row->reversed_p) if (!row->reversed_p)
{ {
...@@ -14931,8 +14932,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste ...@@ -14931,8 +14932,7 @@ try_cursor_movement (Lisp_Object window, struct text_pos startp, int *scroll_ste
we would rather display cursor in the next line. */ we would rather display cursor in the next line. */
while (MATRIX_ROW_BOTTOM_Y (row) < last_y while (MATRIX_ROW_BOTTOM_Y (row) < last_y
&& MATRIX_ROW_END_CHARPOS (row) == PT && MATRIX_ROW_END_CHARPOS (row) == PT
&& row < w->current_matrix->rows && row < MATRIX_MODE_LINE_ROW (w->current_matrix)
+ w->current_matrix->nrows - 1
&& MATRIX_ROW_START_CHARPOS (row+1) == PT && MATRIX_ROW_START_CHARPOS (row+1) == PT
&& !cursor_row_p (row)) && !cursor_row_p (row))
++row; ++row;
...@@ -16171,8 +16171,8 @@ try_window (Lisp_Object window, struct text_pos pos, int flags) ...@@ -16171,8 +16171,8 @@ try_window (Lisp_Object window, struct text_pos pos, int flags)
wset_window_end_vpos wset_window_end_vpos
(w, make_number (MATRIX_ROW_VPOS (last_text_row, w->desired_matrix))); (w, make_number (MATRIX_ROW_VPOS (last_text_row, w->desired_matrix)));
eassert eassert
(MATRIX_ROW (w->desired_matrix, (MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->desired_matrix,
XFASTINT (w->window_end_vpos))->displays_text_p); XFASTINT (w->window_end_vpos))));
} }
else else
{ {
...@@ -17581,7 +17581,7 @@ try_window_id (struct window *w) ...@@ -17581,7 +17581,7 @@ try_window_id (struct window *w)
struct glyph_row *last_row = MATRIX_ROW (current_matrix, last_vpos); struct glyph_row *last_row = MATRIX_ROW (current_matrix, last_vpos);
   
/* If last_row is the window end line, it should display text. */ /* If last_row is the window end line, it should display text. */
eassert (last_row->displays_text_p); eassert (MATRIX_ROW_DISPLAYS_TEXT_P (last_row));
   
/* If window end line was partially visible before, begin /* If window end line was partially visible before, begin
displaying at that line. Otherwise begin displaying with the displaying at that line. Otherwise begin displaying with the
...@@ -17628,7 +17628,7 @@ try_window_id (struct window *w) ...@@ -17628,7 +17628,7 @@ try_window_id (struct window *w)
matrix. Set row to the last row displaying text in current matrix. Set row to the last row displaying text in current
matrix starting at first_unchanged_at_end_row, after matrix starting at first_unchanged_at_end_row, after
scrolling. */ scrolling. */
eassert (first_unchanged_at_end_row->displays_text_p); eassert (MATRIX_ROW_DISPLAYS_TEXT_P (first_unchanged_at_end_row));
row = find_last_row_displaying_text (w->current_matrix, &it, row = find_last_row_displaying_text (w->current_matrix, &it,
first_unchanged_at_end_row); first_unchanged_at_end_row);
eassert (row && MATRIX_ROW_DISPLAYS_TEXT_P (row)); eassert (row && MATRIX_ROW_DISPLAYS_TEXT_P (row));
...@@ -17682,10 +17682,10 @@ try_window_id (struct window *w) ...@@ -17682,10 +17682,10 @@ try_window_id (struct window *w)
{ {
if (desired_row->enabled_p) if (desired_row->enabled_p)
{ {
if (desired_row->displays_text_p) if (MATRIX_ROW_DISPLAYS_TEXT_P (desired_row))
row = desired_row; row = desired_row;
} }
else if (current_row->displays_text_p) else if (MATRIX_ROW_DISPLAYS_TEXT_P (current_row))
row = current_row; row = current_row;
} }
   
...@@ -17865,7 +17865,7 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs) ...@@ -17865,7 +17865,7 @@ dump_glyph_row (struct glyph_row *row, int vpos, int glyphs)
row->truncated_on_right_p, row->truncated_on_right_p,
row->continued_p, row->continued_p,
MATRIX_ROW_CONTINUATION_LINE_P (row), MATRIX_ROW_CONTINUATION_LINE_P (row),
row->displays_text_p, MATRIX_ROW_DISPLAYS_TEXT_P (row),
row->ends_at_zv_p, row->ends_at_zv_p,
row->fill_line_p, row->fill_line_p,
row->ends_in_middle_of_char_p, row->ends_in_middle_of_char_p,
...@@ -18501,7 +18501,7 @@ extend_face_to_end_of_line (struct it *it) ...@@ -18501,7 +18501,7 @@ extend_face_to_end_of_line (struct it *it)
face = FACE_FROM_ID (f, it->face_id); face = FACE_FROM_ID (f, it->face_id);
   
if (FRAME_WINDOW_P (f) if (FRAME_WINDOW_P (f)
&& it->glyph_row->displays_text_p && MATRIX_ROW_DISPLAYS_TEXT_P (it->glyph_row)
&& face->box == FACE_NO_BOX && face->box == FACE_NO_BOX
&& face->background == FRAME_BACKGROUND_PIXEL (f) && face->background == FRAME_BACKGROUND_PIXEL (f)
&& !face->stipple && !face->stipple
...@@ -19761,7 +19761,7 @@ display_line (struct it *it) ...@@ -19761,7 +19761,7 @@ display_line (struct it *it)
mark this glyph row as the one containing the overlay arrow. mark this glyph row as the one containing the overlay arrow.
This is clearly a mess with variable size fonts. It would be This is clearly a mess with variable size fonts. It would be
better to let it be displayed like cursors under X. */ better to let it be displayed like cursors under X. */
if ((row->displays_text_p || !overlay_arrow_seen) if ((MATRIX_ROW_DISPLAYS_TEXT_P (row) || !overlay_arrow_seen)
&& (overlay_arrow_string = overlay_arrow_at_row (it, row), && (overlay_arrow_string = overlay_arrow_at_row (it, row),
!NILP (overlay_arrow_string))) !NILP (overlay_arrow_string)))
{ {
...@@ -19861,7 +19861,7 @@ display_line (struct it *it) ...@@ -19861,7 +19861,7 @@ display_line (struct it *it)
if (it->glyph_row < MATRIX_BOTTOM_TEXT_ROW (it->w->desired_matrix, it->w)) if (it->glyph_row < MATRIX_BOTTOM_TEXT_ROW (it->w->desired_matrix, it->w))
it->glyph_row->reversed_p = row->reversed_p; it->glyph_row->reversed_p = row->reversed_p;
it->start = row->end; it->start = row->end;
return row->displays_text_p; return MATRIX_ROW_DISPLAYS_TEXT_P (row);
   
#undef RECORD_MAX_MIN_POS #undef RECORD_MAX_MIN_POS
} }
...@@ -25660,7 +25660,7 @@ notice_overwritten_cursor (struct window *w, enum glyph_row_area area, ...@@ -25660,7 +25660,7 @@ notice_overwritten_cursor (struct window *w, enum glyph_row_area area,
if (w->phys_cursor.vpos < 0 if (w->phys_cursor.vpos < 0
|| w->phys_cursor.vpos >= w->current_matrix->nrows || w->phys_cursor.vpos >= w->current_matrix->nrows
|| (row = w->current_matrix->rows + w->phys_cursor.vpos, || (row = w->current_matrix->rows + w->phys_cursor.vpos,
!(row->enabled_p && row->displays_text_p))) !(row->enabled_p && MATRIX_ROW_DISPLAYS_TEXT_P (row))))
return; return;
   
if (row->cursor_in_fringe_p) if (row->cursor_in_fringe_p)
...@@ -26595,7 +26595,7 @@ mouse_face_from_buffer_pos (Lisp_Object window, ...@@ -26595,7 +26595,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
x = r1->x; x = r1->x;
   
/* Skip truncation glyphs at the start of the glyph row. */ /* Skip truncation glyphs at the start of the glyph row. */
if (r1->displays_text_p) if (MATRIX_ROW_DISPLAYS_TEXT_P (r1))
for (; glyph < end for (; glyph < end
&& INTEGERP (glyph->object) && INTEGERP (glyph->object)
&& glyph->charpos < 0; && glyph->charpos < 0;
...@@ -26646,7 +26646,7 @@ mouse_face_from_buffer_pos (Lisp_Object window, ...@@ -26646,7 +26646,7 @@ mouse_face_from_buffer_pos (Lisp_Object window,
glyph = end + r1->used[TEXT_AREA]; glyph = end + r1->used[TEXT_AREA];
   
/* Skip truncation glyphs at the start of the glyph row. */ /* Skip truncation glyphs at the start of the glyph row. */
if (r1->displays_text_p) if (MATRIX_ROW_DISPLAYS_TEXT_P (r1))
for (; glyph > end for (; glyph > end
&& INTEGERP (glyph->object) && INTEGERP (glyph->object)
&& glyph->charpos < 0; && glyph->charpos < 0;
...@@ -26897,7 +26897,7 @@ fast_find_string_pos (struct window *w, ptrdiff_t pos, Lisp_Object object, ...@@ -26897,7 +26897,7 @@ fast_find_string_pos (struct window *w, ptrdiff_t pos, Lisp_Object object,
} }
   
*y = best_row->y; *y = best_row->y;
*vpos = best_row - w->current_matrix->rows; *vpos = MATRIX_ROW_VPOS (best_row, w->current_matrix);
} }
   
return best_glyph != NULL; return best_glyph != NULL;
...@@ -26935,7 +26935,8 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo, ...@@ -26935,7 +26935,8 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo,
if (EQ (g->object, object) if (EQ (g->object, object)
&& startpos <= g->charpos && g->charpos <= endpos) && startpos <= g->charpos && g->charpos <= endpos)
{ {
hlinfo->mouse_face_beg_row = r - w->current_matrix->rows; hlinfo->mouse_face_beg_row
= MATRIX_ROW_VPOS (r, w->current_matrix);
hlinfo->mouse_face_beg_y = r->y; hlinfo->mouse_face_beg_y = r->y;
hlinfo->mouse_face_beg_col = g - r->glyphs[TEXT_AREA]; hlinfo->mouse_face_beg_col = g - r->glyphs[TEXT_AREA];
hlinfo->mouse_face_beg_x = gx; hlinfo->mouse_face_beg_x = gx;
...@@ -26953,7 +26954,8 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo, ...@@ -26953,7 +26954,8 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo,
if (EQ ((g-1)->object, object) if (EQ ((g-1)->object, object)
&& startpos <= (g-1)->charpos && (g-1)->charpos <= endpos) && startpos <= (g-1)->charpos && (g-1)->charpos <= endpos)
{ {
hlinfo->mouse_face_beg_row = r - w->current_matrix->rows; hlinfo->mouse_face_beg_row
= MATRIX_ROW_VPOS (r, w->current_matrix);
hlinfo->mouse_face_beg_y = r->y; hlinfo->mouse_face_beg_y = r->y;
hlinfo->mouse_face_beg_col = g - r->glyphs[TEXT_AREA]; hlinfo->mouse_face_beg_col = g - r->glyphs[TEXT_AREA];
for (gx = r->x, g1 = r->glyphs[TEXT_AREA]; g1 < g; ++g1) for (gx = r->x, g1 = r->glyphs[TEXT_AREA]; g1 < g; ++g1)
...@@ -26992,7 +26994,7 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo, ...@@ -26992,7 +26994,7 @@ mouse_face_from_string_pos (struct window *w, Mouse_HLInfo *hlinfo,
r--; r--;
   
/* Set the end row and its vertical pixel coordinate. */ /* Set the end row and its vertical pixel coordinate. */
hlinfo->mouse_face_end_row = r - w->current_matrix->rows; hlinfo->mouse_face_end_row = MATRIX_ROW_VPOS (r, w->current_matrix);
hlinfo->mouse_face_end_y = r->y; hlinfo->mouse_face_end_y = r->y;
   
/* Compute and set the end column and the end column's horizontal /* Compute and set the end column and the end column's horizontal
...@@ -27676,7 +27678,7 @@ note_mouse_highlight (struct frame *f, int x, int y) ...@@ -27676,7 +27678,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
/* Clear mouse face if X/Y not over text. */ /* Clear mouse face if X/Y not over text. */
if (glyph == NULL if (glyph == NULL
|| area != TEXT_AREA || area != TEXT_AREA
|| !MATRIX_ROW (w->current_matrix, vpos)->displays_text_p || !MATRIX_ROW_DISPLAYS_TEXT_P (MATRIX_ROW (w->current_matrix, vpos))
/* Glyph's OBJECT is an integer for glyphs inserted by the /* Glyph's OBJECT is an integer for glyphs inserted by the
display engine for its internal purposes, like truncation display engine for its internal purposes, like truncation
and continuation glyphs and blanks beyond the end of and continuation glyphs and blanks beyond the end of
...@@ -27688,7 +27690,7 @@ note_mouse_highlight (struct frame *f, int x, int y) ...@@ -27688,7 +27690,7 @@ note_mouse_highlight (struct frame *f, int x, int y)
all beyond the end of text. Treat such stretch glyphs all beyond the end of text. Treat such stretch glyphs
like we do with NULL glyphs in L2R rows. */ like we do with NULL glyphs in L2R rows. */
|| (MATRIX_ROW (w->current_matrix, vpos)->reversed_p || (MATRIX_ROW (w->current_matrix, vpos)->reversed_p
&& glyph == MATRIX_ROW (w->current_matrix, vpos)->glyphs[TEXT_AREA] && glyph == MATRIX_ROW_GLYPH_START (w->current_matrix, vpos)
&& glyph->type == STRETCH_GLYPH && glyph->type == STRETCH_GLYPH
&& glyph->avoid_cursor_p)) && glyph->avoid_cursor_p))
{ {
......
...@@ -5067,7 +5067,7 @@ Text larger than the specified size is clipped. */) ...@@ -5067,7 +5067,7 @@ Text larger than the specified size is clipped. */)
int row_width; int row_width;
/* Stop at the first empty row at the end. */ /* Stop at the first empty row at the end. */
if (!row->enabled_p || !row->displays_text_p) if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
break; break;
/* Let the row go over the full width of the frame. */ /* Let the row go over the full width of the frame. */
...@@ -5126,7 +5126,7 @@ Text larger than the specified size is clipped. */) ...@@ -5126,7 +5126,7 @@ Text larger than the specified size is clipped. */)
struct glyph *last; struct glyph *last;
int row_width; int row_width;
if (!row->enabled_p || !row->displays_text_p) if (!row->enabled_p || !MATRIX_ROW_DISPLAYS_TEXT_P (row))
break; break;
row->full_width_p = 1; row->full_width_p = 1;
row_width = row->pixel_width; row_width = row->pixel_width;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment