text: /*  <std>
   HAVE_X11
  #define XMapWindow XMapRaised /* Raise them when mapping. */
  #else /* ! defined (HAVE_X11) */
  #include <X/Xkeyboard.h>
  /*#include <X/Xproto.h> */
  #endif /* ! defined (HAVE_X11) */
  ndef;
  /*;
  /* Record which buttons are currently pressed. */
  unsigned int x_mouse_grabbed;
  /*. */
  static FRAME_PTR mouse_face_mouse_frame;
  static int mouse_face_mouse_x, mouse_face_mouse_y;
  /* Nonzero means defer mouse-motion highlighting. */
  static int mouse_face_defer;
  #ifdef HAVE_X11
  /* `t' if a mouse button is depressed. */
  extern Lisp_Object Vmouse_depressed;
  /*;
  /* ();
  /* ();
  }
  }
  #ifndef HAVE_X11
  dumpqueue ();
  UNBLOCK_INPUT;
  }
  #ifndef HAVE_X11
  static void x_do_pending_expose ();
  static
  XTupdate_end (f)
  struct frame *f;
  {
  int mask;
  BLOCK_INPUT;
  #ifndef HAVE_X11
  dumpqueue ();
  x_do_pending_expose ();Queue ();Queue (););
  FONT_TYPE *font = FACE_FONT (face);
  GC gc = FACE_GC (face);
  int gc_temporary =);
  }
  /* Perform an insert-lines operation.
  Insert N lines at a vertical position curs_y. */
  static void
  stufflines (n)
  register int n;
  {
  register int topregion, bottomregion;
  register int length, newtop, mask;
  register struct frame *f = updating_frame;
  int intborder = f->display.x->internal_border_width;
  if (curs_y >= flexlines)
  return;
  topregion = curs_y;
  bottomregion = flexlines - (n + 1);
  newtop = topregion + n;
  length = (bottomregion - topregion) + 1;
  #ifndef HAVE_X11
  dumpqueue ();
  if ((length > 0) && (newtop <= flexlines))
  {
  #ifdef HAVE_X11
  XCopyArea (x_current_display, FRAME_X_WINDOW (f),
  FRAME_X_WINDOW (f), f->display.x->normal_gc,
  intborder, CHAR_TO_PIXEL_ROW (f, topregion),
  f->width * FONT_WIDTH (f->display.x->font),
  length * f->display.x->line_height, intborder,
  CHAR_TO_PIXEL_ROW (f, newtop));
  #else /* ! defined (HAVE_X11) */
  XMoveArea (FRAME_X_WINDOW (f),
  intborder, CHAR_TO_PIXEL_ROW (f, topregion),
  intborder, CHAR_TO_PIXEL_ROW (f, newtop),
  length * f->display.x->line_height);
  /* Now we must process any ExposeRegion events that occur
  if the area being copied from is obscured.
  We can't let it wait because further i/d operations
  may want to copy this area to another area. */
  x_read_exposes ();
  }
  newtop = min (newtop, (flexlines - 1));
  length = newtop - topregion;
  if (length > 0)
  {
  #ifdef HAVE_X11
  XClearArea (x_current_display, FRAME_X_WINDOW (f), intborder,
  CHAR_TO_PIXEL_ROW (f, topregion),
  f->width * FONT_WIDTH (f->display.x->font),
  n * f->display.x->line_height, False);
  #else /* ! defined (HAVE_X11) */
  XPixSet (FRAME_X_WINDOW (f),
  intborder,
  CHAR_TO_PIXEL_ROW (f, topregion),
  f->width * FONT_WIDTH (f->display.x->font),
  n * f->display.x->line_height,
  f->display.x->background_pixel);
  }
  }
  /* Perform a delete-lines operation, deleting N lines
  at a vertical position curs_y. */
  static void
  scraplines (n)
  register int n;
  {
  int mask;
  if (curs_y >= flexlines)
  return;
  #ifndef HAVE_X11
  dumpqueue ();