Add NUL-termination to some uses of strncpy.

* lib-src/pop.c (pop_stat, pop_list, pop_multi_first, pop_last):
NUL-terminate the error buffer.

* src/w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
Auto-commit of generated files.
Backport Bug#11374 fix from trunk
Backport r108098 from trunk
Backport fix for Bug#11374 from trunk
Merge verilog-mode.el from upstream.
* progmodes/verilog-mode.el (font-lock-keywords):
Fix mis-highligting auto.  Reported by Craig Barner.
(verilog-auto, verilog-auto-undef): Add AUTOUNDEF to remove
defines from global name space. Reported by Dan Dever.
(verilog-auto-reset, verilog-auto-reset-widths)
(verilog-auto-tieoff): Support using unbased numbers for
AUTORESET and AUTOTIEOFF.
(verilog-submit-bug-report): Update variable list.
(verilog-read-auto-params): Fix AUTOINPUT regexps containing
parenthesis from not matching. Reported by Michael Rytting.
(verilog-auto-template-lint): Fix hash error when linting modules
with no used templates.
(verilog-warn, verilog-warn-error)
(verilog-warn-fatal): When non-interactive report multiple
warnings before exiting.  Suggested by Brad Dobbie.
(verilog-auto-template-lint, verilog-auto-template-warn-unused)
(verilog-read-auto-template): Add `verilog-auto-template-warn-unused'
to report unused template errors.  Reported by Brad Dobbie.
(verilog-read-decls): Fix AUTOWIRE etc on supply0, supply1 type
nets, bug438. Reported by Vns Blore.
(verilog-auto-inout-module, verilog-auto-reg)
(verilog-read-decls, verilog-read-sub-decls-sig)
(verilog-signals-edit-wire-reg, verilog-signals-with):
Fix passing of Verilog data types in ANSI input/output ports
such as "output logic" into the AUTOs. Special case "wire" and
"reg" for backwards compatibility presuming Verilog 2001.
(verilog-auto-ascii-enum): Add "auto enum" as alias.
(verilog-preprocess): Fix replication of preprocess output.
Reported by Brad Dobbie.
(verilog-auto-inst-interfaced-ports):
Create verilog-auto-inst-interfaced-ports, bug429.
Reported by Julian Gorfajn.
(verilog-after-save-font-hook)
(verilog-before-save-font-hook): New variable.
(verilog-modi-cache-results, verilog-save-font-mod-hooked)
(verilog-save-font-mods): Wrap disabling fontification, reported
by David Rogoff.
(verilog-do-indent, verilog-pretty-declarations-auto)
(verilog-sk-def-reg): Fix obeying `verilog-auto-lineup', bug305.
Reported by Pierre-David Pfister.
(verilog-set-auto-endcomments): Fix endtask auto comments outside
of class declarations, bug292.  Reported by Kevin Heilman.
(verilog-read-decls): Fix 'parameter type' not appearing in
AUTOINSTPARAM, bug340.  Reported by Jonathan Greenlaw.
(verilog-auto-logic): Fix when AUTOLOGIC present to properly do
AUTOINPUTs, bug411. Reported by Jonathan Greenlaw.
(verilog-read-auto-lisp): Avoid syntax-ppss warning on AUTOLISP.
Reported by David Kravitz.

* progmodes/verilog-mode.el (verilog-pretty-expr): Don't line up
assignment with tests in ifs and for loops.
(verilog-extended-complete-re, verilog-complete-reg): Change so
that DPI inport functions don't look like fuction declarations.
(verilog-pretty-expr): Don't line up assignment
operations to the test and increment in if and for loops
(verilog-extended-complete-re, verilog-complete-reg): Change so
that DPI inport functions don't look like fuction declarations
* minibuffer.el (completion--twq-all): Beware completion-ignore-case.
Do not limit current-time-string to years 1000..9999.

* src/editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
(Fcurrent_time_string): Support any year that is supported by the
underlying localtime representation.  Don't use asctime, as it
has undefined behavior for years outside the range -999..9999.
* doc/lispref/os.texi (Time of Day): Do not limit current-time-string
to years 1000..9999.
* etc/NEWS: Do not limit current-time-string to years 1000..9999.
Convert more defvars to defcustoms.

* dos-w32.el (file-name-buffer-file-type-alist)
(direct-print-region-use-command-dot-com):
* ffap.el (ffap-menu-regexp):
* follow.el (follow-debug):
* forms.el (forms--debug):
* iswitchb.el (iswitchb-all-frames):
* ido.el (ido-all-frames):
* mail/feedmail.el (feedmail-mail-send-hook)
(feedmail-mail-send-hook-queued):
* mail/footnote.el (footnote-signature-separator):
* mail/mailabbrev.el (mail-alias-separator-string)
(mail-abbrev-mode-regexp):
* mail/rmail.el (rmail-speedbar-match-folder-regexp):
* progmodes/idlwave.el (idlwave-libinfo-file)
(idlwave-default-completion-case-is-down)
(idlwave-library-routines): Convert defvars to defcustoms.

* mail/rmail.el (rmail-decode-mime-charset):
* progmodes/idlw-shell.el (idlwave-shell-print-expression-function)
(idlwave-shell-fix-inserted-breaks)
(idlwave-shell-activate-alt-keybindings)
(idlwave-shell-use-breakpoint-glyph):
* facemenu.el (facemenu-unlisted-faces): Delete obsolete vars.

* doc/lispref/os.texi (Timers): Use defopt for timer-max-repeats.
* iswitchb.el (iswitchb-all-frames): Fix last change.
Fix minor Y10k bugs.

* lisp/arc-mode.el (archive-unixdate):
* lisp/autoinsert.el (auto-insert-alist):
* lisp/calc/calc-forms.el (math-this-year):
* lisp/gnus/nnweb.el (nnweb-google-parse-1):
* lisp/emacs-lisp/copyright.el (copyright-current-year)
(copyright-update-year, copyright):
* lisp/tar-mode.el (tar-clip-time-string):
* lisp/time.el (display-time-update):
Don't assume years have 4 digits.
* patcomp.el, play/bruce.el: Move to obsolete/.
* etc/NEWS: Mention this.
Give info files the .info extension

Ref http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00354.html

* configure.in (INFO_EXT, INFO_OPTS): New output variables.

* doc/emacs/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/emacs/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS): Use $INFO_EXT.
($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o.

* doc/lispintro/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
(${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/lispintro/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS, clean): Use $INFO_EXT.
($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.

* doc/lispref/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(info, infoclean): Use $INFO_EXT.
($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
* doc/lispref/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(info, maintainer-clean): Use $INFO_EXT.
($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.

* doc/misc/Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
(INFO_TARGETS): Use $INFO_EXT.
Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o.
* doc/misc/makefile.w32-in (INFO_EXT, INFO_OPTS): New.
(INFO_TARGETS): Use $INFO_EXT.
Make all rules generating info files use $INFO_EXT, $INFO_OPT, and -o.
Auto-commit of generated files.
* lisp/files.el (automount-dir-prefix): Mark as obsolete.
* lisp/dabbrev.el (dabbrev--ignore-case-p): New function.
(dabbrev-completion, dabbrev-expand, dabbrev--substitute-expansion):
Use it.
* doc/misc/Makefile.in (info): Make it the first target again.
Add new error and function `user-error'.
* lisp/subr.el (user-error): New function.
* lisp/window.el (switch-to-buffer):
* lisp/vc/smerge-mode.el (smerge-resolve-function, smerge-resolve)
(smerge-match-conflict):
* lisp/simple.el (previous-matching-history-element)
(next-matching-history-element, goto-history-element, undo-more)
(undo-start):
* lisp/progmodes/etags.el (visit-tags-table-buffer, find-tag-tag)
(find-tag-noselect, find-tag-in-order, etags-goto-tag-location)
(next-file, tags-loop-scan, list-tags, complete-tag):
* lisp/progmodes/compile.el (compilation-loop):
* lisp/mouse.el (mouse-minibuffer-check):
* lisp/man.el (Man-bgproc-sentinel, Man-goto-page):
* lisp/info.el (Info-find-node-2, Info-extract-pointer, Info-history-back)
(Info-history-forward, Info-follow-reference, Info-menu)
(Info-extract-menu-item, Info-extract-menu-counting)
(Info-forward-node, Info-backward-node, Info-next-menu-item)
(Info-last-menu-item, Info-next-preorder, Info-last-preorder)
(Info-next-reference, Info-prev-reference, Info-index)
(Info-index-next, Info-follow-nearest-node)
(Info-copy-current-node-name):
* lisp/imenu.el (imenu--make-index-alist)
(imenu-default-create-index-function, imenu-add-to-menubar):
* lisp/files.el (basic-save-buffer, recover-file):
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
* lisp/emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
(checkdoc-message-text, checkdoc-defun):
* lisp/dabbrev.el (dabbrev-completion, dabbrev--abbrev-at-point):
* lisp/cus-edit.el (customize-changed-options, customize-rogue)
(customize-saved, custom-variable-set, custom-variable-mark-to-save)
(custom-variable-mark-to-reset-standard)
(custom-variable-reset-backup, custom-face-mark-to-reset-standard)
(custom-file):
* lisp/completion.el (check-completion-length):
* lisp/comint.el (comint-search-arg)
(comint-previous-matching-input-string-position)
(comint-previous-matching-input)
(comint-replace-by-expanded-history-before-point, comint-send-input)
(comint-copy-old-input, comint-backward-matching-input)
(comint-goto-process-mark, comint-set-process-mark):
* lisp/calendar/calendar.el (calendar-cursor-to-date): Use it.
* lisp/bindings.el (debug-ignored-errors): Remove regexps, add `user-error'.
* src/data.c (PUT_ERROR): New macro.
(syms_of_data): Use it.  Add new error type `user-error'.
* src/undo.c (user_error): New function.
(Fprimitive_undo): Use it.
* src/print.c (print_error_message): Adjust print style for `user-error'.
* src/keyboard.c (user_error): New function.
(Fexit_recursive_edit, Fabort_recursive_edit): Use it.
New function set-temporary-overlay-map and macros (defvar|setq)-local.
* lisp/subr.el (setq-local, defvar-local): New macros.
(kbd): Redefine as an alias.
(with-selected-window): Leave unrelated frames alone.
(set-temporary-overlay-map): New function.
* lisp/emacs-lisp/pcase.el (pcase--let*): New function.
(pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting
a bit more.
(pcase--split-pred): Be more clever about ruling out overlap between
a predicate and some constant pattern.
(pcase--q1): Use `null' instead of (eq foo nil).