static unsigned short outside_cursor;
-/* Similar to the_only_frame. */
+/* The only display since MS-DOS does not support multiple ones. */
struct tty_display_info the_only_display_info;
/* Support for DOS/V (allows Japanese characters to be displayed on
Lisp_Object window = hlinfo->mouse_face_window;
if (! NILP (window) && XFRAME (XWINDOW (window)->frame) == f)
- {
- hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1;
- hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1;
- hlinfo->mouse_face_window = Qnil;
- }
+ reset_mouse_highlight (hlinfo);
}
/* Enable bright background colors. */
Mouse Highlight (and friends..)
************************************************************************/
-/* Last window where we saw the mouse. Used by mouse-autoselect-window. */
-static Lisp_Object last_mouse_window;
-
static int mouse_preempted = 0; /* non-zero when XMenu gobbles mouse events */
int
static void
IT_update_begin (struct frame *f)
{
- struct tty_display_info *display_info = FRAME_X_DISPLAY_INFO (f);
+ struct tty_display_info *display_info = FRAME_DISPLAY_INFO (f);
Mouse_HLInfo *hlinfo = &display_info->mouse_highlight;
struct frame *mouse_face_frame = hlinfo->mouse_face_mouse_frame;
}
}
else if (mouse_face_frame && !FRAME_LIVE_P (mouse_face_frame))
- {
- /* If the frame with mouse highlight was deleted, invalidate the
- highlight info. */
- hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1;
- hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1;
- hlinfo->mouse_face_window = Qnil;
- hlinfo->mouse_face_mouse_frame = NULL;
- }
+ /* If the frame with mouse highlight was deleted, invalidate the
+ highlight info. */
+ reset_mouse_highlight (hlinfo);
unblock_input ();
}
static void
IT_update_end (struct frame *f)
{
- struct tty_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
+ struct tty_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
if (dpyinfo->termscript)
fprintf (dpyinfo->termscript, "\n<UPDATE_END\n");
emacs_abort ();
}
-/* set-window-configuration on window.c needs this. */
-void
-x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
-{
- set_menu_bar_lines (f, value, oldval);
-}
-
/* This was copied from xfaces.c */
extern Lisp_Object Qbackground_color;
term_setup_done = 0;
}
-static void
-IT_set_terminal_window (struct frame *f, int foo)
-{
-}
-
/* Remember the screen colors of the current frame, to serve as the
default colors for newly-created frames. */
DEFUN ("msdos-remember-default-colors", Fmsdos_remember_default_colors,
if (colors[1] >= 0 && colors[1] < 16)
FRAME_BACKGROUND_PIXEL (SELECTED_FRAME ()) = colors[1];
}
- the_only_display_info.mouse_highlight.mouse_face_mouse_frame = NULL;
- the_only_display_info.mouse_highlight.mouse_face_beg_row =
- the_only_display_info.mouse_highlight.mouse_face_beg_col = -1;
- the_only_display_info.mouse_highlight.mouse_face_end_row =
- the_only_display_info.mouse_highlight.mouse_face_end_col = -1;
- the_only_display_info.mouse_highlight.mouse_face_face_id = DEFAULT_FACE_ID;
- the_only_display_info.mouse_highlight.mouse_face_window = Qnil;
- the_only_display_info.mouse_highlight.mouse_face_mouse_x =
- the_only_display_info.mouse_highlight.mouse_face_mouse_y = 0;
- the_only_display_info.mouse_highlight.mouse_face_defer = 0;
- the_only_display_info.mouse_highlight.mouse_face_hidden = 0;
+
+ reset_mouse_highlight (&the_only_display_info.mouse_highlight);
if (have_mouse) /* detected in dos_ttraw, which see */
{
term->ring_bell_hook = IT_ring_bell;
term->reset_terminal_modes_hook = IT_reset_terminal_modes;
term->set_terminal_modes_hook = IT_set_terminal_modes;
- term->set_terminal_window_hook = IT_set_terminal_window;
+ term->set_terminal_window_hook = NULL;
term->update_begin_hook = IT_update_begin;
term->update_end_hook = IT_update_end;
term->frame_up_to_date_hook = IT_frame_up_to_date;
/* Generate SELECT_WINDOW_EVENTs when needed. */
if (!NILP (Vmouse_autoselect_window))
{
- mouse_window = window_from_coordinates (SELECTED_FRAME (),
- mouse_last_x,
- mouse_last_y,
- 0, 0);
+ static Lisp_Object last_mouse_window;
+
+ mouse_window = window_from_coordinates
+ (SELECTED_FRAME (), mouse_last_x, mouse_last_y, 0, 0);
/* A window will be selected only when it is not
selected now, and the last mouse movement event was
not in it. A minibuffer window will be selected iff
event.timestamp = event_timestamp ();
kbd_buffer_store_event (&event);
}
+ /* Remember the last window where we saw the mouse. */
last_mouse_window = mouse_window;
}
- else
- last_mouse_window = Qnil;
previous_help_echo_string = help_echo_string;
help_echo_string = help_echo_object = help_echo_window = Qnil;
/* Destructively turn backslashes into slashes. */
void
-dostounix_filename (char *p, int ignore)
+dostounix_filename (char *p)
{
msdos_downcase_filename (p);
if (!s) s = "c:/command.com";
t = alloca (strlen (s) + 1);
strcpy (t, s);
- dostounix_filename (t, 0);
+ dostounix_filename (t);
setenv ("SHELL", t, 0);
/* PATH is also downcased and backslashes mirrored. */
/* Current directory is always considered part of MsDos's path but it is
not normally mentioned. Now it is. */
strcat (strcpy (t, ".;"), s);
- dostounix_filename (t, 0); /* Not a single file name, but this should work. */
+ dostounix_filename (t); /* Not a single file name, but this should work. */
setenv ("PATH", t, 1);
/* In some sense all dos users have root privileges, so... */
because wait_reading_process_output takes care of that. */
int
sys_select (int nfds, SELECT_TYPE *rfds, SELECT_TYPE *wfds, SELECT_TYPE *efds,
- EMACS_TIME *timeout, void *ignored)
+ struct timespec *timeout, void *ignored)
{
int check_input;
struct timespec t;
}
else
{
- EMACS_TIME clnow, cllast, cldiff;
+ struct timespec clnow, cllast, cldiff;
gettime (&t);
- cllast = make_emacs_time (t.tv_sec, t.tv_nsec);
+ cllast = make_timespec (t.tv_sec, t.tv_nsec);
while (!check_input || !detect_input_pending ())
{
gettime (&t);
- clnow = make_emacs_time (t.tv_sec, t.tv_nsec);
- cldiff = sub_emacs_time (clnow, cllast);
- *timeout = sub_emacs_time (*timeout, cldiff);
+ clnow = make_timespec (t.tv_sec, t.tv_nsec);
+ cldiff = timespec_sub (clnow, cllast);
+ *timeout = timespec_sub (*timeout, cldiff);
/* Stop when timeout value crosses zero. */
- if (EMACS_TIME_SIGN (*timeout) <= 0)
+ if (timespec_sign (*timeout) <= 0)
return 0;
cllast = clnow;
dos_yield_time_slice ();