Texinfo markup fixes for Emacs manual.

* doc/emacs/maintaining.texi (Basic VC Editing, VC Pull, Merging):
* doc/emacs/basic.texi (Erasing, Basic Undo): Fix markup.
Fix bug #11827 with file-relative-name on MS-Windows.

 lisp/files.el (file-relative-name): Compare file names
 case-insensitively if on MS-Windows or MS-DOS, or if
 read-file-name-completion-ignore-case is non-nil.  Don't use
 case-fold-search for this purpose.
* lisp/simple.el (kill-whole-line): Doc tweak.
* src/lisp.h (Fread_file_name): Restore EXFUN
(it's not a normal DEFUN and did not make it into globals.h).
* make-docfile.c (scan_c_file): Suppress GCC warning.
* fileio.c (Finsert_file_contents): Properly handle st_mtime
marker for non-existing file.
* fileio.c: Improve handling of file time marker.  (Bug#11852)

(special_mtime): New function.
(Finsert_file_contents, Fverify_visited_file_modtime):
Use it to set special mtime values consistently.
Fix bugs in file timestamp newness comparisons.

* fileio.c (Ffile_newer_than_file_p):
* lread.c (Fload): Use full timestamp resolution of files,
not just the 1-second resolution, so that files that are only
slightly newer still count as newer.
* fileio.c (Ffile_newer_than_file_p): Don't assume file
timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
* regex.c: Suppress GCC warning on RHEL 6.  (Bug#11207)

Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
since GCC 4.4.6 issues a bogus warning for them.
Remove stray empty line.
* lisp/xml.el (xml-name-regexp): Remove, redundant.  Use xml-name-re.
* buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
* buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
Avoid weird behavior with large horizontal scrolls.

Without this change, for example, large hscroll values would
mess up Emacs's display on Fedora 15 x86, presumably due to
overflows in int calculations in the display code.
Also, if buffers had long lines, Emacs would freeze.
* window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
(set_window_hscroll): New function, containing the old guts of
Fset_window_hscroll.  Return the clipped value.
(Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
This avoids the need to check against PTRDIFF_MAX.
Fix compilation with --enable-gcc-warnings and -O1
optimization level.
* configure.in: If --enable-gcc-warnings, disable
-Wunsafe-loop-optimizations for -O1 optimization level.
* src/doprnt.c (doprnt): Change type of tem to int, initialize
to avoid compiler warning.  Add eassert.
* src/search.c (simple_search): Initialize match_byte to avoid
compiler warning.  Add eassert.
* doprnt.c (doprnt): Don't assume string length fits in 'int'.

Tighten new eassert a bit.
Merge from gnulib.

* lib/alloca.in.h: New version from gnulib, incorporating:
2012-07-03 alloca: add support for HP NonStop TNS/E native
Auto-commit of generated files.
Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
* src/lisp.h (enum pvec_type): Use fewer bits.
(PSEUDOVECTOR_SIZE_BITS): New constant.
(PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
(XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
change in pvec_type.
(PSEUDOVECTOR_TYPEP): New macro.
(TYPED_PSEUDOVECTORP): Use it.
* src/fns.c (internal_equal): Adapt code to extract pvectype.
* src/emacs.c (gdb_pvec_type): Update type.
* src/alloc.c (PSEUDOVECTOR_NBYTES): New macro.
(VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
(VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
(SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
(sweep_vectors): Use it.  Use local var `total_bytes' instead of
abusing vector->header.next.nbytes.
(live_vector_p): Use PVEC_TYPE.
(mark_object): Adapt code to extract pvectype.  Use switch.
* lisp/emacs-lisp/bytecomp.el (byte-compile): Don't signal an error if the
function is already compiled.