From 7d4cc82846d8a6eace629f4dd9a47a2f43473d6e Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Fri, 12 Apr 2002 11:43:36 +0000 Subject: [PATCH] (sync_frame_with_window_matrix_rows): Don't give frame rows marginal areas. (Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function. (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it. --- src/ChangeLog | 5 +++++ src/xdisp.c | 25 ++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 235ebd2ee6a..d33e08bd6af 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2002-04-12 Gerd Moellmann + * xdisp.c (sync_frame_with_window_matrix_rows): Don't give frame + rows marginal areas. + (Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function. + (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it. + * dispnew.c (marginal_area_string): Check that glyph row is enabled. 2002-04-12 Dave Love diff --git a/src/xdisp.c b/src/xdisp.c index 9dd35bae58f..107218b928b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11343,16 +11343,20 @@ sync_frame_with_window_matrix_rows (w) /* If W is a full-width window, glyph pointers in W's current matrix have, by definition, to be the same as glyph pointers in the - corresponding frame matrix. */ + corresponding frame matrix. Note that frame matrices have no + marginal areas (see build_frame_matrix). */ window_row = w->current_matrix->rows; window_row_end = window_row + w->current_matrix->nrows; frame_row = f->current_matrix->rows + XFASTINT (w->top); while (window_row < window_row_end) { - int area; - - for (area = LEFT_MARGIN_AREA; area <= LAST_AREA; ++area) - frame_row->glyphs[area] = window_row->glyphs[area]; + struct glyph *start = window_row->glyphs[LEFT_MARGIN_AREA]; + struct glyph *end = window_row->glyphs[LAST_AREA]; + + frame_row->glyphs[LEFT_MARGIN_AREA] = start; + frame_row->glyphs[TEXT_AREA] = start; + frame_row->glyphs[RIGHT_MARGIN_AREA] = end; + frame_row->glyphs[LAST_AREA] = end; /* Disable frame rows whose corresponding window rows have been disabled in try_window_id. */ @@ -12367,6 +12371,16 @@ glyphs in short form, otherwise show glyphs in long form. */) } +DEFUN ("dump-frame-glyph-matrix", Fdump_frame_glyph_matrix, + Sdump_frame_glyph_matrix, 0, 0, "", doc: /* */) + () +{ + struct frame *f = XFRAME (selected_frame); + dump_glyph_matrix (f->current_matrix, 1); + return Qnil; +} + + DEFUN ("dump-glyph-row", Fdump_glyph_row, Sdump_glyph_row, 1, 2, "", doc: /* Dump glyph row ROW to stderr. GLYPH 0 means don't dump glyphs. @@ -14859,6 +14873,7 @@ syms_of_xdisp () staticpro (&message_dolog_marker3); #if GLYPH_DEBUG + defsubr (&Sdump_frame_glyph_matrix); defsubr (&Sdump_glyph_matrix); defsubr (&Sdump_glyph_row); defsubr (&Sdump_tool_bar_row); -- 2.39.2