* callproc.c (Fcall_process): Fix vfork portability problems.

Do not assume that fd[0], count, filefd, and save_environ survive
vfork.  Fix bug whereby wrong errno value could be reported for
pipe failure.  Some minor cleanups, too, as follows.  Move buf and
bufsize to the context where they're needed.  Change new_argv to
be of type char **, as this is more convenient and avoids casts.
(CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
Now local constants, not macros.
* callproc.c (Fcall_process): Don't misreport vfork failure.
By default, ignore case when testing inhibit-local-variables (bug#10610)

* lisp/files.el (inhibit-local-variables-ignore-case): New.
(inhibit-local-variables-p): Use inhibit-local-variables-ignore-case.
Doc fix.
(inhibit-local-variables-regexps, inhibit-local-variables-suffixes):
Doc fixes.
Add desktop support for restoring vc-dir buffers (bug#10606)

* lisp/vc/vc-dir.el (vc-dir-mode): Autoload it (for desktop restore).
Set buffer-local value of desktop-save-buffer.
(vc-dir-desktop-buffer-misc-data, vc-dir-restore-desktop-buffer):
New functions.
(desktop-buffer-mode-handlers): Add vc-dir-mode entry.

* lisp/desktop.el (desktop-save-buffer-p): Treat vc-dir like dired.
* xdisp.c (window_outdated): Remove eassert since it hits
some suspicious corner cases (see Bug#13007 and Bug#13012).
(mode_line_update_needed): New function.
(redisplay_internal, redisplay_window): Use it.
(ensure_selected_frame): New function.
(redisplay_internal, unwind_redisplay): Use it.
(redisplay_internal): Move comment about buffer_shared...
(buffer_shared_and_changed): ...near to its real use.
Fix wording of commentary to 'struct face' in dispextern.h.
Warn if try to set coding in dir-locals (bug#7169)

* lisp/files.el (hack-dir-local-variables):
Warn if try to set coding via dir-locals, since it doesn't work.
* lisp/simple.el (activate-mark): Run activate-mark-hook.
* lisp/progmodes/etags.el (visit-tags-table-buffer): Give a more precise
error message when the file doesn't exist.
* lisp/icomplete.el: Change separator; add ido-style commands.
(icomplete-show-key-bindings): Remove custom var.
(icomplete-get-keys): Remove function.
(icomplete-forward-completions, icomplete-backward-completions):
New commands.
(icomplete-minibuffer-map): New var.
(icomplete-minibuffer-setup): Use it.
(icomplete-exhibit): Don't delay if the list of completions is known.
(icomplete-separator): New custom.
(icomplete-completions): Use it.
* lisp/minibuffer.el (completion-all-sorted-completions): Delete duplicates.
(minibuffer-force-complete-and-exit): New command.
(minibuffer--complete-and-exit): New function extracted from
minibuffer-complete-and-exit.
(minibuffer-complete-and-exit): Use it.
New ERC option to avoid sending accidentally-pasted text to the server.

* erc.el (erc-last-input-time): New variable.
(erc-accidental-paste-threshold-seconds): New option to avoid
sending accidentally-pasted text to the server.
(erc-send-current-line): Use it.

Also,

* erc.el (erc-lurker-cleanup, erc-lurker-p): Use float-time.
Relax existing-registration check in vc-register (tiny change).

* vc/vc.el (vc-register): Allow registering a file which is already
registered with a different backend.
* longlines.el (longlines-wrap-line, longlines-encode-region): Preserve text properties.
* textmodes/fill.el (fill-region-as-paragraph): Handle overshoot by move-to-column.
* progmodes/grep.el (grep-compute-defaults): Do not pass the -e flag to xargs
for compatibility with BSD xargs.
* vc/vc-git.el (vc-git-command): Disable the pager.
Improve buffer name default for C-u M-x shell.

* shell.el (shell): For C-u M-x shell, use an inactive shell
buffer as the default.
In Shell mode, reapply ansi colorization if the mode is re-enabled.

* shell.el (shell-apply-ansi-color, shell-reapply-ansi-color): New functions.
(shell-mode): Use them to reapply ansi colorization if Shell mode is re-enabled.
Fix commentary to buffer_shared_and_changed.
Defcustom :version fixes

* lisp/icomplete.el (icomplete-separator): Fix :version.

* lisp/erc/erc.el (erc-accidental-paste-threshold-seconds): Add :version.