* automated/file-notify-tests.el (auto-revert-stop-on-user-input):
Set to nil.
Fix the test suite on Windows.

 configure.ac (PATH_SEP): Set and AC_SUBST.

 test/automated/Makefile.in (PATH_SEP): Set this instead of
 PATH_SEPARATOR.
 (EMACSOPT): Use $(PATH_SEP).
Remove left-overs from using nt/mingw-cfg.site as a CONFIG_SITE file.

 GNUmakefile (Makefile): Don't use $(CFG).
 (CFG): Don't compute.
Fix bug #15933 with crashes in file-notify-tests on MS-Windows.

 Support w32 file notifications in batch mode.
 src/w32proc.c (sys_select): Don't wait on interrupt_handle if it is
 invalid (which happens in batch mode).  If non-interactive, call
 handle_file_notifications to store file notification events in the
 input queue.
 src/w32notify.c (send_notifications): Handle FRAME_INITIAL frames as
 well.
 src/w32inevt.c (handle_file_notifications): Now external, not
 static.
 src/w32term.h (handle_file_notifications): Provide prototype.
 src/emacs.c (main) [HAVE_W32NOTIFY]: When non-interactive, call
 init_crit, since init_display, which does that otherwise, is not
 called.
* unidata-gen.el (unidata-gen-files): Disable autoloads in generated files.
* leim/leim-ext.el: Change method for getting comments in the output
to one that does not fool lisp/compile-main's no-byte-compile test.
* leim/Makefile.in (${leimdir}/leim-list.el): Adapt for this.
Refine redisplay optimizations to only redisplay *some* frames/windows
rather than all of them.
* src/xdisp.c (REDISPLAY_SOME): New constant.
(redisplay_other_windows, wset_redisplay, fset_redisplay)
(bset_redisplay, bset_update_mode_line): New functions.
(message_dolog): Use bset_redisplay.
(clear_garbaged_frames): Use fset_redisplay.
(echo_area_display): Use wset_redisplay.
(buffer_shared_and_changed): Remove.
(prepare_menu_bars): Call Vpre_redisplay_function before updating
frame titles.  Compute the actual set of windows redisplayed.
Don't update frame titles and menu bars for frames that don't need to
be redisplayed.
(propagate_buffer_redisplay): New function.
(AINC): New macro.
(redisplay_internal): Use it.  Be more selective in the set of windows
we redisplay.  Propagate windows_or_buffers_changed to
update_mode_lines a bit later to simplify the code.
(mark_window_display_accurate_1): Reset window and buffer's
`redisplay' flag.
(redisplay_window): Do nothing if neither the window nor the buffer nor
the frame needs redisplay.
* src/window.h (struct window): Add `redisplay' field.
(wset_redisplay, fset_redisplay, bset_redisplay, bset_update_mode_line)
(redisplay_other_windows, window_list): New declarations.
* src/window.c (select_window, Fset_window_start): Use wset_redisplay.
(window_list): Not static any more.
(grow_mini_window, shrink_mini_window): Use fset_redisplay.
* src/minibuf.c (read_minibuf_unwind): Don't redisplay everything.
* src/insdel.c (prepare_to_modify_buffer_1): Use bset_redisplay.
* src/frame.c (Fmake_frame_visible): Don't redisplay everything.
* src/frame.h (struct frame): Add `redisplay' field.
Move `external_menu_bar' bitfield next to other bit-fields.
(SET_FRAME_GARBAGED): Use fset_redisplay.
(SET_FRAME_VISIBLE): Don't garbage the frame;
Use redisplay_other_windows.
* src/buffer.h (struct buffer): Add `redisplay' field.
* src/buffer.c (Fforce_mode_line_update): Pay attention to the `all' flag.
(modify_overlay): Use bset_redisplay.
* src/alloc.c (gc_sweep): Don't unmark strings while sweeping symbols.

* lisp/doc-view.el (doc-view-goto-page): Update mode-line.
lisp/gnus/gnus-icalendar.el: bugfix and improvements
Robustify previous leim/Makefile.in change
Replace PATH_SEP with pre-existing SEPCHAR.

* configure.ac:
* test/automated/Makefile.in: Use SEPCHAR in place of PATH_SEP.
* src/window.c (Fset_window_configuration): Move select_window later.
* configure.ac (HAVE_MENUS): Remove.
* src/xmenu.c (Fmenu_or_popup_active_p):
* src/window.c (Fset_window_configuration):
* src/menu.c (Fx_popup_menu, Fx_popup_dialog):
* src/keyboard.c (record_menu_key, read_char_x_menu_prompt):
* src/fns.c (Fyes_or_no_p):
* src/editfns.c (Fmessage_box, Fmessage_or_box):
* src/alloc.c (make_save_ptr_ptr):
* src/xdisp.c, src/w32menu.c, src/term.c, src/xterm.h, src/xterm.c:
Remove HAVE_MENUS.
* lisp/progmodes/python.el (python-mode-map): Remove binding for ":".
(python-indent-electric-colon): Remove command.
(python-indent-post-self-insert-function): Integrate the previous code
of python-indent-electric-colon.  Make it conditional on
electric-indent-mode.
(python-mode): Add ?: to electric-indent-chars.
Move python-indent-post-self-insert-function to the end of
post-self-insert-hook.
* doc/lispref/modes.texi (Imenu): Make it clear that sub-alist is the cdr.

* lisp/imenu.el (imenu--subalist-p): Don't error on non-conses and
allow non-lambda lists as functions.
(imenu--in-alist): Don't recurse into non-subalists.
(imenu): Don't pass function itself as an argument.
Fix minor problems found by static checking.

* buffer.h (struct buffer_text, struct buffer):
* frame.h (struct frame):
* window.h (struct window):
Avoid 'bool foo : 1;', as it's not portable to pre-C99 compilers,
as described in ../lib/stdbool.in.h.  Use 'unsigned foo : 1;' instead.
* menu.c (syms_of_menu): Define x-popup-dialog, removing a
no-longer-valid use of HAVE_MENUS.
* xdisp.c (propagate_buffer_redisplay): Now static.
More thorough fix of bug #15913 with mouse-highlight on MS-Windows.

 src/xdisp.c (clear_mouse_face): Don't invalidate the entire
 mouse-highlight info, just signal frame_up_to_date_hook that mouse
 highlight needs to be redisplayed.
Fix decoder-tests test on MS-Windows.

 test/automated/decoder-tests.el (ert-test-decoder-prefer-utf-8):
 Force Unix EOLs by using 'utf-8-unix', since the default of
 'utf-8' is system-dependent, while the test expects to see Unix
 EOLs.
Fix reftex-tests on MS-Windows.

 test/automated/reftex-tests.el (reftex-parse-from-file-test): Run
 temp-dir through file-truename, to make sure the temporary file
 names are comparable as strings.
Fix bug #6364 with slow scrolling on MS-Windows with bitmap fonts.

 src/w32font.c (g_b_init_get_char_width_32_w): New static var.
 (globals_of_w32font): Zero it out.
 (GetCharWidth32W_Proc): New function pointer.
 (get_char_width_32_w): New function.
 (compute_metrics): If get_glyph_outline_w returns an error, try
 get_char_width_32_w before declaring a failure.  This avoids
 punishing raster (a.k.a. "bitmap") fonts by slowing down
 redisplay.
Add more .gitignore