More uEMACS
bright at dataio.UUCP
bright at dataio.UUCP
Thu Mar 5 04:48:11 AEST 1987
This patch for microEMACS is for all you people who are sick of screen
updates taking forever if you have more than one window on a buffer. The
problem is that the old lchange() routine would force a hard update on
all windows on the buffer. The new routine below only forces a hard update
on those windows on the buffer that are not the currently active one. This
usually about doubles the update speed.
/*
* This routine gets called when a character is changed in place in the current
* buffer. It updates all of the required flags in the buffer and window
* system. The flag used is passed as an argument; if the buffer is being
* displayed in more than 1 window we change EDIT to HARD. Set MODE if the
* mode line needs to be updated (the "*" has to be set).
* Modified by Walter Bright to reduce update times.
*/
lchange(flag)
register int flag;
{
register WINDOW *wp;
if ((curbp->b_flag&BFCHG) == 0) /* First change, so */
{ flag |= WFMODE; /* update mode lines. */
curbp->b_flag |= BFCHG;
}
for (wp = wheadp; wp; wp = wp->w_wndp)
{
if (wp->w_bufp == curbp)
{
wp->w_flag |= flag;
if (wp != curwp)
wp->w_flag |= WFHARD;
}
}
}
More information about the Comp.sources.unix
mailing list