all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Elijah G <eg642616@gmail.com>
To: emacs-devel@gnu.org
Subject: Stipples support in MS-Windows port
Date: Thu, 2 May 2024 20:53:17 -0600	[thread overview]
Message-ID: <CACnP4NKbSA8gUZneBrBbRknpRV-y0pUKPL04eJM3f8rqrGEiag@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 1064 bytes --]

Hi, i'm starting this thread to discuss the
support for stipples in windows port.
My ideas in how this can be done is using
the w32term.c functions for drawing rects,
i tested using w32_fill_rect but it doesn't
work, i don't know how it works.

The elisp snippet that i'm using for test this is this:
```
(let* ((w (window-font-width))
       (stipple `(,w 1 ,(apply #'unibyte-string
                   (append (make-list (1- (/ (+ w 7) 8)) ?\0)
                       '(1))))))
  (insert "\n" (propertize "      " 'face `(:background "red"
:foreground "blue" :stipple ,stipple))))
```
The closest thing i got was using w32_draw_rectangle
inside w32_draw_glyph_string_background
but for some reason it freezes and crashes after evaling
the snippet, I'm not sure if it is related to the way I did it or is
anything related to GC.

Below this mail can you get the patch for test it
(Also i'm sorry if the patch is too long i accidentally
formatted it with clang-format)

Also can i ask what is the purpose of this line?
```
# include "bitmaps/gray.xbm"
```

Thanks.

[-- Attachment #2: 0001-Test-stipples-in-W32.patch --]
[-- Type: application/octet-stream, Size: 223633 bytes --]

From 1e1eb90dbca40ae570c121e41874fc8ce4c34c5d Mon Sep 17 00:00:00 2001
From: "Elias G. Perez" <eg642616@gmail.com>
Date: Thu, 2 May 2024 20:38:48 -0600
Subject: [PATCH] Test stipples in W32

---
 src/w32term.c | 3091 +++++++++++++++++++++++++------------------------
 1 file changed, 1606 insertions(+), 1485 deletions(-)

diff --git a/src/w32term.c b/src/w32term.c
index 7afd1303b4d..d4d158d957a 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -15,42 +15,39 @@ Copyright (C) 1989, 1993-2024 Free Software Foundation, Inc.
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
+along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>. */
 
 #include <config.h>
+#include "w32term.h"
 #include <signal.h>
 #include <stdio.h>
 #include "lisp.h"
 #include "blockinput.h"
-#include "w32term.h"
-#include "w32common.h"	/* for OS version info */
+#include "w32common.h" /* for OS version info */
 
 #include <ctype.h>
 #include <errno.h>
 #include <sys/stat.h>
 #ifdef CYGWIN
-#include <fcntl.h>	/* for O_RDWR */
+# include <fcntl.h> /* for O_RDWR */
 #endif
 #include <imm.h>
 #include <math.h>
 
+#include "buffer.h"
 #include "coding.h"
-#include "frame.h"
 #include "fontset.h"
+#include "frame.h"
+#include "keyboard.h"
+#include "menu.h" /* for w32_menu_show */
+#include "termchar.h"
 #include "termhooks.h"
 #include "termopts.h"
-#include "termchar.h"
-#include "buffer.h"
 #include "window.h"
-#include "keyboard.h"
-#include "menu.h"	/* for w32_menu_show */
 
 #ifdef WINDOWSNT
-#include "w32.h"	/* for filename_from_utf16, filename_from_ansi */
-#endif
-
-#ifndef WINDOWSNT
-#include <io.h> /* for get_osfhandle */
+# include <io.h>  /* for get_osfhandle */
+# include "w32.h" /* for filename_from_utf16, filename_from_ansi */
 #endif
 
 #include <shellapi.h>
@@ -58,10 +55,10 @@ Copyright (C) 1989, 1993-2024 Free Software Foundation, Inc.
 #include "font.h"
 #include "w32font.h"
 
-#if 0	/* TODO: stipple */
-#include "bitmaps/gray.xbm"
+#if 1 /* TODO: stipple */
+# include "bitmaps/gray.xbm"
 #endif
-\f
+
 /* Fringe bitmaps.  */
 
 static int max_fringe_bmp = 0;
@@ -74,7 +71,7 @@ Copyright (C) 1989, 1993-2024 Free Software Foundation, Inc.
 
 /* Define GET_WHEEL_DELTA_WPARAM macro if system headers don't.  */
 #ifndef GET_WHEEL_DELTA_WPARAM
-#define GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD (wparam))
+# define GET_WHEEL_DELTA_WPARAM(wparam) ((short) HIWORD (wparam))
 #endif
 
 /* Non-zero means that a HELP_EVENT has been generated since Emacs
@@ -87,7 +84,6 @@ #define GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD (wparam))
 extern int w32_codepage_for_font (char *fontname);
 extern HCURSOR w32_load_cursor (LPCTSTR name);
 
-\f
 /* This is display since w32 does not support multiple ones.  */
 struct w32_display_info one_w32_display_info;
 struct w32_display_info *x_display_list;
@@ -115,28 +111,29 @@ #define GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD (wparam))
 #endif /* compiling for pre-Win2k */
 
 /* Dynamic linking to SetLayeredWindowAttribute (only since 2000).  */
-BOOL (WINAPI *pfnSetLayeredWindowAttributes) (HWND, COLORREF, BYTE, DWORD);
+BOOL (WINAPI *pfnSetLayeredWindowAttributes)
+(HWND, COLORREF, BYTE, DWORD);
 
 /* PlgBlt is available since Windows 2000.  */
-BOOL (WINAPI *pfnPlgBlt) (HDC, const POINT *, HDC, int, int, int, int, HBITMAP, int, int);
-
+BOOL (WINAPI *pfnPlgBlt)
+(HDC, const POINT *, HDC, int, int, int, int, HBITMAP, int, int);
 
 #ifndef LWA_ALPHA
-#define LWA_ALPHA 0x02
+# define LWA_ALPHA 0x02
 #endif
-/* WS_EX_LAYERED is defined unconditionally by MingW, but only for W2K and
-   later targets by MSVC headers.  */
+/* WS_EX_LAYERED is defined unconditionally by MingW, but only for W2K
+   and later targets by MSVC headers.  */
 #ifndef WS_EX_LAYERED
-#define WS_EX_LAYERED 0x80000
+# define WS_EX_LAYERED 0x80000
 #endif
 
 /* SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN are not defined on 95 and
    NT4.  */
 #ifndef SM_CXVIRTUALSCREEN
-#define SM_CXVIRTUALSCREEN 78
+# define SM_CXVIRTUALSCREEN 78
 #endif
 #ifndef SM_CYVIRTUALSCREEN
-#define SM_CYVIRTUALSCREEN 79
+# define SM_CYVIRTUALSCREEN 79
 #endif
 
 /* The handle of the frame that currently owns the system caret.  */
@@ -175,7 +172,7 @@ #define SM_CYVIRTUALSCREEN 79
 static Lisp_Object w32_handle_tab_bar_click (struct frame *,
 					     struct input_event *);
 static void w32_handle_tool_bar_click (struct frame *,
-                                       struct input_event *);
+				       struct input_event *);
 static void w32_define_cursor (Window, Emacs_Cursor);
 
 static void w32_scroll_bar_clear (struct frame *);
@@ -188,16 +185,17 @@ #define SM_CYVIRTUALSCREEN 79
 static void w32_frame_highlight (struct frame *);
 static void w32_frame_unhighlight (struct frame *);
 static void w32_new_focus_frame (struct w32_display_info *,
-                                 struct frame *);
+				 struct frame *);
 static void w32_focus_changed (int, int, struct w32_display_info *,
-                             struct frame *, struct input_event *);
+			       struct frame *, struct input_event *);
 static void w32_detect_focus_change (struct w32_display_info *,
-                                     W32Msg *, struct input_event *);
+				     W32Msg *, struct input_event *);
 static void w32_frame_rehighlight (struct frame *);
 static void w32_frame_rehighlight_1 (struct w32_display_info *);
-static void w32_draw_hollow_cursor (struct window *, struct glyph_row *);
-static void w32_draw_bar_cursor (struct window *, struct glyph_row *, int,
-                               enum text_cursor_kinds);
+static void w32_draw_hollow_cursor (struct window *,
+				    struct glyph_row *);
+static void w32_draw_bar_cursor (struct window *, struct glyph_row *,
+				 int, enum text_cursor_kinds);
 static void w32_clip_to_row (struct window *, struct glyph_row *,
 			     enum glyph_row_area, HDC);
 static BOOL my_show_window (struct frame *, HWND, int);
@@ -213,7 +211,6 @@ #define SM_CYVIRTUALSCREEN 79
 static void w32_check_font (struct frame *, struct font *);
 #endif
 
-\f
 /***********************************************************************
 			      Debugging
  ***********************************************************************/
@@ -244,7 +241,6 @@ record_event (char *locus, int type)
 }
 
 #endif /* 0 */
-\f
 
 static void
 XChangeGC (void *ignore, Emacs_GC *gc, unsigned long mask,
@@ -257,7 +253,8 @@ XChangeGC (void *ignore, Emacs_GC *gc, unsigned long mask,
 }
 
 Emacs_GC *
-XCreateGC (void *ignore, HWND wignore, unsigned long mask, Emacs_GC *egc)
+XCreateGC (void *ignore, HWND wignore, unsigned long mask,
+	   Emacs_GC *egc)
 {
   Emacs_GC *gc = xzalloc (sizeof (*gc));
 
@@ -266,7 +263,7 @@ XCreateGC (void *ignore, HWND wignore, unsigned long mask, Emacs_GC *egc)
   return gc;
 }
 
-#if 0	/* unused for now, see w32_draw_image_glyph_string below */
+#if 0 /* unused for now, see w32_draw_image_glyph_string below */
 static void
 XGetGCValues (void *ignore, XGCValues *gc,
 	      unsigned long mask, XGCValues *xgcv)
@@ -296,8 +293,8 @@ w32_show_back_buffer (struct frame *f)
 	emacs_abort ();
 
       BitBlt (raw_dc, 0, 0, FRAME_PIXEL_WIDTH (f),
-	      FRAME_PIXEL_HEIGHT (f),
-	      output->paint_dc, 0, 0, SRCCOPY);
+	      FRAME_PIXEL_HEIGHT (f), output->paint_dc, 0, 0,
+	      SRCCOPY);
       ReleaseDC (output->window_desc, raw_dc);
 
       output->paint_buffer_dirty = 0;
@@ -315,7 +312,8 @@ w32_release_paint_buffer (struct frame *f)
   enter_crit ();
   if (FRAME_OUTPUT_DATA (f)->paint_buffer)
     {
-      deselect_palette (f, FRAME_OUTPUT_DATA (f)->paint_buffer_handle);
+      deselect_palette (f,
+			FRAME_OUTPUT_DATA (f)->paint_buffer_handle);
 
       SelectObject (FRAME_OUTPUT_DATA (f)->paint_dc,
 		    FRAME_OUTPUT_DATA (f)->paint_dc_object);
@@ -371,14 +369,15 @@ w32_restore_glyph_string_clip (struct glyph_string *s)
       HRGN clip1 = CreateRectRgnIndirect (r);
       HRGN clip2 = CreateRectRgnIndirect (r + 1);
       if (CombineRgn (clip1, clip1, clip2, RGN_OR) != ERROR)
-        SelectClipRgn (s->hdc, clip1);
+	SelectClipRgn (s->hdc, clip1);
       DeleteObject (clip1);
       DeleteObject (clip2);
     }
 }
 
 static void
-w32_get_scale_factor(struct w32_display_info *dpyinfo, int *scale_x, int *scale_y)
+w32_get_scale_factor (struct w32_display_info *dpyinfo, int *scale_x,
+		      int *scale_y)
 {
   const int base_res = 96;
 
@@ -394,12 +393,13 @@ w32_get_scale_factor(struct w32_display_info *dpyinfo, int *scale_x, int *scale_
 }
 
 /*
-   Draw a wavy line under S. The wave fills wave_height pixels from y0.
+   Draw a wavy line under S. The wave fills wave_height pixels from
+   y0.
 
-                    x0         wave_length = 2
-                                 --
-                y0   *   *   *   *   *
-                     |* * * * * * * * *
+		    x0         wave_length = 2
+				 --
+		y0   *   *   *   *   *
+		     |* * * * * * * * *
     wave_height = 3  | *   *   *   *
 
 */
@@ -412,7 +412,8 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
   int scale_x, scale_y;
   w32_get_scale_factor (dpyinfo, &scale_x, &scale_y);
 
-  int wave_height = 3 * scale_y, wave_length = 2 * scale_x, thickness = scale_y;
+  int wave_height = 3 * scale_y, wave_length = 2 * scale_x,
+      thickness = scale_y;
   int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax;
   Emacs_Rectangle wave_clip, string_clip, final_clip;
   RECT w32_final_clip, w32_string_clip;
@@ -435,7 +436,8 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
   get_glyph_string_clip_rect (s, &w32_string_clip);
   CONVERT_TO_EMACS_RECT (string_clip, w32_string_clip);
 
-  if (!gui_intersect_rectangles (&wave_clip, &string_clip, &final_clip))
+  if (!gui_intersect_rectangles (&wave_clip, &string_clip,
+				 &final_clip))
     return;
 
   hp = CreatePen (PS_SOLID, thickness, color);
@@ -447,7 +449,7 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
 
   x1 = x0 - (x0 % dx);
   x2 = x1 + dx;
-  odd = (x1/dx) % 2;
+  odd = (x1 / dx) % 2;
   y1 = y2 = y0;
 
   if (odd)
@@ -460,8 +462,8 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
   while (x1 <= xmax)
     {
       LineTo (s->hdc, x2, y2);
-      x1  = x2, y1 = y2;
-      x2 += dx, y2 = y0 + odd*dy;
+      x1 = x2, y1 = y2;
+      x2 += dx, y2 = y0 + odd * dy;
       odd = !odd;
     }
 
@@ -473,8 +475,8 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color)
 
 /* Draw a hollow rectangle at the specified position.  */
 static void
-w32_draw_rectangle (HDC hdc, Emacs_GC *gc, int x, int y,
-                    int width, int height)
+w32_draw_rectangle (HDC hdc, Emacs_GC *gc, int x, int y, int width,
+		    int height)
 {
   HBRUSH hb, oldhb;
   HPEN hp, oldhp;
@@ -599,7 +601,6 @@ w32_display_pixel_width (struct w32_display_info *dpyinfo)
   return pixels;
 }
 
-\f
 /***********************************************************************
 		    Starting and ending an update
  ***********************************************************************/
@@ -614,19 +615,18 @@ w32_update_begin (struct frame *f)
 {
   struct w32_display_info *display_info = FRAME_DISPLAY_INFO (f);
 
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   /* Regenerate display palette before drawing if list of requested
      colors has changed. */
   if (display_info->regen_palette)
-  {
-    w32_regenerate_palette (f);
-    display_info->regen_palette = FALSE;
-  }
+    {
+      w32_regenerate_palette (f);
+      display_info->regen_palette = FALSE;
+    }
 }
 
-
 /* Start update of window W.  */
 
 static void
@@ -636,15 +636,16 @@ w32_update_window_begin (struct window *w)
   if (w32_use_visible_system_caret && w32_system_caret_hwnd
       && w == w32_system_caret_window)
     {
-      SendMessageTimeout (w32_system_caret_hwnd, WM_EMACS_HIDE_CARET, 0, 0,
-			  0, 6000, NULL);
+      SendMessageTimeout (w32_system_caret_hwnd, WM_EMACS_HIDE_CARET,
+			  0, 0, 0, 6000, NULL);
     }
 }
 
 /* Draw a vertical window border from (x,y0) to (x,y1)  */
 
 static void
-w32_draw_vertical_window_border (struct window *w, int x, int y0, int y1)
+w32_draw_vertical_window_border (struct window *w, int x, int y0,
+				 int y1)
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   RECT r;
@@ -666,26 +667,27 @@ w32_draw_vertical_window_border (struct window *w, int x, int y0, int y1)
   release_frame_dc (f, hdc);
 }
 
-
 /* Draw a window divider from (x0, y0) to (x1, y1)  */
 
 static void
-w32_draw_window_divider (struct window *w, int x0, int x1, int y0, int y1)
+w32_draw_window_divider (struct window *w, int x0, int x1, int y0,
+			 int y1)
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   HDC hdc = get_frame_dc (f);
-  struct face *face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID);
+  struct face *face
+    = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID);
   struct face *face_first
     = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID);
   struct face *face_last
     = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_LAST_PIXEL_FACE_ID);
-  unsigned long color = face ? face->foreground : FRAME_FOREGROUND_PIXEL (f);
-  unsigned long color_first = (face_first
-			       ? face_first->foreground
-			       : FRAME_FOREGROUND_PIXEL (f));
-  unsigned long color_last = (face_last
-			      ? face_last->foreground
-			      : FRAME_FOREGROUND_PIXEL (f));
+  unsigned long color
+    = face ? face->foreground : FRAME_FOREGROUND_PIXEL (f);
+  unsigned long color_first
+    = (face_first ? face_first->foreground
+		  : FRAME_FOREGROUND_PIXEL (f));
+  unsigned long color_last = (face_last ? face_last->foreground
+					: FRAME_FOREGROUND_PIXEL (f));
 
   if ((y1 - y0 > x1 - x0) && (x1 - x0 >= 3))
     /* A vertical divider, at least three pixels wide: Draw first and
@@ -696,8 +698,8 @@ w32_draw_window_divider (struct window *w, int x0, int x1, int y0, int y1)
       w32_fill_area_abs (f, hdc, color_last, x1 - 1, y0, x1, y1);
     }
   else if ((x1 - x0 > y1 - y0) && (y1 - y0 >= 3))
-    /* A horizontal divider, at least three pixels high: Draw first and
-       last pixels differently.  */
+    /* A horizontal divider, at least three pixels high: Draw first
+       and last pixels differently.  */
     {
       w32_fill_area_abs (f, hdc, color_first, x0, y0, x1, y0 + 1);
       w32_fill_area_abs (f, hdc, color, x0, y0 + 1, x1, y1 - 1);
@@ -726,7 +728,7 @@ w32_draw_window_divider (struct window *w, int x0, int x1, int y0, int y1)
 
 static void
 w32_update_window_end (struct window *w, bool cursor_on_p,
-                       bool mouse_face_overwritten_p)
+		       bool mouse_face_overwritten_p)
 {
   /* Unhide the caret.  This won't actually show the cursor, unless it
      was visible before the corresponding call to HideCaret in
@@ -734,26 +736,24 @@ w32_update_window_end (struct window *w, bool cursor_on_p,
   if (w32_use_visible_system_caret && w32_system_caret_hwnd
       && w == w32_system_caret_window)
     {
-      SendMessageTimeout (w32_system_caret_hwnd, WM_EMACS_SHOW_CARET, 0, 0,
-			  0, 6000, NULL);
+      SendMessageTimeout (w32_system_caret_hwnd, WM_EMACS_SHOW_CARET,
+			  0, 0, 0, 6000, NULL);
     }
 }
 
-
 /* End update of frame F.  This function is installed as a hook in
    update_end.  */
 
 static void
 w32_update_end (struct frame *f)
 {
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   /* Mouse highlight may be displayed again.  */
   MOUSE_HL_INFO (f)->mouse_face_defer = false;
 }
 
-
 /* This function is called from various places in xdisp.c
    whenever a complete update has been performed.  */
 
@@ -781,10 +781,10 @@ w32_buffer_flipping_unblocked_hook (struct frame *f)
 void
 w32_flip_buffers_if_dirty (struct frame *f)
 {
-  if (FRAME_W32_P (f)	/* do nothing in TTY frames */
+  if (FRAME_W32_P (f) /* do nothing in TTY frames */
       && FRAME_OUTPUT_DATA (f)->paint_buffer
-      && FRAME_OUTPUT_DATA (f)->paint_buffer_dirty
-      && !f->garbaged && !buffer_flipping_blocked_p ())
+      && FRAME_OUTPUT_DATA (f)->paint_buffer_dirty && !f->garbaged
+      && !buffer_flipping_blocked_p ())
     w32_show_back_buffer (f);
 }
 
@@ -792,10 +792,11 @@ w32_flip_buffers_if_dirty (struct frame *f)
    arrow bitmaps, or clear the fringes if no bitmaps are required
    before DESIRED_ROW is made current.  This function is called from
    update_window_line only if it is known that there are differences
-   between bitmaps to be drawn between current row and DESIRED_ROW.  */
+   between bitmaps to be drawn between current row and DESIRED_ROW. */
 
 static void
-w32_after_update_window_line (struct window *w, struct glyph_row *desired_row)
+w32_after_update_window_line (struct window *w,
+			      struct glyph_row *desired_row)
 {
   struct frame *f;
   int width, height;
@@ -811,19 +812,16 @@ w32_after_update_window_line (struct window *w, struct glyph_row *desired_row)
      but I guess it's not worth doing since vertically split windows
      are almost never used, internal border is rarely set, and the
      overhead is very small.  */
-  if (windows_or_buffers_changed
-      && desired_row->full_width_p
+  if (windows_or_buffers_changed && desired_row->full_width_p
       && (f = XFRAME (w->frame),
-	  width = FRAME_INTERNAL_BORDER_WIDTH (f),
-	  width != 0)
-      && (height = desired_row->visible_height,
-	  height > 0))
+	  width = FRAME_INTERNAL_BORDER_WIDTH (f), width != 0)
+      && (height = desired_row->visible_height, height > 0))
     {
       int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y));
-      int face_id =
-	!NILP (Vface_remapping_alist)
-	? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
-	: INTERNAL_BORDER_FACE_ID;
+      int face_id
+	= !NILP (Vface_remapping_alist)
+	    ? lookup_basic_face (NULL, f, INTERNAL_BORDER_FACE_ID)
+	    : INTERNAL_BORDER_FACE_ID;
       struct face *face = FACE_FROM_ID_OR_NULL (f, face_id);
 
       block_input ();
@@ -841,8 +839,8 @@ w32_after_update_window_line (struct window *w, struct glyph_row *desired_row)
       else
 	{
 	  w32_clear_area (f, hdc, 0, y, width, height);
-	  w32_clear_area (f, hdc, FRAME_PIXEL_WIDTH (f) - width,
-			  y, width, height);
+	  w32_clear_area (f, hdc, FRAME_PIXEL_WIDTH (f) - width, y,
+			  width, height);
 	}
       release_frame_dc (f, hdc);
 
@@ -850,7 +848,6 @@ w32_after_update_window_line (struct window *w, struct glyph_row *desired_row)
     }
 }
 
-
 /* Draw the bitmap WHICH in one of the left or right fringes of
    window W.  ROW is the glyph row for which to display the bitmap; it
    determines the vertical position at which the bitmap has to be
@@ -870,11 +867,10 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
   w32_clip_to_row (w, row, ANY_AREA, hdc);
 
   if (p->bx >= 0 && !p->overlay_p)
-    w32_fill_area (f, hdc, face->background,
-		   p->bx, p->by, p->nx, p->ny);
+    w32_fill_area (f, hdc, face->background, p->bx, p->by, p->nx,
+		   p->ny);
 
-  if (p->which
-      && p->which < max_fringe_bmp
+  if (p->which && p->which < max_fringe_bmp
       && p->which < max_used_fringe_bitmap)
     {
       HBITMAP pixmap = fringe_bmp[p->which];
@@ -908,14 +904,11 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
 	  h_brush = CreateSolidBrush (face->foreground);
 	  h_orig_brush = SelectObject (hdc, h_brush);
 
-	  BitBlt (hdc, p->x, p->y, p->wd, p->h,
-		  compat_hdc, 0, p->dh,
+	  BitBlt (hdc, p->x, p->y, p->wd, p->h, compat_hdc, 0, p->dh,
 		  DSTINVERT);
-	  BitBlt (hdc, p->x, p->y, p->wd, p->h,
-		  compat_hdc, 0, p->dh,
+	  BitBlt (hdc, p->x, p->y, p->wd, p->h, compat_hdc, 0, p->dh,
 		  0x2E064A);
-	  BitBlt (hdc, p->x, p->y, p->wd, p->h,
-		  compat_hdc, 0, p->dh,
+	  BitBlt (hdc, p->x, p->y, p->wd, p->h, compat_hdc, 0, p->dh,
 		  DSTINVERT);
 
 	  SelectObject (hdc, h_orig_brush);
@@ -924,12 +917,11 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
       else
 	{
 	  SetTextColor (hdc, face->background);
-	  SetBkColor (hdc, (p->cursor_p
-			    ? f->output_data.w32->cursor_pixel
-			    : face->foreground));
+	  SetBkColor (hdc,
+		      (p->cursor_p ? f->output_data.w32->cursor_pixel
+				   : face->foreground));
 
-	  BitBlt (hdc, p->x, p->y, p->wd, p->h,
-		  compat_hdc, 0, p->dh,
+	  BitBlt (hdc, p->x, p->y, p->wd, p->h, compat_hdc, 0, p->dh,
 		  SRCCOPY);
 	}
 
@@ -944,13 +936,15 @@ w32_draw_fringe_bitmap (struct window *w, struct glyph_row *row,
 }
 
 static void
-w32_define_fringe_bitmap (int which, unsigned short *bits, int h, int wd)
+w32_define_fringe_bitmap (int which, unsigned short *bits, int h,
+			  int wd)
 {
   if (which >= max_fringe_bmp)
     {
       int i = max_fringe_bmp;
       max_fringe_bmp = which + 20;
-      fringe_bmp = xrealloc (fringe_bmp, max_fringe_bmp * sizeof (HBITMAP));
+      fringe_bmp
+	= xrealloc (fringe_bmp, max_fringe_bmp * sizeof (HBITMAP));
       while (i < max_fringe_bmp)
 	fringe_bmp[i++] = 0;
     }
@@ -978,30 +972,32 @@ w32_destroy_fringe_bitmap (int which)
 static void w32_set_glyph_string_clipping (struct glyph_string *);
 static void w32_set_glyph_string_gc (struct glyph_string *);
 static void w32_draw_glyph_string_background (struct glyph_string *,
-                                              bool);
+					      bool);
 static void w32_draw_glyph_string_foreground (struct glyph_string *);
-static void w32_draw_composite_glyph_string_foreground (struct glyph_string *);
+static void
+w32_draw_composite_glyph_string_foreground (struct glyph_string *);
 static void w32_draw_glyph_string_box (struct glyph_string *);
-static void w32_draw_glyph_string  (struct glyph_string *);
+static void w32_draw_glyph_string (struct glyph_string *);
 static void w32_set_cursor_gc (struct glyph_string *);
 static void w32_set_mode_line_face_gc (struct glyph_string *);
 static void w32_set_mouse_face_gc (struct glyph_string *);
-static int w32_alloc_lighter_color (struct frame *, COLORREF *, double, int);
+static int w32_alloc_lighter_color (struct frame *, COLORREF *,
+				    double, int);
 static void w32_setup_relief_color (struct frame *, struct relief *,
-                                    double, int, COLORREF);
+				    double, int, COLORREF);
 static void w32_setup_relief_colors (struct glyph_string *);
 static void w32_draw_image_glyph_string (struct glyph_string *);
 static void w32_draw_image_relief (struct glyph_string *);
 static void w32_draw_image_foreground (struct glyph_string *);
-static void w32_draw_image_foreground_1 (struct glyph_string *, HBITMAP);
+static void w32_draw_image_foreground_1 (struct glyph_string *,
+					 HBITMAP);
 static void w32_clear_glyph_string_rect (struct glyph_string *, int,
-                                         int, int, int);
+					 int, int, int);
 static void w32_draw_relief_rect (struct frame *, int, int, int, int,
-                                  int, int, int, int, int, int, int,
-                                  RECT *);
-static void w32_draw_box_rect (struct glyph_string *, int, int, int, int,
-                               int, int, bool, bool, RECT *);
-
+				  int, int, int, int, int, int, int,
+				  RECT *);
+static void w32_draw_box_rect (struct glyph_string *, int, int, int,
+			       int, int, int, bool, bool, RECT *);
 
 /* Set S->gc to a suitable GC for drawing glyph string S in cursor
    face.  */
@@ -1015,7 +1011,8 @@ w32_set_cursor_gc (struct glyph_string *s)
       /* Sometimes we are not called for each change in the default
 	 face's background color (e.g., bug#26851), so the additional
 	 test in the next line gives us a chance to resync.  */
-      && s->f->output_data.w32->cursor_gc->foreground == s->face->background
+      && s->f->output_data.w32->cursor_gc->foreground
+	   == s->face->background
       && !s->cmp)
     s->gc = s->f->output_data.w32->cursor_gc;
   else
@@ -1027,11 +1024,13 @@ w32_set_cursor_gc (struct glyph_string *s)
       egc.background = s->f->output_data.w32->cursor_pixel;
       egc.foreground = s->face->background;
 
-      /* If the glyph would be invisible, try a different foreground.  */
+      /* If the glyph would be invisible, try a different foreground.
+       */
       if (egc.foreground == egc.background)
 	egc.foreground = s->face->foreground;
       if (egc.foreground == egc.background)
-	egc.foreground = s->f->output_data.w32->cursor_foreground_pixel;
+	egc.foreground
+	  = s->f->output_data.w32->cursor_foreground_pixel;
       if (egc.foreground == egc.background)
 	egc.foreground = s->face->foreground;
 
@@ -1057,7 +1056,6 @@ w32_set_cursor_gc (struct glyph_string *s)
     }
 }
 
-
 /* Set up S->gc of glyph string S for drawing text in mouse face.  */
 
 static void
@@ -1091,10 +1089,9 @@ w32_set_mouse_face_gc (struct glyph_string *s)
   eassert (s->gc != 0);
 }
 
-
-/* Set S->gc of glyph string S to a GC suitable for drawing a mode line.
-   Faces to use in the mode line have already been computed when the
-   matrix was built, so there isn't much to do, here.  */
+/* Set S->gc of glyph string S to a GC suitable for drawing a mode
+   line. Faces to use in the mode line have already been computed when
+   the matrix was built, so there isn't much to do, here.  */
 
 static inline void
 w32_set_mode_line_face_gc (struct glyph_string *s)
@@ -1102,7 +1099,6 @@ w32_set_mode_line_face_gc (struct glyph_string *s)
   s->gc = s->face->gc;
 }
 
-
 /* Set S->gc of glyph string S for drawing that glyph string.  Set
    S->stippled_p to a non-zero value if the face of S has a stipple
    pattern.  */
@@ -1132,8 +1128,7 @@ w32_set_glyph_string_gc (struct glyph_string *s)
       w32_set_mouse_face_gc (s);
       s->stippled_p = s->face->stipple != 0;
     }
-  else if (s->hl == DRAW_IMAGE_RAISED
-	   || s->hl == DRAW_IMAGE_SUNKEN)
+  else if (s->hl == DRAW_IMAGE_RAISED || s->hl == DRAW_IMAGE_SUNKEN)
     {
       s->gc = s->face->gc;
       s->stippled_p = s->face->stipple != 0;
@@ -1145,7 +1140,6 @@ w32_set_glyph_string_gc (struct glyph_string *s)
   eassert (s->gc != 0);
 }
 
-
 /* Set clipping for output of glyph string S.  S may be part of a mode
    line or menu if we don't have X toolkit support.  */
 
@@ -1162,11 +1156,11 @@ w32_set_glyph_string_clipping (struct glyph_string *s)
       HRGN clip1 = CreateRectRgnIndirect (r);
       HRGN clip2 = CreateRectRgnIndirect (r + 1);
       if (CombineRgn (clip1, clip1, clip2, RGN_OR) != ERROR)
-        SelectClipRgn (s->hdc, clip1);
+	SelectClipRgn (s->hdc, clip1);
       DeleteObject (clip1);
       DeleteObject (clip2);
     }
-    s->num_clips = n;
+  s->num_clips = n;
 }
 
 /* Set SRC's clipping for output of glyph string DST.  This is called
@@ -1175,7 +1169,7 @@ w32_set_glyph_string_clipping (struct glyph_string *s)
 
 static void
 w32_set_glyph_string_clipping_exactly (struct glyph_string *src,
-                                       struct glyph_string *dst)
+				       struct glyph_string *dst)
 {
   RECT r;
 
@@ -1200,19 +1194,26 @@ w32_compute_glyph_string_overhangs (struct glyph_string *s)
       if (s->first_glyph->type == CHAR_GLYPH && !s->font_not_found_p)
 	{
 	  struct font *font = s->font;
-	  font->driver->text_extents (font, s->char2b, s->nchars, &metrics);
+	  font->driver->text_extents (font, s->char2b, s->nchars,
+				      &metrics);
 	  s->right_overhang = (metrics.rbearing > metrics.width
-			       ? metrics.rbearing - metrics.width : 0);
-	  s->left_overhang = metrics.lbearing < 0 ? -metrics.lbearing : 0;
+				 ? metrics.rbearing - metrics.width
+				 : 0);
+	  s->left_overhang
+	    = metrics.lbearing < 0 ? -metrics.lbearing : 0;
 	}
       else if (s->first_glyph->type == COMPOSITE_GLYPH)
 	{
-	  Lisp_Object gstring = composition_gstring_from_id (s->cmp_id);
+	  Lisp_Object gstring
+	    = composition_gstring_from_id (s->cmp_id);
 
-	  composition_gstring_width (gstring, s->cmp_from, s->cmp_to, &metrics);
+	  composition_gstring_width (gstring, s->cmp_from, s->cmp_to,
+				     &metrics);
 	  s->right_overhang = (metrics.rbearing > metrics.width
-			       ? metrics.rbearing - metrics.width : 0);
-	  s->left_overhang = metrics.lbearing < 0 ? -metrics.lbearing : 0;
+				 ? metrics.rbearing - metrics.width
+				 : 0);
+	  s->left_overhang
+	    = metrics.lbearing < 0 ? -metrics.lbearing : 0;
 	}
     }
   else
@@ -1222,11 +1223,12 @@ w32_compute_glyph_string_overhangs (struct glyph_string *s)
     }
 }
 
-/* Fill rectangle X, Y, W, H with background color of glyph string S.  */
+/* Fill rectangle X, Y, W, H with background color of glyph string S.
+ */
 
 static inline void
-w32_clear_glyph_string_rect (struct glyph_string *s,
-			   int x, int y, int w, int h)
+w32_clear_glyph_string_rect (struct glyph_string *s, int x, int y,
+			     int w, int h)
 {
   int real_x = x;
   int real_y = y;
@@ -1245,10 +1247,9 @@ w32_clear_glyph_string_rect (struct glyph_string *s,
     }
 #endif
   w32_fill_area (s->f, s->hdc, s->gc->background, real_x, real_y,
-                 real_w, real_h);
+		 real_w, real_h);
 }
 
-
 /* Draw the background of glyph_string S.  If S->background_filled_p
    is non-zero don't draw it.  FORCE_P non-zero means draw the
    background even if it wouldn't be drawn normally.  This is used
@@ -1256,47 +1257,53 @@ w32_clear_glyph_string_rect (struct glyph_string *s,
    contains the first component of a composition.  */
 
 static void
-w32_draw_glyph_string_background (struct glyph_string *s, bool force_p)
+w32_draw_glyph_string_background (struct glyph_string *s,
+				  bool force_p)
 {
   /* Nothing to do if background has already been drawn or if it
      shouldn't be drawn in the first place.  */
   if (!s->background_filled_p)
     {
-      int box_line_width = max (s->face->box_horizontal_line_width, 0);
+      int box_line_width
+	= max (s->face->box_horizontal_line_width, 0);
 
-#if 0 /* TODO: stipple */
+#if 1 /* TODO: stipple */
       if (s->stippled_p)
 	{
 	  /* Fill background with a stipple pattern.  */
-	  XSetFillStyle (s->display, s->gc, FillOpaqueStippled);
-	  XFillRectangle (s->display, FRAME_W32_WINDOW (s->f), s->gc, s->x,
-			  s->y + box_line_width,
-			  s->background_width,
-			  s->height - 2 * box_line_width);
-	  XSetFillStyle (s->display, s->gc, FillSolid);
+	  /* XSetFillStyle (s->display, s->gc, FillOpaqueStippled); */
+
+	  w32_draw_rectangle (get_frame_dc (s->f), s->gc, s->x, s->y,
+			      s->background_width, s->height);
+	  /* w32_fill_rect (s->f, get_frame_dc (s->f), */
+	  /* 		 s->face->foreground, &r); */
+	  /* XFillRectangle (s->display, FRAME_W32_WINDOW (s->f),
+	   * s->gc, */
+	  /* 		  s->x, s->y + box_line_width, */
+	  /* 		  s->background_width, */
+	  /* 		  s->height - 2 * box_line_width); */
+	  /* XSetFillStyle (s->display, s->gc, FillSolid); */
 	  s->background_filled_p = true;
 	}
       else
 #endif
-           if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width
-	       /* When xdisp.c ignores FONT_HEIGHT, we cannot trust
-		  font dimensions, since the actual glyphs might be
-		  much smaller.  So in that case we always clear the
-		  rectangle with background color.  */
-	       || FONT_TOO_HIGH (s->font)
-	       || s->font_not_found_p
-	       || s->extends_to_end_of_line_p
-	       || force_p)
+	if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width
+	    /* When xdisp.c ignores FONT_HEIGHT, we cannot trust
+	       font dimensions, since the actual glyphs might be
+	       much smaller.  So in that case we always clear the
+	       rectangle with background color.  */
+	    || FONT_TOO_HIGH (s->font) || s->font_not_found_p
+	    || s->extends_to_end_of_line_p || force_p)
 	{
 	  w32_clear_glyph_string_rect (s, s->x, s->y + box_line_width,
-				     s->background_width,
-				     s->height - 2 * box_line_width);
+				       s->background_width,
+				       s->height
+					 - 2 * box_line_width);
 	  s->background_filled_p = true;
 	}
     }
 }
 
-
 /* Draw the foreground of glyph string S.  */
 
 static void
@@ -1306,8 +1313,7 @@ w32_draw_glyph_string_foreground (struct glyph_string *s)
 
   /* If first glyph of S has a left box line, start drawing the text
      of S to the right of that box line.  */
-  if (s->face->box != FACE_NO_BOX
-      && s->first_glyph->left_box_line_p)
+  if (s->face->box != FACE_NO_BOX && s->first_glyph->left_box_line_p)
     x = s->x + max (s->face->box_vertical_line_width, 0);
   else
     x = s->x;
@@ -1321,13 +1327,13 @@ w32_draw_glyph_string_foreground (struct glyph_string *s)
   if (s->font_not_found_p)
     {
       for (i = 0; i < s->nchars; ++i)
-        {
-          struct glyph *g = s->first_glyph + i;
+	{
+	  struct glyph *g = s->first_glyph + i;
 
-          w32_draw_rectangle (s->hdc, s->gc, x, s->y, g->pixel_width - 1,
-                              s->height - 1);
-          x += g->pixel_width;
-        }
+	  w32_draw_rectangle (s->hdc, s->gc, x, s->y,
+			      g->pixel_width - 1, s->height - 1);
+	  x += g->pixel_width;
+	}
     }
   else
     {
@@ -1384,10 +1390,10 @@ w32_draw_composite_glyph_string_foreground (struct glyph_string *s)
   if (s->font_not_found_p)
     {
       if (s->cmp_from == 0)
-        w32_draw_rectangle (s->hdc, s->gc, x, s->y, s->width - 1,
-                            s->height - 1);
+	w32_draw_rectangle (s->hdc, s->gc, x, s->y, s->width - 1,
+			    s->height - 1);
     }
-  else if (! s->first_glyph->u.cmp.automatic)
+  else if (!s->first_glyph->u.cmp.automatic)
     {
       int y = s->ybase;
       HFONT old_font;
@@ -1435,7 +1441,8 @@ w32_draw_composite_glyph_string_foreground (struct glyph_string *s)
 	      xoff = LGLYPH_XOFF (glyph);
 	      yoff = LGLYPH_YOFF (glyph);
 	      wadjust = LGLYPH_WADJUST (glyph);
-	      font->driver->draw (s, i, i + 1, x + xoff, y + yoff, false);
+	      font->driver->draw (s, i, i + 1, x + xoff, y + yoff,
+				  false);
 	      x += wadjust;
 	      j = i + 1;
 	      width = 0;
@@ -1448,7 +1455,6 @@ w32_draw_composite_glyph_string_foreground (struct glyph_string *s)
     }
 }
 
-
 /* Draw the foreground of glyph string S for glyphless characters.  */
 
 static void
@@ -1461,8 +1467,7 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
 
   /* If first glyph of S has a left box line, start drawing the text
      of S to the right of that box line.  */
-  if (s->face->box != FACE_NO_BOX
-      && s->first_glyph->left_box_line_p)
+  if (s->face->box != FACE_NO_BOX && s->first_glyph->left_box_line_p)
     x = s->x + max (s->face->box_vertical_line_width, 0);
   else
     x = s->x;
@@ -1472,8 +1477,10 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
   SetTextAlign (s->hdc, TA_BASELINE | TA_LEFT);
 
   s->char2b = char2b;
-  with_background = ((s->for_overlaps
-		      || (s->background_filled_p && s->hl != DRAW_CURSOR))) == 0;
+  with_background
+    = ((s->for_overlaps
+	|| (s->background_filled_p && s->hl != DRAW_CURSOR)))
+      == 0;
   for (i = 0; i < s->nchars; i++, glyph++)
     {
       char buf[7], *str = NULL;
@@ -1481,23 +1488,25 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
 
       if (glyph->u.glyphless.method == GLYPHLESS_DISPLAY_ACRONYM)
 	{
-	  if (len > 0
-	      && CHAR_TABLE_P (Vglyphless_char_display)
-	      && (CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (Vglyphless_char_display))
+	  if (len > 0 && CHAR_TABLE_P (Vglyphless_char_display)
+	      && (CHAR_TABLE_EXTRA_SLOTS (
+		    XCHAR_TABLE (Vglyphless_char_display))
 		  >= 1))
 	    {
 	      Lisp_Object acronym
-		= (! glyph->u.glyphless.for_no_font
-		   ? CHAR_TABLE_REF (Vglyphless_char_display,
-				     glyph->u.glyphless.ch)
-		   : XCHAR_TABLE (Vglyphless_char_display)->extras[0]);
+		= (!glyph->u.glyphless.for_no_font
+		     ? CHAR_TABLE_REF (Vglyphless_char_display,
+				       glyph->u.glyphless.ch)
+		     : XCHAR_TABLE (Vglyphless_char_display)
+			 ->extras[0]);
 	      if (CONSP (acronym))
 		acronym = XCAR (acronym);
 	      if (STRINGP (acronym))
 		str = SSDATA (acronym);
 	    }
 	}
-      else if (glyph->u.glyphless.method == GLYPHLESS_DISPLAY_HEX_CODE)
+      else if (glyph->u.glyphless.method
+	       == GLYPHLESS_DISPLAY_HEX_CODE)
 	{
 	  sprintf ((char *) buf, "%0*X",
 		   glyph->u.glyphless.ch < 0x10000 ? 4 : 6,
@@ -1506,8 +1515,8 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
 	}
 
       if (glyph->u.glyphless.method != GLYPHLESS_DISPLAY_THIN_SPACE)
-	w32_draw_rectangle (s->hdc, s->gc,
-			    x, s->ybase - glyph->ascent,
+	w32_draw_rectangle (s->hdc, s->gc, x,
+			    s->ybase - glyph->ascent,
 			    glyph->pixel_width - 1,
 			    glyph->ascent + glyph->descent - 1);
       if (str)
@@ -1517,24 +1526,27 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
 	  HFONT old_font;
 
 	  old_font = SelectObject (s->hdc, FONT_HANDLE (font));
-	  /* It is certain that all LEN characters in STR are ASCII.  */
+	  /* It is certain that all LEN characters in STR are ASCII.
+	   */
 	  for (j = 0; j < len; j++)
-            char2b[j] = font->driver->encode_char (font, str[j]) & 0xFFFF;
+	    char2b[j]
+	      = font->driver->encode_char (font, str[j]) & 0xFFFF;
 	  font->driver->draw (s, 0, upper_len,
 			      x + glyph->slice.glyphless.upper_xoff,
-			      s->ybase + glyph->slice.glyphless.upper_yoff,
+			      s->ybase
+				+ glyph->slice.glyphless.upper_yoff,
 			      with_background);
 	  font->driver->draw (s, upper_len, len,
 			      x + glyph->slice.glyphless.lower_xoff,
-			      s->ybase + glyph->slice.glyphless.lower_yoff,
+			      s->ybase
+				+ glyph->slice.glyphless.lower_yoff,
 			      with_background);
 	  SelectObject (s->hdc, old_font);
 	}
       x += glyph->pixel_width;
-   }
+    }
 }
 
-
 /* Brightness beyond which a color won't have its highlight brightness
    boosted.
 
@@ -1548,7 +1560,6 @@ w32_draw_glyphless_glyph_string_foreground (struct glyph_string *s)
    (grey75) will not have its highlights changed at all.  */
 #define HIGHLIGHT_COLOR_DARK_BOOST_LIMIT 187
 
-
 /* Allocate a color which is lighter or darker than *COLOR by FACTOR
    or DELTA.  Try a color with RGB values multiplied by FACTOR first.
    If this produces the same color as COLOR, try a color where all RGB
@@ -1569,12 +1580,13 @@ w32_alloc_lighter_color (struct frame *f, COLORREF *color,
   /* Change RGB values by specified FACTOR.  Avoid overflow!  */
   eassert (factor >= 0);
   new = PALETTERGB (min (0xff, factor * GetRValue (*color)),
-                    min (0xff, factor * GetGValue (*color)),
-                    min (0xff, factor * GetBValue (*color)));
+		    min (0xff, factor * GetGValue (*color)),
+		    min (0xff, factor * GetBValue (*color)));
 
   /* Calculate brightness of COLOR.  */
   bright = (2 * GetRValue (*color) + 3 * GetGValue (*color)
-            + GetBValue (*color)) / 6;
+	    + GetBValue (*color))
+	   / 6;
 
   /* We only boost colors that are darker than
      HIGHLIGHT_COLOR_DARK_BOOST_LIMIT.  */
@@ -1582,25 +1594,36 @@ w32_alloc_lighter_color (struct frame *f, COLORREF *color,
     /* Make an additive adjustment to NEW, because it's dark enough so
        that scaling by FACTOR alone isn't enough.  */
     {
-      /* How far below the limit this color is (0 - 1, 1 being darker).  */
-      double dimness = 1 - (double)bright / HIGHLIGHT_COLOR_DARK_BOOST_LIMIT;
+      /* How far below the limit this color is (0 - 1, 1 being
+       * darker).  */
+      double dimness
+	= 1 - (double) bright / HIGHLIGHT_COLOR_DARK_BOOST_LIMIT;
       /* The additive adjustment.  */
       int min_delta = delta * dimness * factor / 2;
 
       if (factor < 1)
-        new = PALETTERGB (max (0, min (0xff, min_delta - GetRValue (*color))),
-                          max (0, min (0xff, min_delta - GetGValue (*color))),
-                          max (0, min (0xff, min_delta - GetBValue (*color))));
+	new
+	  = PALETTERGB (max (0, min (0xff,
+				     min_delta - GetRValue (*color))),
+			max (0, min (0xff,
+				     min_delta - GetGValue (*color))),
+			max (0, min (0xff, min_delta
+					     - GetBValue (*color))));
       else
-        new = PALETTERGB (max (0, min (0xff, min_delta + GetRValue (*color))),
-                          max (0, min (0xff, min_delta + GetGValue (*color))),
-                          max (0, min (0xff, min_delta + GetBValue (*color))));
+	new
+	  = PALETTERGB (max (0, min (0xff,
+				     min_delta + GetRValue (*color))),
+			max (0, min (0xff,
+				     min_delta + GetGValue (*color))),
+			max (0, min (0xff, min_delta
+					     + GetBValue (*color))));
     }
 
   if (new == *color)
-    new = PALETTERGB (max (0, min (0xff, delta + GetRValue (*color))),
-                      max (0, min (0xff, delta + GetGValue (*color))),
-                      max (0, min (0xff, delta + GetBValue (*color))));
+    new
+      = PALETTERGB (max (0, min (0xff, delta + GetRValue (*color))),
+		    max (0, min (0xff, delta + GetGValue (*color))),
+		    max (0, min (0xff, delta + GetBValue (*color))));
 
   /* TODO: Map to palette and retry with delta if same? */
   /* TODO: Free colors (if using palette)? */
@@ -1634,7 +1657,8 @@ w32_query_colors (struct frame *f, Emacs_Color *colors, int ncolors)
 /* Store F's background color into *BGCOLOR.  */
 
 void
-w32_query_frame_background_color (struct frame *f, Emacs_Color *bgcolor)
+w32_query_frame_background_color (struct frame *f,
+				  Emacs_Color *bgcolor)
 {
   bgcolor->pixel = FRAME_BACKGROUND_PIXEL (f);
   w32_query_colors (f, bgcolor, 1);
@@ -1648,8 +1672,9 @@ w32_query_frame_background_color (struct frame *f, Emacs_Color *bgcolor)
    be allocated, use DEFAULT_PIXEL, instead.  */
 
 static void
-w32_setup_relief_color (struct frame *f, struct relief *relief, double factor,
-			int delta, COLORREF default_pixel)
+w32_setup_relief_color (struct frame *f, struct relief *relief,
+			double factor, int delta,
+			COLORREF default_pixel)
 {
   Emacs_GC egc;
   struct w32_output *di = f->output_data.w32;
@@ -1680,7 +1705,6 @@ w32_setup_relief_color (struct frame *f, struct relief *relief, double factor,
     XChangeGC (NULL, relief->gc, mask, &egc);
 }
 
-
 /* Set up colors for the relief lines around glyph string S.  */
 
 static void
@@ -1691,25 +1715,22 @@ w32_setup_relief_colors (struct glyph_string *s)
 
   if (s->face->use_box_color_for_shadows_p)
     color = s->face->box_color;
-  else if (s->first_glyph->type == IMAGE_GLYPH
-	   && s->img->pixmap
+  else if (s->first_glyph->type == IMAGE_GLYPH && s->img->pixmap
 	   && !IMAGE_BACKGROUND_TRANSPARENT (s->img, s->f, 0))
-    color = IMAGE_BACKGROUND  (s->img, s->f, 0);
+    color = IMAGE_BACKGROUND (s->img, s->f, 0);
   else
     color = s->gc->background;
 
-  if (di->white_relief.gc == 0
-      || color != di->relief_background)
+  if (di->white_relief.gc == 0 || color != di->relief_background)
     {
       di->relief_background = color;
       w32_setup_relief_color (s->f, &di->white_relief, 1.2, 0x8000,
-                              WHITE_PIX_DEFAULT (s->f));
+			      WHITE_PIX_DEFAULT (s->f));
       w32_setup_relief_color (s->f, &di->black_relief, 0.6, 0x4000,
-                              BLACK_PIX_DEFAULT (s->f));
+			      BLACK_PIX_DEFAULT (s->f));
     }
 }
 
-
 /* Draw a relief on frame F inside the rectangle given by LEFT_X,
    TOP_Y, RIGHT_X, and BOTTOM_Y.  WIDTH is the thickness of the relief
    to draw, it must be >= 0.  RAISED_P non-zero means draw a raised
@@ -1719,11 +1740,10 @@ w32_setup_relief_colors (struct glyph_string *s)
    when drawing.  */
 
 static void
-w32_draw_relief_rect (struct frame *f,
-		      int left_x, int top_y, int right_x, int bottom_y,
-		      int hwidth, int vwidth, int raised_p,
-		      int top_p, int bot_p, int left_p, int right_p,
-		      RECT *clip_rect)
+w32_draw_relief_rect (struct frame *f, int left_x, int top_y,
+		      int right_x, int bottom_y, int hwidth,
+		      int vwidth, int raised_p, int top_p, int bot_p,
+		      int left_p, int right_p, RECT *clip_rect)
 {
   int i;
   Emacs_GC gc;
@@ -1739,16 +1759,18 @@ w32_draw_relief_rect (struct frame *f,
   /* Top.  */
   if (top_p)
     for (i = 0; i < hwidth; ++i)
-      w32_fill_area (f, hdc, gc.foreground,
-		     left_x + i * left_p, top_y + i,
-		     right_x - left_x - i * (left_p + right_p ) + 1, 1);
+      w32_fill_area (f, hdc, gc.foreground, left_x + i * left_p,
+		     top_y + i,
+		     right_x - left_x - i * (left_p + right_p) + 1,
+		     1);
 
   /* Left.  */
   if (left_p)
     for (i = 0; i < vwidth; ++i)
-      w32_fill_area (f, hdc, gc.foreground,
-		     left_x + i, top_y + (i + 1) * top_p, 1,
-		     bottom_y - top_y - (i + 1) * (bot_p + top_p) + 1);
+      w32_fill_area (f, hdc, gc.foreground, left_x + i,
+		     top_y + (i + 1) * top_p, 1,
+		     bottom_y - top_y - (i + 1) * (bot_p + top_p)
+		       + 1);
 
   if (raised_p)
     gc.foreground = f->output_data.w32->black_relief.gc->foreground;
@@ -1758,23 +1780,24 @@ w32_draw_relief_rect (struct frame *f,
   /* Bottom.  */
   if (bot_p)
     for (i = 0; i < hwidth; ++i)
-      w32_fill_area (f, hdc, gc.foreground,
-		     left_x + i * left_p, bottom_y - i,
-		     right_x - left_x - i * (left_p + right_p) + 1, 1);
+      w32_fill_area (f, hdc, gc.foreground, left_x + i * left_p,
+		     bottom_y - i,
+		     right_x - left_x - i * (left_p + right_p) + 1,
+		     1);
 
   /* Right.  */
   if (right_p)
     for (i = 0; i < vwidth; ++i)
-      w32_fill_area (f, hdc, gc.foreground,
-		     right_x - i, top_y + (i + 1) * top_p, 1,
-		     bottom_y - top_y - (i + 1) * (bot_p + top_p) + 1);
+      w32_fill_area (f, hdc, gc.foreground, right_x - i,
+		     top_y + (i + 1) * top_p, 1,
+		     bottom_y - top_y - (i + 1) * (bot_p + top_p)
+		       + 1);
 
   w32_set_clip_rectangle (hdc, NULL);
 
   release_frame_dc (f, hdc);
 }
 
-
 /* Draw a box on frame F inside the rectangle given by LEFT_X, TOP_Y,
    RIGHT_X, and BOTTOM_Y.  WIDTH is the thickness of the lines to
    draw, it must be >= 0.  LEFT_P non-zero means draw a line on the
@@ -1783,38 +1806,38 @@ w32_draw_relief_rect (struct frame *f,
    rectangle to use when drawing.  */
 
 static void
-w32_draw_box_rect (struct glyph_string *s,
-		   int left_x, int top_y, int right_x, int bottom_y, int hwidth,
-		   int vwidth, bool left_p, bool right_p, RECT *clip_rect)
+w32_draw_box_rect (struct glyph_string *s, int left_x, int top_y,
+		   int right_x, int bottom_y, int hwidth, int vwidth,
+		   bool left_p, bool right_p, RECT *clip_rect)
 {
   w32_set_clip_rectangle (s->hdc, clip_rect);
 
   /* Top.  */
-  w32_fill_area (s->f, s->hdc, s->face->box_color,
-		  left_x, top_y, right_x - left_x + 1, hwidth);
+  w32_fill_area (s->f, s->hdc, s->face->box_color, left_x, top_y,
+		 right_x - left_x + 1, hwidth);
 
   /* Left.  */
   if (left_p)
     {
-      w32_fill_area (s->f, s->hdc, s->face->box_color,
-                     left_x, top_y, vwidth, bottom_y - top_y + 1);
+      w32_fill_area (s->f, s->hdc, s->face->box_color, left_x, top_y,
+		     vwidth, bottom_y - top_y + 1);
     }
 
   /* Bottom.  */
-  w32_fill_area (s->f, s->hdc, s->face->box_color,
-                 left_x, bottom_y - hwidth + 1, right_x - left_x + 1, hwidth);
+  w32_fill_area (s->f, s->hdc, s->face->box_color, left_x,
+		 bottom_y - hwidth + 1, right_x - left_x + 1, hwidth);
 
   /* Right.  */
   if (right_p)
     {
       w32_fill_area (s->f, s->hdc, s->face->box_color,
-                     right_x - vwidth + 1, top_y, vwidth, bottom_y - top_y + 1);
+		     right_x - vwidth + 1, top_y, vwidth,
+		     bottom_y - top_y + 1);
     }
 
   w32_set_clip_rectangle (s->hdc, NULL);
 }
 
-
 /* Draw a box around glyph string S.  */
 
 static void
@@ -1826,8 +1849,8 @@ w32_draw_glyph_string_box (struct glyph_string *s)
   RECT clip_rect;
 
   last_x = ((s->row->full_width_p && !s->w->pseudo_window_p)
-	    ? WINDOW_RIGHT_EDGE_X (s->w)
-	    : window_box_right (s->w, s->area));
+	      ? WINDOW_RIGHT_EDGE_X (s->w)
+	      : window_box_right (s->w, s->area));
 
   /* The glyph that may have a right box line.  For static
      compositions and images, the right-box flag is on the first glyph
@@ -1839,13 +1862,14 @@ w32_draw_glyph_string_box (struct glyph_string *s)
     {
       /* For automatic compositions, we need to look up the last glyph
 	 in the composition.  */
-        struct glyph *end = s->row->glyphs[s->area] + s->row->used[s->area];
-	struct glyph *g = s->first_glyph;
-	for (last_glyph = g++;
-	     g < end && g->u.cmp.automatic && g->u.cmp.id == s->cmp_id
-	       && g->slice.cmp.to < s->cmp_to;
-	     last_glyph = g++)
-	  ;
+      struct glyph *end
+	= s->row->glyphs[s->area] + s->row->used[s->area];
+      struct glyph *g = s->first_glyph;
+      for (last_glyph = g++;
+	   g < end && g->u.cmp.automatic && g->u.cmp.id == s->cmp_id
+	   && g->slice.cmp.to < s->cmp_to;
+	   last_glyph = g++)
+	;
     }
   else
     last_glyph = s->first_glyph + s->nchars - 1;
@@ -1855,30 +1879,29 @@ w32_draw_glyph_string_box (struct glyph_string *s)
   raised_p = s->face->box == FACE_RAISED_BOX;
   left_x = s->x;
   right_x = ((s->row->full_width_p && s->extends_to_end_of_line_p
-	      ? last_x - 1
-	      : min (last_x, s->x + s->background_width) - 1));
+		? last_x - 1
+		: min (last_x, s->x + s->background_width) - 1));
   top_y = s->y;
   bottom_y = top_y + s->height - 1;
 
   left_p = (s->first_glyph->left_box_line_p
 	    || (s->hl == DRAW_MOUSE_FACE
-		&& (s->prev == NULL
-		    || s->prev->hl != s->hl)));
+		&& (s->prev == NULL || s->prev->hl != s->hl)));
   right_p = (last_glyph->right_box_line_p
 	     || (s->hl == DRAW_MOUSE_FACE
-		 && (s->next == NULL
-		     || s->next->hl != s->hl)));
+		 && (s->next == NULL || s->next->hl != s->hl)));
 
   get_glyph_string_clip_rect (s, &clip_rect);
 
   if (s->face->box == FACE_SIMPLE_BOX)
     w32_draw_box_rect (s, left_x, top_y, right_x, bottom_y, hwidth,
-                       vwidth, left_p, right_p, &clip_rect);
+		       vwidth, left_p, right_p, &clip_rect);
   else
     {
       w32_setup_relief_colors (s);
-      w32_draw_relief_rect (s->f, left_x, top_y, right_x, bottom_y, hwidth,
-                            vwidth, raised_p, 1, 1, left_p, right_p, &clip_rect);
+      w32_draw_relief_rect (s->f, left_x, top_y, right_x, bottom_y,
+			    hwidth, vwidth, raised_p, 1, 1, left_p,
+			    right_p, &clip_rect);
     }
 }
 
@@ -1893,16 +1916,17 @@ transform (int x0, int y0, int x, int y, XFORM *xform)
 {
   POINT pt;
 
-  /* See https://docs.microsoft.com/en-us/windows/desktop/api/Wingdi/nf-wingdi-setworldtransform */
-  pt.x =
-    x0 + (x - x0) * xform->eM11 + (y - y0) * xform->eM21 + xform->eDx + 0.5f;
-  pt.y =
-    y0 + (x - x0) * xform->eM12 + (y - y0) * xform->eM22 + xform->eDy + 0.5f;
+  /* See
+   * https://docs.microsoft.com/en-us/windows/desktop/api/Wingdi/nf-wingdi-setworldtransform
+   */
+  pt.x = x0 + (x - x0) * xform->eM11 + (y - y0) * xform->eM21
+	 + xform->eDx + 0.5f;
+  pt.y = y0 + (x - x0) * xform->eM12 + (y - y0) * xform->eM22
+	 + xform->eDy + 0.5f;
 
   return pt;
 }
 
-
 /* Draw foreground of image glyph string S.  */
 
 static void
@@ -1913,8 +1937,7 @@ w32_draw_image_foreground (struct glyph_string *s)
 
   /* If first glyph of S has a left box line, start drawing it to the
      right of that line.  */
-  if (s->face->box != FACE_NO_BOX
-      && s->first_glyph->left_box_line_p
+  if (s->face->box != FACE_NO_BOX && s->first_glyph->left_box_line_p
       && s->slice.x == 0)
     x += max (s->face->box_vertical_line_width, 0);
 
@@ -1947,14 +1970,15 @@ w32_draw_image_foreground (struct glyph_string *s)
 	}
       else
 	{
-	  DebPrint (("w32_draw_image_foreground: GetObject(pixmap) failed!\n"));
+	  DebPrint (("w32_draw_image_foreground: GetObject(pixmap) "
+		     "failed!\n"));
 	  orig_width = s->slice.width;
 	  orig_height = s->slice.height;
 	}
 
       double w_factor = 1.0, h_factor = 1.0;
       bool scaled = false, need_xform = false;
-      int orig_slice_width  = s->slice.width,
+      int orig_slice_width = s->slice.width,
 	  orig_slice_height = s->slice.height;
       int orig_slice_x = s->slice.x, orig_slice_y = s->slice.y;
       POINT corner[3];
@@ -1965,15 +1989,19 @@ w32_draw_image_foreground (struct glyph_string *s)
 	{
 	  need_xform = true;
 	  corner[0] = transform (x, y, x, y, &s->img->xform);
-	  corner[1] = transform (x, y, x + orig_width, y, &s->img->xform);
-	  corner[2] = transform (x, y, x, y + orig_height, &s->img->xform);
+	  corner[1]
+	    = transform (x, y, x + orig_width, y, &s->img->xform);
+	  corner[2]
+	    = transform (x, y, x, y + orig_height, &s->img->xform);
 	}
-      else if (s->img->width != orig_width || s->img->height != orig_height)
+      else if (s->img->width != orig_width
+	       || s->img->height != orig_height)
 	{
 	  /* For scaled images we need to restore the original slice's
-	     dimensions and origin coordinates, from before the scaling.  */
+	     dimensions and origin coordinates, from before the
+	     scaling.  */
 	  scaled = true;
-	  w_factor = (double) orig_width  / (double) s->img->width;
+	  w_factor = (double) orig_width / (double) s->img->width;
 	  h_factor = (double) orig_height / (double) s->img->height;
 	  orig_slice_width = s->slice.width * w_factor + 0.5;
 	  orig_slice_height = s->slice.height * h_factor + 0.5;
@@ -1984,15 +2012,15 @@ w32_draw_image_foreground (struct glyph_string *s)
       if (s->img->mask)
 	{
 	  HDC mask_dc = CreateCompatibleDC (s->hdc);
-	  HGDIOBJ mask_orig_obj = SelectObject (mask_dc, s->img->mask);
+	  HGDIOBJ mask_orig_obj
+	    = SelectObject (mask_dc, s->img->mask);
 
 	  SetTextColor (s->hdc, RGB (255, 255, 255));
 	  SetBkColor (s->hdc, RGB (0, 0, 0));
 	  if (need_xform)
 	    {
-	      if (!pfnPlgBlt (s->hdc, corner, compat_hdc,
-			      s->slice.x, s->slice.y,
-			      orig_width, orig_height,
+	      if (!pfnPlgBlt (s->hdc, corner, compat_hdc, s->slice.x,
+			      s->slice.y, orig_width, orig_height,
 			      s->img->mask, s->slice.x, s->slice.y))
 		DebPrint (("PlgBlt failed!"));
 	    }
@@ -2012,17 +2040,21 @@ w32_draw_image_foreground (struct glyph_string *s)
 		 scaling to a larger size, but Windows 9X doesn't
 		 support HALFTONE.  */
 	      if (os_subtype == OS_SUBTYPE_NT
-		  && (pmode = SetStretchBltMode (s->hdc, HALFTONE)) != 0)
+		  && (pmode = SetStretchBltMode (s->hdc, HALFTONE))
+		       != 0)
 		SetBrushOrgEx (s->hdc, 0, 0, NULL);
-	      StretchBlt (s->hdc, x, y, s->slice.width, s->slice.height,
-			  compat_hdc, orig_slice_x, orig_slice_y,
-			  orig_slice_width, orig_slice_height, SRCINVERT);
-	      StretchBlt (s->hdc, x, y, s->slice.width, s->slice.height,
-			  mask_dc, orig_slice_x, orig_slice_y,
-			  orig_slice_width, orig_slice_height, SRCAND);
-	      StretchBlt (s->hdc, x, y, s->slice.width, s->slice.height,
-			  compat_hdc, orig_slice_x, orig_slice_y,
-			  orig_slice_width, orig_slice_height, SRCINVERT);
+	      StretchBlt (s->hdc, x, y, s->slice.width,
+			  s->slice.height, compat_hdc, orig_slice_x,
+			  orig_slice_y, orig_slice_width,
+			  orig_slice_height, SRCINVERT);
+	      StretchBlt (s->hdc, x, y, s->slice.width,
+			  s->slice.height, mask_dc, orig_slice_x,
+			  orig_slice_y, orig_slice_width,
+			  orig_slice_height, SRCAND);
+	      StretchBlt (s->hdc, x, y, s->slice.width,
+			  s->slice.height, compat_hdc, orig_slice_x,
+			  orig_slice_y, orig_slice_width,
+			  orig_slice_height, SRCINVERT);
 	      if (pmode)
 		SetStretchBltMode (s->hdc, pmode);
 	    }
@@ -2035,9 +2067,9 @@ w32_draw_image_foreground (struct glyph_string *s)
 	  SetBkColor (s->hdc, s->gc->background);
 	  if (need_xform)
 	    {
-	      if (!pfnPlgBlt (s->hdc, corner, compat_hdc,
-			      s->slice.x, s->slice.y,
-			      orig_width, orig_height, NULL, 0, 0))
+	      if (!pfnPlgBlt (s->hdc, corner, compat_hdc, s->slice.x,
+			      s->slice.y, orig_width, orig_height,
+			      NULL, 0, 0))
 		DebPrint (("PlgBlt failed!"));
 	    }
 	  else if (!scaled)
@@ -2048,11 +2080,13 @@ w32_draw_image_foreground (struct glyph_string *s)
 	      int pmode = 0;
 	      /* Windows 9X doesn't support HALFTONE.  */
 	      if (os_subtype == OS_SUBTYPE_NT
-		  && (pmode = SetStretchBltMode (s->hdc, HALFTONE)) != 0)
+		  && (pmode = SetStretchBltMode (s->hdc, HALFTONE))
+		       != 0)
 		SetBrushOrgEx (s->hdc, 0, 0, NULL);
-	      StretchBlt (s->hdc, x, y, s->slice.width, s->slice.height,
-			  compat_hdc, orig_slice_x, orig_slice_y,
-			  orig_slice_width, orig_slice_height, SRCCOPY);
+	      StretchBlt (s->hdc, x, y, s->slice.width,
+			  s->slice.height, compat_hdc, orig_slice_x,
+			  orig_slice_y, orig_slice_width,
+			  orig_slice_height, SRCCOPY);
 	      if (pmode)
 		SetStretchBltMode (s->hdc, pmode);
 	    }
@@ -2066,10 +2100,11 @@ w32_draw_image_foreground (struct glyph_string *s)
 	  if (s->hl == DRAW_CURSOR)
 	    {
 	      int r = s->img->relief;
-	      if (r < 0) r = -r;
-	      w32_draw_rectangle (s->hdc, s->gc, x - r, y - r ,
-				  s->slice.width + r*2 - 1,
-				  s->slice.height + r*2 - 1);
+	      if (r < 0)
+		r = -r;
+	      w32_draw_rectangle (s->hdc, s->gc, x - r, y - r,
+				  s->slice.width + r * 2 - 1,
+				  s->slice.height + r * 2 - 1);
 	    }
 	}
 
@@ -2080,10 +2115,10 @@ w32_draw_image_foreground (struct glyph_string *s)
       DeleteDC (compat_hdc);
     }
   else
-    w32_draw_rectangle (s->hdc, s->gc, x, y,
-			s->slice.width - 1, s->slice.height - 1);
+    w32_draw_rectangle (s->hdc, s->gc, x, y, s->slice.width - 1,
+			s->slice.height - 1);
 
-  RestoreDC (s->hdc ,-1);
+  RestoreDC (s->hdc, -1);
 }
 
 size_t
@@ -2097,7 +2132,6 @@ w32_image_size (Emacs_Pixmap pixmap)
   return rv;
 }
 
-
 /* Draw a relief around the image glyph string S.  */
 
 static void
@@ -2111,8 +2145,7 @@ w32_draw_image_relief (struct glyph_string *s)
 
   /* If first glyph of S has a left box line, start drawing it to the
      right of that line.  */
-  if (s->face->box != FACE_NO_BOX
-      && s->first_glyph->left_box_line_p
+  if (s->face->box != FACE_NO_BOX && s->first_glyph->left_box_line_p
       && s->slice.x == 0)
     x += max (s->face->box_vertical_line_width, 0);
 
@@ -2123,17 +2156,16 @@ w32_draw_image_relief (struct glyph_string *s)
   if (s->slice.y == 0)
     y += s->img->vmargin;
 
-  if (s->hl == DRAW_IMAGE_SUNKEN
-      || s->hl == DRAW_IMAGE_RAISED)
+  if (s->hl == DRAW_IMAGE_SUNKEN || s->hl == DRAW_IMAGE_RAISED)
     {
       if (s->face->id == TAB_BAR_FACE_ID)
 	thick = (tab_bar_button_relief < 0
-		 ? DEFAULT_TAB_BAR_BUTTON_RELIEF
-		 : min (tab_bar_button_relief, 1000000));
+		   ? DEFAULT_TAB_BAR_BUTTON_RELIEF
+		   : min (tab_bar_button_relief, 1000000));
       else
 	thick = (tool_bar_button_relief < 0
-		 ? DEFAULT_TOOL_BAR_BUTTON_RELIEF
-		 : min (tool_bar_button_relief, 1000000));
+		   ? DEFAULT_TOOL_BAR_BUTTON_RELIEF
+		   : min (tool_bar_button_relief, 1000000));
       raised_p = s->hl == DRAW_IMAGE_RAISED;
     }
   else
@@ -2189,7 +2221,6 @@ w32_draw_image_relief (struct glyph_string *s)
 			top_p, bot_p, left_p, right_p, &r);
 }
 
-
 /* Draw the foreground of image glyph string S to PIXMAP.  */
 
 static void
@@ -2202,8 +2233,7 @@ w32_draw_image_foreground_1 (struct glyph_string *s, HBITMAP pixmap)
 
   /* If first glyph of S has a left box line, start drawing it to the
      right of that line.  */
-  if (s->face->box != FACE_NO_BOX
-      && s->first_glyph->left_box_line_p
+  if (s->face->box != FACE_NO_BOX && s->first_glyph->left_box_line_p
       && s->slice.x == 0)
     x += max (s->face->box_vertical_line_width, 0);
 
@@ -2228,14 +2258,15 @@ w32_draw_image_foreground_1 (struct glyph_string *s, HBITMAP pixmap)
       if (s->img->mask)
 	{
 	  HDC mask_dc = CreateCompatibleDC (hdc);
-	  HGDIOBJ mask_orig_obj = SelectObject (mask_dc, s->img->mask);
+	  HGDIOBJ mask_orig_obj
+	    = SelectObject (mask_dc, s->img->mask);
 
 	  SetTextColor (hdc, RGB (0, 0, 0));
 	  SetBkColor (hdc, RGB (255, 255, 255));
 	  BitBlt (hdc, x, y, s->slice.width, s->slice.height,
 		  compat_hdc, s->slice.x, s->slice.y, SRCINVERT);
-	  BitBlt (hdc, x, y, s->slice.width, s->slice.height,
-		  mask_dc, s->slice.x, s->slice.y, SRCAND);
+	  BitBlt (hdc, x, y, s->slice.width, s->slice.height, mask_dc,
+		  s->slice.x, s->slice.y, SRCAND);
 	  BitBlt (hdc, x, y, s->slice.width, s->slice.height,
 		  compat_hdc, s->slice.x, s->slice.y, SRCINVERT);
 
@@ -2247,8 +2278,8 @@ w32_draw_image_foreground_1 (struct glyph_string *s, HBITMAP pixmap)
 	  SetTextColor (hdc, s->gc->foreground);
 	  SetBkColor (hdc, s->gc->background);
 
-          BitBlt (hdc, x, y, s->slice.width, s->slice.height,
-                  compat_hdc, s->slice.x, s->slice.y, SRCCOPY);
+	  BitBlt (hdc, x, y, s->slice.width, s->slice.height,
+		  compat_hdc, s->slice.x, s->slice.y, SRCCOPY);
 
 	  /* When the image has a mask, we can expect that at
 	     least part of a mouse highlight or a block cursor will
@@ -2259,10 +2290,11 @@ w32_draw_image_foreground_1 (struct glyph_string *s, HBITMAP pixmap)
 	  if (s->hl == DRAW_CURSOR)
 	    {
 	      int r = s->img->relief;
-	      if (r < 0) r = -r;
+	      if (r < 0)
+		r = -r;
 	      w32_draw_rectangle (hdc, s->gc, x - r, y - r,
-				  s->slice.width + r*2 - 1,
-				  s->slice.height + r*2 - 1);
+				  s->slice.width + r * 2 - 1,
+				  s->slice.height + r * 2 - 1);
 	    }
 	}
 
@@ -2272,19 +2304,19 @@ w32_draw_image_foreground_1 (struct glyph_string *s, HBITMAP pixmap)
       DeleteDC (compat_hdc);
     }
   else
-    w32_draw_rectangle (hdc, s->gc, x, y,
-			s->slice.width - 1, s->slice.height - 1);
+    w32_draw_rectangle (hdc, s->gc, x, y, s->slice.width - 1,
+			s->slice.height - 1);
 
   SelectObject (hdc, orig_hdc_obj);
   DeleteDC (hdc);
 }
 
-
 /* Draw part of the background of glyph string S.  X, Y, W, and H
    give the rectangle to draw.  */
 
 static void
-w32_draw_glyph_string_bg_rect (struct glyph_string *s, int x, int y, int w, int h)
+w32_draw_glyph_string_bg_rect (struct glyph_string *s, int x, int y,
+			       int w, int h)
 {
 #if 0 /* TODO: stipple */
   if (s->stippled_p)
@@ -2296,13 +2328,12 @@ w32_draw_glyph_string_bg_rect (struct glyph_string *s, int x, int y, int w, int
     }
   else
 #endif
-    w32_clear_glyph_string_rect (s, x, y, w, h);
+  w32_clear_glyph_string_rect (s, x, y, w, h);
 }
 
-
 /* Draw image glyph string S.
 
-            s->y
+	    s->y
    s->x      +-------------------------
 	     |   s->face->box
 	     |
@@ -2333,17 +2364,13 @@ w32_draw_image_glyph_string (struct glyph_string *s)
      taller than image or if image has a clip mask to reduce
      flickering.  */
   s->stippled_p = s->face->stipple != 0;
-  if (height > s->slice.height
-      || s->img->hmargin
-      || s->img->vmargin
-      || s->img->mask
-      || s->img->pixmap == 0
+  if (height > s->slice.height || s->img->hmargin || s->img->vmargin
+      || s->img->mask || s->img->pixmap == 0
       || s->width != s->background_width)
     {
       width = s->background_width;
       x = s->x;
-      if (s->first_glyph->left_box_line_p
-	  && s->slice.x == 0)
+      if (s->first_glyph->left_box_line_p && s->slice.x == 0)
 	{
 	  x += box_line_hwidth;
 	  width -= box_line_hwidth;
@@ -2393,7 +2420,7 @@ w32_draw_image_glyph_string (struct glyph_string *s)
 	}
       else
 #endif
-	w32_draw_glyph_string_bg_rect (s, x, y, width, height);
+      w32_draw_glyph_string_bg_rect (s, x, y, width, height);
 
       s->background_filled_p = true;
     }
@@ -2404,20 +2431,20 @@ w32_draw_image_glyph_string (struct glyph_string *s)
       w32_draw_image_foreground_1 (s, pixmap);
       w32_set_glyph_string_clipping (s);
       {
-        HDC compat_hdc = CreateCompatibleDC (s->hdc);
-        HBRUSH fg_brush = CreateSolidBrush (s->gc->foreground);
-        HBRUSH orig_brush = SelectObject (s->hdc, fg_brush);
-        HGDIOBJ orig_obj = SelectObject (compat_hdc, pixmap);
-
-        SetTextColor (s->hdc, s->gc->foreground);
-        SetBkColor (s->hdc, s->gc->background);
-        BitBlt (s->hdc, s->x, s->y, s->background_width, s->height,
-                compat_hdc, 0, 0, SRCCOPY);
-
-        SelectObject (s->hdc, orig_brush);
-        DeleteObject (fg_brush);
-        SelectObject (compat_hdc, orig_obj);
-        DeleteDC (compat_hdc);
+	HDC compat_hdc = CreateCompatibleDC (s->hdc);
+	HBRUSH fg_brush = CreateSolidBrush (s->gc->foreground);
+	HBRUSH orig_brush = SelectObject (s->hdc, fg_brush);
+	HGDIOBJ orig_obj = SelectObject (compat_hdc, pixmap);
+
+	SetTextColor (s->hdc, s->gc->foreground);
+	SetBkColor (s->hdc, s->gc->background);
+	BitBlt (s->hdc, s->x, s->y, s->background_width, s->height,
+		compat_hdc, 0, 0, SRCCOPY);
+
+	SelectObject (s->hdc, orig_brush);
+	DeleteObject (fg_brush);
+	SelectObject (compat_hdc, orig_obj);
+	DeleteDC (compat_hdc);
       }
       DeleteObject (pixmap);
       pixmap = 0;
@@ -2426,13 +2453,11 @@ w32_draw_image_glyph_string (struct glyph_string *s)
     w32_draw_image_foreground (s);
 
   /* If we must draw a relief around the image, do it.  */
-  if (s->img->relief
-      || s->hl == DRAW_IMAGE_RAISED
+  if (s->img->relief || s->hl == DRAW_IMAGE_RAISED
       || s->hl == DRAW_IMAGE_SUNKEN)
     w32_draw_image_relief (s);
 }
 
-
 /* Draw stretch glyph string S.  */
 
 static void
@@ -2440,8 +2465,7 @@ w32_draw_stretch_glyph_string (struct glyph_string *s)
 {
   eassert (s->first_glyph->type == STRETCH_GLYPH);
 
-  if (s->hl == DRAW_CURSOR
-      && !x_stretch_cursor_p)
+  if (s->hl == DRAW_CURSOR && !x_stretch_cursor_p)
     {
       /* If `x-stretch-cursor' is nil, don't draw a block cursor as
 	 wide as the stretch glyph.  */
@@ -2482,14 +2506,13 @@ w32_draw_stretch_glyph_string (struct glyph_string *s)
 	  int y = s->y;
 	  int w = background_width - width, h = s->height;
 	  RECT r;
-          HDC hdc = s->hdc;
+	  HDC hdc = s->hdc;
 
 	  if (!s->row->reversed_p)
 	    x += width;
 	  else
 	    x = s->x;
-	  if (s->row->mouse_face_p
-	      && cursor_in_mouse_face_p (s->w))
+	  if (s->row->mouse_face_p && cursor_in_mouse_face_p (s->w))
 	    {
 	      w32_set_mouse_face_gc (s);
 	      gc = s->gc;
@@ -2510,10 +2533,10 @@ w32_draw_stretch_glyph_string (struct glyph_string *s)
 	    }
 	  else
 #endif
-            {
-              w32_fill_area (s->f, s->hdc, gc->background, x, y, w, h);
-            }
-        }
+	  {
+	    w32_fill_area (s->f, s->hdc, gc->background, x, y, w, h);
+	  }
+	}
     }
   else if (!s->background_filled_p)
     {
@@ -2521,21 +2544,21 @@ w32_draw_stretch_glyph_string (struct glyph_string *s)
       int x = s->x, text_left_x = window_box_left (s->w, TEXT_AREA);
 
       /* Don't draw into left fringe or scrollbar area except for
-         header line and mode line.  */
-      if (s->area == TEXT_AREA
-	  && x < text_left_x && !s->row->mode_line_p)
+	 header line and mode line.  */
+      if (s->area == TEXT_AREA && x < text_left_x
+	  && !s->row->mode_line_p)
 	{
 	  background_width -= text_left_x - x;
 	  x = text_left_x;
 	}
       if (background_width > 0)
-	w32_draw_glyph_string_bg_rect (s, x, s->y, background_width, s->height);
+	w32_draw_glyph_string_bg_rect (s, x, s->y, background_width,
+				       s->height);
     }
 
   s->background_filled_p = true;
 }
 
-
 /* Draw glyph string S.  */
 
 static void
@@ -2545,24 +2568,25 @@ w32_draw_glyph_string (struct glyph_string *s)
 
   /* If S draws into the background of its successor, draw the
      background of the successor first so that S can draw into it.
-     This makes S->next use XDrawString instead of XDrawImageString.  */
+     This makes S->next use XDrawString instead of XDrawImageString.
+   */
   if (s->next && s->right_overhang && !s->for_overlaps)
     {
       int width;
       struct glyph_string *next;
       for (width = 0, next = s->next;
 	   next && width < s->right_overhang;
-           width += next->width, next = next->next)
-        if (next->first_glyph->type != IMAGE_GLYPH)
-          {
-            w32_set_glyph_string_gc (next);
-            w32_set_glyph_string_clipping (next);
+	   width += next->width, next = next->next)
+	if (next->first_glyph->type != IMAGE_GLYPH)
+	  {
+	    w32_set_glyph_string_gc (next);
+	    w32_set_glyph_string_clipping (next);
 	    if (next->first_glyph->type == STRETCH_GLYPH)
 	      w32_draw_stretch_glyph_string (next);
 	    else
 	      w32_draw_glyph_string_background (next, true);
-            next->num_clips = 0;
-          }
+	    next->num_clips = 0;
+	  }
     }
 
   /* Set up S->gc, set clipping and draw S.  */
@@ -2570,8 +2594,7 @@ w32_draw_glyph_string (struct glyph_string *s)
 
   /* Draw relief (if any) in advance for char/composition so that the
      glyph string can be drawn over it.  */
-  if (!s->for_overlaps
-      && s->face->box != FACE_NO_BOX
+  if (!s->for_overlaps && s->face->box != FACE_NO_BOX
       && (s->first_glyph->type == CHAR_GLYPH
 	  || s->first_glyph->type == COMPOSITE_GLYPH))
 
@@ -2582,10 +2605,11 @@ w32_draw_glyph_string (struct glyph_string *s)
       w32_set_glyph_string_clipping (s);
       relief_drawn_p = 1;
     }
-  else if (!s->clip_head /* draw_glyphs didn't specify a clip mask.  */
-           && !s->clip_tail
-           && ((s->prev && s->prev->hl != s->hl && s->left_overhang)
-               || (s->next && s->next->hl != s->hl && s->right_overhang)))
+  else if (!s->clip_head /* draw_glyphs didn't specify a clip mask. */
+	   && !s->clip_tail
+	   && ((s->prev && s->prev->hl != s->hl && s->left_overhang)
+	       || (s->next && s->next->hl != s->hl
+		   && s->right_overhang)))
     /* We must clip just this glyph.  left_overhang part has already
        drawn when s->prev was drawn, and right_overhang part will be
        drawn later when s->next is drawn. */
@@ -2607,13 +2631,13 @@ w32_draw_glyph_string (struct glyph_string *s)
       if (s->for_overlaps)
 	s->background_filled_p = true;
       else
-        w32_draw_glyph_string_background (s, false);
+	w32_draw_glyph_string_background (s, false);
       w32_draw_glyph_string_foreground (s);
       break;
 
     case COMPOSITE_GLYPH:
-      if (s->for_overlaps || (s->cmp_from > 0
-			      && ! s->first_glyph->u.cmp.automatic))
+      if (s->for_overlaps
+	  || (s->cmp_from > 0 && !s->first_glyph->u.cmp.automatic))
 	s->background_filled_p = true;
       else
 	w32_draw_glyph_string_background (s, true);
@@ -2636,173 +2660,185 @@ w32_draw_glyph_string (struct glyph_string *s)
     {
       /* Draw relief if not yet drawn.  */
       if (!relief_drawn_p && s->face->box != FACE_NO_BOX)
-        w32_draw_glyph_string_box (s);
+	w32_draw_glyph_string_box (s);
 
       /* Draw underline.  */
       if (s->face->underline)
-        {
-          if (s->face->underline == FACE_UNDER_WAVE)
-            {
-              COLORREF color;
-
-              if (s->face->underline_defaulted_p)
-                color = s->gc->foreground;
-              else
-                color = s->face->underline_color;
-
-              w32_draw_underwave (s, color);
-            }
-          else if (s->face->underline == FACE_UNDER_LINE)
-            {
-              unsigned long thickness, position;
-              int y;
-
-              if (s->prev
+	{
+	  if (s->face->underline == FACE_UNDER_WAVE)
+	    {
+	      COLORREF color;
+
+	      if (s->face->underline_defaulted_p)
+		color = s->gc->foreground;
+	      else
+		color = s->face->underline_color;
+
+	      w32_draw_underwave (s, color);
+	    }
+	  else if (s->face->underline == FACE_UNDER_LINE)
+	    {
+	      unsigned long thickness, position;
+	      int y;
+
+	      if (s->prev
 		  && s->prev->face->underline == FACE_UNDER_LINE
 		  && (s->prev->face->underline_at_descent_line_p
 		      == s->face->underline_at_descent_line_p)
-		  && (s->prev->face->underline_pixels_above_descent_line
-		      == s->face->underline_pixels_above_descent_line))
-                {
-                  /* We use the same underline style as the previous one.  */
-                  thickness = s->prev->underline_thickness;
-                  position = s->prev->underline_position;
-                }
-              else
-                {
+		  && (s->prev->face
+			->underline_pixels_above_descent_line
+		      == s->face
+			   ->underline_pixels_above_descent_line))
+		{
+		  /* We use the same underline style as the previous
+		   * one.  */
+		  thickness = s->prev->underline_thickness;
+		  position = s->prev->underline_position;
+		}
+	      else
+		{
 		  struct font *font = font_for_underline_metrics (s);
 		  unsigned long minimum_offset;
 		  BOOL underline_at_descent_line;
 		  BOOL use_underline_position_properties;
-		  Lisp_Object val = (WINDOW_BUFFER_LOCAL_VALUE
-				     (Qunderline_minimum_offset, s->w));
+		  Lisp_Object val = (WINDOW_BUFFER_LOCAL_VALUE (
+		    Qunderline_minimum_offset, s->w));
 
 		  if (FIXNUMP (val))
 		    minimum_offset = max (0, XFIXNUM (val));
 		  else
 		    minimum_offset = 1;
 
-		  val = (WINDOW_BUFFER_LOCAL_VALUE
-			 (Qx_underline_at_descent_line, s->w));
+		  val = (WINDOW_BUFFER_LOCAL_VALUE (
+		    Qx_underline_at_descent_line, s->w));
 		  underline_at_descent_line
 		    = (!(NILP (val) || BASE_EQ (val, Qunbound))
 		       || s->face->underline_at_descent_line_p);
 
-		  val = (WINDOW_BUFFER_LOCAL_VALUE
-			 (Qx_use_underline_position_properties, s->w));
+		  val = (WINDOW_BUFFER_LOCAL_VALUE (
+		    Qx_use_underline_position_properties, s->w));
 		  use_underline_position_properties
 		    = !(NILP (val) || BASE_EQ (val, Qunbound));
 
-                  /* Get the underline thickness.  Default is 1 pixel.  */
-                  if (font && font->underline_thickness > 0)
-                    thickness = font->underline_thickness;
-                  else
-                    thickness = 1;
-                  if (underline_at_descent_line
-                      || !font)
-		    position = ((s->height - thickness)
-				- (s->ybase - s->y)
-				- s->face->underline_pixels_above_descent_line);
-                  else
-                    {
-                      /* Get the underline position.  This is the
-                         recommended vertical offset in pixels from
-                         the baseline to the top of the underline.
-                         This is a signed value according to the
-                         specs, and its default is
-
-                         ROUND ((maximum_descent) / 2), with
-                         ROUND (x) = floor (x + 0.5)  */
-
-                      if (use_underline_position_properties
-                          && font->underline_position >= 0)
-                        position = font->underline_position;
-                      else
-                        position = (font->descent + 1) / 2;
-                    }
+		  /* Get the underline thickness.  Default is 1 pixel.
+		   */
+		  if (font && font->underline_thickness > 0)
+		    thickness = font->underline_thickness;
+		  else
+		    thickness = 1;
+		  if (underline_at_descent_line || !font)
+		    position
+		      = ((s->height - thickness) - (s->ybase - s->y)
+			 - s->face
+			     ->underline_pixels_above_descent_line);
+		  else
+		    {
+		      /* Get the underline position.  This is the
+			 recommended vertical offset in pixels from
+			 the baseline to the top of the underline.
+			 This is a signed value according to the
+			 specs, and its default is
+
+			 ROUND ((maximum_descent) / 2), with
+			 ROUND (x) = floor (x + 0.5)  */
+
+		      if (use_underline_position_properties
+			  && font->underline_position >= 0)
+			position = font->underline_position;
+		      else
+			position = (font->descent + 1) / 2;
+		    }
 
 		  if (!(s->face->underline_at_descent_line_p
-			/* Ignore minimum_offset if the amount of pixels
-			   was explicitly specified.  */
-			&& s->face->underline_pixels_above_descent_line))
+			/* Ignore minimum_offset if the amount of
+			   pixels was explicitly specified.  */
+			&& s->face
+			     ->underline_pixels_above_descent_line))
 		    position = max (position, minimum_offset);
-                }
-              /* Check the sanity of thickness and position.  We should
-                 avoid drawing underline out of the current line area.  */
-              if (s->y + s->height <= s->ybase + position)
-                position = (s->height - 1) - (s->ybase - s->y);
-              if (s->y + s->height < s->ybase + position + thickness)
-                thickness = (s->y + s->height) - (s->ybase + position);
-              s->underline_thickness = thickness;
-              s->underline_position =  position;
-              y = s->ybase + position;
-              if (s->face->underline_defaulted_p)
-                {
-                  w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
-                                 y, s->width, 1);
-                }
-              else
-                {
-                  w32_fill_area (s->f, s->hdc, s->face->underline_color, s->x,
-                                 y, s->width, 1);
-                }
-            }
-        }
+		}
+	      /* Check the sanity of thickness and position.  We
+		 should avoid drawing underline out of the current
+		 line area.  */
+	      if (s->y + s->height <= s->ybase + position)
+		position = (s->height - 1) - (s->ybase - s->y);
+	      if (s->y + s->height < s->ybase + position + thickness)
+		thickness
+		  = (s->y + s->height) - (s->ybase + position);
+	      s->underline_thickness = thickness;
+	      s->underline_position = position;
+	      y = s->ybase + position;
+	      if (s->face->underline_defaulted_p)
+		{
+		  w32_fill_area (s->f, s->hdc, s->gc->foreground,
+				 s->x, y, s->width, 1);
+		}
+	      else
+		{
+		  w32_fill_area (s->f, s->hdc,
+				 s->face->underline_color, s->x, y,
+				 s->width, 1);
+		}
+	    }
+	}
       /* Draw overline.  */
       if (s->face->overline_p)
-        {
-          unsigned long dy = 0, h = 1;
-
-          if (s->face->overline_color_defaulted_p)
-            {
-              w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
-                             s->y + dy, s->width, h);
-            }
-          else
-            {
-              w32_fill_area (s->f, s->hdc, s->face->overline_color, s->x,
-                             s->y + dy, s->width, h);
-            }
-        }
+	{
+	  unsigned long dy = 0, h = 1;
+
+	  if (s->face->overline_color_defaulted_p)
+	    {
+	      w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
+			     s->y + dy, s->width, h);
+	    }
+	  else
+	    {
+	      w32_fill_area (s->f, s->hdc, s->face->overline_color,
+			     s->x, s->y + dy, s->width, h);
+	    }
+	}
 
       /* Draw strike-through.  */
       if (s->face->strike_through_p
-          && !FONT_TEXTMETRIC (s->font).tmStruckOut)
-        {
+	  && !FONT_TEXTMETRIC (s->font).tmStruckOut)
+	{
 	  /* Y-coordinate and height of the glyph string's first
 	     glyph.  We cannot use s->y and s->height because those
 	     could be larger if there are taller display elements
 	     (e.g., characters displayed with a larger font) in the
 	     same glyph row.  */
 	  int glyph_y = s->ybase - s->first_glyph->ascent;
-	  int glyph_height = s->first_glyph->ascent + s->first_glyph->descent;
+	  int glyph_height
+	    = s->first_glyph->ascent + s->first_glyph->descent;
 	  /* Strike-through width and offset from the glyph string's
 	     top edge.  */
-          unsigned long h = 1;
-          unsigned long dy = (glyph_height - h) / 2;
+	  unsigned long h = 1;
+	  unsigned long dy = (glyph_height - h) / 2;
 
-          if (s->face->strike_through_color_defaulted_p)
-            {
-              w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
+	  if (s->face->strike_through_color_defaulted_p)
+	    {
+	      w32_fill_area (s->f, s->hdc, s->gc->foreground, s->x,
+			     glyph_y + dy, s->width, h);
+	    }
+	  else
+	    {
+	      w32_fill_area (s->f, s->hdc,
+			     s->face->strike_through_color, s->x,
 			     glyph_y + dy, s->width, h);
-            }
-          else
-            {
-              w32_fill_area (s->f, s->hdc, s->face->strike_through_color, s->x,
-                             glyph_y + dy, s->width, h);
-            }
-        }
+	    }
+	}
 
       if (s->prev)
-        {
-          struct glyph_string *prev;
-
-          for (prev = s->prev; prev; prev = prev->prev)
-            if (prev->hl != s->hl
-                && prev->x + prev->width + prev->right_overhang > s->x)
-              {
-                /* As prev was drawn while clipped to its own area, we
-                   must draw the right_overhang part using s->hl now.  */
+	{
+	  struct glyph_string *prev;
+
+	  for (prev = s->prev; prev; prev = prev->prev)
+	    if (prev->hl != s->hl
+		&& prev->x + prev->width + prev->right_overhang
+		     > s->x)
+	      {
+		/* As prev was drawn while clipped to its own area, we
+		   must draw the right_overhang part using s->hl now.
+		 */
 		enum draw_glyphs_face save = prev->hl;
 
 		prev->hl = s->hl;
@@ -2812,7 +2848,7 @@ w32_draw_glyph_string (struct glyph_string *s)
 		  w32_draw_glyph_string_foreground (prev);
 		else
 		  w32_draw_composite_glyph_string_foreground (prev);
-                w32_set_clip_rectangle (prev->hdc, NULL);
+		w32_set_clip_rectangle (prev->hdc, NULL);
 		prev->hl = save;
 		prev->num_clips = 0;
 	      }
@@ -2826,8 +2862,9 @@ w32_draw_glyph_string (struct glyph_string *s)
 	    if (next->hl != s->hl
 		&& next->x - next->left_overhang < s->x + s->width)
 	      {
-		/* As next will be drawn while clipped to its own area,
-		   we must draw the left_overhang part using s->hl now.  */
+		/* As next will be drawn while clipped to its own
+		   area, we must draw the left_overhang part using
+		   s->hl now.  */
 		enum draw_glyphs_face save = next->hl;
 
 		next->hl = s->hl;
@@ -2837,7 +2874,7 @@ w32_draw_glyph_string (struct glyph_string *s)
 		  w32_draw_glyph_string_foreground (next);
 		else
 		  w32_draw_composite_glyph_string_foreground (next);
-                w32_set_clip_rectangle (next->hdc, NULL);
+		w32_set_clip_rectangle (next->hdc, NULL);
 		next->hl = save;
 		next->num_clips = 0;
 		next->clip_head = s->next;
@@ -2850,42 +2887,38 @@ w32_draw_glyph_string (struct glyph_string *s)
   s->num_clips = 0;
 }
 
-
 /* Shift display to make room for inserted glyphs.   */
 
 static void
-w32_shift_glyphs_for_insert (struct frame *f, int x, int y,
-			     int width, int height, int shift_by)
+w32_shift_glyphs_for_insert (struct frame *f, int x, int y, int width,
+			     int height, int shift_by)
 {
   HDC hdc;
 
   hdc = get_frame_dc (f);
-  BitBlt (hdc, x + shift_by, y, width, height,
-          hdc, x, y, SRCCOPY);
+  BitBlt (hdc, x + shift_by, y, width, height, hdc, x, y, SRCCOPY);
 
   release_frame_dc (f, hdc);
 }
 
-
 /* Delete N glyphs at the nominal cursor position.  Not implemented
    for X frames.  */
 
 static void
 w32_delete_glyphs (struct frame *f, register int n)
 {
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   emacs_abort ();
 }
 
-
 /* Clear entire frame.  */
 
 static void
 w32_clear_frame (struct frame *f)
 {
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   /* Clearing the frame will erase any cursor, so mark them all as no
@@ -2903,7 +2936,6 @@ w32_clear_frame (struct frame *f)
   unblock_input ();
 }
 
-\f
 /* Make audible bell.  */
 
 static void
@@ -2924,7 +2956,7 @@ w32_ring_bell (struct frame *f)
       FlashWindow (hwnd, FALSE);
     }
   else
-      w32_sys_ring_bell (f);
+    w32_sys_ring_bell (f);
 
   unblock_input ();
 }
@@ -2939,13 +2971,12 @@ w32_ring_bell (struct frame *f)
 static void
 w32_ins_del_lines (struct frame *f, int vpos, int n)
 {
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   emacs_abort ();
 }
 
-
 /* Scroll part of the display as described by RUN.  */
 
 static void
@@ -2976,7 +3007,8 @@ w32_scroll_run (struct window *w, struct run *run)
 	height = run->height;
 
       if (w32_disable_double_buffering)
-	expect_dirty = CreateRectRgn (x, y + height, x + width, bottom_y);
+	expect_dirty
+	  = CreateRectRgn (x, y + height, x + width, bottom_y);
     }
   else
     {
@@ -2993,7 +3025,8 @@ w32_scroll_run (struct window *w, struct run *run)
 
   block_input ();
 
-  /* Cursor off.  Will be switched on again in gui_update_window_end.  */
+  /* Cursor off.  Will be switched on again in gui_update_window_end.
+   */
   gui_clear_cursor (w);
   if (!w32_disable_double_buffering)
     {
@@ -3015,14 +3048,16 @@ w32_scroll_run (struct window *w, struct run *run)
       to.top = y;
       to.bottom = bottom_y;
 
-      ScrollWindowEx (hwnd, 0, to_y - from_y, &from, &to, dirty,
-		      NULL, SW_INVALIDATE);
+      ScrollWindowEx (hwnd, 0, to_y - from_y, &from, &to, dirty, NULL,
+		      SW_INVALIDATE);
 
       /* Combine this with what we expect to be dirty. This covers the
-	 case where not all of the region we expect is actually dirty.  */
+	 case where not all of the region we expect is actually dirty.
+       */
       CombineRgn (combined, dirty, expect_dirty, RGN_OR);
 
-      /* If the dirty region is not what we expected, redraw the entire frame.  */
+      /* If the dirty region is not what we expected, redraw the
+       * entire frame.  */
       if (!EqualRgn (combined, expect_dirty))
 	SET_FRAME_GARBAGED (f);
 
@@ -3032,13 +3067,10 @@ w32_scroll_run (struct window *w, struct run *run)
 
   unblock_input ();
 
-  if (w32_disable_double_buffering
-      && expect_dirty)
+  if (w32_disable_double_buffering && expect_dirty)
     DeleteObject (expect_dirty);
 }
 
-
-\f
 /***********************************************************************
 			   Exposure Events
  ***********************************************************************/
@@ -3059,12 +3091,14 @@ w32_frame_unhighlight (struct frame *f)
 
 /* The focus has changed.  Update the frames as necessary to reflect
    the new situation.  Note that we can't change the selected frame
-   here, because the Lisp code we are interrupting might become confused.
-   Each event gets marked with the frame in which it occurred, so the
-   Lisp code can tell when the switch took place by examining the events.  */
+   here, because the Lisp code we are interrupting might become
+   confused. Each event gets marked with the frame in which it
+   occurred, so the Lisp code can tell when the switch took place by
+   examining the events.  */
 
 static void
-w32_new_focus_frame (struct w32_display_info *dpyinfo, struct frame *frame)
+w32_new_focus_frame (struct w32_display_info *dpyinfo,
+		     struct frame *frame)
 {
   struct frame *old_focus = dpyinfo->w32_focus_frame;
 
@@ -3077,8 +3111,10 @@ w32_new_focus_frame (struct w32_display_info *dpyinfo, struct frame *frame)
       if (old_focus && old_focus->auto_lower)
 	w32_lower_frame (old_focus);
 
-      if (dpyinfo->w32_focus_frame && dpyinfo->w32_focus_frame->auto_raise)
-	dpyinfo->w32_pending_autoraise_frame = dpyinfo->w32_focus_frame;
+      if (dpyinfo->w32_focus_frame
+	  && dpyinfo->w32_focus_frame->auto_raise)
+	dpyinfo->w32_pending_autoraise_frame
+	  = dpyinfo->w32_focus_frame;
       else
 	dpyinfo->w32_pending_autoraise_frame = NULL;
     }
@@ -3086,24 +3122,24 @@ w32_new_focus_frame (struct w32_display_info *dpyinfo, struct frame *frame)
   w32_frame_rehighlight_1 (dpyinfo);
 }
 
-
 /* Handle FocusIn and FocusOut state changes for FRAME.
    If FRAME has focus and there exists more than one frame, puts
    a FOCUS_IN_EVENT into *BUFP.  */
 
 static void
-w32_focus_changed (int type, int state, struct w32_display_info *dpyinfo,
-		 struct frame *frame, struct input_event *bufp)
+w32_focus_changed (int type, int state,
+		   struct w32_display_info *dpyinfo,
+		   struct frame *frame, struct input_event *bufp)
 {
   if (type == WM_SETFOCUS)
     {
       if (dpyinfo->w32_focus_event_frame != frame)
-        {
-          w32_new_focus_frame (dpyinfo, frame);
-          dpyinfo->w32_focus_event_frame = frame;
-          bufp->kind = FOCUS_IN_EVENT;
-          XSETFRAME (bufp->frame_or_window, frame);
-        }
+	{
+	  w32_new_focus_frame (dpyinfo, frame);
+	  dpyinfo->w32_focus_event_frame = frame;
+	  bufp->kind = FOCUS_IN_EVENT;
+	  XSETFRAME (bufp->frame_or_window, frame);
+	}
 
       frame->output_data.x->focus_state |= state;
 
@@ -3114,43 +3150,43 @@ w32_focus_changed (int type, int state, struct w32_display_info *dpyinfo,
       frame->output_data.x->focus_state &= ~state;
 
       if (dpyinfo->w32_focus_event_frame == frame)
-        {
-          dpyinfo->w32_focus_event_frame = 0;
-          w32_new_focus_frame (dpyinfo, 0);
+	{
+	  dpyinfo->w32_focus_event_frame = 0;
+	  w32_new_focus_frame (dpyinfo, 0);
 
-          bufp->kind = FOCUS_OUT_EVENT;
-          XSETFRAME (bufp->frame_or_window, frame);
-      }
+	  bufp->kind = FOCUS_OUT_EVENT;
+	  XSETFRAME (bufp->frame_or_window, frame);
+	}
 
       /* TODO: IME focus?  */
     }
 }
 
-
-/* The focus may have changed.  Figure out if it is a real focus change,
-   by checking both FocusIn/Out and Enter/LeaveNotify events.
+/* The focus may have changed.  Figure out if it is a real focus
+   change, by checking both FocusIn/Out and Enter/LeaveNotify events.
 
    Returns FOCUS_IN_EVENT event in *BUFP. */
 
 static void
-w32_detect_focus_change (struct w32_display_info *dpyinfo, W32Msg *event,
-			 struct input_event *bufp)
+w32_detect_focus_change (struct w32_display_info *dpyinfo,
+			 W32Msg *event, struct input_event *bufp)
 {
   struct frame *frame;
 
   frame = w32_window_to_frame (dpyinfo, event->msg.hwnd);
-  if (! frame)
+  if (!frame)
     return;
 
-  /* On w32, this is only called from focus events, so no switch needed.  */
+  /* On w32, this is only called from focus events, so no switch
+   * needed.  */
   w32_focus_changed (event->msg.message,
-                     (event->msg.message == WM_KILLFOCUS ?
-                      FOCUS_IMPLICIT : FOCUS_EXPLICIT),
-                     dpyinfo, frame, bufp);
+		     (event->msg.message == WM_KILLFOCUS
+			? FOCUS_IMPLICIT
+			: FOCUS_EXPLICIT),
+		     dpyinfo, frame, bufp);
 }
 
-
-#if 0	/* unused */
+#if 0 /* unused */
 /* Handle an event saying the mouse has moved out of an Emacs frame.  */
 
 static void
@@ -3164,14 +3200,14 @@ w32_mouse_leave (struct w32_display_info *dpyinfo)
    another frame (this happens when a frame uses a surrogate
    mini-buffer frame).  Shift the highlight as appropriate.
 
-   The FRAME argument doesn't necessarily have anything to do with which
-   frame is being highlighted or un-highlighted; we only use it to find
-   the appropriate X display info.  */
+   The FRAME argument doesn't necessarily have anything to do with
+   which frame is being highlighted or un-highlighted; we only use it
+   to find the appropriate X display info.  */
 
 static void
 w32_frame_rehighlight (struct frame *frame)
 {
-  if (! FRAME_W32_P (frame))
+  if (!FRAME_W32_P (frame))
     return;
   w32_frame_rehighlight_1 (FRAME_DISPLAY_INFO (frame));
 }
@@ -3185,9 +3221,9 @@ w32_frame_rehighlight_1 (struct w32_display_info *dpyinfo)
     {
       dpyinfo->highlight_frame
 	= ((FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame)))
-	   ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame))
-	   : dpyinfo->w32_focus_frame);
-      if (! FRAME_LIVE_P (dpyinfo->highlight_frame))
+	     ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->w32_focus_frame))
+	     : dpyinfo->w32_focus_frame);
+      if (!FRAME_LIVE_P (dpyinfo->highlight_frame))
 	{
 	  fset_focus_frame (dpyinfo->w32_focus_frame, Qnil);
 	  dpyinfo->highlight_frame = dpyinfo->w32_focus_frame;
@@ -3204,7 +3240,7 @@ w32_frame_rehighlight_1 (struct w32_display_info *dpyinfo)
 	w32_frame_highlight (dpyinfo->highlight_frame);
     }
 }
-\f
+
 /* Keyboard processing - modifier keys, etc. */
 
 /* Convert a keysym to its name.  */
@@ -3233,14 +3269,14 @@ codepage_for_locale (LCID locale)
     return CP_ACP;
 }
 
-\f
 /* Mouse clicks and mouse movement.  Rah.  */
 
-/* Parse a button MESSAGE. The button index is returned in PBUTTON, and
-   the state in PUP. XBUTTON provides extra information for extended mouse
-   button messages. Returns FALSE if unable to parse the message.  */
+/* Parse a button MESSAGE. The button index is returned in PBUTTON,
+   and the state in PUP. XBUTTON provides extra information for
+   extended mouse button messages. Returns FALSE if unable to parse
+   the message.  */
 BOOL
-parse_button (int message, int xbutton, int * pbutton, int * pup)
+parse_button (int message, int xbutton, int *pbutton, int *pup)
 {
   int button = 0;
   int up = 0;
@@ -3295,13 +3331,14 @@ parse_button (int message, int xbutton, int * pbutton, int * pup)
       return (FALSE);
     }
 
-  if (pup) *pup = up;
-  if (pbutton) *pbutton = button;
+  if (pup)
+    *pup = up;
+  if (pbutton)
+    *pbutton = button;
 
   return (TRUE);
 }
 
-
 /* Prepare a mouse-event in *RESULT for placement in the input queue.
 
    If the event is a button press, then note that we have grabbed
@@ -3309,23 +3346,21 @@ parse_button (int message, int xbutton, int * pbutton, int * pup)
 
 static Lisp_Object
 w32_construct_mouse_click (struct input_event *result, W32Msg *msg,
-                           struct frame *f)
+			   struct frame *f)
 {
   int button = 0;
   int up = 0;
 
-  parse_button (msg->msg.message, HIWORD (msg->msg.wParam),
-		&button, &up);
+  parse_button (msg->msg.message, HIWORD (msg->msg.wParam), &button,
+		&up);
 
   /* Make the event type NO_EVENT; we'll change that when we decide
      otherwise.  */
   result->kind = MOUSE_CLICK_EVENT;
   result->code = button;
   result->timestamp = msg->msg.time;
-  result->modifiers = (msg->dwModifiers
-		       | (up
-			  ? up_modifier
-			  : down_modifier));
+  result->modifiers
+    = (msg->dwModifiers | (up ? up_modifier : down_modifier));
 
   XSETINT (result->x, LOWORD (msg->msg.lParam));
   XSETINT (result->y, HIWORD (msg->msg.lParam));
@@ -3336,14 +3371,15 @@ w32_construct_mouse_click (struct input_event *result, W32Msg *msg,
 
 static Lisp_Object
 w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg,
-                           struct frame *f)
+			   struct frame *f)
 {
   POINT p;
   int delta;
   static int sum_delta_y = 0;
 
-  result->kind = msg->msg.message == WM_MOUSEHWHEEL ? HORIZ_WHEEL_EVENT
-                                                    : WHEEL_EVENT;
+  result->kind = msg->msg.message == WM_MOUSEHWHEEL
+		   ? HORIZ_WHEEL_EVENT
+		   : WHEEL_EVENT;
   result->code = 0;
   result->timestamp = msg->msg.time;
   result->arg = Qnil;
@@ -3376,20 +3412,22 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg,
 	 the height of the window under the mouse pointer.  */
       if (w32_wheel_scroll_lines == UINT_MAX)
 	{
-	  Lisp_Object window = window_from_coordinates (f, p.x, p.y, NULL,
-							false, false, false);
+	  Lisp_Object window
+	    = window_from_coordinates (f, p.x, p.y, NULL, false,
+				       false, false);
 	  if (!WINDOWP (window))
 	    {
 	      result->kind = NO_EVENT;
 	      return Qnil;
 	    }
 	  scroll_unit = XWINDOW (window)->pixel_height;
-	  if (scroll_unit < 1)	/* paranoia */
+	  if (scroll_unit < 1) /* paranoia */
 	    scroll_unit = 1;
 	}
 
-      /* If mwheel-coalesce-scroll-events is non-nil, report a wheel event
-	 only when we have accumulated enough delta's for WHEEL_DELTA.  */
+      /* If mwheel-coalesce-scroll-events is non-nil, report a wheel
+	 event only when we have accumulated enough delta's for
+	 WHEEL_DELTA.  */
       if (mwheel_coalesce_scroll_events)
 	{
 	  /* If the user changed the direction, reset the accumulated
@@ -3397,31 +3435,32 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg,
 	  if ((delta > 0) != (sum_delta_y > 0))
 	    sum_delta_y = 0;
 	  sum_delta_y += delta;
-	  /* https://docs.microsoft.com/en-us/previous-versions/ms997498(v=msdn.10) */
+	  /* https://docs.microsoft.com/en-us/previous-versions/ms997498(v=msdn.10)
+	   */
 	  if (eabs (sum_delta_y) < WHEEL_DELTA)
 	    {
 	      result->kind = NO_EVENT;
 	      return Qnil;
 	    }
-	  value_to_report =
-	    ((double)FRAME_LINE_HEIGHT (f) * scroll_unit)
-	    / ((double)WHEEL_DELTA / sum_delta_y);
+	  value_to_report
+	    = ((double) FRAME_LINE_HEIGHT (f) * scroll_unit)
+	      / ((double) WHEEL_DELTA / sum_delta_y);
 	  sum_delta_y = 0;
 	}
       else
-	value_to_report =
-	    ((double)FRAME_LINE_HEIGHT (f) * scroll_unit)
-	    / ((double)WHEEL_DELTA / delta);
+	value_to_report
+	  = ((double) FRAME_LINE_HEIGHT (f) * scroll_unit)
+	    / ((double) WHEEL_DELTA / delta);
       nlines = value_to_report / FRAME_LINE_HEIGHT (f) + 0.5;
-      result->arg = list3 (make_fixnum (eabs (nlines)),
-			   make_float (0.0),
-			   make_float (value_to_report));
+      result->arg
+	= list3 (make_fixnum (eabs (nlines)), make_float (0.0),
+		 make_float (value_to_report));
     }
 
   /* The up and down modifiers indicate if the wheel was rotated up or
      down based on WHEEL_DELTA value.  */
   result->modifiers = (msg->dwModifiers
-                       | ((delta < 0 ) ? down_modifier : up_modifier));
+		       | ((delta < 0) ? down_modifier : up_modifier));
 
   /* For the case that F's w32 window is not msg->msg.hwnd.  */
   ScreenToClient (FRAME_W32_WINDOW (f), &p);
@@ -3433,7 +3472,7 @@ w32_construct_mouse_wheel (struct input_event *result, W32Msg *msg,
 
 static Lisp_Object
 w32_construct_drag_n_drop (struct input_event *result, W32Msg *msg,
-                           struct frame *f)
+			   struct frame *f)
 {
   Lisp_Object files;
   Lisp_Object frame;
@@ -3483,7 +3522,8 @@ w32_construct_drag_n_drop (struct input_event *result, W32Msg *msg,
 	  files = Fcons (from_unicode_buffer (name_w), files);
 #else
 	  filename_from_utf16 (name_w, file);
-	  files = Fcons (DECODE_FILE (build_unibyte_string (file)), files);
+	  files = Fcons (DECODE_FILE (build_unibyte_string (file)),
+			 files);
 #endif /* NTGUI_UNICODE */
 	}
 #ifndef NTGUI_UNICODE
@@ -3493,7 +3533,8 @@ w32_construct_drag_n_drop (struct input_event *result, W32Msg *msg,
 	  if (DragQueryFileA (hdrop, i, name_a, MAX_PATH) == 0)
 	    continue;
 	  filename_from_ansi (name_a, file);
-	  files = Fcons (DECODE_FILE (build_unibyte_string (file)), files);
+	  files = Fcons (DECODE_FILE (build_unibyte_string (file)),
+			 files);
 	}
 #endif
     }
@@ -3506,7 +3547,6 @@ w32_construct_drag_n_drop (struct input_event *result, W32Msg *msg,
   return Qnil;
 }
 
-\f
 #if HAVE_W32NOTIFY
 
 /* File event notifications (see w32notify.c).  */
@@ -3536,7 +3576,7 @@ w32_lispy_file_action (DWORD action)
       break;
     default:
       {
-	char buf[sizeof(unknown_fmt) - 1 + INT_STRLEN_BOUND (DWORD)];
+	char buf[sizeof (unknown_fmt) - 1 + INT_STRLEN_BOUND (DWORD)];
 
 	sprintf (buf, unknown_fmt, action);
 	retval = intern (buf);
@@ -3547,13 +3587,13 @@ w32_lispy_file_action (DWORD action)
   return retval;
 }
 
-#ifdef WINDOWSNT
+# ifdef WINDOWSNT
 /* Put file notifications into the Emacs input event queue.  This
    function runs when the WM_EMACS_FILENOTIFY message arrives from a
    watcher thread.  */
 static void
 w32_queue_notifications (struct input_event *event, W32Msg *msg,
-                         struct frame *f, int *evcount)
+			 struct frame *f, int *evcount)
 {
   struct notifications_set *ns = NULL;
   Lisp_Object frame;
@@ -3582,37 +3622,38 @@ w32_queue_notifications (struct input_event *event, W32Msg *msg,
 	}
       else
 	done = 1;
-      leave_crit();
+      leave_crit ();
 
       if (ns)
 	{
 	  BYTE *p = ns->notifications;
-	  FILE_NOTIFY_INFORMATION *fni = (PFILE_NOTIFY_INFORMATION)p;
+	  FILE_NOTIFY_INFORMATION *fni = (PFILE_NOTIFY_INFORMATION) p;
 	  const DWORD min_size
-	    = offsetof (FILE_NOTIFY_INFORMATION, FileName) + sizeof(wchar_t);
+	    = offsetof (FILE_NOTIFY_INFORMATION, FileName)
+	      + sizeof (wchar_t);
 	  DWORD info_size = ns->size;
 	  Lisp_Object cs = Qutf_16le;
 	  Lisp_Object obj = w32_get_watch_object (ns->desc);
 
 	  /* notifications size could be zero when the buffer of
 	     notifications overflowed on the OS level, or when the
-	     directory being watched was itself deleted.  Do nothing in
-	     that case.  */
-	  if (info_size
-	      && !NILP (obj) && CONSP (obj))
+	     directory being watched was itself deleted.  Do nothing
+	     in that case.  */
+	  if (info_size && !NILP (obj) && CONSP (obj))
 	    {
 	      Lisp_Object callback = XCDR (obj);
 
 	      while (info_size >= min_size)
 		{
 		  Lisp_Object utf_16_fn
-		    = make_unibyte_string ((char *)fni->FileName,
+		    = make_unibyte_string ((char *) fni->FileName,
 					   fni->FileNameLength);
 		  /* Note: mule-conf is preloaded, so utf-16le must
 		     already be defined at this point.  */
 		  Lisp_Object fname
 		    = code_convert_string_norecord (utf_16_fn, cs, 0);
-		  Lisp_Object action = w32_lispy_file_action (fni->Action);
+		  Lisp_Object action
+		    = w32_lispy_file_action (fni->Action);
 
 		  event->kind = FILE_NOTIFY_EVENT;
 		  event->timestamp = msg->msg.time;
@@ -3625,7 +3666,7 @@ w32_queue_notifications (struct input_event *event, W32Msg *msg,
 		  if (!fni->NextEntryOffset)
 		    break;
 		  p += fni->NextEntryOffset;
-		  fni = (PFILE_NOTIFY_INFORMATION)p;
+		  fni = (PFILE_NOTIFY_INFORMATION) p;
 		  info_size -= fni->NextEntryOffset;
 		}
 	    }
@@ -3634,20 +3675,21 @@ w32_queue_notifications (struct input_event *event, W32Msg *msg,
 	  xfree (ns);
 	}
     }
-  /* We've stuffed all the events ourselves, so w32_read_socket shouldn't.  */
+  /* We've stuffed all the events ourselves, so w32_read_socket
+   * shouldn't.  */
   event->kind = NO_EVENT;
 }
-#endif	/* WINDOWSNT */
+# endif /* WINDOWSNT */
 #endif	/* HAVE_W32NOTIFY */
 
-\f
 /* Function to report a mouse movement to the mainstream Emacs code.
    The input handler calls this.
 
    We have received a mouse movement event, which is given in *event.
    If the mouse is over a different glyph than it was last time, tell
    the mainstream emacs code by setting mouse_moved.  If not, ask for
-   another motion event, so we can check again the next time it moves.  */
+   another motion event, so we can check again the next time it moves.
+ */
 
 static int
 w32_note_mouse_movement (struct frame *frame, MSG *msg)
@@ -3675,11 +3717,12 @@ w32_note_mouse_movement (struct frame *frame, MSG *msg)
       return 1;
     }
 
-  /* Has the mouse moved off the glyph it was on at the last sighting?  */
+  /* Has the mouse moved off the glyph it was on at the last sighting?
+   */
   r = &dpyinfo->last_mouse_glyph;
-  if (frame != dpyinfo->last_mouse_glyph_frame
-      || mouse_x < r->left || mouse_x >= r->right
-      || mouse_y < r->top  || mouse_y >= r->bottom)
+  if (frame != dpyinfo->last_mouse_glyph_frame || mouse_x < r->left
+      || mouse_x >= r->right || mouse_y < r->top
+      || mouse_y >= r->bottom)
     {
       frame->mouse_moved = true;
       dpyinfo->last_mouse_scroll_bar = NULL;
@@ -3696,20 +3739,19 @@ w32_note_mouse_movement (struct frame *frame, MSG *msg)
   return 0;
 }
 
-\f
 /************************************************************************
 			      Mouse Face
  ************************************************************************/
 
 static struct scroll_bar *w32_window_to_scroll_bar (Window, int);
-static void w32_scroll_bar_report_motion (struct frame **, Lisp_Object *,
-                                          enum scroll_bar_part *,
-                                          Lisp_Object *, Lisp_Object *,
-                                          Time *);
-static void w32_horizontal_scroll_bar_report_motion (struct frame **, Lisp_Object *,
-                                                     enum scroll_bar_part *,
-                                                     Lisp_Object *, Lisp_Object *,
-                                                     Time *);
+static void w32_scroll_bar_report_motion (struct frame **,
+					  Lisp_Object *,
+					  enum scroll_bar_part *,
+					  Lisp_Object *,
+					  Lisp_Object *, Time *);
+static void w32_horizontal_scroll_bar_report_motion (
+  struct frame **, Lisp_Object *, enum scroll_bar_part *,
+  Lisp_Object *, Lisp_Object *, Time *);
 static void
 w32_define_cursor (Window window, Emacs_Cursor cursor)
 {
@@ -3719,27 +3761,29 @@ w32_define_cursor (Window window, Emacs_Cursor cursor)
 /* Return the current position of the mouse.
    *fp should be a frame which indicates which display to ask about.
 
-   If the mouse movement started in a scroll bar, set *fp, *bar_window,
-   and *part to the frame, window, and scroll bar part that the mouse
-   is over.  Set *x and *y to the portion and whole of the mouse's
-   position on the scroll bar.
+   If the mouse movement started in a scroll bar, set *fp,
+   *bar_window, and *part to the frame, window, and scroll bar part
+   that the mouse is over.  Set *x and *y to the portion and whole of
+   the mouse's position on the scroll bar.
 
    If the mouse movement started elsewhere, set *fp to the frame the
-   mouse is on, *bar_window to nil, and *x and *y to the character cell
-   the mouse is over.
+   mouse is on, *bar_window to nil, and *x and *y to the character
+   cell the mouse is over.
 
    Set *time to the server time-stamp for the time at which the mouse
    was at this position.
 
-   Don't store anything if we don't have a valid set of values to report.
+   Don't store anything if we don't have a valid set of values to
+   report.
 
    This clears the mouse_moved flag, so we can wait for the next mouse
    movement.  */
 
 static void
-w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
-		    enum scroll_bar_part *part, Lisp_Object *x, Lisp_Object *y,
-		    Time *time)
+w32_mouse_position (struct frame **fp, int insist,
+		    Lisp_Object *bar_window,
+		    enum scroll_bar_part *part, Lisp_Object *x,
+		    Lisp_Object *y, Time *time)
 {
   struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp);
 
@@ -3750,9 +3794,11 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
       struct scroll_bar *bar = dpyinfo->last_mouse_scroll_bar;
 
       if (bar->horizontal)
-	w32_horizontal_scroll_bar_report_motion (fp, bar_window, part, x, y, time);
+	w32_horizontal_scroll_bar_report_motion (fp, bar_window, part,
+						 x, y, time);
       else
-	w32_scroll_bar_report_motion (fp, bar_window, part, x, y, time);
+	w32_scroll_bar_report_motion (fp, bar_window, part, x, y,
+				      time);
     }
   else
     {
@@ -3760,9 +3806,10 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
       Lisp_Object frame, tail;
       struct frame *f1 = NULL;
 
-      /* Clear the mouse-moved flag for every frame on this display.  */
+      /* Clear the mouse-moved flag for every frame on this display.
+       */
       FOR_EACH_FRAME (tail, frame)
-	XFRAME (frame)->mouse_moved = false;
+      XFRAME (frame)->mouse_moved = false;
 
       dpyinfo->last_mouse_scroll_bar = NULL;
 
@@ -3790,10 +3837,12 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
 
 		  if (cwfp)
 		    {
-		      struct frame *f2 = w32_window_to_frame (dpyinfo, cwfp);
+		      struct frame *f2
+			= w32_window_to_frame (dpyinfo, cwfp);
 
-		      /* If a child window was found, make sure that its
-			 frame is a child frame (Bug#26615, maybe).  */
+		      /* If a child window was found, make sure that
+			 its frame is a child frame (Bug#26615,
+			 maybe).  */
 		      if (f2 && FRAME_PARENT_FRAME (f2))
 			f1 = f2;
 		    }
@@ -3803,9 +3852,10 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
 
       if (!f1 || FRAME_TOOLTIP_P (f1))
 	/* Don't use a tooltip frame.  */
-	f1 = ((EQ (track_mouse, Qdropping) && gui_mouse_grabbed (dpyinfo))
-	      ? dpyinfo->last_mouse_frame
-	      : NULL);
+	f1 = ((EQ (track_mouse, Qdropping)
+	       && gui_mouse_grabbed (dpyinfo))
+		? dpyinfo->last_mouse_frame
+		: NULL);
 
       /* If not, is it one of our scroll bars?  */
       if (!f1)
@@ -3832,7 +3882,8 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
 
 	  dpyinfo = FRAME_DISPLAY_INFO (f1);
 	  ScreenToClient (FRAME_W32_WINDOW (f1), &pt);
-	  remember_mouse_glyph (f1, pt.x, pt.y, &dpyinfo->last_mouse_glyph);
+	  remember_mouse_glyph (f1, pt.x, pt.y,
+				&dpyinfo->last_mouse_glyph);
 	  dpyinfo->last_mouse_glyph_frame = f1;
 
 	  *bar_window = Qnil;
@@ -3847,7 +3898,6 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
   unblock_input ();
 }
 
-\f
 /***********************************************************************
 			       Tab-bars
  ***********************************************************************/
@@ -3857,7 +3907,8 @@ w32_mouse_position (struct frame **fp, int insist, Lisp_Object *bar_window,
    or ButtonRelease.  */
 
 static Lisp_Object
-w32_handle_tab_bar_click (struct frame *f, struct input_event *button_event)
+w32_handle_tab_bar_click (struct frame *f,
+			  struct input_event *button_event)
 {
   int x = XFIXNAT (button_event->x);
   int y = XFIXNAT (button_event->y);
@@ -3866,11 +3917,10 @@ w32_handle_tab_bar_click (struct frame *f, struct input_event *button_event)
     return handle_tab_bar_click (f, x, y, 1, 0);
   else
     return handle_tab_bar_click (f, x, y, 0,
-				 button_event->modifiers & ~up_modifier);
+				 button_event->modifiers
+				   & ~up_modifier);
 }
 
-
-\f
 /***********************************************************************
 			       Tool-bars
  ***********************************************************************/
@@ -3880,7 +3930,8 @@ w32_handle_tab_bar_click (struct frame *f, struct input_event *button_event)
    or ButtonRelease.  */
 
 static void
-w32_handle_tool_bar_click (struct frame *f, struct input_event *button_event)
+w32_handle_tool_bar_click (struct frame *f,
+			   struct input_event *button_event)
 {
   int x = XFIXNAT (button_event->x);
   int y = XFIXNAT (button_event->y);
@@ -3892,8 +3943,6 @@ w32_handle_tool_bar_click (struct frame *f, struct input_event *button_event)
 			   button_event->modifiers & ~up_modifier);
 }
 
-
-\f
 /***********************************************************************
 			       Scroll bars
  ***********************************************************************/
@@ -3910,44 +3959,42 @@ w32_window_to_scroll_bar (Window window_id, int type)
   Lisp_Object tail, frame;
 
   FOR_EACH_FRAME (tail, frame)
-    {
-      Lisp_Object bar, condemned;
-
-      /* Scan this frame's scroll bar list for a scroll bar with the
-	 right window ID.  */
-      condemned = FRAME_CONDEMNED_SCROLL_BARS (XFRAME (frame));
-      for (bar = FRAME_SCROLL_BARS (XFRAME (frame));
-	   /* This trick allows us to search both the ordinary and
-	      condemned scroll bar lists with one loop.  */
-	   ! NILP (bar) || (bar = condemned,
-			       condemned = Qnil,
-			       ! NILP (bar));
-	   bar = XSCROLL_BAR (bar)->next)
-	if (SCROLL_BAR_W32_WINDOW (XSCROLL_BAR (bar)) == window_id
-	    && (type == 2
-		|| (type == 1 && XSCROLL_BAR (bar)->horizontal)
-		|| (type == 0 && !XSCROLL_BAR (bar)->horizontal)))
-	  return XSCROLL_BAR (bar);
-    }
+  {
+    Lisp_Object bar, condemned;
+
+    /* Scan this frame's scroll bar list for a scroll bar with the
+       right window ID.  */
+    condemned = FRAME_CONDEMNED_SCROLL_BARS (XFRAME (frame));
+    for (bar = FRAME_SCROLL_BARS (XFRAME (frame));
+	 /* This trick allows us to search both the ordinary and
+	    condemned scroll bar lists with one loop.  */
+	 !NILP (bar)
+	 || (bar = condemned, condemned = Qnil, !NILP (bar));
+	 bar = XSCROLL_BAR (bar)->next)
+      if (SCROLL_BAR_W32_WINDOW (XSCROLL_BAR (bar)) == window_id
+	  && (type == 2
+	      || (type == 1 && XSCROLL_BAR (bar)->horizontal)
+	      || (type == 0 && !XSCROLL_BAR (bar)->horizontal)))
+	return XSCROLL_BAR (bar);
+  }
 
   return 0;
 }
 
-
-\f
-/* Set the thumb size and position of vertical scroll bar BAR.  We are currently
-   displaying PORTION out of a whole WHOLE, and our position POSITION.  */
+/* Set the thumb size and position of vertical scroll bar BAR.  We are
+   currently displaying PORTION out of a whole WHOLE, and our position
+   POSITION.  */
 
 static void
-w32_set_scroll_bar_thumb (struct scroll_bar *bar,
-			  int portion, int position, int whole)
+w32_set_scroll_bar_thumb (struct scroll_bar *bar, int portion,
+			  int position, int whole)
 {
   Window w = SCROLL_BAR_W32_WINDOW (bar);
   /* We use the whole scroll-bar height in the calculations below, to
      avoid strange effects like scrolling backwards when just clicking
      on the handle (without moving it).  */
   double range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, bar->height)
-                 + VERTICAL_SCROLL_BAR_MIN_HANDLE;
+		 + VERTICAL_SCROLL_BAR_MIN_HANDLE;
   int sb_page, sb_pos;
   BOOL draggingp = bar->dragging ? TRUE : FALSE;
   SCROLLINFO si;
@@ -3976,8 +4023,8 @@ w32_set_scroll_bar_thumb (struct scroll_bar *bar,
   if (whole)
     {
       /* Position scroll bar at rock bottom if the bottom of the
-         buffer is visible. This avoids shrinking the thumb away
-         to nothing if it is held at the bottom of the buffer.  */
+	 buffer is visible. This avoids shrinking the thumb away
+	 to nothing if it is held at the bottom of the buffer.  */
       if (position + portion >= whole && !draggingp)
 	{
 	  sb_page = range * (whole - position) / whole;
@@ -3986,7 +4033,8 @@ w32_set_scroll_bar_thumb (struct scroll_bar *bar,
       else
 	{
 	  sb_pos = position * range / whole;
-	  sb_page = (min (portion, (whole - position)) * range) / whole;
+	  sb_page
+	    = (min (portion, (whole - position)) * range) / whole;
 	}
     }
   else
@@ -4009,12 +4057,14 @@ w32_set_scroll_bar_thumb (struct scroll_bar *bar,
   unblock_input ();
 }
 
-/* Set the thumb size and position of horizontal scroll bar BAR.  We are currently
-   displaying PORTION out of a whole WHOLE, and our position POSITION.  */
+/* Set the thumb size and position of horizontal scroll bar BAR.  We
+   are currently displaying PORTION out of a whole WHOLE, and our
+   position POSITION.  */
 
 static void
 w32_set_horizontal_scroll_bar_thumb (struct scroll_bar *bar,
-				     int portion, int position, int whole)
+				     int portion, int position,
+				     int whole)
 {
   Window w = SCROLL_BAR_W32_WINDOW (bar);
   SCROLLINFO si;
@@ -4025,8 +4075,8 @@ w32_set_horizontal_scroll_bar_thumb (struct scroll_bar *bar,
   si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
   si.nMin = 0;
   si.nMax = whole;
-  /* Allow nPage to be one larger than nPos so we don't allow the scrolling
-     of an already fully visible buffer.  */
+  /* Allow nPage to be one larger than nPos so we don't allow the
+     scrolling of an already fully visible buffer.  */
   si.nPage = min (portion, si.nMax) + 1;
   si.nPos = min (position, si.nMax);
   SetScrollInfo (w, SB_CTL, &si, TRUE);
@@ -4034,13 +4084,12 @@ w32_set_horizontal_scroll_bar_thumb (struct scroll_bar *bar,
   unblock_input ();
 }
 
-\f
 /************************************************************************
 			 Scroll bars, general
  ************************************************************************/
 
 static HWND
-my_create_vscrollbar (struct frame * f, struct scroll_bar * bar)
+my_create_vscrollbar (struct frame *f, struct scroll_bar *bar)
 {
   return (HWND) SendMessage (FRAME_W32_WINDOW (f),
 			     WM_EMACS_CREATEVSCROLLBAR, (WPARAM) f,
@@ -4048,7 +4097,7 @@ my_create_vscrollbar (struct frame * f, struct scroll_bar * bar)
 }
 
 static HWND
-my_create_hscrollbar (struct frame * f, struct scroll_bar * bar)
+my_create_hscrollbar (struct frame *f, struct scroll_bar *bar)
 {
   return (HWND) SendMessage (FRAME_W32_WINDOW (f),
 			     WM_EMACS_CREATEHSCROLLBAR, (WPARAM) f,
@@ -4061,16 +4110,17 @@ my_create_hscrollbar (struct frame * f, struct scroll_bar * bar)
 my_show_window (struct frame *f, HWND hwnd, int how)
 {
 #ifndef ATTACH_THREADS
-  return SendMessageTimeout (FRAME_W32_WINDOW (f), WM_EMACS_SHOWWINDOW,
-			     (WPARAM) hwnd, (LPARAM) how, 0, 6000, NULL);
+  return SendMessageTimeout (FRAME_W32_WINDOW (f),
+			     WM_EMACS_SHOWWINDOW, (WPARAM) hwnd,
+			     (LPARAM) how, 0, 6000, NULL);
 #else
   return ShowWindow (hwnd, how);
 #endif
 }
 
 static void
-my_set_window_pos (HWND hwnd, HWND hwndAfter,
-		   int x, int y, int cx, int cy, UINT flags)
+my_set_window_pos (HWND hwnd, HWND hwndAfter, int x, int y, int cx,
+		   int cy, UINT flags)
 {
 #ifndef ATTACH_THREADS
   WINDOWPOS pos;
@@ -4103,9 +4153,8 @@ my_set_foreground_window (HWND hwnd)
 		      0, 6000, NULL);
 }
 
-
 static void
-my_destroy_window (struct frame * f, HWND hwnd)
+my_destroy_window (struct frame *f, HWND hwnd)
 {
   SendMessageTimeout (FRAME_W32_WINDOW (f), WM_EMACS_DESTROYWINDOW,
 		      (WPARAM) hwnd, 0, 0, 6000, NULL);
@@ -4114,8 +4163,8 @@ my_destroy_window (struct frame * f, HWND hwnd)
 static void
 my_bring_window_to_top (HWND hwnd)
 {
-  SendMessageTimeout (hwnd, WM_EMACS_BRINGTOTOP, (WPARAM) hwnd, 0,
-		      0, 6000, NULL);
+  SendMessageTimeout (hwnd, WM_EMACS_BRINGTOTOP, (WPARAM) hwnd, 0, 0,
+		      6000, NULL);
 }
 
 /* Create a scroll bar and return the scroll bar vector for it.  W is
@@ -4124,14 +4173,15 @@ my_bring_window_to_top (HWND hwnd)
    scroll bar. */
 
 static struct scroll_bar *
-w32_scroll_bar_create (struct window *w, int left, int top,
-                       int width, int height, bool horizontal)
+w32_scroll_bar_create (struct window *w, int left, int top, int width,
+		       int height, bool horizontal)
 {
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   HWND hwnd;
   SCROLLINFO si;
   struct scroll_bar *bar
-    = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, w32_widget_high, PVEC_OTHER);
+    = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, w32_widget_high,
+			     PVEC_OTHER);
   Lisp_Object barobj;
 
   block_input ();
@@ -4146,7 +4196,8 @@ w32_scroll_bar_create (struct window *w, int left, int top,
   bar->dragging = 0;
   bar->horizontal = horizontal;
 
-  /* Requires geometry to be set before call to create the real window */
+  /* Requires geometry to be set before call to create the real window
+   */
 
   if (horizontal)
     hwnd = my_create_hscrollbar (f, bar);
@@ -4158,10 +4209,10 @@ w32_scroll_bar_create (struct window *w, int left, int top,
   si.nMin = 0;
   if (horizontal)
     si.nMax = HORIZONTAL_SCROLL_BAR_LEFT_RANGE (f, width)
-      + HORIZONTAL_SCROLL_BAR_MIN_HANDLE;
+	      + HORIZONTAL_SCROLL_BAR_MIN_HANDLE;
   else
     si.nMax = VERTICAL_SCROLL_BAR_TOP_RANGE (f, height)
-      + VERTICAL_SCROLL_BAR_MIN_HANDLE;
+	      + VERTICAL_SCROLL_BAR_MIN_HANDLE;
   si.nPage = si.nMax;
   si.nPos = 0;
 
@@ -4174,7 +4225,7 @@ w32_scroll_bar_create (struct window *w, int left, int top,
   bar->prev = Qnil;
   XSETVECTOR (barobj, bar);
   fset_scroll_bars (f, barobj);
-  if (! NILP (bar->next))
+  if (!NILP (bar->next))
     XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
 
   unblock_input ();
@@ -4182,7 +4233,6 @@ w32_scroll_bar_create (struct window *w, int left, int top,
   return bar;
 }
 
-
 /* Destroy scroll bar BAR, and set its Emacs window's scroll bar to
    nil. */
 
@@ -4205,13 +4255,13 @@ w32_scroll_bar_remove (struct scroll_bar *bar)
   unblock_input ();
 }
 
-/* Set the handle of the vertical scroll bar for WINDOW to indicate that
-   we are displaying PORTION characters out of a total of WHOLE
+/* Set the handle of the vertical scroll bar for WINDOW to indicate
+   that we are displaying PORTION characters out of a total of WHOLE
    characters, starting at POSITION.  If WINDOW has no vertical scroll
    bar, create one.  */
 static void
-w32_set_vertical_scroll_bar (struct window *w,
-			     int portion, int whole, int position)
+w32_set_vertical_scroll_bar (struct window *w, int portion, int whole,
+			     int position)
 {
   struct frame *f = XFRAME (w->frame);
   Lisp_Object barobj;
@@ -4221,7 +4271,7 @@ w32_set_vertical_scroll_bar (struct window *w,
 
   /* Get window dimensions.  */
   window_box (w, ANY_AREA, 0, &window_y, 0, &window_height);
-  top  = window_y;
+  top = window_y;
   height = window_height;
 
   /* Compute the left edge and the width of the scroll bar area.  */
@@ -4241,7 +4291,8 @@ w32_set_vertical_scroll_bar (struct window *w,
 	}
       unblock_input ();
 
-      bar = w32_scroll_bar_create (w, left, top, width, height, false);
+      bar
+	= w32_scroll_bar_create (w, left, top, width, height, false);
     }
   else
     {
@@ -4252,57 +4303,58 @@ w32_set_vertical_scroll_bar (struct window *w,
       hwnd = SCROLL_BAR_W32_WINDOW (bar);
 
       /* If already correctly positioned, do nothing.  */
-      if (bar->left == left
-	  && bar->top == top
-	  && bar->width == width
+      if (bar->left == left && bar->top == top && bar->width == width
 	  && bar->height == height)
-        {
-          /* Redraw after clear_frame. */
-          if (!my_show_window (f, hwnd, SW_NORMAL))
-            InvalidateRect (hwnd, NULL, FALSE);
-        }
+	{
+	  /* Redraw after clear_frame. */
+	  if (!my_show_window (f, hwnd, SW_NORMAL))
+	    InvalidateRect (hwnd, NULL, FALSE);
+	}
       else
-        {
-          HDC hdc;
+	{
+	  HDC hdc;
 	  SCROLLINFO si;
 
-          block_input ();
+	  block_input ();
 	  if (width && height)
 	    {
 	      hdc = get_frame_dc (f);
-	      /* Since Windows scroll bars are smaller than the space reserved
-		 for them on the frame, we have to clear "under" them.  */
+	      /* Since Windows scroll bars are smaller than the space
+		 reserved for them on the frame, we have to clear
+		 "under" them.  */
 	      w32_clear_area (f, hdc, left, top, width, height);
 	      release_frame_dc (f, hdc);
 	      w32_clear_under_internal_border (f);
 	    }
-          /* Make sure scroll bar is "visible" before moving, to ensure the
-             area of the parent window now exposed will be refreshed.  */
-          my_show_window (f, hwnd, SW_HIDE);
-/**           MoveWindow (hwnd, left, top, width, max (height, 1), TRUE); **/
+	  /* Make sure scroll bar is "visible" before moving, to
+	     ensure the area of the parent window now exposed will be
+	     refreshed.  */
+	  my_show_window (f, hwnd, SW_HIDE);
+	  /**           MoveWindow (hwnd, left, top, width, max
+	   * (height, 1), TRUE); **/
 	  /* Try to not draw over child frames.  */
-	  SetWindowPos (hwnd, HWND_BOTTOM, left, top, width, max (height, 1),
-                        SWP_FRAMECHANGED);
+	  SetWindowPos (hwnd, HWND_BOTTOM, left, top, width,
+			max (height, 1), SWP_FRAMECHANGED);
 
 	  si.cbSize = sizeof (si);
 	  si.fMask = SIF_RANGE;
 	  si.nMin = 0;
 	  si.nMax = VERTICAL_SCROLL_BAR_TOP_RANGE (f, height)
-	    + VERTICAL_SCROLL_BAR_MIN_HANDLE;
+		    + VERTICAL_SCROLL_BAR_MIN_HANDLE;
 
 	  SetScrollInfo (hwnd, SB_CTL, &si, FALSE);
 
-          my_show_window (f, hwnd, SW_NORMAL);
-          /* InvalidateRect (w, NULL, FALSE);  */
+	  my_show_window (f, hwnd, SW_NORMAL);
+	  /* InvalidateRect (w, NULL, FALSE);  */
 
-          /* Remember new settings.  */
-          bar->left = left;
-          bar->top = top;
-          bar->width = width;
-          bar->height = height;
+	  /* Remember new settings.  */
+	  bar->left = left;
+	  bar->top = top;
+	  bar->width = width;
+	  bar->height = height;
 
-          unblock_input ();
-        }
+	  unblock_input ();
+	}
     }
   w32_set_scroll_bar_thumb (bar, portion, position, whole);
   XSETVECTOR (barobj, bar);
@@ -4311,11 +4363,11 @@ w32_set_vertical_scroll_bar (struct window *w,
 
 /* Set the handle of the horizontal scroll bar for WINDOW to indicate
    that we are displaying PORTION characters out of a total of WHOLE
-   characters, starting at POSITION.  If WINDOW has no horizontal scroll
-   bar, create one.  */
+   characters, starting at POSITION.  If WINDOW has no horizontal
+   scroll bar, create one.  */
 static void
-w32_set_horizontal_scroll_bar (struct window *w,
-			       int portion, int whole, int position)
+w32_set_horizontal_scroll_bar (struct window *w, int portion,
+			       int whole, int position)
 {
   struct frame *f = XFRAME (w->frame);
   Lisp_Object barobj;
@@ -4323,11 +4375,12 @@ w32_set_horizontal_scroll_bar (struct window *w,
   int top, height, left, width;
   int window_x, window_width;
   int clear_left = WINDOW_LEFT_EDGE_X (w);
-  int clear_width = WINDOW_PIXEL_WIDTH (w) - WINDOW_RIGHT_DIVIDER_WIDTH (w);
+  int clear_width
+    = WINDOW_PIXEL_WIDTH (w) - WINDOW_RIGHT_DIVIDER_WIDTH (w);
 
   /* Get window dimensions.  */
   window_box (w, ANY_AREA, &window_x, 0, &window_width, 0);
-  left  = window_x;
+  left = window_x;
   height = WINDOW_SCROLL_BAR_AREA_HEIGHT (w);
   width = window_width;
   top = WINDOW_SCROLL_BAR_AREA_Y (w);
@@ -4340,7 +4393,8 @@ w32_set_horizontal_scroll_bar (struct window *w,
       if (width > 0 && height > 0)
 	{
 	  hdc = get_frame_dc (f);
-	  w32_clear_area (f, hdc, clear_left, top, clear_width, height);
+	  w32_clear_area (f, hdc, clear_left, top, clear_width,
+			  height);
 	  release_frame_dc (f, hdc);
 	}
       unblock_input ();
@@ -4356,35 +4410,39 @@ w32_set_horizontal_scroll_bar (struct window *w,
       hwnd = SCROLL_BAR_W32_WINDOW (bar);
 
       /* If already correctly positioned, do nothing.  */
-      if (bar->left == left && bar->top == top
-	  && bar->width == width && bar->height == height)
-        {
-          /* Redraw after clear_frame. */
-          if (!my_show_window (f, hwnd, SW_NORMAL))
-            InvalidateRect (hwnd, NULL, FALSE);
-        }
+      if (bar->left == left && bar->top == top && bar->width == width
+	  && bar->height == height)
+	{
+	  /* Redraw after clear_frame. */
+	  if (!my_show_window (f, hwnd, SW_NORMAL))
+	    InvalidateRect (hwnd, NULL, FALSE);
+	}
       else
-        {
-          HDC hdc;
+	{
+	  HDC hdc;
 	  SCROLLINFO si;
 
-          block_input ();
+	  block_input ();
 	  if (width && height)
 	    {
 	      hdc = get_frame_dc (f);
-	      /* Since Windows scroll bars are smaller than the space reserved
-		 for them on the frame, we have to clear "under" them.  */
-	      w32_clear_area (f, hdc, clear_left, top, clear_width, height);
+	      /* Since Windows scroll bars are smaller than the space
+		 reserved for them on the frame, we have to clear
+		 "under" them.  */
+	      w32_clear_area (f, hdc, clear_left, top, clear_width,
+			      height);
 	      release_frame_dc (f, hdc);
 	      w32_clear_under_internal_border (f);
 	    }
-          /* Make sure scroll bar is "visible" before moving, to ensure the
-             area of the parent window now exposed will be refreshed.  */
-          my_show_window (f, hwnd, SW_HIDE);
-/**           MoveWindow (hwnd, left, top, width, max (height, 1), TRUE); **/
+	  /* Make sure scroll bar is "visible" before moving, to
+	     ensure the area of the parent window now exposed will be
+	     refreshed.  */
+	  my_show_window (f, hwnd, SW_HIDE);
+	  /**           MoveWindow (hwnd, left, top, width, max
+	   * (height, 1), TRUE); **/
 	  /* Try to not draw over child frames.  */
-	  SetWindowPos (hwnd, HWND_BOTTOM, left, top, max (width, 1), height,
-                        SWP_FRAMECHANGED);
+	  SetWindowPos (hwnd, HWND_BOTTOM, left, top, max (width, 1),
+			height, SWP_FRAMECHANGED);
 
 	  /* +++ SetScrollInfo +++ */
 	  si.cbSize = sizeof (si);
@@ -4395,17 +4453,17 @@ w32_set_horizontal_scroll_bar (struct window *w,
 	  si.nPos = min (position, si.nMax);
 	  SetScrollInfo (hwnd, SB_CTL, &si, FALSE);
 
-          my_show_window (f, hwnd, SW_NORMAL);
-          /* InvalidateRect (w, NULL, FALSE);  */
+	  my_show_window (f, hwnd, SW_NORMAL);
+	  /* InvalidateRect (w, NULL, FALSE);  */
 
-          /* Remember new settings.  */
-          bar->left = left;
-          bar->top = top;
-          bar->width = width;
-          bar->height = height;
+	  /* Remember new settings.  */
+	  bar->left = left;
+	  bar->top = top;
+	  bar->width = width;
+	  bar->height = height;
 
-          unblock_input ();
-        }
+	  unblock_input ();
+	}
     }
 
   w32_set_horizontal_scroll_bar_thumb (bar, portion, position, whole);
@@ -4413,18 +4471,18 @@ w32_set_horizontal_scroll_bar (struct window *w,
   wset_horizontal_scroll_bar (w, barobj);
 }
 
-
 /* The following three hooks are used when we're doing a thorough
    redisplay of the frame.  We don't explicitly know which scroll bars
    are going to be deleted, because keeping track of when windows go
    away is a real pain - "Can you say set-window-configuration, boys
    and girls?"  Instead, we just assert at the beginning of redisplay
-   that *all* scroll bars are to be removed, and then save a scroll bar
-   from the fiery pit when we actually redisplay its window.  */
+   that *all* scroll bars are to be removed, and then save a scroll
+   bar from the fiery pit when we actually redisplay its window.  */
 
 /* Arrange for all scroll bars on FRAME to be removed at the next call
    to `*judge_scroll_bars_hook'.  A scroll bar may be spared if
-   `*redeem_scroll_bar_hook' is applied to its window before the judgment.  */
+   `*redeem_scroll_bar_hook' is applied to its window before the
+   judgment.  */
 
 static void
 w32_condemn_scroll_bars (struct frame *frame)
@@ -4439,8 +4497,10 @@ w32_condemn_scroll_bars (struct frame *frame)
 	  while (!NILP (XSCROLL_BAR (last)->next))
 	    last = XSCROLL_BAR (last)->next;
 
-	  XSCROLL_BAR (last)->next = FRAME_CONDEMNED_SCROLL_BARS (frame);
-	  XSCROLL_BAR (FRAME_CONDEMNED_SCROLL_BARS (frame))->prev = last;
+	  XSCROLL_BAR (last)->next
+	    = FRAME_CONDEMNED_SCROLL_BARS (frame);
+	  XSCROLL_BAR (FRAME_CONDEMNED_SCROLL_BARS (frame))->prev
+	    = last;
 	}
 
       fset_condemned_scroll_bars (frame, FRAME_SCROLL_BARS (frame));
@@ -4448,7 +4508,6 @@ w32_condemn_scroll_bars (struct frame *frame)
     }
 }
 
-
 /* Un-mark WINDOW's scroll bar for deletion in this judgment cycle.
    Note that WINDOW isn't necessarily condemned at all.  */
 
@@ -4459,19 +4518,22 @@ w32_redeem_scroll_bar (struct window *w)
   Lisp_Object barobj;
   struct frame *f;
 
-  /* We can't redeem this window's scroll bar if it doesn't have one.  */
-  if (NILP (w->vertical_scroll_bar) && NILP (w->horizontal_scroll_bar))
+  /* We can't redeem this window's scroll bar if it doesn't have one.
+   */
+  if (NILP (w->vertical_scroll_bar)
+      && NILP (w->horizontal_scroll_bar))
     emacs_abort ();
 
-  if (!NILP (w->vertical_scroll_bar) && WINDOW_HAS_VERTICAL_SCROLL_BAR (w))
+  if (!NILP (w->vertical_scroll_bar)
+      && WINDOW_HAS_VERTICAL_SCROLL_BAR (w))
     {
       bar = XSCROLL_BAR (w->vertical_scroll_bar);
       /* Unlink it from the condemned list.  */
       f = XFRAME (WINDOW_FRAME (w));
       if (NILP (bar->prev))
 	{
-	  /* If the prev pointer is nil, it must be the first in one of
-	     the lists.  */
+	  /* If the prev pointer is nil, it must be the first in one
+	     of the lists.  */
 	  if (EQ (FRAME_SCROLL_BARS (f), w->vertical_scroll_bar))
 	    /* It's not condemned.  Everything's fine.  */
 	    goto horizontal;
@@ -4486,27 +4548,28 @@ w32_redeem_scroll_bar (struct window *w)
       else
 	XSCROLL_BAR (bar->prev)->next = bar->next;
 
-      if (! NILP (bar->next))
+      if (!NILP (bar->next))
 	XSCROLL_BAR (bar->next)->prev = bar->prev;
 
       bar->next = FRAME_SCROLL_BARS (f);
       bar->prev = Qnil;
       XSETVECTOR (barobj, bar);
       fset_scroll_bars (f, barobj);
-      if (! NILP (bar->next))
+      if (!NILP (bar->next))
 	XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
     }
 
- horizontal:
-  if (!NILP (w->horizontal_scroll_bar) && WINDOW_HAS_HORIZONTAL_SCROLL_BAR (w))
+horizontal:
+  if (!NILP (w->horizontal_scroll_bar)
+      && WINDOW_HAS_HORIZONTAL_SCROLL_BAR (w))
     {
       bar = XSCROLL_BAR (w->horizontal_scroll_bar);
       /* Unlink it from the condemned list.  */
       f = XFRAME (WINDOW_FRAME (w));
       if (NILP (bar->prev))
 	{
-	  /* If the prev pointer is nil, it must be the first in one of
-	     the lists.  */
+	  /* If the prev pointer is nil, it must be the first in one
+	     of the lists.  */
 	  if (EQ (FRAME_SCROLL_BARS (f), w->horizontal_scroll_bar))
 	    /* It's not condemned.  Everything's fine.  */
 	    return;
@@ -4521,14 +4584,14 @@ w32_redeem_scroll_bar (struct window *w)
       else
 	XSCROLL_BAR (bar->prev)->next = bar->next;
 
-      if (! NILP (bar->next))
+      if (!NILP (bar->next))
 	XSCROLL_BAR (bar->next)->prev = bar->prev;
 
       bar->next = FRAME_SCROLL_BARS (f);
       bar->prev = Qnil;
       XSETVECTOR (barobj, bar);
       fset_scroll_bars (f, barobj);
-      if (! NILP (bar->next))
+      if (!NILP (bar->next))
 	XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar);
     }
 }
@@ -4547,7 +4610,7 @@ w32_judge_scroll_bars (struct frame *f)
      more events on the hapless scroll bars.  */
   fset_condemned_scroll_bars (f, Qnil);
 
-  for (; ! NILP (bar); bar = next)
+  for (; !NILP (bar); bar = next)
     {
       struct scroll_bar *b = XSCROLL_BAR (bar);
 
@@ -4572,7 +4635,7 @@ w32_judge_scroll_bars (struct frame *f)
 w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
 			     struct input_event *emacs_event)
 {
-  if (! WINDOWP (bar->window))
+  if (!WINDOWP (bar->window))
     emacs_abort ();
 
   emacs_event->kind = SCROLL_BAR_CLICK_EVENT;
@@ -4603,8 +4666,9 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
       y = si.nPos;
 
     bar->dragging = 0;
-    struct frame *f;		/* Value is not used.  */
-    FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam;
+    struct frame *f; /* Value is not used.  */
+    FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos
+      = msg->msg.wParam;
 
     switch (sb_event)
       {
@@ -4640,17 +4704,18 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
 	  si.cbSize = sizeof (si);
 	  si.fMask = SIF_POS;
 	  si.nPos = y;
-	  /* Remember apparent position (we actually lag behind the real
-	     position, so don't set that directly).  */
+	  /* Remember apparent position (we actually lag behind the
+	     real position, so don't set that directly).  */
 	  last_scroll_bar_drag_pos = y;
 
-	  SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, FALSE);
+	  SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si,
+			 FALSE);
 	}
 	break;
       case SB_ENDSCROLL:
-	/* If this is the end of a drag sequence, then reset the scroll
-	   handle size to normal and do a final redraw.  Otherwise do
-	   nothing.  */
+	/* If this is the end of a drag sequence, then reset the
+	   scroll handle size to normal and do a final redraw.
+	   Otherwise do nothing.  */
 	if (dragging)
 	  {
 	    SCROLLINFO si;
@@ -4661,7 +4726,8 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
 	    si.fMask = SIF_PAGE | SIF_POS;
 	    si.nPage = end - start + VERTICAL_SCROLL_BAR_MIN_HANDLE;
 	    si.nPos = last_scroll_bar_drag_pos;
-	    SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, TRUE);
+	    SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si,
+			   TRUE);
 	  }
 	/* fall through */
 	FALLTHROUGH;
@@ -4685,10 +4751,11 @@ w32_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
    mark bits.  */
 
 static int
-w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
-					struct input_event *emacs_event)
+w32_horizontal_scroll_bar_handle_click (
+  struct scroll_bar *bar, W32Msg *msg,
+  struct input_event *emacs_event)
 {
-  if (! WINDOWP (bar->window))
+  if (!WINDOWP (bar->window))
     emacs_abort ();
 
   emacs_event->kind = HORIZONTAL_SCROLL_BAR_CLICK_EVENT;
@@ -4720,8 +4787,9 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
     y = si.nMax - si.nPage;
 
     bar->dragging = 0;
-    struct frame *f;		/* Value is not used.  */
-    FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam;
+    struct frame *f; /* Value is not used.  */
+    FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos
+      = msg->msg.wParam;
 
     switch (sb_event)
       {
@@ -4757,17 +4825,18 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
 	  si.cbSize = sizeof (si);
 	  si.fMask = SIF_POS;
 	  si.nPos = min (x, XWINDOW (bar->window)->hscroll_whole - 1);
-	  /* Remember apparent position (we actually lag behind the real
-	     position, so don't set that directly).  */
+	  /* Remember apparent position (we actually lag behind the
+	     real position, so don't set that directly).  */
 	  last_scroll_bar_drag_pos = x;
 
-	  SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, FALSE);
+	  SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si,
+			 FALSE);
 	}
 	break;
       case SB_ENDSCROLL:
-	/* If this is the end of a drag sequence, then reset the scroll
-	   handle size to normal and do a final redraw.  Otherwise do
-	   nothing.  */
+	/* If this is the end of a drag sequence, then reset the
+	   scroll handle size to normal and do a final redraw.
+	   Otherwise do nothing.  */
 	if (dragging)
 	  {
 	    SCROLLINFO si;
@@ -4776,7 +4845,8 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
 	    si.fMask = SIF_POS;
 	    si.nPos = min (last_scroll_bar_drag_pos,
 			   XWINDOW (bar->window)->hscroll_whole - 1);
-	    SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si, TRUE);
+	    SetScrollInfo (SCROLL_BAR_W32_WINDOW (bar), SB_CTL, &si,
+			   TRUE);
 	  }
 	/* fall through */
 	FALLTHROUGH;
@@ -4792,13 +4862,14 @@ w32_horizontal_scroll_bar_handle_click (struct scroll_bar *bar, W32Msg *msg,
   }
 }
 
-/* Return information to the user about the current position of the mouse
-   on the vertical scroll bar.  */
+/* Return information to the user about the current position of the
+   mouse on the vertical scroll bar.  */
 static void
-w32_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window,
-			    enum scroll_bar_part *part,
-			    Lisp_Object *x, Lisp_Object *y,
-			    Time *time)
+w32_scroll_bar_report_motion (struct frame **fp,
+			      Lisp_Object *bar_window,
+			      enum scroll_bar_part *part,
+			      Lisp_Object *x, Lisp_Object *y,
+			      Time *time)
 {
   struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp);
   struct scroll_bar *bar = dpyinfo->last_mouse_scroll_bar;
@@ -4842,13 +4913,14 @@ w32_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window,
   unblock_input ();
 }
 
-/* Return information to the user about the current position of the mouse
-   on the horizontal scroll bar.  */
+/* Return information to the user about the current position of the
+   mouse on the horizontal scroll bar.  */
 static void
-w32_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_window,
-                                         enum scroll_bar_part *part,
-                                         Lisp_Object *x, Lisp_Object *y,
-                                         Time *time)
+w32_horizontal_scroll_bar_report_motion (struct frame **fp,
+					 Lisp_Object *bar_window,
+					 enum scroll_bar_part *part,
+					 Lisp_Object *x,
+					 Lisp_Object *y, Time *time)
 {
   struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (*fp);
   struct scroll_bar *bar = dpyinfo->last_mouse_scroll_bar;
@@ -4881,7 +4953,6 @@ w32_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_win
   if (sb_event == SB_LINERIGHT)
     pos++;
 
-
   XSETINT (*y, pos);
   XSETINT (*x, left_range);
 
@@ -4893,7 +4964,6 @@ w32_horizontal_scroll_bar_report_motion (struct frame **fp, Lisp_Object *bar_win
   unblock_input ();
 }
 
-
 /* The screen has been cleared so we may have changed foreground or
    background colors, and the scroll bars may need to be redrawn.
    Clear out the scroll bars, and ask for expose events, so we can
@@ -4918,23 +4988,23 @@ w32_scroll_bar_clear (struct frame *f)
   if (FRAME_HAS_VERTICAL_SCROLL_BARS (f)
       || FRAME_HAS_HORIZONTAL_SCROLL_BARS (f))
     for (bar = FRAME_SCROLL_BARS (f); VECTORP (bar);
-         bar = XSCROLL_BAR (bar)->next)
+	 bar = XSCROLL_BAR (bar)->next)
       {
-        HWND window = SCROLL_BAR_W32_WINDOW (XSCROLL_BAR (bar));
-        HDC hdc = GetDC (window);
-        RECT rect;
+	HWND window = SCROLL_BAR_W32_WINDOW (XSCROLL_BAR (bar));
+	HDC hdc = GetDC (window);
+	RECT rect;
 
-        /* Hide scroll bar until ready to repaint.  x_scroll_bar_move
-           arranges to refresh the scroll bar if hidden.  */
-        my_show_window (f, window, SW_HIDE);
+	/* Hide scroll bar until ready to repaint.  x_scroll_bar_move
+	   arranges to refresh the scroll bar if hidden.  */
+	my_show_window (f, window, SW_HIDE);
 
-        GetClientRect (window, &rect);
-        select_palette (f, hdc);
-        w32_clear_rect (f, hdc, &rect);
+	GetClientRect (window, &rect);
+	select_palette (f, hdc);
+	w32_clear_rect (f, hdc, &rect);
 	w32_clear_under_internal_border (f);
-        deselect_palette (f, hdc);
+	deselect_palette (f, hdc);
 
-        ReleaseDC (window, hdc);
+	ReleaseDC (window, hdc);
       }
 }
 
@@ -4949,7 +5019,8 @@ w32_scroll_bar_clear (struct frame *f)
 /* Temporarily store lead byte of DBCS input sequences.  */
 static char dbcs_lead = 0;
 
-/* Temporarily store pending UTF-16 high surrogate unit and the modifiers.  */
+/* Temporarily store pending UTF-16 high surrogate unit and the
+ * modifiers.  */
 static unsigned short utf16_high;
 static DWORD utf16_high_modifiers;
 
@@ -4964,9 +5035,9 @@ w32_scroll_bar_clear (struct frame *f)
 static struct frame *
 mouse_or_wdesc_frame (struct w32_display_info *dpyinfo, HWND wdesc)
 {
-  struct frame *lm_f = (gui_mouse_grabbed (dpyinfo)
-			? dpyinfo->last_mouse_frame
-			: NULL);
+  struct frame *lm_f
+    = (gui_mouse_grabbed (dpyinfo) ? dpyinfo->last_mouse_frame
+				   : NULL);
 
   if (lm_f && !EQ (track_mouse, Qdropping))
     return lm_f;
@@ -4994,13 +5065,14 @@ mouse_or_wdesc_frame (struct w32_display_info *dpyinfo, HWND wdesc)
    We return the number of characters stored into the buffer,
    thus pretending to be `read'.
 
-   Some of these messages are reposted back to the message queue since the
-   system calls the windows proc directly in a context where we cannot return
-   the data nor can we guarantee the state we are in.  So if we dispatch them
-   we will get into an infinite loop.  To prevent this from ever happening we
-   will set a variable to indicate we are in the read_socket call and indicate
-   which message we are processing since the windows proc gets called
-   recursively with different messages by the system.
+   Some of these messages are reposted back to the message queue since
+   the system calls the windows proc directly in a context where we
+   cannot return the data nor can we guarantee the state we are in. So
+   if we dispatch them we will get into an infinite loop.  To prevent
+   this from ever happening we will set a variable to indicate we are
+   in the read_socket call and indicate which message we are
+   processing since the windows proc gets called recursively with
+   different messages by the system.
 */
 
 extern void menubar_selection_callback (struct frame *, void *);
@@ -5049,13 +5121,14 @@ w32_read_socket (struct terminal *terminal,
 
 	  if (f)
 	    {
-	      if (msg.rect.right == msg.rect.left ||
-		  msg.rect.bottom == msg.rect.top)
+	      if (msg.rect.right == msg.rect.left
+		  || msg.rect.bottom == msg.rect.top)
 		{
 		  /* We may get paint messages even though the client
 		     area is clipped - these are not expose events. */
-		  DebPrint (("clipped frame %p (%s) got WM_PAINT - ignored\n", f,
-			     SDATA (f->name)));
+		  DebPrint (
+		    ("clipped frame %p (%s) got WM_PAINT - ignored\n",
+		     f, SDATA (f->name)));
 		}
 	      else if (FRAME_VISIBLE_P (f) != 1)
 		{
@@ -5066,8 +5139,9 @@ w32_read_socket (struct terminal *terminal,
 		  SET_FRAME_ICONIFIED (f, false);
 		  SET_FRAME_GARBAGED (f);
 		  if (!f->output_data.w32->asked_for_visible)
-		    DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f,
-			       SDATA (f->name)));
+		    DebPrint (
+		      ("frame %p (%s) reexposed by WM_PAINT\n", f,
+		       SDATA (f->name)));
 
 		  /* WM_PAINT serves as MapNotify as well, so report
 		     visibility changes properly.  */
@@ -5082,13 +5156,15 @@ w32_read_socket (struct terminal *terminal,
 		  if (w32_disable_double_buffering
 		      || !FRAME_OUTPUT_DATA (f)->paint_buffer)
 		    {
-		      /* Erase background again for safety.  But don't do
-			 that if the frame's 'garbaged' flag is set, since
-			 in that case expose_frame will do nothing, and if
-			 the various redisplay flags happen to be unset,
-			 we are left with a blank frame.  */
-
-		      if (!FRAME_GARBAGED_P (f) || FRAME_PARENT_FRAME (f))
+		      /* Erase background again for safety.  But don't
+			 do that if the frame's 'garbaged' flag is
+			 set, since in that case expose_frame will do
+			 nothing, and if the various redisplay flags
+			 happen to be unset, we are left with a blank
+			 frame.  */
+
+		      if (!FRAME_GARBAGED_P (f)
+			  || FRAME_PARENT_FRAME (f))
 			{
 			  HDC hdc = get_frame_dc (f);
 
@@ -5096,9 +5172,7 @@ w32_read_socket (struct terminal *terminal,
 			  release_frame_dc (f, hdc);
 			}
 
-		      expose_frame (f,
-				    msg.rect.left,
-				    msg.rect.top,
+		      expose_frame (f, msg.rect.left, msg.rect.top,
 				    msg.rect.right - msg.rect.left,
 				    msg.rect.bottom - msg.rect.top);
 		      w32_clear_under_internal_border (f);
@@ -5115,8 +5189,8 @@ w32_read_socket (struct terminal *terminal,
 
 	  /* lParam contains the input language ID in its low 16 bits.
 	     Use it to update our record of the keyboard codepage.  */
-	  w32_keyboard_codepage = codepage_for_locale ((LCID)(msg.msg.lParam
-							      & 0xffff));
+	  w32_keyboard_codepage
+	    = codepage_for_locale ((LCID) (msg.msg.lParam & 0xffff));
 
 	  if (f)
 	    {
@@ -5141,9 +5215,12 @@ w32_read_socket (struct terminal *terminal,
 
 	  if (f && !FRAME_ICONIFIED_P (f))
 	    {
-	      if (!hlinfo->mouse_face_hidden && FIXNUMP (Vmouse_highlight)
-		  && !EQ (f->tab_bar_window, hlinfo->mouse_face_window)
-		  && !EQ (f->tool_bar_window, hlinfo->mouse_face_window))
+	      if (!hlinfo->mouse_face_hidden
+		  && FIXNUMP (Vmouse_highlight)
+		  && !EQ (f->tab_bar_window,
+			  hlinfo->mouse_face_window)
+		  && !EQ (f->tool_bar_window,
+			  hlinfo->mouse_face_window))
 		{
 		  clear_mouse_face (hlinfo);
 		  hlinfo->mouse_face_hidden = true;
@@ -5160,16 +5237,19 @@ w32_read_socket (struct terminal *terminal,
 	    }
 	  break;
 
-        case WM_UNICHAR:
+	case WM_UNICHAR:
 	case WM_SYSCHAR:
 	case WM_CHAR:
 	  f = w32_window_to_frame (dpyinfo, msg.msg.hwnd);
 
 	  if (f && !FRAME_ICONIFIED_P (f))
 	    {
-	      if (!hlinfo->mouse_face_hidden && FIXNUMP (Vmouse_highlight)
-		  && !EQ (f->tab_bar_window, hlinfo->mouse_face_window)
-		  && !EQ (f->tool_bar_window, hlinfo->mouse_face_window))
+	      if (!hlinfo->mouse_face_hidden
+		  && FIXNUMP (Vmouse_highlight)
+		  && !EQ (f->tab_bar_window,
+			  hlinfo->mouse_face_window)
+		  && !EQ (f->tool_bar_window,
+			  hlinfo->mouse_face_window))
 		{
 		  clear_mouse_face (hlinfo);
 		  hlinfo->mouse_face_hidden = true;
@@ -5200,8 +5280,8 @@ w32_read_socket (struct terminal *terminal,
 		  utf16_high_modifiers = 0;
 		}
 
-              if (msg.msg.message == WM_UNICHAR)
-                {
+	      if (msg.msg.message == WM_UNICHAR)
+		{
 		  /* Handle UTF-16 encoded codepoint above the BMP.
 		     This is needed to support Emoji input from input
 		     panel popped up by "Win+." shortcut.  */
@@ -5215,76 +5295,84 @@ w32_read_socket (struct terminal *terminal,
 		  else if (UTF_16_LOW_SURROGATE_P (msg.msg.wParam)
 			   && utf16_high)
 		    {
-		      inev.code = surrogates_to_codepoint (msg.msg.wParam,
-							   utf16_high);
+		      inev.code
+			= surrogates_to_codepoint (msg.msg.wParam,
+						   utf16_high);
 		      utf16_high = 0;
 		      utf16_high_modifiers = 0;
 		    }
 		  else
 		    inev.code = msg.msg.wParam;
-                }
-              else if (msg.msg.wParam < 256)
-                {
-                  wchar_t code;
-                  char dbcs[2];
-                  dbcs[0] = 0;
-                  dbcs[1] = (char) msg.msg.wParam;
-
-                  if (dbcs_lead)
-                    {
-                      dbcs[0] = dbcs_lead;
-                      dbcs_lead = 0;
-                      if (!MultiByteToWideChar (w32_keyboard_codepage, 0,
-						dbcs, 2, &code, 1))
-                        {
-                          /* Garbage */
-                          DebPrint (("Invalid DBCS sequence: %d %d\n",
-                                     dbcs[0], dbcs[1]));
-                          inev.kind = NO_EVENT;
-                          break;
-                        }
-                    }
-                  else if (IsDBCSLeadByteEx (w32_keyboard_codepage,
+		}
+	      else if (msg.msg.wParam < 256)
+		{
+		  wchar_t code;
+		  char dbcs[2];
+		  dbcs[0] = 0;
+		  dbcs[1] = (char) msg.msg.wParam;
+
+		  if (dbcs_lead)
+		    {
+		      dbcs[0] = dbcs_lead;
+		      dbcs_lead = 0;
+		      if (!MultiByteToWideChar (w32_keyboard_codepage,
+						0, dbcs, 2, &code, 1))
+			{
+			  /* Garbage */
+			  DebPrint (("Invalid DBCS sequence: %d %d\n",
+				     dbcs[0], dbcs[1]));
+			  inev.kind = NO_EVENT;
+			  break;
+			}
+		    }
+		  else if (IsDBCSLeadByteEx (w32_keyboard_codepage,
 					     (BYTE) msg.msg.wParam))
-                    {
-                      dbcs_lead = (char) msg.msg.wParam;
-                      inev.kind = NO_EVENT;
-                      break;
-                    }
-                  else
-                    {
-                      if (!MultiByteToWideChar (w32_keyboard_codepage, 0,
-						&dbcs[1], 1, &code, 1))
-                        {
-                          /* What to do with garbage? */
-                          DebPrint (("Invalid character: %d\n", dbcs[1]));
-                          inev.kind = NO_EVENT;
-                          break;
-                        }
-                    }
-                  inev.code = code;
-                }
-              else
-                {
-                  /* Windows shouldn't generate WM_CHAR events above 0xFF
-                     in non-Unicode message handlers.  */
-                  DebPrint (("Non-byte WM_CHAR: %d\n", msg.msg.wParam));
-                  inev.kind = NO_EVENT;
-                  break;
-                }
-              inev.kind = inev.code < 128 ? ASCII_KEYSTROKE_EVENT
-                                          : MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+		    {
+		      dbcs_lead = (char) msg.msg.wParam;
+		      inev.kind = NO_EVENT;
+		      break;
+		    }
+		  else
+		    {
+		      if (!MultiByteToWideChar (w32_keyboard_codepage,
+						0, &dbcs[1], 1, &code,
+						1))
+			{
+			  /* What to do with garbage? */
+			  DebPrint (
+			    ("Invalid character: %d\n", dbcs[1]));
+			  inev.kind = NO_EVENT;
+			  break;
+			}
+		    }
+		  inev.code = code;
+		}
+	      else
+		{
+		  /* Windows shouldn't generate WM_CHAR events above
+		     0xFF in non-Unicode message handlers.  */
+		  DebPrint (
+		    ("Non-byte WM_CHAR: %d\n", msg.msg.wParam));
+		  inev.kind = NO_EVENT;
+		  break;
+		}
+	      inev.kind = inev.code < 128
+			    ? ASCII_KEYSTROKE_EVENT
+			    : MULTIBYTE_CHAR_KEYSTROKE_EVENT;
 	    }
 	  break;
 
-        case WM_APPCOMMAND:
+	case WM_APPCOMMAND:
 	  f = w32_window_to_frame (dpyinfo, msg.msg.hwnd);
 
 	  if (f && !FRAME_ICONIFIED_P (f))
 	    {
-	      if (!hlinfo->mouse_face_hidden && FIXNUMP (Vmouse_highlight)
-		  && !EQ (f->tab_bar_window, hlinfo->mouse_face_window)
-		  && !EQ (f->tool_bar_window, hlinfo->mouse_face_window))
+	      if (!hlinfo->mouse_face_hidden
+		  && FIXNUMP (Vmouse_highlight)
+		  && !EQ (f->tab_bar_window,
+			  hlinfo->mouse_face_window)
+		  && !EQ (f->tool_bar_window,
+			  hlinfo->mouse_face_window))
 		{
 		  clear_mouse_face (hlinfo);
 		  hlinfo->mouse_face_hidden = true;
@@ -5312,7 +5400,7 @@ w32_read_socket (struct terminal *terminal,
 	    last_mousemove_y = y;
 	  }
 
-          previous_help_echo_string = help_echo_string;
+	  previous_help_echo_string = help_echo_string;
 	  help_echo_string = Qnil;
 
 	  if (hlinfo->mouse_face_hidden)
@@ -5335,8 +5423,13 @@ w32_read_socket (struct terminal *terminal,
 			  && !FRAME_NO_ACCEPT_FOCUS (f))))
 		{
 		  static Lisp_Object last_mouse_window;
-		  Lisp_Object window = window_from_coordinates
-		    (f, LOWORD (msg.msg.lParam), HIWORD (msg.msg.lParam), 0, 0, 0, 0);
+		  Lisp_Object window
+		    = window_from_coordinates (f,
+					       LOWORD (
+						 msg.msg.lParam),
+					       HIWORD (
+						 msg.msg.lParam),
+					       0, 0, 0, 0);
 
 		  /* Window will be selected only when it is not
 		     selected now and last mouse movement event was
@@ -5350,7 +5443,8 @@ w32_read_socket (struct terminal *terminal,
 		      inev.frame_or_window = window;
 		    }
 
-		  /* Remember the last window where we saw the mouse.  */
+		  /* Remember the last window where we saw the mouse.
+		   */
 		  last_mouse_window = window;
 		}
 
@@ -5358,25 +5452,26 @@ w32_read_socket (struct terminal *terminal,
 		help_echo_string = previous_help_echo_string;
 	    }
 	  else
-            {
-              /* If we move outside the frame, then we're
-                 certainly no longer on any text in the frame.  */
-              clear_mouse_face (hlinfo);
-            }
-
-          /* If the contents of the global variable help_echo_string
-             has changed, generate a HELP_EVENT.  */
-#if 0 /* The below is an invalid comparison when CHECK_LISP_OBJECT_TYPE.
-	 But it was originally changed to this to fix a bug, so I have
-	 not removed it completely in case the bug is still there.  */
+	    {
+	      /* If we move outside the frame, then we're
+		 certainly no longer on any text in the frame.  */
+	      clear_mouse_face (hlinfo);
+	    }
+
+	    /* If the contents of the global variable help_echo_string
+	       has changed, generate a HELP_EVENT.  */
+#if 0 /* The below is an invalid comparison when                   \
+	 CHECK_LISP_OBJECT_TYPE. But it was originally changed to  \
+	 this to fix a bug, so I have not removed it completely in \
+	 case the bug is still there.  */
           if (help_echo_string != previous_help_echo_string ||
 	      (!NILP (help_echo_string) && !STRINGP (help_echo_string) && f->mouse_moved))
 #else /* This is what xterm.c does.  */
-	    if (!NILP (help_echo_string)
-		|| !NILP (previous_help_echo_string))
+	  if (!NILP (help_echo_string)
+	      || !NILP (previous_help_echo_string))
 	    do_help = 1;
 #endif
-          break;
+	  break;
 
 	case WM_LBUTTONDOWN:
 	case WM_LBUTTONUP:
@@ -5387,8 +5482,8 @@ w32_read_socket (struct terminal *terminal,
 	case WM_XBUTTONDOWN:
 	case WM_XBUTTONUP:
 	  {
-            /* If we decide we want to generate an event to be seen
-               by the rest of Emacs, we put it here.  */
+	    /* If we decide we want to generate an event to be seen
+	       by the rest of Emacs, we put it here.  */
 	    Lisp_Object tab_bar_arg = Qnil;
 	    bool tab_bar_p = 0;
 	    bool tool_bar_p = 0;
@@ -5398,47 +5493,54 @@ w32_read_socket (struct terminal *terminal,
 	    f = mouse_or_wdesc_frame (dpyinfo, msg.msg.hwnd);
 	    if (f)
 	      {
-                w32_construct_mouse_click (&inev, &msg, f);
+		w32_construct_mouse_click (&inev, &msg, f);
 
-                /* Is this in the tab-bar?  */
-                if (WINDOWP (f->tab_bar_window)
-                    && WINDOW_TOTAL_LINES (XWINDOW (f->tab_bar_window)))
-                  {
-                    Lisp_Object window;
+		/* Is this in the tab-bar?  */
+		if (WINDOWP (f->tab_bar_window)
+		    && WINDOW_TOTAL_LINES (
+		      XWINDOW (f->tab_bar_window)))
+		  {
+		    Lisp_Object window;
 		    int x = XFIXNAT (inev.x);
 		    int y = XFIXNAT (inev.y);
 
-                    window = window_from_coordinates (f, x, y, 0, 1, 1, 1);
+		    window
+		      = window_from_coordinates (f, x, y, 0, 1, 1, 1);
 
-                    if (EQ (window, f->tab_bar_window))
-                      {
-                        tab_bar_arg = w32_handle_tab_bar_click (f, &inev);
-                        tab_bar_p = 1;
-                      }
-                  }
+		    if (EQ (window, f->tab_bar_window))
+		      {
+			tab_bar_arg
+			  = w32_handle_tab_bar_click (f, &inev);
+			tab_bar_p = 1;
+		      }
+		  }
 
-                if ((tab_bar_p && NILP (tab_bar_arg))
+		if ((tab_bar_p && NILP (tab_bar_arg))
 		    || (dpyinfo->w32_focus_frame
 			&& f != dpyinfo->w32_focus_frame
-			/* This does not help when the click happens in
-			   a grand-parent frame.  */
-			&& !frame_ancestor_p (f, dpyinfo->w32_focus_frame)))
+			/* This does not help when the click happens
+			   in a grand-parent frame.  */
+			&& !frame_ancestor_p (f,
+					      dpyinfo
+						->w32_focus_frame)))
 		  inev.kind = NO_EVENT;
 
 		if (!NILP (tab_bar_arg))
 		  inev.arg = tab_bar_arg;
 
-                /* Is this in the tool-bar?  */
-                if (WINDOWP (f->tool_bar_window)
-                    && WINDOW_TOTAL_LINES (XWINDOW (f->tool_bar_window)))
-                  {
-                    Lisp_Object window;
+		/* Is this in the tool-bar?  */
+		if (WINDOWP (f->tool_bar_window)
+		    && WINDOW_TOTAL_LINES (
+		      XWINDOW (f->tool_bar_window)))
+		  {
+		    Lisp_Object window;
 		    int x = XFIXNAT (inev.x);
 		    int y = XFIXNAT (inev.y);
 
-                    window = window_from_coordinates (f, x, y, 0, 1, 1, 1);
+		    window
+		      = window_from_coordinates (f, x, y, 0, 1, 1, 1);
 
-                    if (EQ (window, f->tool_bar_window)
+		    if (EQ (window, f->tool_bar_window)
 			/* Make sure the tool bar was previously
 			   pressed, otherwise an event that started
 			   outside of the tool bar will not be handled
@@ -5450,18 +5552,20 @@ w32_read_socket (struct terminal *terminal,
 			   event as a tool-bar click.  */
 			&& (inev.modifiers & down_modifier
 			    || f->last_tool_bar_item != -1))
-                      {
-                        w32_handle_tool_bar_click (f, &inev);
-                        tool_bar_p = 1;
-                      }
-                  }
+		      {
+			w32_handle_tool_bar_click (f, &inev);
+			tool_bar_p = 1;
+		      }
+		  }
 
-                if (tool_bar_p
+		if (tool_bar_p
 		    || (dpyinfo->w32_focus_frame
 			&& f != dpyinfo->w32_focus_frame
-			/* This does not help when the click happens in
-			   a grand-parent frame.  */
-			&& !frame_ancestor_p (f, dpyinfo->w32_focus_frame)))
+			/* This does not help when the click happens
+			   in a grand-parent frame.  */
+			&& !frame_ancestor_p (f,
+					      dpyinfo
+						->w32_focus_frame)))
 		  inev.kind = NO_EVENT;
 	      }
 
@@ -5470,17 +5574,17 @@ w32_read_socket (struct terminal *terminal,
 
 	    if (up)
 	      {
-		dpyinfo->grabbed &= ~ (1 << button);
+		dpyinfo->grabbed &= ~(1 << button);
 	      }
 	    else
 	      {
 		dpyinfo->grabbed |= (1 << button);
 		dpyinfo->last_mouse_frame = f;
-                /* Ignore any mouse motion that happened
-                   before this event; any subsequent mouse-movement
-                   Emacs events should reflect only motion after
-                   the ButtonPress.  */
-                if (f != 0)
+		/* Ignore any mouse motion that happened
+		   before this event; any subsequent mouse-movement
+		   Emacs events should reflect only motion after
+		   the ButtonPress.  */
+		if (f != 0)
 		  {
 		    f->mouse_moved = false;
 		    if (!tab_bar_p)
@@ -5493,7 +5597,7 @@ w32_read_socket (struct terminal *terminal,
 	  }
 
 	case WM_MOUSEWHEEL:
-        case WM_MOUSEHWHEEL:
+	case WM_MOUSEHWHEEL:
 	  {
 	    f = mouse_or_wdesc_frame (dpyinfo, msg.msg.hwnd);
 	    if (f)
@@ -5504,9 +5608,10 @@ w32_read_socket (struct terminal *terminal,
 		  {
 		    w32_construct_mouse_wheel (&inev, &msg, f);
 
-		    /* Ignore any mouse motion that happened before this
-		       event; any subsequent mouse-movement Emacs events
-		       should reflect only motion after the ButtonPress.  */
+		    /* Ignore any mouse motion that happened before
+		       this event; any subsequent mouse-movement Emacs
+		       events should reflect only motion after the
+		       ButtonPress.  */
 		    f->mouse_moved = false;
 		    f->last_tab_bar_item = -1;
 		    f->last_tool_bar_item = -1;
@@ -5515,8 +5620,10 @@ w32_read_socket (struct terminal *terminal,
 		else if (FRAME_NO_ACCEPT_FOCUS (f)
 			 && !gui_mouse_grabbed (dpyinfo))
 		  {
-		    Lisp_Object frame1 = get_frame_param (f, Qmouse_wheel_frame);
-		    struct frame *f1 = FRAMEP (frame1) ? XFRAME (frame1) : NULL;
+		    Lisp_Object frame1
+		      = get_frame_param (f, Qmouse_wheel_frame);
+		    struct frame *f1
+		      = FRAMEP (frame1) ? XFRAME (frame1) : NULL;
 
 		    if (f1 && FRAME_LIVE_P (f1) && FRAME_W32_P (f1))
 		      {
@@ -5546,18 +5653,19 @@ w32_read_socket (struct terminal *terminal,
 
 	case WM_HSCROLL:
 	  {
-	    struct scroll_bar *bar =
-	      w32_window_to_scroll_bar ((HWND)msg.msg.lParam, 1);
+	    struct scroll_bar *bar
+	      = w32_window_to_scroll_bar ((HWND) msg.msg.lParam, 1);
 
 	    if (bar)
-	      w32_horizontal_scroll_bar_handle_click (bar, &msg, &inev);
+	      w32_horizontal_scroll_bar_handle_click (bar, &msg,
+						      &inev);
 	    break;
 	  }
 
 	case WM_VSCROLL:
 	  {
-	    struct scroll_bar *bar =
-	      w32_window_to_scroll_bar ((HWND)msg.msg.lParam, 0);
+	    struct scroll_bar *bar
+	      = w32_window_to_scroll_bar ((HWND) msg.msg.lParam, 0);
 
 	    if (bar)
 	      w32_scroll_bar_handle_click (bar, &msg, &inev);
@@ -5577,18 +5685,16 @@ w32_read_socket (struct terminal *terminal,
 		  /* GetClientRect evidently returns (0, 0, 0, 0) if
 		     called on a minimized frame.  Such "dimensions"
 		     aren't useful anyway.  */
-		  && !(rect.bottom == 0
-		       && rect.top == 0
-		       && rect.left == 0
-		       && rect.right == 0))
+		  && !(rect.bottom == 0 && rect.top == 0
+		       && rect.left == 0 && rect.right == 0))
 		{
 		  height = rect.bottom - rect.top;
 		  width = rect.right - rect.left;
 		  if (width != FRAME_PIXEL_WIDTH (f)
 		      || height != FRAME_PIXEL_HEIGHT (f))
 		    {
-		      change_frame_size
-			(f, width, height, false, true, false);
+		      change_frame_size (f, width, height, false,
+					 true, false);
 		      SET_FRAME_GARBAGED (f);
 		      cancel_mouse_face (f);
 		      f->win_gravity = NorthWestGravity;
@@ -5611,7 +5717,8 @@ w32_read_socket (struct terminal *terminal,
 		 the frame might not yet be visible, if that call is a
 		 result of make-frame, and in that case the hook just
 		 sets the WAIT flag.  */
-	      if ((msg.msg.message == WM_WINDOWPOSCHANGED || msg.msg.wParam)
+	      if ((msg.msg.message == WM_WINDOWPOSCHANGED
+		   || msg.msg.wParam)
 		  && (f->want_fullscreen & FULLSCREEN_WAIT))
 		{
 		  /* Must set visibility right here since otherwise
@@ -5627,7 +5734,7 @@ w32_read_socket (struct terminal *terminal,
 	case WM_MOVE:
 	  f = w32_window_to_frame (dpyinfo, msg.msg.hwnd);
 
-	  if (f && FRAME_VISIBLE_P (f) && !FRAME_ICONIFIED_P(f)
+	  if (f && FRAME_VISIBLE_P (f) && !FRAME_ICONIFIED_P (f)
 	      && !FRAME_TOOLTIP_P (f))
 	    {
 	      w32_real_positions (f, &f->left_pos, &f->top_pos);
@@ -5639,8 +5746,8 @@ w32_read_socket (struct terminal *terminal,
 	  break;
 
 	case WM_SHOWWINDOW:
-	  /* wParam non-zero means Window is about to be shown, 0 means
-	     about to be hidden.  */
+	  /* wParam non-zero means Window is about to be shown, 0
+	     means about to be hidden.  */
 	  /* Redo the mouse-highlight after the tooltip has gone.  */
 	  if (!msg.msg.wParam && msg.msg.hwnd == tip_window)
 	    {
@@ -5648,10 +5755,10 @@ w32_read_socket (struct terminal *terminal,
 	      gui_redo_mouse_highlight (dpyinfo);
 	    }
 
-	  /* If window has been obscured or exposed by another window
-	     being maximized or minimized/restored, then recheck
-	     visibility of all frames.  Direct changes to our own
-	     windows get handled by WM_SIZE.  */
+	    /* If window has been obscured or exposed by another
+	       window being maximized or minimized/restored, then
+	       recheck visibility of all frames.  Direct changes to
+	       our own windows get handled by WM_SIZE.  */
 #if 0
 	  if (msg.msg.lParam != 0)
 	    check_visibility = 1;
@@ -5688,7 +5795,8 @@ w32_read_socket (struct terminal *terminal,
 		case SIZE_MAXIMIZED:
 		  {
 		    bool iconified = FRAME_ICONIFIED_P (f);
-		    Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
+		    Lisp_Object fullscreen
+		      = get_frame_param (f, Qfullscreen);
 
 		    SET_FRAME_VISIBLE (f, 1);
 		    SET_FRAME_ICONIFIED (f, false);
@@ -5704,8 +5812,8 @@ w32_read_socket (struct terminal *terminal,
 			/* Reset top and left positions of the Window
 			   here since Windows sends a WM_MOVE message
 			   BEFORE telling us the Window is minimized
-			   when the Window is iconified, with 3000,3000
-			   as the co-ords. */
+			   when the Window is iconified, with
+			   3000,3000 as the co-ords. */
 			w32_real_positions (f, &x, &y);
 			f->left_pos = x;
 			f->top_pos = y;
@@ -5714,19 +5822,22 @@ w32_read_socket (struct terminal *terminal,
 			XSETFRAME (inev.frame_or_window, f);
 		      }
 
-		  /* Windows can send us a SIZE_MAXIMIZED message even
-		     when fullscreen is fullboth.  The following is a
-		     simple hack to check that based on the fact that
-		     only a maximized fullscreen frame should have top
-		     or left outside the screen.  */
-		  if (EQ (fullscreen, Qfullwidth) || EQ (fullscreen, Qfullheight)
-		      || NILP (fullscreen))
+		    /* Windows can send us a SIZE_MAXIMIZED message
+		       even when fullscreen is fullboth.  The
+		       following is a simple hack to check that based
+		       on the fact that only a maximized fullscreen
+		       frame should have top or left outside the
+		       screen.  */
+		    if (EQ (fullscreen, Qfullwidth)
+			|| EQ (fullscreen, Qfullheight)
+			|| NILP (fullscreen))
 		      {
 			int x, y;
 
 			w32_real_positions (f, &x, &y);
 			if (x < 0 || y < 0)
-			  store_frame_param (f, Qfullscreen, Qmaximized);
+			  store_frame_param (f, Qfullscreen,
+					     Qmaximized);
 		      }
 		  }
 
@@ -5738,8 +5849,9 @@ w32_read_socket (struct terminal *terminal,
 
 		    /* The following was made unconditional in a
 		       pathetic attempt to fix bug#16967 in revision
-		       116716 but, considered counterproductive was made
-		       conditional again in revision 116727.  martin */
+		       116716 but, considered counterproductive was
+		       made conditional again in revision 116727.
+		       martin */
 		    if (iconified)
 		      SET_FRAME_VISIBLE (f, 1);
 		    SET_FRAME_ICONIFIED (f, false);
@@ -5753,23 +5865,26 @@ w32_read_socket (struct terminal *terminal,
 			/* Reset top and left positions of the Window
 			   here since Windows sends a WM_MOVE message
 			   BEFORE telling us the Window is minimized
-			   when the Window is iconified, with 3000,3000
-			   as the co-ords.  */
-			w32_real_positions (f, &f->left_pos, &f->top_pos);
+			   when the Window is iconified, with
+			   3000,3000 as the co-ords.  */
+			w32_real_positions (f, &f->left_pos,
+					    &f->top_pos);
 
 			inev.kind = DEICONIFY_EVENT;
 			XSETFRAME (inev.frame_or_window, f);
 		      }
 		  }
 
-		  if (EQ (get_frame_param (f, Qfullscreen), Qmaximized))
+		  if (EQ (get_frame_param (f, Qfullscreen),
+			  Qmaximized))
 		    store_frame_param (f, Qfullscreen, Qnil);
 
 		  break;
 		}
 	    }
 
-	  if (f && !FRAME_ICONIFIED_P (f) && msg.msg.wParam != SIZE_MINIMIZED)
+	  if (f && !FRAME_ICONIFIED_P (f)
+	      && msg.msg.wParam != SIZE_MINIMIZED)
 	    {
 	      RECT rect;
 	      int /* rows, columns, */ width, height;
@@ -5778,10 +5893,8 @@ w32_read_socket (struct terminal *terminal,
 		  /* GetClientRect evidently returns (0, 0, 0, 0) if
 		     called on a minimized frame.  Such "dimensions"
 		     aren't useful anyway.  */
-		  && !(rect.bottom == 0
-		       && rect.top == 0
-		       && rect.left == 0
-		       && rect.right == 0))
+		  && !(rect.bottom == 0 && rect.top == 0
+		       && rect.left == 0 && rect.right == 0))
 		{
 		  height = rect.bottom - rect.top;
 		  width = rect.right - rect.left;
@@ -5791,8 +5904,8 @@ w32_read_socket (struct terminal *terminal,
 		    {
 		      w32_release_paint_buffer (f);
 
-		      change_frame_size
-			(f, width, height, false, true, false);
+		      change_frame_size (f, width, height, false,
+					 true, false);
 		      SET_FRAME_GARBAGED (f);
 		      cancel_mouse_face (f);
 		      f->win_gravity = NorthWestGravity;
@@ -5836,23 +5949,23 @@ w32_read_socket (struct terminal *terminal,
 	  w32_detect_focus_change (dpyinfo, &msg, &inev);
 	  f = w32_window_to_frame (dpyinfo, msg.msg.hwnd);
 
-          if (f)
-            {
-              if (f == hlinfo->mouse_face_mouse_frame)
-                {
-                  /* If we move outside the frame, then we're
-                     certainly no longer on any text in the frame.  */
-                  clear_mouse_face (hlinfo);
-                  hlinfo->mouse_face_mouse_frame = 0;
-                }
-
-              /* Generate a nil HELP_EVENT to cancel a help-echo.
-                 Do it only if there's something to cancel.
-                 Otherwise, the startup message is cleared when
-                 the mouse leaves the frame.  */
-              if (any_help_event_p)
+	  if (f)
+	    {
+	      if (f == hlinfo->mouse_face_mouse_frame)
+		{
+		  /* If we move outside the frame, then we're
+		     certainly no longer on any text in the frame.  */
+		  clear_mouse_face (hlinfo);
+		  hlinfo->mouse_face_mouse_frame = 0;
+		}
+
+	      /* Generate a nil HELP_EVENT to cancel a help-echo.
+		 Do it only if there's something to cancel.
+		 Otherwise, the startup message is cleared when
+		 the mouse leaves the frame.  */
+	      if (any_help_event_p)
 		do_help = -1;
-            }
+	    }
 
 	  dpyinfo->grabbed = 0;
 	  check_visibility = 1;
@@ -5887,7 +6000,7 @@ w32_read_socket (struct terminal *terminal,
 
 	  if (f)
 	    {
-	      menubar_selection_callback (f, (void *)msg.msg.wParam);
+	      menubar_selection_callback (f, (void *) msg.msg.wParam);
 	    }
 
 	  check_visibility = 1;
@@ -5898,7 +6011,8 @@ w32_read_socket (struct terminal *terminal,
 
 	  if (f)
 	    {
-	      Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
+	      Lisp_Object fullscreen
+		= get_frame_param (f, Qfullscreen);
 
 	      dpyinfo->n_cbits = msg.msg.wParam;
 	      /* The new display could have a different resolution, in
@@ -5924,8 +6038,8 @@ w32_read_socket (struct terminal *terminal,
 	    union buffered_input_event *ev;
 
 	    ev = (kbd_store_ptr == kbd_buffer
-		  ? kbd_buffer + KBD_BUFFER_SIZE - 1
-		  : kbd_store_ptr - 1);
+		    ? kbd_buffer + KBD_BUFFER_SIZE - 1
+		    : kbd_store_ptr - 1);
 
 	    if (kbd_store_ptr != kbd_fetch_ptr
 		&& ev->ie.kind == MONITORS_CHANGED_EVENT
@@ -5966,8 +6080,7 @@ w32_read_socket (struct terminal *terminal,
 	  count++;
 	}
 
-      if (do_help
-	  && !(hold_quit && hold_quit->kind != NO_EVENT))
+      if (do_help && !(hold_quit && hold_quit->kind != NO_EVENT))
 	{
 	  Lisp_Object frame;
 
@@ -5985,8 +6098,9 @@ w32_read_socket (struct terminal *terminal,
 		}
 
 	      any_help_event_p = 1;
-	      gen_help_event (help_echo_string, frame, help_echo_window,
-			      help_echo_object, help_echo_pos);
+	      gen_help_event (help_echo_string, frame,
+			      help_echo_window, help_echo_object,
+			      help_echo_pos);
 	    }
 	  else
 	    {
@@ -5997,12 +6111,12 @@ w32_read_socket (struct terminal *terminal,
 	}
 
       /* Event processing might have drawn to F outside redisplay.  If
-         that is the case, flush any changes that have been made to
-         the front buffer.  */
+	 that is the case, flush any changes that have been made to
+	 the front buffer.  */
 
       if (f && !w32_disable_double_buffering
-	  && FRAME_OUTPUT_DATA (f)->paint_buffer_dirty
-	  && !f->garbaged && !ignore_dirty_back_buffer)
+	  && FRAME_OUTPUT_DATA (f)->paint_buffer_dirty && !f->garbaged
+	  && !ignore_dirty_back_buffer)
 	w32_show_back_buffer (f);
     }
 
@@ -6014,11 +6128,11 @@ w32_read_socket (struct terminal *terminal,
       dpyinfo->w32_pending_autoraise_frame = NULL;
     }
 
-  /* Check which frames are still visible, if we have enqueued any user
-     events or been notified of events that may affect visibility.  We
-     do this here because there doesn't seem to be any direct
-     notification from Windows that the visibility of a window has
-     changed (at least, not in all cases).  */
+  /* Check which frames are still visible, if we have enqueued any
+     user events or been notified of events that may affect
+     visibility.  We do this here because there doesn't seem to be any
+     direct notification from Windows that the visibility of a window
+     has changed (at least, not in all cases).  */
   if (count > 0 || check_visibility)
     {
       Lisp_Object tail, frame;
@@ -6037,7 +6151,7 @@ w32_read_socket (struct terminal *terminal,
 	if (FRAME_W32_P (f) && FRAME_VISIBLE_P (f))
 	  {
 	    RECT clipbox;
-	    HDC  hdc;
+	    HDC hdc;
 	    bool obscured;
 
 	    enter_crit ();
@@ -6054,15 +6168,18 @@ w32_read_socket (struct terminal *terminal,
 
 	    obscured = FRAME_OBSCURED_P (f);
 
-	    if (clipbox.right == clipbox.left || clipbox.bottom == clipbox.top)
+	    if (clipbox.right == clipbox.left
+		|| clipbox.bottom == clipbox.top)
 	      {
-		/* Frame has become completely obscured so mark as such (we
-		   do this by setting visible to 2 so that FRAME_VISIBLE_P
-		   is still true, but redisplay will skip it).  */
+		/* Frame has become completely obscured so mark as
+		   such (we do this by setting visible to 2 so that
+		   FRAME_VISIBLE_P is still true, but redisplay will
+		   skip it).  */
 		SET_FRAME_VISIBLE (f, 2);
 
 		if (!obscured)
-		  DebPrint (("frame %p (%s) obscured\n", f, SDATA (f->name)));
+		  DebPrint (
+		    ("frame %p (%s) obscured\n", f, SDATA (f->name)));
 	      }
 	    else
 	      {
@@ -6072,8 +6189,9 @@ w32_read_socket (struct terminal *terminal,
 		if (obscured)
 		  {
 		    SET_FRAME_GARBAGED (f);
-		    DebPrint (("obscured frame %p (%s) found to be visible\n",
-			       f, SDATA (f->name)));
+		    DebPrint (
+		      ("obscured frame %p (%s) found to be visible\n",
+		       f, SDATA (f->name)));
 		  }
 	      }
 	  }
@@ -6084,8 +6202,6 @@ w32_read_socket (struct terminal *terminal,
   return count;
 }
 
-
-\f
 /***********************************************************************
 			     Text Cursor
  ***********************************************************************/
@@ -6115,7 +6231,6 @@ w32_clip_to_row (struct window *w, struct glyph_row *row,
   w32_set_clip_rectangle (hdc, &clip_rect);
 }
 
-
 /* Draw a hollow box cursor on window W in glyph row ROW.  */
 
 static void
@@ -6159,7 +6274,6 @@ w32_draw_hollow_cursor (struct window *w, struct glyph_row *row)
   release_frame_dc (f, hdc);
 }
 
-
 /* Draw a bar cursor on window W in glyph row ROW.
 
    Implementation note: One would like to draw a bar cursor with an
@@ -6169,7 +6283,7 @@ w32_draw_hollow_cursor (struct window *w, struct glyph_row *row)
 
 static void
 w32_draw_bar_cursor (struct window *w, struct glyph_row *row,
-		   int width, enum text_cursor_kinds kind)
+		     int width, enum text_cursor_kinds kind)
 {
   struct frame *f = XFRAME (w->frame);
   struct glyph *cursor_glyph;
@@ -6224,10 +6338,11 @@ w32_draw_bar_cursor (struct window *w, struct glyph_row *row,
 	    x += cursor_glyph->pixel_width - width;
 
 	  w32_fill_area (f, hdc, cursor_color, x,
-			 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
+			 WINDOW_TO_FRAME_PIXEL_Y (w,
+						  w->phys_cursor.y),
 			 width, row->height);
 	}
-      else	/* HBAR_CURSOR */
+      else /* HBAR_CURSOR */
 	{
 	  int dummy_x, dummy_y, dummy_h;
 
@@ -6242,8 +6357,9 @@ w32_draw_bar_cursor (struct window *w, struct glyph_row *row,
 	      && cursor_glyph->pixel_width > w->phys_cursor_width)
 	    x += cursor_glyph->pixel_width - w->phys_cursor_width;
 	  w32_fill_area (f, hdc, cursor_color, x,
-			 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y +
-						  row->height - width),
+			 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y
+						       + row->height
+						       - width),
 			 w->phys_cursor_width, width);
 	}
 
@@ -6252,7 +6368,6 @@ w32_draw_bar_cursor (struct window *w, struct glyph_row *row,
     }
 }
 
-
 /* RIF: Define cursor CURSOR on frame F.  */
 
 static void
@@ -6261,11 +6376,11 @@ w32_define_frame_cursor (struct frame *f, Emacs_Cursor cursor)
   w32_define_cursor (FRAME_W32_WINDOW (f), cursor);
 }
 
-
 /* RIF: Clear area on frame F.  */
 
 static void
-w32_clear_frame_area (struct frame *f, int x, int y, int width, int height)
+w32_clear_frame_area (struct frame *f, int x, int y, int width,
+		      int height)
 {
   HDC hdc;
 
@@ -6278,7 +6393,8 @@ w32_clear_frame_area (struct frame *f, int x, int y, int width, int height)
 
 static void
 w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
-			int x, int y, enum text_cursor_kinds cursor_type,
+			int x, int y,
+			enum text_cursor_kinds cursor_type,
 			int cursor_width, bool on_p, bool active_p)
 {
   if (on_p)
@@ -6317,8 +6433,9 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
 	    = (WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y)
 	       + glyph_row->ascent - w->phys_cursor_ascent);
 	  w32_system_caret_window = w;
-	  w32_system_caret_hdr_height = WINDOW_TAB_LINE_HEIGHT (w)
-	    + WINDOW_HEADER_LINE_HEIGHT (w);
+	  w32_system_caret_hdr_height
+	    = WINDOW_TAB_LINE_HEIGHT (w)
+	      + WINDOW_HEADER_LINE_HEIGHT (w);
 	  w32_system_caret_mode_height = WINDOW_MODE_LINE_HEIGHT (w);
 
 	  PostMessage (hwnd, WM_IME_STARTCOMPOSITION, 0, 0);
@@ -6337,8 +6454,9 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
 
       if (glyph_row->exact_window_width_line_p
 	  && (glyph_row->reversed_p
-	      ? (w->phys_cursor.hpos < 0)
-	      : (w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA])))
+		? (w->phys_cursor.hpos < 0)
+		: (w->phys_cursor.hpos
+		   >= glyph_row->used[TEXT_AREA])))
 	{
 	  glyph_row->cursor_in_fringe_p = true;
 	  draw_fringe_bitmap (w, glyph_row, glyph_row->reversed_p);
@@ -6356,11 +6474,13 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
 	  break;
 
 	case BAR_CURSOR:
-	  w32_draw_bar_cursor (w, glyph_row, cursor_width, BAR_CURSOR);
+	  w32_draw_bar_cursor (w, glyph_row, cursor_width,
+			       BAR_CURSOR);
 	  break;
 
 	case HBAR_CURSOR:
-	  w32_draw_bar_cursor (w, glyph_row, cursor_width, HBAR_CURSOR);
+	  w32_draw_bar_cursor (w, glyph_row, cursor_width,
+			       HBAR_CURSOR);
 	  break;
 
 	case NO_CURSOR:
@@ -6373,8 +6493,6 @@ w32_draw_window_cursor (struct window *w, struct glyph_row *glyph_row,
     }
 }
 
-
-\f
 /* Icons.  */
 
 static bool
@@ -6391,13 +6509,13 @@ w32_bitmap_icon (struct frame *f, Lisp_Object icon)
   else if (STRINGP (icon))
     {
       /* Load the main icon from the named file.  */
-      main_icon = LoadImage (NULL, (LPCTSTR) SDATA (icon), IMAGE_ICON, 0, 0,
-			     LR_DEFAULTSIZE | LR_LOADFROMFILE);
+      main_icon = LoadImage (NULL, (LPCTSTR) SDATA (icon), IMAGE_ICON,
+			     0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE);
       /* Try to load a small icon to go with it.  */
-      small_icon = LoadImage (NULL, (LPCSTR) SDATA (icon), IMAGE_ICON,
-			      GetSystemMetrics (SM_CXSMICON),
-			      GetSystemMetrics (SM_CYSMICON),
-			      LR_LOADFROMFILE);
+      small_icon
+	= LoadImage (NULL, (LPCSTR) SDATA (icon), IMAGE_ICON,
+		     GetSystemMetrics (SM_CXSMICON),
+		     GetSystemMetrics (SM_CYSMICON), LR_LOADFROMFILE);
     }
   else if (SYMBOLP (icon))
     {
@@ -6427,17 +6545,16 @@ w32_bitmap_icon (struct frame *f, Lisp_Object icon)
     return 1;
 
   PostMessage (FRAME_W32_WINDOW (f), WM_SETICON, (WPARAM) ICON_BIG,
-               (LPARAM) main_icon);
+	       (LPARAM) main_icon);
 
   /* If there is a small icon that goes with it, set that too.  */
   if (small_icon)
-    PostMessage (FRAME_W32_WINDOW (f), WM_SETICON, (WPARAM) ICON_SMALL,
-		 (LPARAM) small_icon);
+    PostMessage (FRAME_W32_WINDOW (f), WM_SETICON,
+		 (WPARAM) ICON_SMALL, (LPARAM) small_icon);
 
   return 0;
 }
 
-\f
 /************************************************************************
 			  Handling X errors
  ************************************************************************/
@@ -6462,7 +6579,6 @@ x_io_error_quitter (display)
 
  */
 
-\f
 /* Changing the font of the frame.  */
 
 static Lisp_Object
@@ -6493,26 +6609,26 @@ w32_new_font (struct frame *f, Lisp_Object font_object, int fontset)
   else
     {
       FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + unit - 1) / unit;
-      FRAME_CONFIG_SCROLL_BAR_WIDTH (f) =
-	FRAME_CONFIG_SCROLL_BAR_COLS (f) * unit;
+      FRAME_CONFIG_SCROLL_BAR_WIDTH (f)
+	= FRAME_CONFIG_SCROLL_BAR_COLS (f) * unit;
     }
 
-  FRAME_TAB_BAR_HEIGHT (f) = FRAME_TAB_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
+  FRAME_TAB_BAR_HEIGHT (f)
+    = FRAME_TAB_BAR_LINES (f) * FRAME_LINE_HEIGHT (f);
 
-/* Don't change the size of a tip frame; there's no point in
-   doing it because it's done in Fx_show_tip, and it leads to
-   problems because the tip frame has no widget.  */
+  /* Don't change the size of a tip frame; there's no point in
+     doing it because it's done in Fx_show_tip, and it leads to
+     problems because the tip frame has no widget.  */
   if (FRAME_NATIVE_WINDOW (f) != 0 && !FRAME_TOOLTIP_P (f))
-    adjust_frame_size
-      (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
-       FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3, false, Qfont);
+    adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
+		       FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3,
+		       false, Qfont);
 
   /* X version sets font of input methods here also.  */
 
   return font_object;
 }
 
-\f
 /***********************************************************************
 	TODO: W32 Input Methods
  ***********************************************************************/
@@ -6527,7 +6643,6 @@ xim_close_dpy (dpyinfo)
 
  */
 
-\f
 /* Calculate the absolute position in frame F
    from its current recorded position values and gravity.  */
 
@@ -6551,13 +6666,13 @@ w32_calc_absolute_position (struct frame *f)
   if (GetWindowPlacement (FRAME_W32_WINDOW (f), &wp)
       && GetClientRect (FRAME_W32_WINDOW (f), &client_rect))
     {
-      left_right_borders_width =
-	(wp.rcNormalPosition.right - wp.rcNormalPosition.left) -
-	(client_rect.right - client_rect.left);
+      left_right_borders_width
+	= (wp.rcNormalPosition.right - wp.rcNormalPosition.left)
+	  - (client_rect.right - client_rect.left);
 
-      top_bottom_borders_height =
-	(wp.rcNormalPosition.bottom - wp.rcNormalPosition.top) -
-	(client_rect.bottom - client_rect.top);
+      top_bottom_borders_height
+	= (wp.rcNormalPosition.bottom - wp.rcNormalPosition.top)
+	  - (client_rect.bottom - client_rect.top);
     }
   else
     {
@@ -6580,23 +6695,24 @@ w32_calc_absolute_position (struct frame *f)
 
       list = Fw32_display_monitor_attributes_list (Qnil);
       while (CONSP (list))
-        {
-          Lisp_Object attributes = CAR(list);
-          Lisp_Object geometry;
-          Lisp_Object monitor_left, monitor_top;
-
-          list = CDR(list);
-
-          geometry = Fassoc (Qgeometry, attributes, Qnil);
-          if (!NILP (geometry))
-            {
-              monitor_left = Fnth (make_fixnum (1), geometry);
-              monitor_top  = Fnth (make_fixnum (2), geometry);
-
-              display_left = min (display_left, XFIXNUM (monitor_left));
-              display_top  = min (display_top,  XFIXNUM (monitor_top));
-            }
-        }
+	{
+	  Lisp_Object attributes = CAR (list);
+	  Lisp_Object geometry;
+	  Lisp_Object monitor_left, monitor_top;
+
+	  list = CDR (list);
+
+	  geometry = Fassoc (Qgeometry, attributes, Qnil);
+	  if (!NILP (geometry))
+	    {
+	      monitor_left = Fnth (make_fixnum (1), geometry);
+	      monitor_top = Fnth (make_fixnum (2), geometry);
+
+	      display_left
+		= min (display_left, XFIXNUM (monitor_left));
+	      display_top = min (display_top, XFIXNUM (monitor_top));
+	    }
+	}
     }
 
   /* Treat negative positions as relative to the rightmost bottommost
@@ -6605,52 +6721,47 @@ w32_calc_absolute_position (struct frame *f)
      I see no need for subtracting 1 from the border widths - is there
      any on the remaining platforms?  Here these subtractions did put
      the last pixel line/column of a frame off-display when, for
-     example, a (set-frame-parameter nil 'left '(- 0)) specification was
-     used - martin 20017-05-05. */
+     example, a (set-frame-parameter nil 'left '(- 0)) specification
+     was used - martin 20017-05-05. */
   if (flags & XNegative)
     {
       if (p)
-	f->left_pos = (FRAME_PIXEL_WIDTH (p)
-		       - FRAME_PIXEL_WIDTH (f)
-		       + f->left_pos
-		       - left_right_borders_width);
+	f->left_pos = (FRAME_PIXEL_WIDTH (p) - FRAME_PIXEL_WIDTH (f)
+		       + f->left_pos - left_right_borders_width);
       else
-	f->left_pos = (w32_display_pixel_width (FRAME_DISPLAY_INFO (f))
-		       + display_left
-		       - FRAME_PIXEL_WIDTH (f)
-		       + f->left_pos
-		       - left_right_borders_width);
+	f->left_pos
+	  = (w32_display_pixel_width (FRAME_DISPLAY_INFO (f))
+	     + display_left - FRAME_PIXEL_WIDTH (f) + f->left_pos
+	     - left_right_borders_width);
     }
 
   if (flags & YNegative)
     {
       if (p)
-	f->top_pos = (FRAME_PIXEL_HEIGHT (p)
-		      - FRAME_PIXEL_HEIGHT (f)
-		      + f->top_pos
-		      - top_bottom_borders_height);
+	f->top_pos = (FRAME_PIXEL_HEIGHT (p) - FRAME_PIXEL_HEIGHT (f)
+		      + f->top_pos - top_bottom_borders_height);
       else
-	f->top_pos = (w32_display_pixel_height (FRAME_DISPLAY_INFO (f))
-		      + display_top
-		      - FRAME_PIXEL_HEIGHT (f)
-		      + f->top_pos
-		      - top_bottom_borders_height);
+	f->top_pos
+	  = (w32_display_pixel_height (FRAME_DISPLAY_INFO (f))
+	     + display_top - FRAME_PIXEL_HEIGHT (f) + f->top_pos
+	     - top_bottom_borders_height);
     }
 
   /* The left_pos and top_pos are now relative to the top and left
      screen edges, so the flags should correspond.  */
-  f->size_hint_flags &= ~ (XNegative | YNegative);
+  f->size_hint_flags &= ~(XNegative | YNegative);
 }
 
 /* CHANGE_GRAVITY is 1 when calling from Fset_frame_position,
    to really change the position, and 0 when calling from
    w32_make_frame_visible (in that case, XOFF and YOFF are the current
-   position values).  It is -1 when calling from gui_set_frame_parameters,
-   which means, do adjust for borders but don't change the gravity.  */
+   position values).  It is -1 when calling from
+   gui_set_frame_parameters, which means, do adjust for borders but
+   don't change the gravity.  */
 
 static void
 w32_set_offset (struct frame *f, register int xoff, register int yoff,
-                int change_gravity)
+		int change_gravity)
 {
   int modified_top, modified_left;
 
@@ -6658,7 +6769,7 @@ w32_set_offset (struct frame *f, register int xoff, register int yoff,
     {
       f->top_pos = yoff;
       f->left_pos = xoff;
-      f->size_hint_flags &= ~ (XNegative | YNegative);
+      f->size_hint_flags &= ~(XNegative | YNegative);
       if (xoff < 0)
 	f->size_hint_flags |= XNegative;
       if (yoff < 0)
@@ -6674,14 +6785,12 @@ w32_set_offset (struct frame *f, register int xoff, register int yoff,
   modified_top = f->top_pos;
 
   if (!FRAME_PARENT_FRAME (f))
-    my_set_window_pos (FRAME_W32_WINDOW (f), NULL,
-		       modified_left, modified_top,
-		       0, 0,
+    my_set_window_pos (FRAME_W32_WINDOW (f), NULL, modified_left,
+		       modified_top, 0, 0,
 		       SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
   else
-    my_set_window_pos (FRAME_W32_WINDOW (f), HWND_TOP,
-		       modified_left, modified_top,
-		       0, 0,
+    my_set_window_pos (FRAME_W32_WINDOW (f), HWND_TOP, modified_left,
+		       modified_top, 0, 0,
 		       SWP_NOZORDER | SWP_NOSIZE | SWP_NOACTIVATE);
   unblock_input ();
 }
@@ -6691,21 +6800,22 @@ w32fullscreen_hook (struct frame *f)
 {
   if (FRAME_VISIBLE_P (f))
     {
-      HWND hwnd = FRAME_W32_WINDOW(f);
+      HWND hwnd = FRAME_W32_WINDOW (f);
       DWORD dwStyle = GetWindowLong (hwnd, GWL_STYLE);
       RECT rect;
       enum fullscreen_type prev_fsmode = FRAME_PREV_FSMODE (f);
 
-      block_input();
+      block_input ();
       f->want_fullscreen &= ~FULLSCREEN_WAIT;
 
       if (FRAME_PREV_FSMODE (f) == FULLSCREEN_NONE)
-        GetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
+	GetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
 
       if (FRAME_PREV_FSMODE (f) == FULLSCREEN_BOTH)
-        {
+	{
 	  if (!FRAME_UNDECORATED (f))
-	    SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_OVERLAPPEDWINDOW);
+	    SetWindowLong (hwnd, GWL_STYLE,
+			   dwStyle | WS_OVERLAPPEDWINDOW);
 	  SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
 	}
       else if (FRAME_PREV_FSMODE (f) == FULLSCREEN_HEIGHT
@@ -6727,31 +6837,36 @@ w32fullscreen_hook (struct frame *f)
 	  ShowWindow (hwnd, SW_MAXIMIZE);
 	}
       else if (f->want_fullscreen == FULLSCREEN_BOTH)
-        {
-	  w32_fullscreen_rect
-	    (hwnd, f->want_fullscreen,
-	     FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect);
+	{
+	  w32_fullscreen_rect (hwnd, f->want_fullscreen,
+			       FRAME_NORMAL_PLACEMENT (f)
+				 .rcNormalPosition,
+			       &rect);
 	  if (!FRAME_UNDECORATED (f))
-	    SetWindowLong (hwnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW);
-          SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
-                        rect.right - rect.left, rect.bottom - rect.top,
-                        SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
-	  change_frame_size
-	    (f, rect.right - rect.left, rect.bottom - rect.top,
-	     false, true, false);
-        }
+	    SetWindowLong (hwnd, GWL_STYLE,
+			   dwStyle & ~WS_OVERLAPPEDWINDOW);
+	  SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
+			rect.right - rect.left,
+			rect.bottom - rect.top,
+			SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
+	  change_frame_size (f, rect.right - rect.left,
+			     rect.bottom - rect.top, false, true,
+			     false);
+	}
       else
-        {
+	{
 	  ShowWindow (hwnd, SW_SHOWNORMAL);
-	  w32_fullscreen_rect
-	    (hwnd, f->want_fullscreen,
-	     FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect);
-          SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
-                        rect.right - rect.left, rect.bottom - rect.top, 0);
-
-	  change_frame_size
-	    (f, rect.right - rect.left, rect.bottom - rect.top,
-	     false, true, false);
+	  w32_fullscreen_rect (hwnd, f->want_fullscreen,
+			       FRAME_NORMAL_PLACEMENT (f)
+				 .rcNormalPosition,
+			       &rect);
+	  SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
+			rect.right - rect.left,
+			rect.bottom - rect.top, 0);
+
+	  change_frame_size (f, rect.right - rect.left,
+			     rect.bottom - rect.top, false, true,
+			     false);
 	}
 
       f->want_fullscreen = FULLSCREEN_NONE;
@@ -6761,19 +6876,18 @@ w32fullscreen_hook (struct frame *f)
 	  || f->want_fullscreen == FULLSCREEN_WIDTH
 	  || f->want_fullscreen == FULLSCREEN_HEIGHT)
 	do_pending_window_change (0);
-
     }
   else
     f->want_fullscreen |= FULLSCREEN_WAIT;
 }
 
 /* Change the size of frame F's Windows window to WIDTH and HEIGHT
-   pixels.  If CHANGE_GRAVITY, change to top-left-corner window gravity
-   for this size change and subsequent size changes.  Otherwise leave
-   the window gravity unchanged.  */
+   pixels.  If CHANGE_GRAVITY, change to top-left-corner window
+   gravity for this size change and subsequent size changes. Otherwise
+   leave the window gravity unchanged.  */
 static void
-w32_set_window_size (struct frame *f, bool change_gravity,
-		     int width, int height)
+w32_set_window_size (struct frame *f, bool change_gravity, int width,
+		     int height)
 {
   Lisp_Object fullscreen = get_frame_param (f, Qfullscreen);
   RECT rect;
@@ -6815,7 +6929,8 @@ w32_set_window_size (struct frame *f, bool change_gravity,
   rect.right = width;
   rect.bottom = height;
 
-  AdjustWindowRect (&rect, f->output_data.w32->dwStyle, menu_bar_height > 0);
+  AdjustWindowRect (&rect, f->output_data.w32->dwStyle,
+		    menu_bar_height > 0);
 
   if (!(f->after_make_frame)
       && !(f->want_fullscreen & FULLSCREEN_WAIT)
@@ -6825,16 +6940,14 @@ w32_set_window_size (struct frame *f, bool change_gravity,
 
       GetWindowRect (FRAME_W32_WINDOW (f), &window_rect);
 
-      if (EQ (fullscreen, Qmaximized)
-	  || EQ (fullscreen, Qfullboth)
+      if (EQ (fullscreen, Qmaximized) || EQ (fullscreen, Qfullboth)
 	  || EQ (fullscreen, Qfullwidth))
 	{
 	  rect.left = window_rect.left;
 	  rect.right = window_rect.right;
 	  width = -1;
 	}
-      if (EQ (fullscreen, Qmaximized)
-	  || EQ (fullscreen, Qfullboth)
+      if (EQ (fullscreen, Qmaximized) || EQ (fullscreen, Qfullboth)
 	  || EQ (fullscreen, Qfullheight))
 	{
 	  rect.top = window_rect.top;
@@ -6846,14 +6959,13 @@ w32_set_window_size (struct frame *f, bool change_gravity,
   if (width > 0 || height > 0)
     {
       if (!FRAME_PARENT_FRAME (f))
-	my_set_window_pos (FRAME_W32_WINDOW (f), NULL,
-			   0, 0,
+	my_set_window_pos (FRAME_W32_WINDOW (f), NULL, 0, 0,
 			   rect.right - rect.left,
 			   rect.bottom - rect.top,
-			   SWP_NOZORDER | SWP_NOMOVE | SWP_NOACTIVATE);
+			   SWP_NOZORDER | SWP_NOMOVE
+			     | SWP_NOACTIVATE);
       else
-	my_set_window_pos (FRAME_W32_WINDOW (f), HWND_TOP,
-			   0, 0,
+	my_set_window_pos (FRAME_W32_WINDOW (f), HWND_TOP, 0, 0,
 			   rect.right - rect.left,
 			   rect.bottom - rect.top,
 			   SWP_NOMOVE | SWP_NOACTIVATE);
@@ -6864,11 +6976,11 @@ w32_set_window_size (struct frame *f, bool change_gravity,
       /* If cursor was outside the new size, mark it as off.  */
       mark_window_cursors_off (XWINDOW (f->root_window));
 
-      /* Clear out any recollection of where the mouse highlighting was,
-	 since it might be in a place that's outside the new frame size.
-	 Actually checking whether it is outside is a pain in the neck,
-	 so don't try--just let the highlighting be done afresh with new
-	 size.  */
+      /* Clear out any recollection of where the mouse highlighting
+	 was, since it might be in a place that's outside the new
+	 frame size. Actually checking whether it is outside is a pain
+	 in the neck, so don't try--just let the highlighting be done
+	 afresh with new size.  */
       cancel_mouse_face (f);
     }
 
@@ -6876,7 +6988,7 @@ w32_set_window_size (struct frame *f, bool change_gravity,
 
   do_pending_window_change (false);
 }
-\f
+
 /* Mouse warping.  */
 
 void
@@ -6921,7 +7033,6 @@ w32_get_focus_frame (struct frame *f)
   return lisp_focus;
 }
 
-\f
 /* Focus shifting, raising and lowering.  */
 
 /* The NOACTIVATE argument has no effect on Windows.  According to the
@@ -6943,7 +7054,7 @@ w32_focus_frame (struct frame *f, bool noactivate)
     my_set_focus (f, FRAME_W32_WINDOW (f));
   else
 #endif
-    my_set_foreground_window (FRAME_W32_WINDOW (f));
+  my_set_foreground_window (FRAME_W32_WINDOW (f));
   unblock_input ();
 }
 
@@ -6954,19 +7065,19 @@ w32_raise_frame (struct frame *f)
   block_input ();
 
   /* Strictly speaking, raise-frame should only change the frame's Z
-     order, leaving input focus unchanged.  This is reasonable behavior
-     on X where the usual policy is point-to-focus.  However, this
-     behavior would be very odd on Windows where the usual policy is
-     click-to-focus.
+     order, leaving input focus unchanged.  This is reasonable
+     behavior on X where the usual policy is point-to-focus.  However,
+     this behavior would be very odd on Windows where the usual policy
+     is click-to-focus.
 
      On X, if the mouse happens to be over the raised frame, it gets
      input focus anyway (so the window with focus will never be
      completely obscured) - if not, then just moving the mouse over it
-     is sufficient to give it focus.  On Windows, the user must actually
-     click on the frame (preferably the title bar so as not to move
-     point), which is more awkward.  Also, no other Windows program
-     raises a window to the top but leaves another window (possibly now
-     completely obscured) with input focus.
+     is sufficient to give it focus.  On Windows, the user must
+     actually click on the frame (preferably the title bar so as not
+     to move point), which is more awkward.  Also, no other Windows
+     program raises a window to the top but leaves another window
+     (possibly now completely obscured) with input focus.
 
      Because there is a system setting on Windows that allows the user
      to choose the point to focus policy, we make the strict semantics
@@ -6974,28 +7085,26 @@ w32_raise_frame (struct frame *f)
 
   if (NILP (Vw32_grab_focus_on_raise))
     {
-      /* The obvious call to my_set_window_pos doesn't work if Emacs is
-	 not already the foreground application: the frame is raised
-	 above all other frames belonging to us, but not above the
-	 current top window.  To achieve that, we have to resort to this
-	 more cumbersome method.  */
+      /* The obvious call to my_set_window_pos doesn't work if Emacs
+	 is not already the foreground application: the frame is
+	 raised above all other frames belonging to us, but not above
+	 the current top window.  To achieve that, we have to resort
+	 to this more cumbersome method.  */
 
       HDWP handle = BeginDeferWindowPos (2);
       if (handle)
 	{
-	  handle = DeferWindowPos (handle,
-				   FRAME_W32_WINDOW (f),
-				   HWND_TOP,
-				   0, 0, 0, 0,
-				   SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
+	  handle = DeferWindowPos (handle, FRAME_W32_WINDOW (f),
+				   HWND_TOP, 0, 0, 0, 0,
+				   SWP_NOSIZE | SWP_NOMOVE
+				     | SWP_NOACTIVATE);
 	  if (handle)
 	    {
-	      handle = DeferWindowPos (handle,
-				       GetForegroundWindow (),
-				       FRAME_W32_WINDOW (f),
-				       0, 0, 0, 0,
-				       SWP_NOSIZE | SWP_NOMOVE |
-				       SWP_NOACTIVATE);
+	      handle
+		= DeferWindowPos (handle, GetForegroundWindow (),
+				  FRAME_W32_WINDOW (f), 0, 0, 0, 0,
+				  SWP_NOSIZE | SWP_NOMOVE
+				    | SWP_NOACTIVATE);
 	      if (handle)
 		EndDeferWindowPos (handle);
 	    }
@@ -7014,9 +7123,7 @@ w32_raise_frame (struct frame *f)
 w32_lower_frame (struct frame *f)
 {
   block_input ();
-  my_set_window_pos (FRAME_W32_WINDOW (f),
-		     HWND_BOTTOM,
-		     0, 0, 0, 0,
+  my_set_window_pos (FRAME_W32_WINDOW (f), HWND_BOTTOM, 0, 0, 0, 0,
 		     SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
   unblock_input ();
 }
@@ -7024,7 +7131,7 @@ w32_lower_frame (struct frame *f)
 static void
 w32_frame_raise_lower (struct frame *f, bool raise_flag)
 {
-  if (! FRAME_W32_P (f))
+  if (!FRAME_W32_P (f))
     return;
 
   if (raise_flag)
@@ -7032,7 +7139,7 @@ w32_frame_raise_lower (struct frame *f, bool raise_flag)
   else
     w32_lower_frame (f);
 }
-\f
+
 /* Change of visibility.  */
 
 /* This tries to wait until the frame is really visible, depending on
@@ -7050,28 +7157,30 @@ w32_make_frame_visible (struct frame *f)
 
   gui_set_bitmap_icon (f);
 
-  if (! FRAME_VISIBLE_P (f))
+  if (!FRAME_VISIBLE_P (f))
     {
       /* We test FRAME_GARBAGED_P here to make sure we don't
 	 call w32_set_offset a second time
 	 if we get to w32_make_frame_visible a second time
 	 before the window gets really visible.  */
-      if (! FRAME_ICONIFIED_P (f)
-	  && ! f->output_data.w32->asked_for_visible)
+      if (!FRAME_ICONIFIED_P (f)
+	  && !f->output_data.w32->asked_for_visible)
 	{
 	  if (!FRAME_PARENT_FRAME (f))
 	    {
 	      RECT workarea_rect;
 	      RECT window_rect;
 
-	      /* Adjust vertical window position in order to avoid being
-		 covered by a taskbar placed at the bottom of the desktop. */
-	      SystemParametersInfo (SPI_GETWORKAREA, 0, &workarea_rect, 0);
+	      /* Adjust vertical window position in order to avoid
+		 being covered by a taskbar placed at the bottom of
+		 the desktop. */
+	      SystemParametersInfo (SPI_GETWORKAREA, 0,
+				    &workarea_rect, 0);
 	      GetWindowRect (FRAME_W32_WINDOW (f), &window_rect);
 	      if (window_rect.bottom > workarea_rect.bottom
 		  && window_rect.top > workarea_rect.top)
-		f->top_pos = max (window_rect.top
-				  - window_rect.bottom + workarea_rect.bottom,
+		f->top_pos = max (window_rect.top - window_rect.bottom
+				    + workarea_rect.bottom,
 				  workarea_rect.top);
 	    }
 
@@ -7080,19 +7189,18 @@ w32_make_frame_visible (struct frame *f)
 
       f->output_data.w32->asked_for_visible = 1;
 
-      /* According to a report in emacs-devel 2008-06-03, SW_SHOWNORMAL
-	 causes unexpected behavior when unminimizing frames that were
-	 previously maximized.  But only SW_SHOWNORMAL works properly for
-	 frames that were truly hidden (using make-frame-invisible), so
-	 we need it to avoid Bug#5482.  It seems that iconified is only
-	 set for minimized windows that are still visible, so use that to
-	 determine the appropriate flag to pass ShowWindow.  */
+      /* According to a report in emacs-devel 2008-06-03,
+	 SW_SHOWNORMAL causes unexpected behavior when unminimizing
+	 frames that were previously maximized.  But only
+	 SW_SHOWNORMAL works properly for frames that were truly
+	 hidden (using make-frame-invisible), so we need it to avoid
+	 Bug#5482.  It seems that iconified is only set for minimized
+	 windows that are still visible, so use that to determine the
+	 appropriate flag to pass ShowWindow.  */
       my_show_window (f, FRAME_W32_WINDOW (f),
-                      FRAME_ICONIFIED_P (f)
-		      ? SW_RESTORE
-		      : FRAME_NO_FOCUS_ON_MAP (f)
-		      ? SW_SHOWNOACTIVATE
-		      : SW_SHOWNORMAL);
+		      FRAME_ICONIFIED_P (f)	  ? SW_RESTORE
+		      : FRAME_NO_FOCUS_ON_MAP (f) ? SW_SHOWNOACTIVATE
+						  : SW_SHOWNORMAL);
     }
 
   if (!FLOATP (Vx_wait_for_event_timeout))
@@ -7102,8 +7210,8 @@ w32_make_frame_visible (struct frame *f)
     }
 
   /* Synchronize to ensure Emacs knows the frame is visible
-     before we do anything else.  We do this loop with input not blocked
-     so that incoming events are handled.  */
+     before we do anything else.  We do this loop with input not
+     blocked so that incoming events are handled.  */
   {
     Lisp_Object frame;
     double timeout = XFLOAT_DATA (Vx_wait_for_event_timeout);
@@ -7117,21 +7225,23 @@ w32_make_frame_visible (struct frame *f)
     /* Wait until the frame is visible.  Process X events until a
        MapNotify event has been seen, or until we think we won't get a
        MapNotify at all..  */
-    while (timeout > (XFLOAT_DATA (Ffloat_time (Qnil)) - start_time) &&
-           !FRAME_VISIBLE_P (f))
+    while (timeout > (XFLOAT_DATA (Ffloat_time (Qnil)) - start_time)
+	   && !FRAME_VISIBLE_P (f))
       {
 	/* Force processing of queued events.  */
-        /* TODO: x_sync equivalent?  */
-
-	/* Machines that do polling rather than SIGIO have been observed
-	   to go into a busy-wait here.  So we'll fake an alarm signal
-	   to let the handler know that there's something to be read.
-	   We used to raise a real alarm, but it seems that the handler
-	   isn't always enabled here.  This is probably a bug.  */
+	/* TODO: x_sync equivalent?  */
+
+	/* Machines that do polling rather than SIGIO have been
+	   observed to go into a busy-wait here.  So we'll fake an
+	   alarm signal to let the handler know that there's something
+	   to be read. We used to raise a real alarm, but it seems
+	   that the handler isn't always enabled here.  This is
+	   probably a bug.  */
 	if (input_polling_used ())
 	  {
-	    /* It could be confusing if a real alarm arrives while processing
-	       the fake one.  Turn it off and let the handler reset it.  */
+	    /* It could be confusing if a real alarm arrives while
+	       processing the fake one.  Turn it off and let the
+	       handler reset it.  */
 	    int old_poll_suppress_count = poll_suppress_count;
 	    poll_suppress_count = 1;
 	    poll_for_input_1 ();
@@ -7193,8 +7303,8 @@ w32_iconify_frame (struct frame *f)
   gui_set_bitmap_icon (f);
 
   /* Simulate the user minimizing the frame.  */
-  SendMessageTimeout (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, SC_MINIMIZE, 0,
-		      0, 6000, NULL);
+  SendMessageTimeout (FRAME_W32_WINDOW (f), WM_SYSCOMMAND,
+		      SC_MINIMIZE, 0, 0, 6000, NULL);
 
   SET_FRAME_VISIBLE (f, 0);
   SET_FRAME_ICONIFIED (f, true);
@@ -7202,7 +7312,6 @@ w32_iconify_frame (struct frame *f)
   unblock_input ();
 }
 
-\f
 /* Free resources of frame F.  */
 
 void
@@ -7241,7 +7350,6 @@ w32_free_frame_resources (struct frame *f)
   unblock_input ();
 }
 
-
 /* Destroy the window of frame F.  */
 static void
 w32_destroy_window (struct frame *f)
@@ -7252,7 +7360,6 @@ w32_destroy_window (struct frame *f)
   dpyinfo->reference_count--;
 }
 
-\f
 /* Setting window manager hints.  */
 
 /* Set the normal size hints for the window manager, for frame F.
@@ -7269,27 +7376,29 @@ w32_wm_set_size_hint (struct frame *f, long flags, bool user_position)
 
   SetWindowLong (window, WND_FONTWIDTH_INDEX, FRAME_COLUMN_WIDTH (f));
   SetWindowLong (window, WND_LINEHEIGHT_INDEX, FRAME_LINE_HEIGHT (f));
-  SetWindowLong (window, WND_BORDER_INDEX, FRAME_INTERNAL_BORDER_WIDTH (f));
-  SetWindowLong (window, WND_VSCROLLBAR_INDEX, FRAME_SCROLL_BAR_AREA_WIDTH (f));
-  SetWindowLong (window, WND_HSCROLLBAR_INDEX, FRAME_SCROLL_BAR_AREA_HEIGHT (f));
+  SetWindowLong (window, WND_BORDER_INDEX,
+		 FRAME_INTERNAL_BORDER_WIDTH (f));
+  SetWindowLong (window, WND_VSCROLLBAR_INDEX,
+		 FRAME_SCROLL_BAR_AREA_WIDTH (f));
+  SetWindowLong (window, WND_HSCROLLBAR_INDEX,
+		 FRAME_SCROLL_BAR_AREA_HEIGHT (f));
 
   leave_crit ();
 }
 
-\f
 /***********************************************************************
 				Fonts
  ***********************************************************************/
 
 #ifdef GLYPH_DEBUG
 
-/* Check that FONT is valid on frame F.  It is if it can be found in F's
-   font table.  */
+/* Check that FONT is valid on frame F.  It is if it can be found in
+   F's font table.  */
 
 static void
 w32_check_font (struct frame *f, struct font *font)
 {
-  eassert (font != NULL && ! NILP (font->props[FONT_TYPE_INDEX]));
+  eassert (font != NULL && !NILP (font->props[FONT_TYPE_INDEX]));
   if (font->driver->check)
     eassert (font->driver->check (f, font) == 0);
 }
@@ -7348,7 +7457,6 @@ w32_toggle_invisible_pointer (struct frame *f, bool invisible)
   unblock_input ();
 }
 
-\f
 /***********************************************************************
 			     Image Hooks
  ***********************************************************************/
@@ -7359,7 +7467,6 @@ w32_free_pixmap (struct frame *_f, Emacs_Pixmap pixmap)
   DeleteObject (pixmap);
 }
 
-\f
 /***********************************************************************
 			    Initialization
  ***********************************************************************/
@@ -7382,7 +7489,8 @@ w32_initialize_display_info (Lisp_Object display_name)
       if (ckd_add (&nbytes, nbytes, SCHARS (Vsystem_name)))
 	memory_full (SIZE_MAX);
       dpyinfo->w32_id_name = xmalloc (nbytes);
-      sprintf (dpyinfo->w32_id_name, "%s%s%s", title, at, SDATA (Vsystem_name));
+      sprintf (dpyinfo->w32_id_name, "%s%s%s", title, at,
+	       SDATA (Vsystem_name));
     }
   else
     {
@@ -7406,9 +7514,10 @@ w32_initialize_display_info (Lisp_Object display_name)
   reset_mouse_highlight (&dpyinfo->mouse_highlight);
 }
 
-/* Create an xrdb-style database of resources to supersede registry settings.
-   The database is just a concatenation of C strings, finished by an additional
-   \0.  The strings are submitted to some basic normalization, so
+/* Create an xrdb-style database of resources to supersede registry
+   settings. The database is just a concatenation of C strings,
+   finished by an additional \0.  The strings are submitted to some
+   basic normalization, so
 
      [ *]option[ *]:[ *]value...
 
@@ -7427,33 +7536,35 @@ w32_make_rdb (char *xrm_option)
   int in_option = 1;
   int before_value = 0;
 
-  do {
-    ch = *xrm_option++;
+  do
+    {
+      ch = *xrm_option++;
 
-    if (ch == '\n')
-      {
-        *current++ = '\0';
-        in_option = 1;
-        before_value = 0;
-      }
-    else if (ch != ' ')
-      {
-        *current++ = ch;
-        if (in_option && (ch == ':'))
-          {
-            in_option = 0;
-            before_value = 1;
-          }
-        else if (before_value)
-          {
-            before_value = 0;
-          }
-      }
-    else if (!(in_option || before_value))
-      {
-        *current++ = ch;
-      }
-  } while (ch);
+      if (ch == '\n')
+	{
+	  *current++ = '\0';
+	  in_option = 1;
+	  before_value = 0;
+	}
+      else if (ch != ' ')
+	{
+	  *current++ = ch;
+	  if (in_option && (ch == ':'))
+	    {
+	      in_option = 0;
+	      before_value = 1;
+	    }
+	  else if (before_value)
+	    {
+	      before_value = 0;
+	    }
+	}
+      else if (!(in_option || before_value))
+	{
+	  *current++ = ch;
+	}
+    }
+  while (ch);
 
   *current = '\0';
 
@@ -7462,37 +7573,35 @@ w32_make_rdb (char *xrm_option)
 
 extern frame_parm_handler w32_frame_parm_handlers[];
 
-static struct redisplay_interface w32_redisplay_interface =
-{
-  w32_frame_parm_handlers,
-  gui_produce_glyphs,
-  gui_write_glyphs,
-  gui_insert_glyphs,
-  gui_clear_end_of_line,
-  w32_scroll_run,
-  w32_after_update_window_line,
-  w32_update_window_begin,
-  w32_update_window_end,
-  0, /* flush_display */
-  gui_clear_window_mouse_face,
-  gui_get_glyph_overhangs,
-  gui_fix_overlapping_area,
-  w32_draw_fringe_bitmap,
-  w32_define_fringe_bitmap,
-  w32_destroy_fringe_bitmap,
-  w32_compute_glyph_string_overhangs,
-  w32_draw_glyph_string,
-  w32_define_frame_cursor,
-  w32_clear_frame_area,
-  w32_clear_under_internal_border,
-  w32_draw_window_cursor,
-  w32_draw_vertical_window_border,
-  w32_draw_window_divider,
-  w32_shift_glyphs_for_insert,
-  w32_show_hourglass,
-  w32_hide_hourglass,
-  w32_default_font_parameter
-};
+static struct redisplay_interface w32_redisplay_interface
+  = { w32_frame_parm_handlers,
+      gui_produce_glyphs,
+      gui_write_glyphs,
+      gui_insert_glyphs,
+      gui_clear_end_of_line,
+      w32_scroll_run,
+      w32_after_update_window_line,
+      w32_update_window_begin,
+      w32_update_window_end,
+      0, /* flush_display */
+      gui_clear_window_mouse_face,
+      gui_get_glyph_overhangs,
+      gui_fix_overlapping_area,
+      w32_draw_fringe_bitmap,
+      w32_define_fringe_bitmap,
+      w32_destroy_fringe_bitmap,
+      w32_compute_glyph_string_overhangs,
+      w32_draw_glyph_string,
+      w32_define_frame_cursor,
+      w32_clear_frame_area,
+      w32_clear_under_internal_border,
+      w32_draw_window_cursor,
+      w32_draw_vertical_window_border,
+      w32_draw_window_divider,
+      w32_shift_glyphs_for_insert,
+      w32_show_hourglass,
+      w32_hide_hourglass,
+      w32_default_font_parameter };
 
 static void w32_delete_terminal (struct terminal *term);
 
@@ -7512,21 +7621,25 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
   terminal->ins_del_lines_hook = w32_ins_del_lines;
   terminal->delete_glyphs_hook = w32_delete_glyphs;
   terminal->ring_bell_hook = w32_ring_bell;
-  terminal->toggle_invisible_pointer_hook = w32_toggle_invisible_pointer;
+  terminal->toggle_invisible_pointer_hook
+    = w32_toggle_invisible_pointer;
   terminal->update_begin_hook = w32_update_begin;
   terminal->update_end_hook = w32_update_end;
   terminal->read_socket_hook = w32_read_socket;
   terminal->frame_up_to_date_hook = w32_frame_up_to_date;
-  terminal->buffer_flipping_unblocked_hook = w32_buffer_flipping_unblocked_hook;
+  terminal->buffer_flipping_unblocked_hook
+    = w32_buffer_flipping_unblocked_hook;
   terminal->defined_color_hook = w32_defined_color;
-  terminal->query_frame_background_color = w32_query_frame_background_color;
+  terminal->query_frame_background_color
+    = w32_query_frame_background_color;
   terminal->query_colors = w32_query_colors;
   terminal->mouse_position_hook = w32_mouse_position;
   terminal->get_focus_frame = w32_get_focus_frame;
   terminal->focus_frame_hook = w32_focus_frame;
   terminal->frame_rehighlight_hook = w32_frame_rehighlight;
   terminal->frame_raise_lower_hook = w32_frame_raise_lower;
-  terminal->frame_visible_invisible_hook = w32_make_frame_visible_invisible;
+  terminal->frame_visible_invisible_hook
+    = w32_make_frame_visible_invisible;
   terminal->fullscreen_hook = w32fullscreen_hook;
   terminal->iconify_frame_hook = w32_iconify_frame;
   terminal->set_window_size_hook = w32_set_window_size;
@@ -7540,10 +7653,14 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
   terminal->popup_dialog_hook = w32_popup_dialog;
   terminal->change_tab_bar_height_hook = w32_change_tab_bar_height;
   terminal->change_tool_bar_height_hook = w32_change_tool_bar_height;
-  terminal->set_vertical_scroll_bar_hook = w32_set_vertical_scroll_bar;
-  terminal->set_horizontal_scroll_bar_hook = w32_set_horizontal_scroll_bar;
-  terminal->set_scroll_bar_default_width_hook = w32_set_scroll_bar_default_width;
-  terminal->set_scroll_bar_default_height_hook = w32_set_scroll_bar_default_height;
+  terminal->set_vertical_scroll_bar_hook
+    = w32_set_vertical_scroll_bar;
+  terminal->set_horizontal_scroll_bar_hook
+    = w32_set_horizontal_scroll_bar;
+  terminal->set_scroll_bar_default_width_hook
+    = w32_set_scroll_bar_default_width;
+  terminal->set_scroll_bar_default_height_hook
+    = w32_set_scroll_bar_default_height;
   terminal->condemn_scroll_bars_hook = w32_condemn_scroll_bars;
   terminal->redeem_scroll_bar_hook = w32_redeem_scroll_bar;
   terminal->judge_scroll_bars_hook = w32_judge_scroll_bars;
@@ -7553,13 +7670,13 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
   terminal->delete_terminal_hook = w32_delete_terminal;
   /* Other hooks are NULL by default.  */
 
-  /* We don't yet support separate terminals on W32, so don't try to share
-     keyboards between virtual terminals that are on the same physical
-     terminal like X does.  */
+  /* We don't yet support separate terminals on W32, so don't try to
+     share keyboards between virtual terminals that are on the same
+     physical terminal like X does.  */
   terminal->kboard = allocate_kboard (Qw32);
-  /* Don't let the initial kboard remain current longer than necessary.
-     That would cause problems if a file loaded on startup tries to
-     prompt in the mini-buffer.  */
+  /* Don't let the initial kboard remain current longer than
+     necessary. That would cause problems if a file loaded on startup
+     tries to prompt in the mini-buffer.  */
   if (current_kboard == initial_kboard)
     current_kboard = terminal->kboard;
   terminal->kboard->reference_count++;
@@ -7584,7 +7701,8 @@ w32_delete_terminal (struct terminal *terminal)
 }
 
 struct w32_display_info *
-w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
+w32_term_init (Lisp_Object display_name, char *xrm_option,
+	       char *resource_name)
 {
   struct w32_display_info *dpyinfo;
   struct terminal *terminal;
@@ -7635,7 +7753,8 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
      explicit FD here.  */
   add_keyboard_wait_descriptor (0);
 #elif CYGWIN
-  /* /dev/windows wakes us up when we have a thread message pending.  */
+  /* /dev/windows wakes us up when we have a thread message pending.
+   */
   add_keyboard_wait_descriptor (w32_message_fd);
 #endif
 
@@ -7652,23 +7771,24 @@ w32_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name)
 
   return dpyinfo;
 }
-\f
-/* Get rid of display DPYINFO, assuming all frames are already gone.  */
+
+/* Get rid of display DPYINFO, assuming all frames are already gone.
+ */
 void
 w32_delete_display (struct w32_display_info *dpyinfo)
 {
   /* FIXME: the only display info apparently can't be deleted.  */
   /* free palette table */
   {
-    struct w32_palette_entry * plist;
+    struct w32_palette_entry *plist;
 
     plist = dpyinfo->color_list;
     while (plist)
-    {
-      struct w32_palette_entry * pentry = plist;
-      plist = plist->next;
-      xfree (pentry);
-    }
+      {
+	struct w32_palette_entry *pentry = plist;
+	plist = plist->next;
+	xfree (pentry);
+      }
     dpyinfo->color_list = NULL;
     if (dpyinfo->palette)
       DeleteObject (dpyinfo->palette);
@@ -7677,7 +7797,6 @@ w32_delete_display (struct w32_display_info *dpyinfo)
   w32_reset_fringes ();
 }
 
-\f
 /* Set up use of W32.  */
 
 void
@@ -7687,18 +7806,16 @@ w32_init_main_thread (void)
   DuplicateHandle (GetCurrentProcess (), GetCurrentThread (),
 		   GetCurrentProcess (), &hMainThread, 0, TRUE,
 		   DUPLICATE_SAME_ACCESS);
-
-
 }
 
-DWORD WINAPI w32_msg_worker (void * arg);
+DWORD WINAPI w32_msg_worker (void *arg);
 
 static void
 w32_initialize (void)
 {
   HANDLE shell;
   BOOL caret;
-  HRESULT (WINAPI * set_user_model) (const wchar_t * id);
+  HRESULT (WINAPI * set_user_model) (const wchar_t *id);
 
   baud_rate = 19200;
 
@@ -7713,9 +7830,9 @@ w32_initialize (void)
   shell = GetModuleHandle ("shell32.dll");
   if (shell)
     {
-      set_user_model
-	= (void *) GetProcAddress (shell,
-				   "SetCurrentProcessExplicitAppUserModelID");
+      set_user_model = (void *)
+	GetProcAddress (shell,
+			"SetCurrentProcessExplicitAppUserModelID");
 
       /* If the function is defined, then we are running on Windows 7
 	 or newer, and the UI uses this to group related windows
@@ -7741,8 +7858,8 @@ w32_initialize (void)
 
   any_help_event_p = 0;
 
-  /* Initialize input mode: interrupt_input off, no flow control, allow
-     8 bit character input, standard quit char.  */
+  /* Initialize input mode: interrupt_input off, no flow control,
+     allow 8 bit character input, standard quit char.  */
   Fset_input_mode (Qnil, Qnil, make_fixnum (2), Qnil);
 
   {
@@ -7760,21 +7877,20 @@ w32_initialize (void)
 
     PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE);
 
-    hWindowsThread = CreateThread (NULL, 0,
-                                   w32_msg_worker,
-                                   0, 0, &dwWindowsThreadId);
+    hWindowsThread = CreateThread (NULL, 0, w32_msg_worker, 0, 0,
+				   &dwWindowsThreadId);
 
     GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE);
   }
 
   /* It is desirable that mainThread should have the same notion of
-     focus window and active window as windowsThread.  Unfortunately, the
-     following call to AttachThreadInput, which should do precisely what
-     we need, causes major problems when Emacs is linked as a console
-     program.  Unfortunately, we have good reasons for doing that, so
-     instead we need to send messages to windowsThread to make some API
-     calls for us (ones that affect, or depend on, the active/focus
-     window state.)  */
+     focus window and active window as windowsThread.  Unfortunately,
+     the following call to AttachThreadInput, which should do
+     precisely what we need, causes major problems when Emacs is
+     linked as a console program.  Unfortunately, we have good reasons
+     for doing that, so instead we need to send messages to
+     windowsThread to make some API calls for us (ones that affect, or
+     depend on, the active/focus window state.)  */
 #ifdef ATTACH_THREADS
   AttachThreadInput (dwMainThreadId, dwWindowsThreadId, TRUE);
 #endif
@@ -7783,7 +7899,8 @@ w32_initialize (void)
   {
     HMODULE user_lib = GetModuleHandle ("user32.dll");
 
-#define LOAD_PROC(lib, fn) pfn##fn = (void *) GetProcAddress (lib, #fn)
+#define LOAD_PROC(lib, fn) \
+  pfn##fn = (void *) GetProcAddress (lib, #fn)
 
     LOAD_PROC (user_lib, SetLayeredWindowAttributes);
 
@@ -7798,11 +7915,13 @@ #define LOAD_PROC(lib, fn) pfn##fn = (void *) GetProcAddress (lib, #fn)
     vertical_scroll_bar_min_handle = 5;
     horizontal_scroll_bar_min_handle = 5;
 
-    /* For either kind of scroll bar, take account of the arrows; these
-       effectively form the border of the main scroll bar range.  */
+    /* For either kind of scroll bar, take account of the arrows;
+       these effectively form the border of the main scroll bar range.
+     */
     vertical_scroll_bar_top_border = vertical_scroll_bar_bottom_border
       = GetSystemMetrics (SM_CYVSCROLL);
-    horizontal_scroll_bar_left_border = horizontal_scroll_bar_right_border
+    horizontal_scroll_bar_left_border
+      = horizontal_scroll_bar_right_border
       = GetSystemMetrics (SM_CYHSCROLL);
   }
 
@@ -7821,12 +7940,12 @@ syms_of_w32term (void)
   DEFSYM (Qrenamed_to, "renamed-to");
 
   DEFVAR_LISP ("x-wait-for-event-timeout", Vx_wait_for_event_timeout,
-    doc: /* SKIP: real doc in xterm.c.  */);
+	       doc
+	       : /* SKIP: real doc in xterm.c.  */);
   Vx_wait_for_event_timeout = make_float (0.1);
 
-  DEFVAR_INT ("w32-num-mouse-buttons",
-	      w32_num_mouse_buttons,
-	      doc: /* Number of physical mouse buttons.  */);
+  DEFVAR_INT ("w32-num-mouse-buttons", w32_num_mouse_buttons, doc
+	      : /* Number of physical mouse buttons.  */);
   w32_num_mouse_buttons = 2;
 
   DEFVAR_LISP ("w32-swap-mouse-buttons",
@@ -7844,9 +7963,10 @@ syms_of_w32term (void)
   Vw32_grab_focus_on_raise = Qt;
 
   DEFVAR_LISP ("w32-capslock-is-shiftlock",
-	       Vw32_capslock_is_shiftlock,
-	       doc: /* Apply CapsLock state to non character input keys.
-When nil, CapsLock only affects normal character input keys.  */);
+	       Vw32_capslock_is_shiftlock, doc
+	       : /* Apply CapsLock state to non character input
+keys. When nil, CapsLock only affects normal character input keys.
+*/);
   Vw32_capslock_is_shiftlock = Qnil;
 
   DEFVAR_LISP ("w32-recognize-altgr",
@@ -7874,20 +7994,21 @@ syms_of_w32term (void)
   /* We don't yet support this, but defining this here avoids whining
      from cus-start.el and other places, like "M-x set-variable".  */
   DEFVAR_BOOL ("x-use-underline-position-properties",
-	       x_use_underline_position_properties,
-     doc: /* SKIP: real doc in xterm.c.  */);
+	       x_use_underline_position_properties, doc
+	       : /* SKIP: real doc in xterm.c.  */);
   x_use_underline_position_properties = 0;
   DEFSYM (Qx_use_underline_position_properties,
 	  "x-use-underline-position-properties");
 
   DEFVAR_BOOL ("x-underline-at-descent-line",
-	       x_underline_at_descent_line,
-     doc: /* SKIP: real doc in xterm.c.  */);
+	       x_underline_at_descent_line, doc
+	       : /* SKIP: real doc in xterm.c.  */);
   x_underline_at_descent_line = 0;
-  DEFSYM (Qx_underline_at_descent_line, "x-underline-at-descent-line");
+  DEFSYM (Qx_underline_at_descent_line,
+	  "x-underline-at-descent-line");
 
-  DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
-	       doc: /* SKIP: real doc in xterm.c.  */);
+  DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars, doc
+	       : /* SKIP: real doc in xterm.c.  */);
   Vx_toolkit_scroll_bars = Qt;
 
   DEFVAR_BOOL ("w32-unicode-filenames",
-- 
2.44.0.windows.1


             reply	other threads:[~2024-05-03  2:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-03  2:53 Elijah G [this message]
2024-05-03  6:09 ` Stipples support in MS-Windows port Eli Zaretskii
2024-05-03  7:30 ` Po Lu
2024-05-05  3:43   ` Elijah G
2024-05-05  4:04     ` Po Lu
2024-05-05  4:30       ` Po Lu
2024-05-06  5:17         ` Elijah G
2024-05-11  5:10         ` Elijah G
2024-05-11  5:27           ` Po Lu
2024-05-11  8:24             ` Eli Zaretskii
2024-05-12 23:06               ` Elijah G.
2024-05-14  4:07                 ` Elijah G.
2024-05-14  5:28                   ` Po Lu
2024-05-15  1:43                     ` Elijah G.
2024-05-19 22:37                     ` Elijah G.
2024-05-20 11:15                       ` Eli Zaretskii
2024-05-20 11:19                         ` Po Lu
2024-05-20 12:32                           ` Eli Zaretskii
2024-05-20 13:12                             ` Po Lu
2024-05-20 19:44                         ` Elijah G.
2024-05-21  2:00                           ` Elijah G.
2024-05-21 11:49                             ` Eli Zaretskii
2024-05-22  2:06                               ` Elijah G.
2024-05-24  1:55                                 ` Elijah G.
2024-05-24  6:24                                   ` Po Lu
2024-05-25  7:24                                 ` Eli Zaretskii
2024-05-25 11:30                                   ` Arash Esbati
2024-05-26  2:37                                     ` Po Lu
2024-05-27 15:32                                       ` Arash Esbati
2024-05-26  0:27                                   ` Elijah G.
2024-05-26  8:09                                     ` Yuri Khan
2024-05-27  2:05                                       ` Elijah G.
2024-05-27  6:20                                         ` Yuri Khan
2024-05-28  2:06                                           ` Elijah G.
2024-05-26  8:51                                     ` Eli Zaretskii
2024-05-28  0:23                                       ` Elijah G.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACnP4NKbSA8gUZneBrBbRknpRV-y0pUKPL04eJM3f8rqrGEiag@mail.gmail.com \
    --to=eg642616@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.