aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32console.c
diff options
context:
space:
mode:
authorMiles Bader2004-06-28 07:56:49 +0000
committerMiles Bader2004-06-28 07:56:49 +0000
commit327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801 (patch)
tree21de188e13b5e41a79bb50040933072ae0235217 /src/w32console.c
parent852f73b7fa7b71910282eacb6263b3ecfd4ee783 (diff)
parent376de73927383d6062483db10b8a82448505f52b (diff)
downloademacs-327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801.tar.gz
emacs-327719ee8a3fcdb36ed6acaf6d8cb5fbdf0bd801.zip
Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-15
Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-218 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-220 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-221 Restore deleted tagline in etc/TUTORIAL.ru * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-222 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-228 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-229 Remove TeX output files from the archive * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-230 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248 src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-256 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-258 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-263 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-264 Update from CVS: lispref/display.texi: emacs -> Emacs. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-265 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-274 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-275 Update from CVS: man/makefile.w32-in: Revert last change * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-276 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-295 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-296 Allow restarting an existing debugger session that's exited * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-297 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328 Update from CVS: src/.gdbinit (xsymbol): Fix last change. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-344 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-345 Tweak source regexps so that building in place won't cause problems * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-346 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-351 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-352 Update from CVS: lisp/flymake.el: New file. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-361 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362 Support " [...]" style defaults in minibuffer-electric-default-mode * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-363 (read-number): Use canonical format for default in prompt. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-364 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-367 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368 Improve display-supports-face-attributes-p on non-ttys * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369 Rewrite face-differs-from-default-p * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-370 Move `display-supports-face-attributes-p' entirely into C code * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-371 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372 Simplify face-differs-from-default-p; don't consider :stipple. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-373 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-374 (tty_supports_face_attributes_p): Ensure attributes differ from default * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-375 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-376 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-377 (Fdisplay_supports_face_attributes_p): Work around bootstrapping problem * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-378 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-380 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-381 Face merging cleanups * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-382 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385 src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-395 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396 Tweak arch tagging to make build/install-in-place less annoying * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-397 Work around vc-arch problems when building eshell * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-398 Tweak permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-399 Tweak directory permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-400 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-401 More build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-402 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-403 Yet more build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-404 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-409 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-410 Make sure image types are initialized for lookup too * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-411 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-416 Update from CVS
Diffstat (limited to 'src/w32console.c')
-rw-r--r--src/w32console.c130
1 files changed, 65 insertions, 65 deletions
diff --git a/src/w32console.c b/src/w32console.c
index 50cbfb281d3..cd71f0ba6ad 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -53,20 +53,20 @@ extern int read_input_pending ();
53extern struct frame * updating_frame; 53extern struct frame * updating_frame;
54extern int meta_key; 54extern int meta_key;
55 55
56static void move_cursor (int row, int col); 56static void w32con_move_cursor (int row, int col);
57static void clear_to_end (void); 57static void w32con_clear_to_end (void);
58static void clear_frame (void); 58static void w32con_clear_frame (void);
59static void clear_end_of_line (int); 59static void w32con_clear_end_of_line (int);
60static void ins_del_lines (int vpos, int n); 60static void w32con_ins_del_lines (int vpos, int n);
61static void insert_glyphs (struct glyph *start, int len); 61static void w32con_insert_glyphs (struct glyph *start, int len);
62static void write_glyphs (struct glyph *string, int len); 62static void w32con_write_glyphs (struct glyph *string, int len);
63static void delete_glyphs (int n); 63static void w32con_delete_glyphs (int n);
64void w32_sys_ring_bell (void); 64void w32_sys_ring_bell (void);
65static void reset_terminal_modes (void); 65static void w32con_reset_terminal_modes (void);
66static void set_terminal_modes (void); 66static void w32con_set_terminal_modes (void);
67static void set_terminal_window (int size); 67static void w32con_set_terminal_window (int size);
68static void update_begin (struct frame * f); 68static void w32con_update_begin (struct frame * f);
69static void update_end (struct frame * f); 69static void w32con_update_end (struct frame * f);
70static WORD w32_face_attributes (struct frame *f, int face_id); 70static WORD w32_face_attributes (struct frame *f, int face_id);
71 71
72static COORD cursor_coords; 72static COORD cursor_coords;
@@ -103,8 +103,8 @@ ctrl_c_handler (unsigned long type)
103#define PICK_FRAME() (updating_frame ? updating_frame : SELECTED_FRAME ()) 103#define PICK_FRAME() (updating_frame ? updating_frame : SELECTED_FRAME ())
104 104
105/* Move the cursor to (row, col). */ 105/* Move the cursor to (row, col). */
106void 106static void
107move_cursor (int row, int col) 107w32con_move_cursor (int row, int col)
108{ 108{
109 cursor_coords.X = col; 109 cursor_coords.X = col;
110 cursor_coords.Y = row; 110 cursor_coords.Y = row;
@@ -116,18 +116,18 @@ move_cursor (int row, int col)
116} 116}
117 117
118/* Clear from cursor to end of screen. */ 118/* Clear from cursor to end of screen. */
119void 119static void
120clear_to_end (void) 120w32con_clear_to_end (void)
121{ 121{
122 struct frame * f = PICK_FRAME (); 122 struct frame * f = PICK_FRAME ();
123 123
124 clear_end_of_line (FRAME_COLS (f) - 1); 124 w32con_clear_end_of_line (FRAME_COLS (f) - 1);
125 ins_del_lines (cursor_coords.Y, FRAME_LINES (f) - cursor_coords.Y - 1); 125 w32con_ins_del_lines (cursor_coords.Y, FRAME_LINES (f) - cursor_coords.Y - 1);
126} 126}
127 127
128/* Clear the frame. */ 128/* Clear the frame. */
129void 129static void
130clear_frame (void) 130w32con_clear_frame (void)
131{ 131{
132 struct frame * f = PICK_FRAME (); 132 struct frame * f = PICK_FRAME ();
133 COORD dest; 133 COORD dest;
@@ -144,7 +144,7 @@ clear_frame (void)
144 FillConsoleOutputAttribute (cur_screen, char_attr_normal, n, dest, &r); 144 FillConsoleOutputAttribute (cur_screen, char_attr_normal, n, dest, &r);
145 FillConsoleOutputCharacter (cur_screen, ' ', n, dest, &r); 145 FillConsoleOutputCharacter (cur_screen, ' ', n, dest, &r);
146 146
147 move_cursor (0, 0); 147 w32con_move_cursor (0, 0);
148} 148}
149 149
150 150
@@ -152,8 +152,8 @@ static struct glyph glyph_base[256];
152static BOOL ceol_initialized = FALSE; 152static BOOL ceol_initialized = FALSE;
153 153
154/* Clear from Cursor to end (what's "standout marker"?). */ 154/* Clear from Cursor to end (what's "standout marker"?). */
155void 155static void
156clear_end_of_line (int end) 156w32con_clear_end_of_line (int end)
157{ 157{
158 if (!ceol_initialized) 158 if (!ceol_initialized)
159 { 159 {
@@ -164,12 +164,12 @@ clear_end_of_line (int end)
164 } 164 }
165 ceol_initialized = TRUE; 165 ceol_initialized = TRUE;
166 } 166 }
167 write_glyphs (glyph_base, end - cursor_coords.X); /* fencepost ? */ 167 w32con_write_glyphs (glyph_base, end - cursor_coords.X); /* fencepost ? */
168} 168}
169 169
170/* Insert n lines at vpos. if n is negative delete -n lines. */ 170/* Insert n lines at vpos. if n is negative delete -n lines. */
171void 171static void
172ins_del_lines (int vpos, int n) 172w32con_ins_del_lines (int vpos, int n)
173{ 173{
174 int i, nb; 174 int i, nb;
175 SMALL_RECT scroll; 175 SMALL_RECT scroll;
@@ -212,8 +212,8 @@ ins_del_lines (int vpos, int n)
212 { 212 {
213 for (i = scroll.Bottom; i < dest.Y; i++) 213 for (i = scroll.Bottom; i < dest.Y; i++)
214 { 214 {
215 move_cursor (i, 0); 215 w32con_move_cursor (i, 0);
216 clear_end_of_line (FRAME_COLS (f)); 216 w32con_clear_end_of_line (FRAME_COLS (f));
217 } 217 }
218 } 218 }
219 } 219 }
@@ -225,8 +225,8 @@ ins_del_lines (int vpos, int n)
225 { 225 {
226 for (i = nb; i < scroll.Top; i++) 226 for (i = nb; i < scroll.Top; i++)
227 { 227 {
228 move_cursor (i, 0); 228 w32con_move_cursor (i, 0);
229 clear_end_of_line (FRAME_COLS (f)); 229 w32con_clear_end_of_line (FRAME_COLS (f));
230 } 230 }
231 } 231 }
232 } 232 }
@@ -240,7 +240,7 @@ ins_del_lines (int vpos, int n)
240#define LEFT 1 240#define LEFT 1
241#define RIGHT 0 241#define RIGHT 0
242 242
243void 243static void
244scroll_line (int dist, int direction) 244scroll_line (int dist, int direction)
245{ 245{
246 /* The idea here is to implement a horizontal scroll in one line to 246 /* The idea here is to implement a horizontal scroll in one line to
@@ -275,8 +275,8 @@ scroll_line (int dist, int direction)
275 275
276 276
277/* If start is zero insert blanks instead of a string at start ?. */ 277/* If start is zero insert blanks instead of a string at start ?. */
278void 278static void
279insert_glyphs (register struct glyph *start, register int len) 279w32con_insert_glyphs (register struct glyph *start, register int len)
280{ 280{
281 scroll_line (len, RIGHT); 281 scroll_line (len, RIGHT);
282 282
@@ -286,18 +286,18 @@ insert_glyphs (register struct glyph *start, register int len)
286 /* Print the first len characters of start, cursor_coords.X adjusted 286 /* Print the first len characters of start, cursor_coords.X adjusted
287 by write_glyphs. */ 287 by write_glyphs. */
288 288
289 write_glyphs (start, len); 289 w32con_write_glyphs (start, len);
290 } 290 }
291 else 291 else
292 { 292 {
293 clear_end_of_line (cursor_coords.X + len); 293 w32con_clear_end_of_line (cursor_coords.X + len);
294 } 294 }
295} 295}
296 296
297extern unsigned char *terminal_encode_buffer; 297extern unsigned char *terminal_encode_buffer;
298 298
299void 299static void
300write_glyphs (register struct glyph *string, register int len) 300w32con_write_glyphs (register struct glyph *string, register int len)
301{ 301{
302 int produced, consumed; 302 int produced, consumed;
303 DWORD r; 303 DWORD r;
@@ -350,7 +350,7 @@ write_glyphs (register struct glyph *string, register int len)
350 } 350 }
351 351
352 cursor_coords.X += produced; 352 cursor_coords.X += produced;
353 move_cursor (cursor_coords.Y, cursor_coords.X); 353 w32con_move_cursor (cursor_coords.Y, cursor_coords.X);
354 } 354 }
355 len -= consumed; 355 len -= consumed;
356 n -= consumed; 356 n -= consumed;
@@ -393,8 +393,8 @@ write_glyphs (register struct glyph *string, register int len)
393} 393}
394 394
395 395
396void 396static void
397delete_glyphs (int n) 397w32con_delete_glyphs (int n)
398{ 398{
399 /* delete chars means scroll chars from cursor_coords.X + n to 399 /* delete chars means scroll chars from cursor_coords.X + n to
400 cursor_coords.X, anything beyond the edge of the screen should 400 cursor_coords.X, anything beyond the edge of the screen should
@@ -452,8 +452,8 @@ SOUND is nil to use the normal beep. */)
452 return sound; 452 return sound;
453} 453}
454 454
455void 455static void
456reset_terminal_modes (void) 456w32con_reset_terminal_modes (void)
457{ 457{
458#ifdef USE_SEPARATE_SCREEN 458#ifdef USE_SEPARATE_SCREEN
459 SetConsoleActiveScreenBuffer (prev_screen); 459 SetConsoleActiveScreenBuffer (prev_screen);
@@ -463,8 +463,8 @@ reset_terminal_modes (void)
463 SetConsoleMode (keyboard_handle, prev_console_mode); 463 SetConsoleMode (keyboard_handle, prev_console_mode);
464} 464}
465 465
466void 466static void
467set_terminal_modes (void) 467w32con_set_terminal_modes (void)
468{ 468{
469 CONSOLE_CURSOR_INFO cci; 469 CONSOLE_CURSOR_INFO cci;
470 470
@@ -486,19 +486,19 @@ set_terminal_modes (void)
486 clumps rather than one-character-at-a-time... 486 clumps rather than one-character-at-a-time...
487 487
488 we'll start with not moving the cursor while an update is in progress. */ 488 we'll start with not moving the cursor while an update is in progress. */
489void 489static void
490update_begin (struct frame * f) 490w32con_update_begin (struct frame * f)
491{ 491{
492} 492}
493 493
494void 494static void
495update_end (struct frame * f) 495w32con_update_end (struct frame * f)
496{ 496{
497 SetConsoleCursorPosition (cur_screen, cursor_coords); 497 SetConsoleCursorPosition (cur_screen, cursor_coords);
498} 498}
499 499
500void 500static void
501set_terminal_window (int size) 501w32con_set_terminal_window (int size)
502{ 502{
503} 503}
504 504
@@ -576,21 +576,21 @@ initialize_w32_display (void)
576{ 576{
577 CONSOLE_SCREEN_BUFFER_INFO info; 577 CONSOLE_SCREEN_BUFFER_INFO info;
578 578
579 cursor_to_hook = move_cursor; 579 cursor_to_hook = w32con_move_cursor;
580 raw_cursor_to_hook = move_cursor; 580 raw_cursor_to_hook = w32con_move_cursor;
581 clear_to_end_hook = clear_to_end; 581 clear_to_end_hook = w32con_clear_to_end;
582 clear_frame_hook = clear_frame; 582 clear_frame_hook = w32con_clear_frame;
583 clear_end_of_line_hook = clear_end_of_line; 583 clear_end_of_line_hook = w32con_clear_end_of_line;
584 ins_del_lines_hook = ins_del_lines; 584 ins_del_lines_hook = w32con_ins_del_lines;
585 insert_glyphs_hook = insert_glyphs; 585 insert_glyphs_hook = w32con_insert_glyphs;
586 write_glyphs_hook = write_glyphs; 586 write_glyphs_hook = w32con_write_glyphs;
587 delete_glyphs_hook = delete_glyphs; 587 delete_glyphs_hook = w32con_delete_glyphs;
588 ring_bell_hook = w32_sys_ring_bell; 588 ring_bell_hook = w32_sys_ring_bell;
589 reset_terminal_modes_hook = reset_terminal_modes; 589 reset_terminal_modes_hook = w32con_reset_terminal_modes;
590 set_terminal_modes_hook = set_terminal_modes; 590 set_terminal_modes_hook = w32con_set_terminal_modes;
591 set_terminal_window_hook = set_terminal_window; 591 set_terminal_window_hook = w32con_set_terminal_window;
592 update_begin_hook = update_begin; 592 update_begin_hook = w32con_update_begin;
593 update_end_hook = update_end; 593 update_end_hook = w32con_update_end;
594 594
595 read_socket_hook = w32_console_read_socket; 595 read_socket_hook = w32_console_read_socket;
596 mouse_position_hook = w32_console_mouse_position; 596 mouse_position_hook = w32_console_mouse_position;