* Makefile.in (distclean, bootstrap-clean, maintainer-clean):
Clean test/automated if present.
Remove stray execute bit
* Makefile.in (distclean, bootstrap-clean, maintainer-clean):

Fix shell-operator precedence problem in previous change.
* minibuffer.el (completion--sifn-requote): Bind `non-essential'.

* rfn-eshadow.el (rfn-eshadow-update-overlay): Move binding of
`non-essential' up.
Document problems with Windows file names that end in blanks.

 doc/lispref/files.texi (Information about Files): Mention file names with
 trailing blanks on MS-Windows.  (Bug#15130)
src/character.c (string_char): Improve commentary.
* lisp/align.el: Use lexical-binding.
(align-region): Simplify accordingly.
Add rudimentary inferior shell interaction
* lisp/progmodes/sh-script.el (sh-shell-process): New buffer-local variable.
(sh-set-shell): Reset it.
(sh-show-shell, sh-cd-here, sh-send-line-or-region-and-step): New
commands (bound to C-c C-z, C-c C-d, and C-c C-n).
* process.c (allocate_pty) [PTY_OPEN]: Set fd's FD_CLOEXEC flag.

We can't portably rely on PTY_OPEN doing that, even if
it calls posix_openpt with O_CLOEXEC.
Port close-on-exec pty creation to FreeBSD 9.1-RELEASE.

* configure.ac (PTY_OPEN): If posix_openpt with O_CLOEXEC fails
and reports EINVAL, try it again without O_CLOEXEC.  This should
port PTY_OPEN to FreeBSD 9, which stupidly rejects O_CLOEXEC.
What were they thinking?
Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE
and GC_MARK_STACK == GC_USE_GCPROS_CHECK_ZOMBIES.
* alloc.c (toplevel): Remove unnecessary nested #if...#endif.
(mark_maybe_object) [!GC_MARK_STACK]: Define to emacs_abort
to shut up compiler in mark_object.
(dump_zombies): Convert to global and add EXTERNALLY_VISIBLE.
Auto-commit of generated files.
* lisp/emacs-lisp/pp.el (pp-eval-expression, pp-macroexpand-expression):
Use read--expression so that completion works again.
Imported EIEIO test suite from CEDET upstream

* automated/eieio-tests.el, automated/eieio-test-persist.el:
* automated/eieio-test-methodinvoke.el: EIEIO tests from CEDET
  upstream.  Changed to use ERT.
* callproc.c: Fix race that killed background processes.

(call_process): New arg TEMPFILE_INDEX.  Callers changed.
Record deleted process-id in critical section, not afterwards.
Don't mistakenly kill process created by a call-process invocation
that discards output and does not wait.
* lisp/calendar/timeclock.el: Minor cleanups.
(timeclock-ask-before-exiting, timeclock-use-display-time): Use `symbol'.
(timeclock-modeline-display): Define as alias before the actual definition.
(timeclock-mode-line-display): Use define-minor-mode.
(timeclock-day-list-template): Make it a function, add an argument.
(timeclock-day-list-required, timeclock-day-list-length)
(timeclock-day-list-debt, timeclock-day-list-span)
(timeclock-day-list-break): Adjust calls accordingly.
* lisp/erc/erc.el: Use lexical-binding.
(erc-user-full-name): Minor CSE simplification.
(erc-mode-map): Assume command-remapping is available.
(erc-once-with-server-event): Replace `forms' arg with a function arg.
(erc-once-with-server-event-global): Remove.
(erc-ison-p): Adjust to change in erc-once-with-server-event.
(erc-get-buffer-create): Remove arg `proc'.
(iswitchb-make-buflist-hook): Declare.
(erc-setup-buffer): Use pcase; avoid ((lambda ..) ..).
(read-passwd): Assume it exists.
(erc-display-line, erc-cmd-IDLE): Avoid add-to-list, adjust to change
in erc-once-with-server-event.
(erc-cmd-JOIN, erc-set-channel-limit, erc-set-channel-key)
(erc-add-query): Minor CSE simplification.
(erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Adjust to change
in erc-once-with-server-event.
(erc-echo-notice-in-user-and-target-buffers): Avoid add-to-list.
* lisp/erc/erc-track.el: Use lexical-binding.
(erc-make-mode-line-buffer-name): Use closures instead of `(lambda...).
(erc-faces-in): Avoid add-to-list.
* lisp/erc/erc-notify.el: Use lexical-binding.
(erc-notify-timer): Adjust to change in erc-once-with-server-event.
(erc-notify-QUIT): Use a closure instead of `(lambda...).
* lisp/erc/erc-list.el: Use lexical-binding.
(erc-list-install-322-handler, erc-cmd-LIST): Adjust to change in
erc-once-with-server-event.
* lisp/erc/erc-button.el: Use lexical-binding.
(erc-button-next-function): Use a closure instead of `(lambda...).
* configure.ac (EMACS_CONFIG_OPTIONS): Quote systematically.

This improves on the patch already installed, by quoting options
that contain spaces and suchlike systematically, so that
EMACS_CONFIG_OPTIONS is no longer ambiguous when options contain
these characters.
* process.c (flush_pending_output): Remove stub.

All uses removed.
Redesign redisplay interface to drop updated_row and updated_area.
* dispextern.h (updated_row, updated_area): Remove declaration.
(struct redisplay_interface): Pass glyph row and row area parameters
to write_glyphs, insert_glyphs and clear_end_of_line functions.
(x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
Adjust prototypes.
* dispnew.c (updated_row, updated_area): Remove.
(redraw_overlapped_rows, update_window_line): Adjust user.
(update_marginal_area, update_text_area): Likewise.  Pass updated row
as a parameter.  Prefer enum glyph_row_area to int where appropriate.
* xdisp.c (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
Adjust users.