]> code.delx.au - gnu-emacs/blobdiff - src/msdos.c
(custom-save-all): Use find-file-visit-truename for visiting the custom file.
[gnu-emacs] / src / msdos.c
index bce41f56c9c8f1750074930edae4680c56265aba..61e167a194611073ca1d9097e665174926df1682 100644 (file)
@@ -1,6 +1,6 @@
 /* MS-DOS specific C utilities.          -*- coding: raw-text -*-
-   Copyright (C) 1993, 94, 95, 96, 97, 1999, 2000, 01, 2003
-   Free Software Foundation, Inc.
+   Copyright (C) 1993, 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
+                 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -16,8 +16,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 /* Contributed by Morten Welinder */
 /* New display, keyboard, and mouse control by Kim F. Storm */
@@ -204,9 +204,9 @@ them.  This happens with wheeled mice on Windows 9X, for example.  */)
   CHECK_NUMBER (nbuttons);
   n = XINT (nbuttons);
   if (n < 2 || n > 3)
-    Fsignal (Qargs_out_of_range,
-            Fcons (build_string ("only 2 or 3 mouse buttons are supported"),
-                   Fcons (nbuttons, Qnil)));
+    xsignal2 (Qargs_out_of_range,
+             build_string ("only 2 or 3 mouse buttons are supported"),
+             nbuttons);
   mouse_setup_buttons (n);
   return Qnil;
 }
@@ -752,6 +752,9 @@ msdos_set_cursor_shape (struct frame *f, int start_line, int width)
   if (f && f != SELECTED_FRAME())
     return;
 
+  if (termscript)
+    fprintf (termscript, "\nCURSOR SHAPE=(%d,%d)", start_line, width);
+
   /* The character cell size in scan lines is stored at 40:85 in the
      BIOS data area.  */
   max_line = _farpeekw (_dos_ds, 0x485) - 1;
@@ -851,10 +854,12 @@ IT_set_cursor_type (struct frame *f, Lisp_Object cursor_type)
        }
     }
   else
-    /* Treat anything unknown as "box cursor".  This includes nil, so
-       that a frame which doesn't specify a cursor type gets a box,
-       which is the default in Emacs.  */
-    msdos_set_cursor_shape (f, 0, BOX_CURSOR_WIDTH);
+    {
+      /* Treat anything unknown as "box cursor".  This includes nil, so
+        that a frame which doesn't specify a cursor type gets a box,
+        which is the default in Emacs.  */
+      msdos_set_cursor_shape (f, 0, BOX_CURSOR_WIDTH);
+    }
 }
 
 static void
@@ -1826,6 +1831,8 @@ static int cursor_cleared;
 static void
 IT_display_cursor (int on)
 {
+  if (termscript)
+    fprintf (termscript, "\nCURSOR %s", on ? "ON" : "OFF");
   if (on && cursor_cleared)
     {
       ScreenSetCursor (current_pos_Y, current_pos_X);
@@ -2313,7 +2320,7 @@ IT_set_frame_parameters (f, alist)
 
   /* If we are creating a new frame, begin with the original screen colors
      used for the initial frame.  */
-  if (alist == Vdefault_frame_alist
+  if (EQ (alist, Vdefault_frame_alist)
       && initial_screen_colors[0] != -1 && initial_screen_colors[1] != -1)
     {
       FRAME_FOREGROUND_PIXEL (f) = initial_screen_colors[0];
@@ -3374,7 +3381,7 @@ dos_rawgetc ()
            }
 
          /* Generate SELECT_WINDOW_EVENTs when needed.  */
-         if (mouse_autoselect_window)
+         if (!NILP (Vmouse_autoselect_window))
            {
              mouse_window = window_from_coordinates (SELECTED_FRAME(),
                                                      mouse_last_x,
@@ -3456,8 +3463,8 @@ dos_rawgetc ()
                event.code = button_num;
                event.modifiers = dos_get_modifiers (0)
                  | (press ? down_modifier : up_modifier);
-               event.x = x;
-               event.y = y;
+               event.x = make_number (x);
+               event.y = make_number (y);
                event.frame_or_window = selected_frame;
                event.arg = Qnil;
                event.timestamp = event_timestamp ();
@@ -3792,15 +3799,15 @@ XMenuActivate (Display *foo, XMenu *menu, int *pane, int *selidx,
   screensize = screen_size * 2;
   faces[0]
     = lookup_derived_face (sf, intern ("msdos-menu-passive-face"),
-                          0, DEFAULT_FACE_ID);
+                          0, DEFAULT_FACE_ID, 1);
   faces[1]
     = lookup_derived_face (sf, intern ("msdos-menu-active-face"),
-                          0, DEFAULT_FACE_ID);
+                          0, DEFAULT_FACE_ID, 1);
   selectface = intern ("msdos-menu-select-face");
   faces[2] = lookup_derived_face (sf, selectface,
-                                 0, faces[0]);
+                                 0, faces[0], 1);
   faces[3] = lookup_derived_face (sf, selectface,
-                                 0, faces[1]);
+                                 0, faces[1], 1);
 
   /* Make sure the menu title is always displayed with
      `msdos-menu-active-face', no matter where the mouse pointer is.  */
@@ -5102,7 +5109,7 @@ dos_yield_time_slice (void)
 
 /* Only event queue is checked.  */
 /* We don't have to call timer_check here
-   because wait_reading_process_input takes care of that.  */
+   because wait_reading_process_output takes care of that.  */
 int
 sys_select (nfds, rfds, wfds, efds, timeout)
      int nfds;