/* Terminal hooks for GNU Emacs on the Microsoft W32 API.
- Copyright (C) 1992, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
- 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1992, 1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* from window.c */
extern Lisp_Object Frecenter (Lisp_Object);
-/* from keyboard.c */
-extern int detect_input_pending (void);
-
-/* from sysdep.c */
-extern int read_input_pending (void);
-
static void w32con_move_cursor (struct frame *f, int row, int col);
static void w32con_clear_to_end (struct frame *f);
static void w32con_clear_frame (struct frame *f);
static CONSOLE_CURSOR_INFO prev_console_cursor;
#endif
-extern Lisp_Object Vtty_defined_color_alist;
-
-/* Determine whether to make frame dimensions match the screen buffer,
- or the current window size. The former is desirable when running
- over telnet, while the latter is more useful when working directly at
- the console with a large scroll-back buffer. */
-int w32_use_full_screen_buffer;
HANDLE keyboard_handle;
}
}
-extern unsigned char *encode_terminal_code (struct glyph *, int,
- struct coding_system *);
-
static void
w32con_write_glyphs (struct frame *f, register struct glyph *string,
register int len)
DEFUN ("set-screen-color", Fset_screen_color, Sset_screen_color, 2, 2, 0,
- doc: /* Set screen colors. */)
+ doc: /* Set screen foreground and background colors.
+
+Arguments should be indices between 0 and 15, see w32console.el. */)
(Lisp_Object foreground, Lisp_Object background)
{
char_attr_normal = XFASTINT (foreground) + (XFASTINT (background) << 4);
return Qt;
}
+DEFUN ("get-screen-color", Fget_screen_color, Sget_screen_color, 0, 0, 0,
+ doc: /* Get color indices of the current screen foreground and background.
+
+The colors are returned as a list of 2 indices (FOREGROUND BACKGROUND).
+See w32console.el and `tty-defined-color-alist' for mapping of indices
+to colors. */)
+ (void)
+{
+ return Fcons (make_number (char_attr_normal & 0x000f),
+ Fcons (make_number ((char_attr_normal >> 4) & 0x000f), Qnil));
+}
+
DEFUN ("set-cursor-size", Fset_cursor_size, Sset_cursor_size, 1, 1, 0,
doc: /* Set cursor size. */)
(Lisp_Object size)
syms_of_ntterm (void)
{
DEFVAR_BOOL ("w32-use-full-screen-buffer",
- &w32_use_full_screen_buffer,
+ w32_use_full_screen_buffer,
doc: /* Non-nil means make terminal frames use the full screen buffer dimensions.
This is desirable when running Emacs over telnet.
A value of nil means use the current console window dimensions; this
-may be preferrable when working directly at the console with a large
+may be preferable when working directly at the console with a large
scroll-back buffer. */);
w32_use_full_screen_buffer = 0;
defsubr (&Sset_screen_color);
+ defsubr (&Sget_screen_color);
defsubr (&Sset_cursor_size);
defsubr (&Sset_message_beep);
}
-
-/* arch-tag: a390a07f-f661-42bc-aeb4-e6d8bf860337
- (do not change this comment) */