From: Geoff Voelker Date: Sun, 21 Jan 1996 00:28:26 +0000 (+0000) Subject: (clear_frame): Use FillConsoleOutput* calls instead of X-Git-Tag: emacs-19.34~1616 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b47278e10c0825f8fd4eb694e512fb5fe7456c11;p=emacs.git (clear_frame): Use FillConsoleOutput* calls instead of ScrollConsoleScreenBuffer (which has a bug on Win95). --- diff --git a/src/w32console.c b/src/w32console.c index 102693d44e1..31ec9363569 100644 --- a/src/w32console.c +++ b/src/w32console.c @@ -123,25 +123,18 @@ clear_to_end (void) void clear_frame (void) { - SMALL_RECT scroll; - COORD dest; - CHAR_INFO fill; FRAME_PTR f = PICK_FRAME (); - + COORD dest; + int n, r; + hl_mode (0); - scroll.Top = 0; - scroll.Bottom = FRAME_HEIGHT (f) - 1; - scroll.Left = 0; - scroll.Right = FRAME_WIDTH (f) - 1; - - dest.Y = FRAME_HEIGHT (f); - dest.X = 0; - - fill.Char.AsciiChar = 0x20; - fill.Attributes = char_attr; - - ScrollConsoleScreenBuffer (cur_screen, &scroll, NULL, dest, &fill); + n = FRAME_HEIGHT (f) * FRAME_WIDTH (f); + dest.X = dest.Y = 0; + + FillConsoleOutputAttribute (cur_screen, char_attr, n, dest, &r); + FillConsoleOutputCharacter (cur_screen, ' ', n, dest, &r); + move_cursor (0, 0); } @@ -347,6 +340,9 @@ write_glyphs (register GLYPH *string, register int len) char *chars; int i; + if (len <= 0) + return; + attrs = alloca (len * sizeof (*attrs)); chars = alloca (len * sizeof (*chars)); if (attrs == NULL || chars == NULL)