]> code.delx.au - gnu-emacs/blobdiff - src/w32console.c
Merge from origin/emacs-25
[gnu-emacs] / src / w32console.c
index a38a558c22696356abde96371450859f6347552d..82ba4b1cf9ce9b98225ae73586869846a11caaeb 100644 (file)
@@ -1,12 +1,12 @@
 /* Terminal hooks for GNU Emacs on the Microsoft Windows API.
-   Copyright (C) 1992, 1999, 2001-2015 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1999, 2001-2016 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,22 +28,13 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <windows.h>
 
 #include "lisp.h"
-#include "character.h"
 #include "coding.h"
-#include "disptab.h"
-#include "frame.h"
-#include "window.h"
-#include "termhooks.h"
-#include "termchar.h"
-#include "dispextern.h"
+#include "termchar.h"  /* for FRAME_TTY */
 #include "menu.h"      /* for tty_menu_show */
 #include "w32term.h"
 #include "w32common.h" /* for os_subtype */
 #include "w32inevt.h"
 
-/* from window.c */
-extern Lisp_Object Frecenter (Lisp_Object);
-
 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);
@@ -297,7 +288,7 @@ w32con_write_glyphs (struct frame *f, register struct glyph *string,
 {
   DWORD r;
   WORD char_attr;
-  unsigned char *conversion_buffer;
+  LPCSTR conversion_buffer;
   struct coding_system *coding;
 
   if (len <= 0)
@@ -328,7 +319,7 @@ w32con_write_glyphs (struct frame *f, register struct glyph *string,
       if (n == len)
        /* This is the last run.  */
        coding->mode |= CODING_MODE_LAST_BLOCK;
-      conversion_buffer = encode_terminal_code (string, n, coding);
+      conversion_buffer = (LPCSTR) encode_terminal_code (string, n, coding);
       if (coding->produced > 0)
        {
          /* Set the attribute for these characters.  */
@@ -365,7 +356,7 @@ w32con_write_glyphs_with_face (struct frame *f, register int x, register int y,
                               register struct glyph *string, register int len,
                               register int face_id)
 {
-  unsigned char *conversion_buffer;
+  LPCSTR conversion_buffer;
   struct coding_system *coding;
 
   if (len <= 0)
@@ -380,7 +371,7 @@ w32con_write_glyphs_with_face (struct frame *f, register int x, register int y,
      they all have the same face.  So this _is_ the last block.  */
   coding->mode |= CODING_MODE_LAST_BLOCK;
 
-  conversion_buffer = encode_terminal_code (string, len, coding);
+  conversion_buffer = (LPCSTR) encode_terminal_code (string, len, coding);
   if (coding->produced > 0)
     {
       DWORD filled, written;
@@ -766,13 +757,11 @@ initialize_w32_display (struct terminal *term, int *width, int *height)
   else
     w32_console_unicode_input = 0;
 
-  /* This is needed by w32notify.c:send_notifications.  */
-  dwMainThreadId = GetCurrentThreadId ();
-
   /* Setup w32_display_info structure for this frame. */
-
   w32_initialize_display_info (build_string ("Console"));
 
+  /* Set up the keyboard hook.  */
+  setup_w32_kbdhook ();
 }