[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Emacs21 display bug in text mode: "flashing window"
From: |
Gerd Moellmann |
Subject: |
Re: Emacs21 display bug in text mode: "flashing window" |
Date: |
23 Oct 2001 17:19:22 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.1.50 |
"Stefan Monnier" <monnier+gnu.emacs.bug/news/@RUM.cs.yale.edu> writes:
> as soon as I do the C-x ^ Emacs crashes on an assertion failure.
Good hint.
The patch below fixes the assertion failure. Does it also fix
the other problem?
*** dispnew.c 2001/10/23 14:49:24 1.289
--- dispnew.c 2001/10/23 15:09:14
***************
*** 3005,3012 ****
/* Synchronize glyph pointers in the current matrix of window W with
! the current frame matrix. W must be full-width, and be on a tty
! frame. */
static void
sync_window_with_frame_matrix_rows (w)
--- 3005,3011 ----
/* Synchronize glyph pointers in the current matrix of window W with
! the current frame matrix. */
static void
sync_window_with_frame_matrix_rows (w)
***************
*** 3014,3040 ****
{
struct frame *f = XFRAME (w->frame);
struct glyph_row *window_row, *window_row_end, *frame_row;
! /* Preconditions: W must be a leaf window and full-width. Its frame
! must have a frame matrix. */
xassert (NILP (w->hchild) && NILP (w->vchild));
- xassert (WINDOW_FULL_WIDTH_P (w));
xassert (!FRAME_WINDOW_P (f));
! /* 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. */
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)
! window_row->glyphs[area] = frame_row->glyphs[area];
!
! ++window_row, ++frame_row;
}
}
--- 3013,3043 ----
{
struct frame *f = XFRAME (w->frame);
struct glyph_row *window_row, *window_row_end, *frame_row;
+ int area, left, right, x, width;
! /* Preconditions: W must be a leaf window on a tty frame. */
xassert (NILP (w->hchild) && NILP (w->vchild));
xassert (!FRAME_WINDOW_P (f));
! left = margin_glyphs_to_reserve (w, 1, w->left_margin_width);
! right = margin_glyphs_to_reserve (w, 1, w->right_margin_width);
! x = w->current_matrix->matrix_x;
! width = w->current_matrix->matrix_w;
!
window_row = w->current_matrix->rows;
window_row_end = window_row + w->current_matrix->nrows;
frame_row = f->current_matrix->rows + XFASTINT (w->top);
!
! for (; window_row < window_row_end; ++window_row, ++frame_row)
{
! window_row->glyphs[LEFT_MARGIN_AREA]
! = frame_row->glyphs[0] + x;
! window_row->glyphs[TEXT_AREA]
! = window_row->glyphs[LEFT_MARGIN_AREA] + left;
! window_row->glyphs[LAST_AREA]
! = window_row->glyphs[LEFT_MARGIN_AREA] + width;
! window_row->glyphs[RIGHT_MARGIN_AREA]
! = window_row->glyphs[LAST_AREA] - right;
}
}
- Emacs21 display bug in text mode: "flashing window", Dast, 2001/10/22
- Re: Emacs21 display bug in text mode: "flashing window", Gerd Moellmann, 2001/10/23
- Re: Emacs21 display bug in text mode: "flashing window", Eli Zaretskii, 2001/10/23
- Re: Emacs21 display bug in text mode: "flashing window", Stefan Monnier, 2001/10/23
- Re: Emacs21 display bug in text mode: "flashing window", Dast, 2001/10/23
- Re: Emacs21 display bug in text mode: "flashing window", Gerd Moellmann, 2001/10/23
Re: Emacs21 display bug in text mode: "flashing window", Rob Browning, 2001/10/23