]> code.delx.au - gnu-emacs/commitdiff
Merge changes from emacs-23 branch
authorChong Yidong <cyd@stupidchicken.com>
Mon, 31 Jan 2011 23:54:50 +0000 (18:54 -0500)
committerChong Yidong <cyd@stupidchicken.com>
Mon, 31 Jan 2011 23:54:50 +0000 (18:54 -0500)
26 files changed:
1  2 
ChangeLog
configure
configure.in
doc/emacs/ChangeLog
doc/emacs/files.texi
doc/emacs/search.texi
doc/lispref/ChangeLog
doc/lispref/display.texi
doc/lispref/elisp.texi
doc/lispref/keymaps.texi
doc/lispref/vol1.texi
doc/lispref/vol2.texi
lisp/ChangeLog
lisp/emacs-lisp/shadow.el
lisp/erc/ChangeLog
lisp/erc/erc-track.el
lisp/files.el
lisp/image-dired.el
lisp/international/quail.el
lisp/mouse.el
lisp/msb.el
lisp/progmodes/cc-cmds.el
lisp/progmodes/cc-engine.el
lisp/term/ns-win.el
src/ChangeLog
src/image.c

diff --combined ChangeLog
index df753d1f005a68372294e9a5921f40da39d7568c,6a57a5178203938d5ed30fa0cc3d77d0e58e693c..178c8d8e5d7662fc6237deacae5568239c35712a
+++ b/ChangeLog
 -2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * configure.in: Test existence of xaw3d library, not just the
+       header (Bug#7642).
 -2011-01-23  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 +2011-01-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/strftime.$(O) and
 +      $(BLD)/time_r.$(O).
 +      ($(BLD)/dtoastr.$(O)): Depend on $(EMACS_ROOT)/src/s/ms-w32.h and
 +      $(EMACS_ROOT)/src/m/intel386.h.
-       ($(BLD)/strftime.$(O)): 
++      ($(BLD)/strftime.$(O)):
 +      ($(BLD)/time_r.$(O)): Define prerequisites.
 +
 +2011-01-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      src/emacs.c now gets version number from configure.in
 +      * configure.in (version): Set this from $PACKAGE_VERSION,
 +      which is set from AC_INIT, rather than scouting through src/emacs.c.
 +      * configure: Regenerate.
 +      * make-dist (version): Get it from configure.in, not src/emacs.c.
 +
 +2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      strftime: import from gnulib
 +      * Makefile.in (GNULIB_MODULES): Add strftime.
 +      * configure.in (AC_FUNC_STRFTIME, my_strftime): Remove; no longer
 +      needed.
 +      * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, m4/gl-comp.m4:
 +      Regenerate.
 +      * lib/strftime.c, lib/strftime.h, lib/stdbool.in.h: New files,
 +      imported from gnulib.
 +      * m4/strftime.m4, m4/stdbool.m4, m4/tm_gmtoff.m4: Likewise.
 +      This incorporates many changes from gnulib, including simpler
 +      handling of multibyte formats, porting to mingw32 and other
 +      platforms, and support for higher-resolution time stamps.
 +      Emacs does not yet use the higher-resolution interface.
 +
 +2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      gnulib: import mktime and move-if-change fixes from gnulib
 +
 +      * configure: Regenerate from the following.
 +
 +      2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      mktime: clarify long_int width checking
 +      * lib/mktime.c (long_int_is_wide_enough): Move this assertion to
 +      the top level, to make it clearer that the assumption about
 +      long_int width is being checked.  See
 +      <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00554.html>.
 +
 +      2011-01-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      TYPE_MAXIMUM: avoid theoretically undefined behavior
 +      * lib/intprops.h (TYPE_MINIMUM, TYPE_MAXIMUM): Do not shift a
 +      negative number, which the C Standard says has undefined behavior.
 +      In practice this is not a problem, but might as well do it by the book.
 +      Reported by Rich Felker and Eric Blake; see
 +      <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00493.html>.
 +      * m4/mktime.m4 (AC_FUNC_MKTIME): Likewise.
 +      * lib/mktime.c (TYPE_MAXIMUM): Redo slightly to match the others.
 +
 +      mktime: #undef mktime before #defining it
 +      * lib/mktime.c (mktime) [DEBUG]: #undef mktime before #defining it.
 +
 +      mktime: systematically normalize tm_isdst comparisons
 +      * lib/mktime.c (isdst_differ): New function.
 +      (__mktime_internal): Use it systematically for all isdst comparisons.
 +      This completes the fix for libc BZ #6723, and removes the need for
 +      normalizing tm_isdst.  See
 +      <http://sourceware.org/bugzilla/show_bug.cgi?id=6723>
 +      (not_equal_tm) [DEBUG]: Use isdst_differ here, too.
 +
 +      mktime: fix some integer overflow issues and sidestep the rest
 +
 +      This was prompted by a bug report by Benjamin Lindner for MinGW
 +      <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00472.html>.
 +      His bug is due to signed integer overflow (0 - INT_MIN), and I
 +      I scanned through mktime.c looking for other integer overflow
 +      problems, fixing all the bugs I found.
 +
 +      Although the C Standard says the resulting code is still not safe
 +      in the presence of integer overflow, in practice it should be good
 +      enough for all real-world two's-complement implementations, except
 +      for debugging environments that deliberately trap on integer
 +      overflow (e.g., gcc -ftrapv).
 +
 +      * lib/mktime.c (WRAPV): New macro.
 +      (SHR): Also check that long_int and time_t shift right in the
 +      usual way, before using the fast-but-unportable method.
 +      (TYPE_ONES_COMPLEMENT, TYPE_SIGNED_MAGNITUDE): Remove, no longer
 +      used.  The code already assumed two's complement, so there's
 +      no need to test for alternatives.  All uses removed.
 +      (TYPE_MAXIMUM): Don't rely here on overflow behavior not defined by
 +      the C standard.  Problem reported by Rich Felker in
 +      <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00488.html>.
 +      (twos_complement_arithmetic): Also check long_int and time_t.
 +      (time_t_avg, time_t_add_ok, time_t_int_add_ok): New functions.
 +      (guess_time_tm, ranged_convert, __mktime_internal): Use them.
 +      (__mktime_internal): Avoid integer overflow with unary subtraction
 +      in two instances where -1 - X is an adequate replacement for -X,
 +      since the calculations are approximate.
 +
 +      2011-01-29  Eric Blake  <eblake@redhat.com>
 +
 +      mktime: avoid infinite loop
 +      * m4/mktime.m4 (AC_FUNC_MKTIME): Avoid overflow on possibly-signed
 +      type; behavior is still undefined but portable to all known targets.
 +      Reported by Rich Felker.
 +
 +      2011-01-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      mktime: avoid problems on NetBSD 5 / i386
 +      * lib/mktime.c (long_int): New type.  This works around a problem
 +      on NetBSD 5 / i386, where 'long int' and 'int' are both 32 bits
 +      but time_t is 64 bits, and where I expect the existing code is
 +      wrong in some cases.
 +      (leapyear, ydhms_diff, guess_time_tm, __mktime_internal): Use it.
 +      (ydhms_diff): Bring back the compile-time check for wide-enough
 +      year and yday.
 +
 +      mktime: fix misspelling in comment
 +      * lib/mktime.c (__mktime_internal): Fix misspelling in comment.
 +      This merges all recent glibc changes of importance.
 +
 +      2011-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 +
 +      move-if-change: cope with concurrent mv of identical file.
 +      * move-if-change (CMPPROG): Accept environment
 +      variable as an override for `cmp'.
 +      (usage): Document CMPPROG.
 +      Adjust comparison to drop stdout.  Cope with failure of mv if
 +      the target file exists and is identical to the source, for
 +      parallel builds.
 +      Report from H.J. Lu against binutils in PR binutils/12283.
 +
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * lib/makefile.w32-in:
 +      * lib/getopt_.h: New files.
 +
 +2011-01-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      improve fix for MS-DOS file name clash
 +      * Makefile.in (DOS_gnulib_comp.m4): Renamed from DOS-gnulib-comp.m4,
 +      for portability to POSIX make.  Reported by Bruno Haible.
 +      (sync-from-gnulib): Copy gl-comp.m4 (if present) back to
 +      gnulib-comp.m4 before running gnulib-tool, to prevent old gnulib
 +      files from accumulating as garbage.  Also reported by Bruno Haible.
 +
 +2011-01-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      fix two m4/gnulib-*.m4 file names that clashed under MS-DOS
 +      * Makefile.in (DOS-gnulib-comp.m4): New macro.
 +      (sync-from-gnulib): Rename m4/gnulib-comp.m4 to m4/gl-comp.m4 to avoid
 +      problems with MS-DOS 8+3 file name restrictions.
 +      Remove m4/gnulib-cache.m4, as we can live without it.  If we kept
 +      it, it would also cause problems when extracting Emacs distribution
 +      tarballs on MS-DOS hosts.
 +      (ACLOCAL_INPUTS): Adjust to file renaming.
 +      * aclocal.m4, configure, lib/Makefile.in, src/config.in: Regenerate.
 +      * config.guess, config.sub: Sync from gnulib.
 +      * m4/gnulib-cache.m4: Remove from repository.
 +      * m4/gl-comp.m4: Rename from m4/gnulib-comp.m4.
 +
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * README: Add a note about ranges in copyright years.
 +
 +      * configure.in: Set CANNOT_DUMP on ia64 hpux (port from emacs-23).
 +
 +2011-01-25  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
  
        * configure.in: Add HP-UX on IA64 (Bug#6811).
  
 -2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-24  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove HAVE_RAW_DECL_CHOWN etc. from config.h
 +      * Makefile.in (sync-from-gnulib): Remove m4/warn-on-use.m4,
 +      as it is no longer needed.
 +      * aclocal.m4, configure, lib/Makefile.in, src/config.in: Regenerate.
 +      * configure.in: Invoke the new gnulib macro
 +      gl_ASSERT_NO_GNULIB_POSIXCHECK, which removes the need for
 +      warn-on-use.m4 and for the HAVE_RAW_DECL_* symbols in config.h.
 +      * m4/getopt.m4: Sync from gnulib; this removes the need for
 +      HAVE_DECL_OPTRESET and HAVE_DECL_GETOPT_CLIP from config.h.
 +      * m4/gnulib-common.m4 (gl_ASSERT_NO_GNULIB_POSIXCHECK):
 +      New macro, synced from gnulib.
 +      * m4/warn-on-use.m4: Remove.
 +
 +2011-01-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      aclocal.m4: put this file back into repository
 +      This way, we don't have to assume that the maintainer has
 +      the automake package installed.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00746.html>.
 +      * .bzrignore: Remove aclocal.m4, undoing the previous change.
 +      * Makefile.in (top_maintainer_clean): Do not remove aclocal.m4,
 +      undoing the previous change.
 +      * aclocal.m4: New file (actually, resurrected).
 +
 +2011-01-22  Miles Bader  <miles@gnu.org>
 +
 +      * configure.in: Don't zero-out FONTCONFIG_CFLAGS and
 +      FONTCONFIG_LIBS when building with XFT (doing so is incorrect, as
 +      Emacs directly uses fontconfig, and breaks building when using a
 +      strict linker).
 +
 +2011-01-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      src/config.in: shrink slightly
 +      * configure.in: Invoke the new gnulib macro gl_ASSERT_NO_GNULIB_TESTS.
 +      This makes src/config.in a bit smaller, by removing identifiers
 +      like GNULIB_TEST_MKTIME that Emacs does not need.
 +      * m4/getopt.m4, m4/gnulib-common.m4, m4/include_next.m4:
 +      * m4/multiarch.m4, m4/stddef_h.m4, m4/time_h.m4, m4/unistd_h.m4:
 +      Sync from gnulib.  This removes a few more unnecessary symbols from
 +      src/config.in, such as AA_APPLE_UNIVERSAL_BUILD and HAVE_STDDEF_H.
 +      * configure, src/config.in: Regenerate.
 +
 +      aclocal.m4: tweaks to regenerate more conveniently
 +      This attempts to act better when the source is in a weird state.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00734.html>.
 +      * Makefile.in (am--refresh): Add aclocal.m4, configure, config.in.
 +      * .bzrignore: Add aclocal.m4.
 +
 +2011-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      aclocal.m4: omit auto-generated file from repository
 +      * Makefile.in (top_maintainer_clean): Remove aclocal.m4; this undoes
 +      the most recent change here.
 +      * aclocal.m4: Remove from bzr repository.  This file is
 +      auto-generated and isn't needed to run 'configure'.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00698.html>.
 +
 +2011-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor Makefile.in tweaks to build from gnulib better.
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00673.html>
 +      * Makefile.in (sync-from-gnulib): Also run autoreconf -I m4.
 +      (top_maintainer_clean): Don't remove aclocal.m4.
 +
 +2011-01-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor cleanups for 'bzr status'
 +      * .bzrignore: Add emacs-*/, the output of make-dist, and stamp-h1,
 +      the output of config.guess.
 +      * Makefile.in (top_distclean): Remove stamp-h1 too.
 +
 +      * configure.in (HAVE_ATTRIBUTE_ALIGNED): Arrange for this to be
 +      defined if the compiler supports GCC-style __attribute__
 +      ((__aligned__ ...)).  IBM AIX and Oracle Solaris Studio support
 +      this syntax.
 +
 +2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Makefile.in: tidy up the building of lib
 +      * Makefile.in (am--refresh): Mark as .PHONY.
 +      (top_maintainer_clean): Don't remove lib/gnulib.mk m4/gnulib-cache.m4,
 +      as they're not rebuilt unless you do a "make sync-from-gnulib"
 +      and the former is needed for "configure".
 +      (maintainer-clean): Don't recurse into lib, as "make bootstrap-clean"
 +      has already removed lib/Makefile.
 +
 +      * Makefile.in (GNULIB_MODULES): Change ftoastr to dtoastr.
 +      This avoids building ftoastr and ldtoastr, which aren't needed.  See
 +      <http://lists.gnu.org/archive/html/bug-gnulib/2011-01/msg00199.html>.
 +
 +      * .bzrignore: Add .h files that are host-dependent.
 +      Add lib/.deps/, lib/arg-nonnull.h, lib/c++defs.h, lib/getopt.h,
 +      lib/time.h, lib/unistd.h, lib/warn-on-use.h.  These are
 +      host-dependent and are built as part of an ordinary 'make', and
 +      should not be checked in.
 +
 +      * lib/Makefile.in: Regenerate.
 +      * lib/COPYING: New file, a copy of COPYING.
 +
 +      * configure: Regenerate.
 +      * configure.in (AC_USE_SYSTEM_EXTENSIONS): Remove: gnulib does this.
 +
 +      Regenerate.
 +      * lib/getopt.c, lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h:
 +      * lib/gettext.h, lib/unistd.in.h, m4/unistd_h.m4:
 +      New files, copied from gnulib by gnulib-tool.
 +      * aclocal.m4, configure, lib/Makefile.in, m4/getopt.m4:
 +      * m4/gnulib-cache.m4, m4/gnulib-comp.m4, src/config.in:
 +      Regenerate.
 +
 +      Use gnulib's getopt-gnu module.
 +      * Makefile.in (GNULIB_MODULES): Add getopt-gnu.
 +      (AUTOCONF_INPUTS): Remove getopt.m4; aclocal.m4 is a good-enough
 +      representative of the dependencies.
 +      * configure.in: Do not configure getopt, as gnulib does that now.
 +      * make-dist: Do not worry about lib-src/getopt.h, as gnulib handles
 +      getopt now, in lib.
 +
 +      Regenerate.
 +      * arg-nonnull.h, c++defs.h, lib/mktime-internal.h, lib/mktime.c:
 +      * lib/stddef.in.h, lib/time.h, lib/time.in.h, lib/time_r.c:
 +      * m4/extensions.m4, m4/include_next.m4, m4/mktime.m4:
 +      * m4/multiarch.m4, m4/stddef_h.m4, m4/time_h.m4, m4/time_r.m4:
 +      * m4/extensions.m4, m4/include_next.m4, m4/mktime.m4, m4/multiarch.m4:
 +      * m4/stddef_h.m4, m4/time_h.m4, m4/time_r.m4, m4/warn-on-use.m4:
 +      * m4/wchar_t.m4, warn-on-use.h:
 +      New files, copied from gnulib by gnulib-tool.
 +      * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk:
 +      * m4/gnulib-cache.m4, m4/gnulib-comp.m4, src/config.in:
 +      Regenerate.
 +
 +      Use gnulib's mktime module.
 +      * Makefile.in (GNULIB_MODULES): Add mktime.
 +      * configure.in: Remove code no longer needed, as gnulib now does it.
 +      (AC_CHECK_FUNCS): Remove mktime.
 +      (AC_FUNC_MKTIME, BROKEN_MKTIME): Remove.
 +      (__restrict): Remove, as this now gets in the way of the C99
 +      support for 'restrict' pulled in by the gnulib mktime module.
 +      Code should now use 'restrict' and not '__restrict".
 +      (mktime): Remove.
 +      * make-dist: Put gnulib-generated files arg-nonnull.h, c++defs.h,
 +      and warn-on-use.h into the distribution.
 +
 +      Regenerate.
 +      * lib/dtoastr.c, lib/ftoastr.c, lib/ftoastr.h, lib/intprops.h:
 +      * lib/ldtoastr.c, m4/c-strtod.m4:
 +      New files, copied from gnulib by gnulib-tool.
 +      * lib/dummy.c: Remove.
 +      * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk:
 +      * m4/gnulib-cache.m4, m4/gnulib-comp.m4, src/config.in:
 +      Regenerate.
 +
 +      Use gnulib's ftoastr module.
 +      * Makefile.in (GNULIB_MODULES): Add ftoastr.  Remove dummy.
 +
 +      Regenerate.
 +      * aclocal.m4, compile, depcomp, lib/Makefile.in, lib/dummy.c:
 +      * lib/gnulib.mk, m4/00gnulib.m4, m4/gnulib-cache.m4:
 +      * m4/gnulib-common.m4, m4/gnulib-comp.m4, m4/gnulib-tool.m4, missing:
 +      New files, generated automatically, with 'make sync-from-gnulib'
 +      followed by 'make'.
 +      * configure, lisp/dired.el, src/config.in: Regenerate.
 +
 +      Automate syncing from gnulib.
 +      * INSTALL, README: Document new subdirectory 'lib'.
 +      * Makefile.in (SUBDIR): Add lib.
 +      (SUBDIR_MAKEFILES): Add lib/Makefile.
 +      (lib-src, src, TAGS, tags): Depend on lib.
 +      (gnulib_srcdir, GNULIB_MODULES, GNULIB_TOOL_FLAGS): New macros.
 +      ($(gnulib_srcdir)): New rule.
 +      (sync-from-gnulib): New rule, which is .PHONY.
 +      (lib): New rule, which is like lib-src.
 +      (Makefile): Depend on lib/Makefile.in.
 +      (AUTOCONF_INPUTS): Depend on aclocal.m4.
 +      (ACLOCAL_INPUTS, AUTOMAKE_INPUTS): New macros.
 +      ($(srcdir)/aclocal.m4, $(srcdir)/lib/Makefile.in): New rules.
 +      (am--refresh): New rule, to pacify Automake.
 +      (mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean):
 +      Clean lib, too.
 +      (top_maintainer_clean): New macro, to remove gnulib-tool and Automake
 +      droppings.
 +      (maintainer-clean, extraclean): Use it.
 +      * configure.in: Initialize for automake and gnulib, by invoking
 +      AM_INIT_AUTOMAKE, AM_PROG_CC_C_O, gl_EARLY, and gl_INIT.  Output
 +      lib/Makefile, too.  Use automake to build gnulib, as gnulib works
 +      more conveniently with automake.
 +      * lib/Makefile.am: New file.
 +      * make-dist: Also put into the distribution aclocal.m4,
 +      compile, depcomp, missing, and the files under lib/.
 +
 +2011-01-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (epaths-force): No more arch-tag to edit.
 +
 +2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * configure.in: Bump min libxml2 version to 2.6.17 (Bug#7603).
 +
 +2011-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * make-dist: Distribute test/ files too.
 +      Distribute every file under test/ that is under version control,
 +      using patterns like *.el to capture files that are added later.
 +      Without this change, "configure" would fail, because it would
 +      attempt to build from a Makefile.in that was not distributed.
 +
 +2011-01-13  Christian Ohler  <ohler@gnu.org>
 +
 +      * Makefile.in (INFO_FILES): Add ERT.
 +
 +      * Makefile.in (check): Run tests in test/automated.
 +
 +      * Makefile.in:
 +      * configure.in: Add test/automated/Makefile.
 +
 +2011-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * install-sh, mkinstalldirs, move-if-change: Update from master
 +      source in gnulib.
 +
 +      * config.guess, config.sub: Updated from master source.
 +
 +2011-01-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Check for __builtin_unwind_init.
 +
 +2011-01-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_MAKEINFO): New output variable.
 +      (MAKEINFO): Reset to "makeinfo" if not found.
 +      * Makefile.in (install-arch-indep, info):
 +      Replace MAKEINFO = off with HAVE_MAKEINFO = no.
 +
 +2010-12-29  Ulrich Mueller  <ulm@gentoo.org>
  
 -      * configure.in [netbsd systems]: Check for tputs definition
 -      (Bug#7642).
 +      * configure.in: Make gameuser configurable (Bug#7717).
 +
 +2010-12-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (install-arch-dep, uninstall): Remove code relating to the
 +      long absent lib-src/fns-*.el.
  
  2010-12-11  Glenn Morris  <rgm@gnu.org>
  
 -      * make-dist: Exclude etc/*.pyc.  [Backport from trunk]
 +      * make-dist: Exclude etc/*.pyc.
  
 -2010-11-13  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-12-10  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      Fix alloca definition when using gcc on non-gnu systems.
 -      * configure.in: Use the code sequence indicated by "info autoconf"
 -      for alloca (bug#6170).
 +      * configure.in: Don't double machfile in final message.
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * configure.in: Fix last change.
 +
 +2010-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Remove reference to removed machine description
 +      files and allow $machine and $machfile to be empty.  Substitute
 +      M_FILE/S_FILE instead of machfile/opsysfile.
 +
 +2010-12-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: Remove EMACS_UNIBYTE unsetting; it does nothing.
 +
 +2010-11-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in <AC_CHECK_HEADERS>: Remove sys/ioctl.h.
 +      (EXTERNALLY_VISIBLE): New definition.
 +
 +2010-11-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (INLINE): Do not depend on OPTIMIZE, unused.
 +
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Do not check for unconditionally included headers.
 +
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * .dir-locals.el (log-edit-mode): Set log-edit-rewrite-fixes.
  
 -2010-11-04  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-09  Michael Albinus  <michael.albinus@gmx.de>
  
        * configure.in: Don't write a warning for D-Bus anymore.
  
 -2010-11-03  Glenn Morris  <rgm@gnu.org>
 +2010-11-06  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * configure.in (CRT_DIR): New output variable.
 -      (--with-crt-dir): New option.  (Bug#5655)
 -      (HAVE_LIB64_DIR): Remove.
 +      * configure.in: Fix indentation.
  
 -2010-10-12  Glenn Morris  <rgm@gnu.org>
 +2010-10-31  Ken Brown  <kbrown@cornell.edu>
 +
 +      * configure.in (checking whether localtime caches TZ): Use
 +      unsetenv instead of modifying environment directly.
 +
 +2010-10-25  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in (checking for -znocombreloc): Use AC_LANG_PROGRAM
 +      to avoid warning.
 +
 +2010-10-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * configure.in: Remove the BROKEN annotation from gnutls.
 +
 +2010-10-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: Avoid listing .el files twice.  Don't try to run
 +      autoconf if --no-update.
 +
 +2010-10-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: No longer create lisp/MANIFEST.
 +
 +2010-10-14  Glenn Morris  <rgm@gnu.org>
  
        * BUGS, INSTALL.BZR, README: Updates.
  
 -2010-10-08  Eli Zaretskii  <eliz@gnu.org>
 +2010-10-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: Remove --compress.  Check for the appropriate
 +      gzip-like executable, and if not found, don't compress.
 +      Check version number in README, don't change it.
 +      Use find for nt/inc/*.h.
 +
 +2010-10-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure (ns_appdir, OLDXMENU, TOOLTIP_SUPPORT): Remove
 +      trailing / from directory names.
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: Update and simplify.
 +
 +2010-10-12  Eli Zaretskii  <eliz@gnu.org>
  
        * make-dist: Don't distribute src/buildobj.h.  (Bug#7167)
  
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (PROFILING_LDFLAGS): Do not define, remove all uses.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: No more doc/emacs/*.texi.in.
 +
 +      * configure.in (AC_OUTPUT): Remove doc/emacs/emacsver.texi.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in: Combine some conditionals.
 +
 +      * configure.in (AC_OUTPUT): Add doc/emacs/emacsver.texi.
 +      * make-dist: Include doc/emacs/*.texi.in.
 +
 +      * INSTALL, make-dist: Remove references to b2m.
 +      * Makefile.in (MAN_PAGES): Remove b2m.1.
 +
 +2010-10-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * .dir-locals.el: The Emacs convention is sentence-end-double-space.
 +
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (NO_INLINE, noinline): Move here from src/xterm.c.
 +
 +2010-10-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Include stdlib.h and string.h unconditionally.
 +
 +2010-09-29  Romain Francoise  <romain@orebokech.com>
 +
 +      * configure.in: Don't enable ImageMagick unless HAVE_X11.
 +
 +2010-09-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_GNUTLS): Add a description to make autoheader
 +      happy.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * configure.in: Enable imagemagick by default.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * configure.in (HAVE_GNUTLS): Don't break if we don't have the
 +      gnutls libraries.
 +
 +2010-09-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * configure.in: Set up GnuTLS.
 +
 +2010-09-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * configure.in: Announce whether libxml2 is linked to.
 +
 +2010-09-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (LINKER): Rename to LD_FIRSTFLAG, do not include $(CC).
 +
 +2010-09-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat: Detect that libxml2 is installed and if so, build
 +      with it.
 +
 +2010-09-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * configure.in (HAVE_LIBXML2): Check that the libxml2 we found can
 +      be used.  This fixes a conf problem on Mac OS X.
 +
 +2010-09-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * configure.in: Check for libxml2.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist: No more TODO files under lisp/.
 +
 +2010-09-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat: Produce lisp/gnus/_dir-locals.el from
 +      lisp/gnus/.dir-locals.el.
 +
 +2010-08-23  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Fix check for librsvg, imagemagick and
 +      MagickExportImagePixels.
 +
 +2010-08-18  Joakim Verona  <joakim@verona.se>
 +
 +      * Makefile.in, configure.in: Checks for ImageMagick.
 +
 +2010-08-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (AC_PREREQ): Require autoconf 2.65.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (AC_PREREQ): Require autoconf 2.66 to stop version churn.
 +
 +2010-08-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Add AC_C_BIGENDIAN.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (ORDINARY_LINK): Use on hpux* too.
 +
 +2010-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * configure.in: Check for util.h.
 +      Use -Wimplicit-function-declaration if compiler supports it.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * configure.in (UNEXEC_OBJ): Rename unexec.o => unexcoff.o.
 +
 +2010-08-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Restore accidentally removed use of
 +      GCC_TEST_OPTIONS/NON_GCC_TEST_OPTIONS.
 +
 +2010-07-29  Chad Brown  <yandros@mit.edu>
 +
 +      * configure.in: Check for dirent.h.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove reference to usg5-4, unused.
 +
 +2010-07-25  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Check for __executable_start.
 +
 +2010-07-24  Ken Brown  <kbrown@cornell.edu>
 +
 +      * configure.in (LINKER, LIB_GCC): Remove cygwin special cases (Bug#6715)
 +
 +2010-07-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * .bzrignore, .gitignore: Ignore README.W32 on the root directory.
 +
 +2010-07-24  Ken Brown  <kbrown@cornell.edu>  (tiny change)
 +
 +      * configure.in (START_FILES) [cygwin]: Set to pre-crt0.o (Bug#6715).
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS)
 +      (PROFILING_LDFLAGS): Substitute, don't add them to CFLAGS/LDFLAGS.
 +      (C_OPTIMIZE_SWITCH): Remove.
 +      (TEMACS_LDFLAGS2): Add ${PROFILING_LDFLAGS}.
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Don't check for index and rindex, check for strchr
 +      and strrchr.  Define strchr and strrchr as index and rindex,
 +      resp., in src/config.h if not available.
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Use -Wold-style-definition if available.
 +      This helps with the transition to standard C code, it can be
 +      removed when done.
 +
 +      * configure.in (PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS): Remove.
 +
 +      * configure.in (UNEXEC_OBJ): Add comment about values for MSDOS
 +      and MSWindows.
 +
 +2010-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * configure.in: Don't check for bcopy, bcmp, bzero.  Don't include
 +      <strings.h> and don't define bcopy, bzero, BCMP in config.h.
 +
 +2010-07-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (getenv): Remove K&R declaration.
 +
 +2010-07-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * configure.in: Remove define __P.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (--enable-use-lisp-union-type): New flag.
 +
 +2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix CFLAGS for non-GCC compilers.
 +      * configure.in (CFLAGS): Always use -g like it was done before the
 +      2010-03-30 change.
 +      (REAL_CFLAGS): Use CFLAGS for non-GCC to get optimization flags.
 +      (Bug#6538)
 +
 +2010-06-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_SOUND, HAVE_X_I18N, HAVE_X11R6_XIM):
 +      Set with AC_DEFINE rather than AH_BOTTOM.
 +
 +      * configure.in (C_OPTIMIZE_SWITCH, CANNOT_DUMP, SYSTEM_MALLOC):
 +      (USE_MMAP_FOR_BUFFERS, C_WARNING_SWITCH, CFLAGS, REAL_CFLAGS):
 +      Set with shell, not cpp.
 +      (LIBX): Remove, just use -lX11 in the one place this was used.
 +      (cannot_dump): Replace with CANNOT_DUMP.
 +
 +2010-06-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * configure.in: Add --with-x-toolkit=gtk3. Remove HAVE_GTK_MULTIDISPLAY,
 +      check for gtk_file_chooser_dialog_new, and HAVE_GTK_FILE_BOTH (implied
 +      by minimum required Gtk+ 2.6).  Add checks for functions introduced
 +      in Gtk+ 2.14 or newer (bug#6505).
 +
 +2010-06-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat: Remove white space around "+" in COPY commands.
 +
  2010-06-23  Glenn Morris  <rgm@gnu.org>
  
        * info/dir: Start descriptions in column 32, per Texinfo convention.
  
 -2010-06-12  Chong Yidong  <cyd@stupidchicken.com>
 +2010-06-16  Chong Yidong  <cyd@stupidchicken.com>
  
        * INSTALL: Update font information (Bug#6389).
  
 -2010-06-10  Glenn Morris  <rgm@gnu.org>
 +2010-06-16  Glenn Morris  <rgm@gnu.org>
  
        * INSTALL: General update.
  
 +2010-06-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (install-arch-indep): Delete any old info .gz files first.
 +
 +2010-06-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (--without-compress-info): New option.
 +      (GZIP_INFO): New output variable.
 +
 +      * Makefile.in (GZIP_INFO): New, set by configure.
 +      (install-arch-indep): Don't gzip info pages if GZIP_INFO is nil.
 +      Handle man pages in the same way.
 +
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (install-arch-indep): Gzip the info files too.
 +
 +      * make-dist: Remove references to non-existent directories and files.
 +
 +2010-06-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Include <strings.h> and <string.h> instead of
 +      "strings.h" and "string.h".
 +
 +2010-06-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove code dealing with BSTRING.
 +
 +2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (AC_PREREQ): Require autoconf 2.65.
 +
 +      * configure.in (unxec): Do not define and substitute.
 +      (UNEXEC_OBJ): New output variable, replaces cpp UNEXEC.
 +
 +2010-06-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (AH_BOTTOM): Remove NOT_C_CODE test, it is always true.
 +
 +2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix alloca definition when using gcc on non-gnu systems.
 +      * configure.in: Use the code sequence indicated by "info autoconf"
 +      for alloca (bug#6170).
 +
  2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * .bzrignore: Ignore new files from trunk, which appear if you use
        colocated branches (i.e. "bzr switch").
  
 -2010-05-10  Miles Bader  <miles@gnu.org>
 +2010-05-28  Glenn Morris  <rgm@gnu.org>
  
 -      * configure.in: Get rid of "unix" pre-defined macro when
 -      preprocessing Makefile.  (Bug#5857)  [Backport from trunk]
 +      * configure.in: Simplify some of the $canonical tests.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-27  Glenn Morris  <rgm@gnu.org>
  
 -      * Version 23.2 released.
 +      * config.bat: Do not preprocess src/Makefile.in.
 +
 +      * configure.in: Do not preprocess src/Makefile.in.
 +      (cpp_undefs, CPP_NEED_TRADITIONAL): Remove.
 +      (AC_EGREP_CPP): Test no longer needed.
 +
 +      * make-dist: No more Makefile.c files.
 +
 +2010-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (YMF_PASS_LDFLAGS): Remove.
 +      (PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS): New output variables.
 +
 +      * configure.in (CPPFLAGS, CFLAGS, REAL_CFLAGS):
 +      Add $GNUSTEP_LOCAL_HEADERS.
 +      (LDFLAGS, LD_SWITCH_SYSTEM_TEMACS): Add $GNUSTEP_LOCAL_LIBRARIES.
 +
 +      * configure.in (NS_IMPL_GNUSTEP_INC, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS)
 +      (GNUSTEP_MAKEFILES): Remove.
 +      (LD_SWITCH_SYSTEM_TEMACS): Move NS_IMPL_GNUSTEP_TEMACS_LDFLAGS
 +      stuff to here.
 +
 +2010-05-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LD_SWITCH_SYSTEM): Move some gnu-linux stuff...
 +      (LD_SWITCH_SYSTEM_TEMACS): ... to here.
 +
 +      * configure.in (LD_SWITCH_SYSTEM_EXTRA): Remove.
 +      (LD_SWITCH_SYSTEM_TEMACS): Put darwin stuff from LD_SWITCH_SYSTEM_EXTRA
 +      here instead.
 +
 +2010-05-24  Romain Francoise  <romain@orebokech.com>
 +
 +      * make-dist: Look for version in src/emacs.c.
 +      Use lisp/subr.el rather than lisp/version.el for location check.
 +
 +2010-05-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (MKDEPDIR): Parallel build tweak.
 +
 +      * configure.in (ns_frag): New output file.
 +
 +      * configure.in (OLDXMENU): Set to "nothing" if !HAVE_X11 || USE_GTK.
 +      (OLDXMENU_TARGET): Set to empty if USE_GTK.
 +
 +      * configure.in (cannot_dump): New output variable.
 +
 +2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +
 +      * configure.in: On NetBSD, if terminfo is found, use it in
 +      preference to termcap.  (Bug#6190)
 +
 +2010-05-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist (src): Include *.mk.
 +      * config.bat: Concatenate deps.mk onto the end of src/Makefile.
 +      * configure.in (DEPFLAGS, MKDEPDIR): New output variables.
 +      (deps_frag): New output file.
 +      (AUTO_DEPEND): Remove this definition.
 +
 +      * configure.in (--with-gtk, --with-gcc): Remove option stubs.
 +
 +2010-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LINKER, YMF_PASS_LDFLAGS): New output variables.
 +      (ORDINARY_LINK): New AC_DEFINE.
 +      (LIB_GCC): No need to set if ORDINARY_LINK.
 +
 +2010-05-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (POST_ALLOC_OBJ) [cygwin]: Omit vm-limit.o.
 +      (POST_ALLOC_OBJ) [!cygwin]: Set to empty.
 +
 +      * config.bat (RALLOC_OBJ): Edit to empty if sys_malloc.
 +      * configure.in (REL_ALLOC): Unset on gnu, gnu-linux if DOUG_LEA_MALLOC.
 +      (RALLOC_OBJ): New output variable.
 +
 +      * config.bat (GMALLOC_OBJ, VMLIMIT_OBJ): Edit to empty if sys_malloc.
 +      * configure.in (GMALLOC_OBJ, VMLIMIT_OBJ): New output variables.
 +
 +2010-05-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * Makefile.in (src): Provide the name of the VCS file that witnesses
 +      a pull.
 +      ($(srcdir)/src/config.in): Handle accidental removal of src/config.in.
 +
 +2010-05-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (OLDXMENU_DEPS): New output variable.
 +
 +2010-05-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (ns_appbindir, ns_appresdir): Set using $ns_appdir.
 +
 +      * configure.in (ns_appdir, ns_appbindir): Add trailing "/" to value.
 +      * Makefile.in (install-arch-dep): Update for above change.
 +
 +      * Makefile.in (ns_appdir): Remove.
 +      (install-arch-dep): Test $ns_appresdir instead of $ns_appdir.
 +
 +      * configure.in (TEMACS_LDFLAGS2): New output variable.
 +
 +      * configure.in (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New output variable.
 +      (START_FILES): Set to empty if NS_IMPL_GNUSTEP.
 +      (GNUSTEP_SYSTEM_HEADERS, GNUSTEP_SYSTEM_LIBRARIES): Do not output,
 +      nothing uses.
 +
 +2010-05-16  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove references to usg5-4 and bsd-common, $opsys
 +      does not use them.
 +      (X11R5_INHIBIT_I18N): Remove, unused.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
  
 -2010-05-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +      * configure.in (LIBXMENU): Set to empty if !HAVE_X_WINDOWS.
 +
 +      * configure.in (FONT_OBJ): Set to empty if !HAVE_X_WINDOWS.
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * configure.in: Look for version string in its new location.
 +
 +2010-05-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat: Remove support for DJGPP v1.x.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (OLDXMENU_TARGET): New output variable.
 +
 +      * Makefile.in (install-arch-dep): Update odd NS rule for Emacs version.
 +
 +      * Makefile.in (install-arch-indep): Remove references to RCS, CVS,
 +      and other files that no longer exist.
 +
 +2010-05-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (cpp_undefs): Add mktime, register, X11.
 +
 +      * configure.in (GPM_MOUSE_SUPPORT): Remove.
 +      (MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): New output variables.
 +      (HAVE_WINDOW_SYSTEM, HAVE_MOUSE): Move out of AC_BOTTOM.
 +
 +      * configure.in (NS_IMPL_GNUSTEP_INC): New output variable.
 +      (GNUSTEP_MAKEFILES): Do not output.
 +
 +2010-05-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in: Fix some paren typos.
 +
 +      * configure.in (OLDXMENU, LIBXMENU): Set to empty if !HAVE_MENUS.
 +
 +      * configure.in (LD_SWITCH_X_SITE, C_SWITCH_X_SITE): Do not define.
 +
 +2010-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LIB_SRC_EXTRA_INSTALLABLES): Remove, unused.
 +
 +      * configure.in (LIB_GCC): New output variable.
 +
 +2010-05-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * make-dist (msdos): No more mainmake.
 +
 +      * configure.in: Generate lib-src/Makefile directly, do not run cpp.
 +      * config.bat: Do not run cpp on lib-src/Makefile.in.
 +
 +      * config.bat [HAVE_X11]: Run sed3x.inp on lib-src/Makefile.
 +
 +2010-05-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LIBS_SYSTEM): New output variable, replacing cpp.
 +
 +      * configure.in (MAIL_USE_FLOCK, MAIL_USE_LOCKF): New AC_DEFINEs.
 +      (BLESSMAIL_TARGET): New output variable.
 +
 +2010-05-08  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
        * INSTALL: Fix typos.
  
 -2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * configure.in: Add check for buggy version of GCC (Bug#6031).
  
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_LIBNCURSES): New local variable.
 +      (TERMINFO, LIBS_TERMCAP, TERMCAP_OBJ): New output variables,
 +      replacing cpp in src/s/*.h and src/Makefile.in.
 +
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * configure.in: Add tests for `isnan' and `copysign'.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat: Allow for 2 leading `#'s in comments in
 +      src/Makefile.in.
 +
 +2010-05-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LD_SWITCH_SYSTEM): Set with configure, not cpp.
 +      Merges logic from src/s/* and src/Makefile.in.
 +      (LD_SWITCH_SYSTEM_TEMACS): New output variable.
 +
 +2010-05-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Define START_FILES and LIB_STANDARD using autoconf.
 +      * configure.in (START_FILES, LIB_STANDARD): New definitions, moved
 +      here from src/s/*.h.
 +      (HAVE_CRTIN): Remove, inline logic in the netbsd
 +      START_FILES/LIB_STANDARD computation.
 +
 +2010-05-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (AC_PROG_LN_S): Remove test, nothing uses @LN_S@.
 +
 +      * Makefile.in (CPP, C_SWITCH_SYSTEM, ALLOCA, LN_S, C_SWITCH_X_SITE)
 +      (LD_SWITCH_X_SITE): Remove unused variables.
 +
 +2010-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LD_SWITCH_X_SITE_AUX): Use AC_SUBST only, not AC_DEFINE
 +      as well.
 +      (LD_SWITCH_X_SITE_AUX_RPATH): New output variable.
 +
 +      * configure.in (LD_SWITCH_SYSTEM_TEMACS): New output variable.
 +
 +      * configure.in (C_SWITCH_MACHINE, C_SWITCH_SYSTEM): New output
 +      variables, replacing c_switch_machine, c_switch_system.
 +      * Makefile.in (C_SWITCH_SYSTEM): Use @C_SWITCH_SYSTEM@ rather than
 +      @c_switch_system@.
 +
 +2010-05-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LIBXT_OTHER, LIBX_OTHER): New output variables.
 +
 +      * make-dist: There are no more src/m/*.inp files.
 +
 +2010-05-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (LD_SWITCH_MACHINE, ld_switch_machine): Remove, unused.
 +      (ac_link): Do not use ld_switch_machine.
 +
 +2010-05-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (OTHER_OBJ): Remove.
 +      (PRE_ALLOC_OBJ, POST_ALLOC_OBJ): New output variables.
 +
 +2010-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (OTHER_OBJ): Always include vm-limit.o on Cygwin.
 +      Elsewhere, maybe include it.
 +
 +      * configure.in (TOOLKIT_LIBW) [HAVE_GTK]: Set to $GTK_LIBS.
 +      (OLDXMENU, LIBXMENU): New output variables.
 +
 +      * configure.in (OTHER_OBJ): New output variable.
 +
 +2010-04-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (CYGWIN_OBJ): New output variable.
 +
 +      * configure.in (GPM_MOUSE_SUPPORT): New output variable.
 +
 +      * configure.in (FONT_OBJ): New output variable.
 +
 +      * configure.in (LIBXMU): New output variable.
 +
 +      * configure.in (NS_OBJ, NS_SUPPORT): New output variables.
 +
 +      * configure.in (machine, canonical): On amdx86-64, check for a 32-bit
 +      userland and maybe change values to i386 (move test from s/amdx86-64.h).
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LIBXTR6): New output variable.  Move unixware special
 +      case here from src/s/unixware.h.
 +
 +      * configure.in (LUCID_LIBW, MOTIF_LIBW): No longer substitute
 +      in Makefiles.
 +      (TOOLKIT_LIBW): New output variable, replacing LUCID_LIBW/MOTIF_LIBW.
 +
 +      * configure.in (HAVE_MOTIF_2_1): Remove unused variable.
 +      (LIBXP): No longer substitute in Makefiles.
 +      (MOTIF_LIBW): New output variable.  Move system-specific settings here
 +      from src/s files.
 +
 +2010-04-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Reduce CPP usage.
 +      * configure.in (LIB_X11_LIB): Remove, inline in the only user.
 +      (unexec): Define unconditionally, all platforms define
 +      UNEXEC.  AC_SUBST it.
 +      (UNEXEC_SRC): Remove, unused.
 +      (C_SWITCH_X_SYSTEM): Define using autoconf, not cpp.
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_MOTIF_2_1, HAVE_LIBXP): Remove unused AC_DEFINEs,
 +      replaced by LIBXP.
 +
 +      * configure.in (--with-crt-dir): Doc fix (now valid for all platforms).
 +      (CRT_DIR): On (powerpc64|sparc64)-*-linux-gnu*, default to /usr/lib64.
 +      On hpux10-20, default to /lib.
 +
 +      * configure.in (LUCID_LIBW, LIBXP, WIDGET_OBJ): New output variables.
 +
 +2010-04-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (LIBS_MACHINE): Remove, unused.
 +
 +      * configure.in (LIB_MATH): New output variable.  Set it for some systems.
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (CRT_DIR): New output variable.
 +      (--with-crt-dir): New option.  (Bug#5655)
 +      (HAVE_LIB64_DIR): Remove.
 +
 +2010-04-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in (REAL_CFLAGS, CFLAGS): Restore -g for gcc.
 +
 +2010-04-22  Miles Bader  <miles@gnu.org>
 +
 +      * configure.in: Get rid of "unix" pre-defined macro when
 +      preprocessing Makefile.  (Bug#5857)
 +
 +2010-04-21  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      Avoid non-portable shell command negation
 +      * configure.in: Revert last change.
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * configure.in: Change "if test ! -f" to "if ! test -f".
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (LIBSELINUX_LIBS): Always substitute in Makefiles.
 +      (GTK_OBJ, DBUS_OBJ, LIBXSM, XMENU_OBJ, XOBJ): New output variables.
 +
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
 +
 +      * configure.in: New option: --with(out)-selinux, on by default.
 +      Set HAVE_LIBSELINUX if we find libselinux, and substitute
 +      LIBSELINUX_LIBS in Makefiles.
 +
 +2010-04-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove all references to LIBX11_SYSTEM.
 +
 +2010-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove all references to C_DEBUG_SWITCH.
 +
 +2010-03-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * config.bat <lib-src>: Edit out lines that begin with several #
 +      characters.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * configure.in: Remove support for old UNIX System V systems and
 +      for Unixware on non-x86 machines.
 +
 +      * configure.in: Remove support for Solaris on PPC and for old versions.
 +
 +      * configure.in: Remove non-working lynxos port.
 +
 +2010-03-19  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * .dir-locals.el (c-mode): Turn on whitespace-mode for diff-mode.
 +
 +2010-03-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (HAVE_LIBNCURSES): Add a description to make autoheader
 +      happy.
 +
 +2010-03-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * configure.in: Check for tputs and friends, abort if not
 +      found (bug#5735).
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * configure.in (--with-x-toolkit): In the help text, say which options
 +      are synonyms.
 +
 +      * configure.in (--with-mmdf, --with-mail-unlink):
 +      New options, off by default.
 +      (--with-mailhost): New option to set default POP host.
 +      (LIBXPM, LIBJPEG, LIBPNG, LIBTIFF, LIBGIF, LIBGPM, LIBS_MAIL)
 +      (LIBHESIOD, LIBRESOLV, COM_ERRLIB, CRYPTOLIB, KRB5LIB, DESLIB, KRB4LIB):
 +      New variables, substituted in Makefiles.
 +      (try_libungif, ac_gif_lib_name): Replace with HAVE_GIF=maybe, LIBGIF.
 +      (LIBGIF): Use AC_SUBST rather than AC_DEFINE.
 +      (HAVE_LIBMAIL, HAVE_LIBLOCKFILE, HAVE_LIBCOM_ERR, HAVE_LIBCRYPTO)
 +      (HAVE_LIBK5CRYPTO, HAVE_LIBKRB5, HAVE_LIBDES425, HAVE_LIBDES)
 +      (HAVE_LIBKRB4, HAVE_LIBKRB): New AC_DEFINEs.
 +
 +2010-03-18  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 +
 +      * Makefile.in (uninstall): Handle the case where archlibdir does not
 +      exist.  (Bug#5720)
 +
 +2010-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      These changes remove termcap.c from the build on Posix platforms.
 +      * configure.in <AC_CHECK_HEADERS>: Remove termcap.h.
 +
 +      * configure: Regenerated.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-01-31  Juri Linkov  <juri@jurta.org>
  
        * .bzrignore: Add TAGS-LISP.
  
        Update copyright year(s) in many files.
  
 +2006-04-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * configure: Regenerated.
 +
  2006-04-01  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
  
        * configure.in (HAVE_XAW3D): Disable Xaw3d check if
  
        * make-dist (lispref): Do include lispref/index.texi.
  
 -2004-01-06  Eric Hanchrow  <offby1@blarg.net>  (tiny change)
 +2004-01-06  Eric Hanchrow  <offby1@blarg.net>
  
        * make-dist (tempdir): Include cursors in nt/icons.
  
        * make-dist: Unset EMACS_UNIBYTE, so Emacs runs in its default state.
        Quote $EMACS, in case it's a program with args.
  
 +1999-06-15  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * configure.in (HAVE_GIF): Use libungif instead of libgif
 +      because the former doesn't contain patented compression code.
 +
  1999-05-29  Richard M. Stallman  <rms@gnu.org>
  
        * configure.in: Delete the Kerberos stuff.
  1994-05-09  David J. MacKenzie  (djm@nutrimat.gnu.ai.mit.edu)
  
        * configure.in: Remove AC_LANG_C call.  Not needed with Autoconf
 -       version > 1.8.
 +      version > 1.8.
  
  1994-05-08  Morten Welinder  (terra@diku.dk)
  
        (EMACSROOT): New variable, giving the directory under which all of
        Emacs's libraries should be installed.  Changed rest of file to
        use it.
 -      (LIBDIR): Now denotes only architecture-dependent dir - relevant cha
 +      (LIBDIR): Now denotes only architecture-dependent dir.
        (DATADIR): New variable, denoting architecture-independent dir.
        (LOCKDIR): New variable, for completeness.
        (SUBDIR): No more etc, new lib-src.
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
 -      2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 1993-1999, 2001-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
 -;;; arch-tag: ac61a779-1480-4884-b292-d0c39c127a73
diff --combined configure
index bf79cecf5b4441156c1fb45a348249f3f49a0390,dd69fde936fbc16a9e9abb2d41849259e41f2943..624981c8c0f3a047327d9af5570808ea2f4390fa
+++ b/configure
@@@ -1,6 -1,6 +1,6 @@@
  #! /bin/sh
  # Guess values for system-dependent variables and create Makefiles.
 -# Generated by GNU Autoconf 2.67 for emacs 23.2.92.
 +# Generated by GNU Autoconf 2.68 for emacs 24.0.50.
  #
  #
  # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@@ -89,7 -89,6 +89,7 @@@ f
  IFS=" ""      $as_nl"
  
  # Find who we are.  Look in the path if we contain no directory separator.
 +as_myself=
  case $0 in #((
    *[\\/]* ) as_myself=$0 ;;
    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@@ -215,18 -214,11 +215,18 @@@ IFS=$as_save_IF
    # We cannot yet assume a decent shell, so we have to provide a
        # neutralization value for shells without unset; and this also
        # works around shells that cannot unset nonexistent variables.
 +      # Preserve -v and -x to the replacement shell.
        BASH_ENV=/dev/null
        ENV=/dev/null
        (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
        export CONFIG_SHELL
 -      exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 +      case $- in # ((((
 +        *v*x* | *x*v* ) as_opts=-vx ;;
 +        *v* ) as_opts=-v ;;
 +        *x* ) as_opts=-x ;;
 +        * ) as_opts= ;;
 +      esac
 +      exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
  fi
  
      if test x$as_have_required = xno; then :
@@@ -557,8 -549,8 +557,8 @@@ MAKEFLAGS
  # Identity of this package.
  PACKAGE_NAME='emacs'
  PACKAGE_TARNAME='emacs'
 -PACKAGE_VERSION='23.2.92'
 -PACKAGE_STRING='emacs 23.2.92'
 +PACKAGE_VERSION='24.0.50'
 +PACKAGE_STRING='emacs 24.0.50'
  PACKAGE_BUGREPORT=''
  PACKAGE_URL=''
  
@@@ -601,49 -593,26 +601,49 @@@ ac_includes_default="
  
  ac_config_libobj_dir=src
  ac_header_list=
 +gl_getopt_required=POSIX
 +gl_getopt_required=POSIX
  ac_func_list=
 -ac_subst_vars='LTLIBOBJS
 +ac_subst_vars='gltests_LTLIBOBJS
 +gltests_LIBOBJS
 +gl_LTLIBOBJS
 +gl_LIBOBJS
 +am__EXEEXT_FALSE
 +am__EXEEXT_TRUE
 +LTLIBOBJS
 +WINDOW_SUPPORT
 +TOOLTIP_SUPPORT
 +MOUSE_SUPPORT
 +LIB_GCC
 +LD_FIRSTFLAG
 +LD_SWITCH_SYSTEM_TEMACS
 +POST_ALLOC_OBJ
 +PRE_ALLOC_OBJ
 +CYGWIN_OBJ
 +RALLOC_OBJ
 +OLDXMENU_DEPS
 +LIBX_OTHER
 +LIBXMENU
 +OLDXMENU
 +OLDXMENU_TARGET
 +LIBXT_OTHER
 +TOOLKIT_LIBW
 +WIDGET_OBJ
 +XOBJ
 +XMENU_OBJ
 +FONT_OBJ
  OTHER_FILES
 -LIB_SRC_EXTRA_INSTALLABLES
  GNU_OBJC_CFLAGS
 -GNUSTEP_SYSTEM_LIBRARIES
 -GNUSTEP_SYSTEM_HEADERS
 -GNUSTEP_MAKEFILES
  ns_appsrc
  ns_appresdir
  ns_appbindir
  ns_appdir
 -opsysfile
 -machfile
 +S_FILE
 +M_FILE
  X_TOOLKIT_TYPE
 +C_SWITCH_X_SYSTEM
  C_SWITCH_X_SITE
 -LD_SWITCH_X_SITE_AUX
  LD_SWITCH_X_SITE
 -c_switch_machine
 -c_switch_system
  gameuser
  gamedir
  bitmapdir
@@@ -657,181 -626,14 +657,181 @@@ srcdi
  canonical
  configuration
  version
 -GETOPTOBJS
 +KRB4LIB
 +DESLIB
 +KRB5LIB
 +CRYPTOLIB
 +COM_ERRLIB
 +LIBRESOLV
 +LIBHESIOD
 +TERMCAP_OBJ
 +LIBS_TERMCAP
 +LIBGNU_LTLIBDEPS
 +LIBGNU_LIBDEPS
 +gltests_WITNESS
 +HAVE_UNISTD_H
 +NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
 +NEXT_UNISTD_H
 +PTHREAD_H_DEFINES_STRUCT_TIMESPEC
 +SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
 +TIME_H_DEFINES_STRUCT_TIMESPEC
 +NEXT_AS_FIRST_DIRECTIVE_TIME_H
 +NEXT_TIME_H
 +NEXT_AS_FIRST_DIRECTIVE_STDDEF_H
 +NEXT_STDDEF_H
 +STDDEF_H
 +HAVE_WCHAR_T
 +REPLACE_NULL
 +HAVE__BOOL
 +STDBOOL_H
 +APPLE_UNIVERSAL_BUILD
 +REPLACE_TIMEGM
 +REPLACE_NANOSLEEP
 +REPLACE_MKTIME
 +REPLACE_LOCALTIME_R
 +HAVE_TIMEGM
 +HAVE_STRPTIME
 +HAVE_NANOSLEEP
 +HAVE_DECL_LOCALTIME_R
 +GNULIB_TIME_R
 +GNULIB_TIMEGM
 +GNULIB_STRPTIME
 +GNULIB_NANOSLEEP
 +GNULIB_MKTIME
 +LTLIBINTL
 +LIBINTL
  GETOPT_H
 +HAVE_GETOPT_H
 +NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
 +NEXT_GETOPT_H
 +PRAGMA_COLUMNS
 +PRAGMA_SYSTEM_HEADER
 +INCLUDE_NEXT_AS_FIRST_DIRECTIVE
 +INCLUDE_NEXT
 +UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
 +UNISTD_H_HAVE_WINSOCK2_H
 +REPLACE_WRITE
 +REPLACE_USLEEP
 +REPLACE_UNLINKAT
 +REPLACE_UNLINK
 +REPLACE_TTYNAME_R
 +REPLACE_SYMLINK
 +REPLACE_SLEEP
 +REPLACE_RMDIR
 +REPLACE_READLINK
 +REPLACE_PWRITE
 +REPLACE_PREAD
 +REPLACE_LSEEK
 +REPLACE_LINKAT
 +REPLACE_LINK
 +REPLACE_LCHOWN
 +REPLACE_GETPAGESIZE
 +REPLACE_GETGROUPS
 +REPLACE_GETLOGIN_R
 +REPLACE_GETDOMAINNAME
 +REPLACE_GETCWD
 +REPLACE_FCHOWNAT
 +REPLACE_DUP2
 +REPLACE_DUP
 +REPLACE_CLOSE
 +REPLACE_CHOWN
 +HAVE_SYS_PARAM_H
 +HAVE_OS_H
 +HAVE_DECL_TTYNAME_R
 +HAVE_DECL_GETUSERSHELL
 +HAVE_DECL_GETPAGESIZE
 +HAVE_DECL_GETLOGIN_R
 +HAVE_DECL_GETDOMAINNAME
 +HAVE_DECL_FCHDIR
 +HAVE_DECL_ENVIRON
 +HAVE_USLEEP
 +HAVE_UNLINKAT
 +HAVE_SYMLINKAT
 +HAVE_SYMLINK
 +HAVE_SLEEP
 +HAVE_READLINKAT
 +HAVE_READLINK
 +HAVE_PWRITE
 +HAVE_PREAD
 +HAVE_PIPE2
 +HAVE_PIPE
 +HAVE_LINKAT
 +HAVE_LINK
 +HAVE_LCHOWN
 +HAVE_GETPAGESIZE
 +HAVE_GETLOGIN
 +HAVE_GETHOSTNAME
 +HAVE_GETGROUPS
 +HAVE_GETDTABLESIZE
 +HAVE_FTRUNCATE
 +HAVE_FSYNC
 +HAVE_FCHOWNAT
 +HAVE_FCHDIR
 +HAVE_FACCESSAT
 +HAVE_EUIDACCESS
 +HAVE_DUP3
 +HAVE_DUP2
 +HAVE_CHOWN
 +GNULIB_WRITE
 +GNULIB_USLEEP
 +GNULIB_UNLINKAT
 +GNULIB_UNLINK
 +GNULIB_UNISTD_H_SIGPIPE
 +GNULIB_UNISTD_H_GETOPT
 +GNULIB_TTYNAME_R
 +GNULIB_SYMLINKAT
 +GNULIB_SYMLINK
 +GNULIB_SLEEP
 +GNULIB_RMDIR
 +GNULIB_READLINKAT
 +GNULIB_READLINK
 +GNULIB_PWRITE
 +GNULIB_PREAD
 +GNULIB_PIPE2
 +GNULIB_PIPE
 +GNULIB_LSEEK
 +GNULIB_LINKAT
 +GNULIB_LINK
 +GNULIB_LCHOWN
 +GNULIB_GETUSERSHELL
 +GNULIB_GETPAGESIZE
 +GNULIB_GETLOGIN_R
 +GNULIB_GETLOGIN
 +GNULIB_GETHOSTNAME
 +GNULIB_GETGROUPS
 +GNULIB_GETDTABLESIZE
 +GNULIB_GETDOMAINNAME
 +GNULIB_GETCWD
 +GNULIB_FTRUNCATE
 +GNULIB_FSYNC
 +GNULIB_FCHOWNAT
 +GNULIB_FCHDIR
 +GNULIB_FACCESSAT
 +GNULIB_EUIDACCESS
 +GNULIB_ENVIRON
 +GNULIB_DUP3
 +GNULIB_DUP2
 +GNULIB_CLOSE
 +GNULIB_CHOWN
 +GL_COND_LIBTOOL_FALSE
 +GL_COND_LIBTOOL_TRUE
  GETLOADAVG_LIBS
  KMEM_GROUP
  NEED_SETGID
  LIBOBJS
 +BLESSMAIL_TARGET
 +LIBS_MAIL
  liblockfile
  ALLOCA
 +LIBXML2_LIBS
 +LIBXML2_CFLAGS
 +LIBXSM
 +LIBGPM
 +LIBGIF
 +LIBTIFF
 +LIBPNG
 +LIBJPEG
 +LIBXPM
  FREETYPE_LIBS
  FREETYPE_CFLAGS
  M17N_FLT_LIBS
@@@ -842,66 -644,34 +842,66 @@@ XFT_LIB
  XFT_CFLAGS
  FONTCONFIG_LIBS
  FONTCONFIG_CFLAGS
 +LIBXMU
 +LIBXTR6
 +LIBGNUTLS_LIBS
 +LIBGNUTLS_CFLAGS
 +LIBSELINUX_LIBS
  GCONF_LIBS
  GCONF_CFLAGS
 +DBUS_OBJ
  DBUS_LIBS
  DBUS_CFLAGS
 +GTK_OBJ
  GTK_LIBS
  GTK_CFLAGS
 +IMAGEMAGICK_LIBS
 +IMAGEMAGICK_CFLAGS
  RSVG_LIBS
  RSVG_CFLAGS
 +VMLIMIT_OBJ
 +GMALLOC_OBJ
  HAVE_XSERVER
 +LIB_STANDARD
 +NS_SUPPORT
 +NS_OBJ
 +TEMACS_LDFLAGS2
 +LD_SWITCH_X_SITE_AUX_RPATH
 +LD_SWITCH_X_SITE_AUX
  XMKMF
 -SET_MAKE
 +DEPFLAGS
 +MKDEPDIR
  CFLAGS_SOUND
  ALSA_LIBS
  ALSA_CFLAGS
  PKG_CONFIG
  LIBSOUND
 +START_FILES
 +LIB_MATH
  CRT_DIR
 -MAKEINFO
 +LIBS_SYSTEM
 +C_SWITCH_SYSTEM
 +UNEXEC_OBJ
 +C_SWITCH_MACHINE
 +LD_SWITCH_SYSTEM
 +CANNOT_DUMP
 +HAVE_MAKEINFO
  GZIP_PROG
  INSTALL_INFO
 -RANLIB
 -INSTALL_DATA
 -INSTALL_SCRIPT
 -INSTALL_PROGRAM
 -LN_S
 +C_WARNINGS_SWITCH
  EGREP
  GREP
  CPP
 +RANLIB
 +am__fastdepCC_FALSE
 +am__fastdepCC_TRUE
 +CCDEPMODE
 +AMDEPBACKSLASH
 +AMDEP_FALSE
 +AMDEP_TRUE
 +am__quote
 +am__include
 +DEPDIR
  OBJEXT
  EXEEXT
  ac_ct_CC
@@@ -917,32 -687,7 +917,32 @@@ build_o
  build_vendor
  build_cpu
  build
 +PROFILING_CFLAGS
  MAINT
 +GZIP_INFO
 +am__untar
 +am__tar
 +AMTAR
 +am__leading_dot
 +SET_MAKE
 +AWK
 +mkdir_p
 +MKDIR_P
 +INSTALL_STRIP_PROGRAM
 +STRIP
 +install_sh
 +MAKEINFO
 +AUTOHEADER
 +AUTOMAKE
 +AUTOCONF
 +ACLOCAL
 +VERSION
 +PACKAGE
 +CYGPATH_W
 +am__isrc
 +INSTALL_DATA
 +INSTALL_SCRIPT
 +INSTALL_PROGRAM
  target_alias
  host_alias
  build_alias
@@@ -981,17 -726,13 +981,17 @@@ PACKAGE_TARNAM
  PACKAGE_NAME
  PATH_SEPARATOR
  SHELL'
 -ac_subst_files=''
 +ac_subst_files='deps_frag
 +ns_frag'
  ac_user_opts='
  enable_option_checking
  with_pop
  with_kerberos
  with_kerberos5
  with_hesiod
 +with_mmdf
 +with_mail_unlink
 +with_mailhost
  with_sound
  with_sync_input
  with_x_toolkit
@@@ -1001,8 -742,6 +1001,8 @@@ with_tif
  with_gif
  with_png
  with_rsvg
 +with_xml2
 +with_imagemagick
  with_xft
  with_libotf
  with_m17n_flt
@@@ -1013,23 -752,19 +1013,23 @@@ with_n
  with_gpm
  with_dbus
  with_gconf
 +with_selinux
 +with_gnutls
  with_makeinfo
 -with_gtk
 -with_gcc
 +with_compress_info
  with_pkg_config_prog
  with_crt_dir
 +with_gameuser
  with_gnustep_conf
  enable_ns_self_contained
  enable_asserts
  enable_maintainer_mode
  enable_locallisppath
  enable_checking
 +enable_use_lisp_union_type
  enable_profiling
  enable_autodepend
 +enable_dependency_tracking
  enable_largefile
  with_x
  '
@@@ -1042,9 -777,6 +1042,9 @@@ LDFLAG
  LIBS
  CPPFLAGS
  CPP
 +CPPFLAGS
 +CPP
 +CPPFLAGS
  XMKMF'
  
  
@@@ -1450,7 -1182,7 +1450,7 @@@ Try \`$0 --help' for more information
      $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
      expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
        $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
 -    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
 +    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
      ;;
  
    esac
@@@ -1588,7 -1320,7 +1588,7 @@@ if test "$ac_init_help" = "long"; the
    # Omit some internal or obsolete options to make the list less imposing.
    # This message is too long to be a string in the A/UX 3.1 sh.
    cat <<_ACEOF
 -\`configure' configures emacs 23.2.92 to adapt to many kinds of systems.
 +\`configure' configures emacs 24.0.50 to adapt to many kinds of systems.
  
  Usage: $0 [OPTION]... [VAR=VALUE]...
  
  
  if test -n "$ac_init_help"; then
    case $ac_init_help in
 -     short | recursive ) echo "Configuration of emacs 23.2.92:";;
 +     short | recursive ) echo "Configuration of emacs 24.0.50:";;
     esac
    cat <<\_ACEOF
  
@@@ -1684,17 -1416,11 +1684,17 @@@ Optional Features
                            only specific categories of checks. Categories are:
                            all,yes,no. Flags are: stringbytes, stringoverrun,
                            stringfreelist, xmallocoverrun, conslist
 +  --enable-use-lisp-union-type
 +                          use a union for the Lisp_Object data type. This is
 +                          only useful for development for catching certain
 +                          types of bugs.
    --enable-profiling      build emacs with profiling support. This might not
                            work on all platforms
    --enable-autodepend     automatically generate dependencies to .h-files.
                            Requires GNU Make and Gcc. Enabled if GNU Make and
                            Gcc is found
 +  --disable-dependency-tracking  speeds up one-time build
 +  --enable-dependency-tracking   do not reject slow dependency extractors
    --disable-largefile     omit support for large files
  
  Optional Packages:
    --with-kerberos         support Kerberos-authenticated POP
    --with-kerberos5        support Kerberos version 5 authenticated POP
    --with-hesiod           support Hesiod to get the POP server host
 +  --with-mmdf             support MMDF mailboxes
 +  --with-mail-unlink      unlink, rather than empty, mail spool after reading
 +  --with-mailhost=HOSTNAME
 +                          string giving default POP mail host
    --without-sound         don't compile with sound support
    --without-sync-input    process async input synchronously
 -  --with-x-toolkit=KIT    use an X toolkit (KIT one of: yes, lucid, athena,
 -                          motif, gtk, no)
 +  --with-x-toolkit=KIT    use an X toolkit (KIT one of: yes or gtk, gtk3,
 +                          lucid or athena, motif, no)
    --without-xpm           don't compile with XPM image support
    --without-jpeg          don't compile with JPEG image support
    --without-tiff          don't compile with TIFF image support
    --without-gif           don't compile with GIF image support
    --without-png           don't compile with PNG image support
    --without-rsvg          don't compile with SVG image support
 +  --without-xml2          don't compile with XML parsing support
 +  --without-imagemagick   don't compile with ImageMagick image support
    --without-xft           don't use XFT for anti aliased fonts
    --without-libotf        don't use libotf for OpenType font support
    --without-m17n-flt      don't use m17n-flt for text shaping
                            console
    --without-dbus          don't compile with D-Bus support
    --without-gconf         don't compile with GConf support
 +  --without-selinux       don't compile with SELinux support
 +  --without-gnutls        don't use -lgnutls for SSL/TLS support
    --without-makeinfo      don't require makeinfo for building manuals
 -
 +  --without-compress-info don't compress the installed Info pages
    --with-pkg-config-prog=PATH
                            path to pkg-config for finding GTK and librsvg
 -  --with-crt-dir=DIR      directory containing crtn.o etc. This option is only
 -                          used on x86-64 and s390x GNU/Linux architectures.
 +  --with-crt-dir=DIR      directory containing crtn.o etc. The default is
 +                          /usr/lib, or /usr/lib64 on some platforms.
 +  --with-gameuser=USER    user for shared game score files
    --with-gnustep-conf=PATH
                            path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE,
                            or /etc/GNUstep/GNUstep.conf
  test -n "$ac_init_help" && exit $ac_status
  if $ac_init_version; then
    cat <<\_ACEOF
 -emacs configure 23.2.92
 -generated by GNU Autoconf 2.67
 +emacs configure 24.0.50
 +generated by GNU Autoconf 2.68
  
  Copyright (C) 2010 Free Software Foundation, Inc.
  This configure script is free software; the Free Software Foundation
@@@ -1870,11 -1587,57 +1870,11 @@@ sed 's/^/| /' conftest.$ac_ext >&
  
        ac_retval=1
  fi
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
  } # ac_fn_c_try_compile
  
 -# ac_fn_c_try_link LINENO
 -# -----------------------
 -# Try to link conftest.$ac_ext, and return whether this succeeded.
 -ac_fn_c_try_link ()
 -{
 -  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -  rm -f conftest.$ac_objext conftest$ac_exeext
 -  if { { ac_try="$ac_link"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_link") 2>conftest.err
 -  ac_status=$?
 -  if test -s conftest.err; then
 -    grep -v '^ *+' conftest.err >conftest.er1
 -    cat conftest.er1 >&5
 -    mv -f conftest.er1 conftest.err
 -  fi
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; } && {
 -       test -z "$ac_c_werror_flag" ||
 -       test ! -s conftest.err
 -       } && test -s conftest$ac_exeext && {
 -       test "$cross_compiling" = yes ||
 -       $as_test_x conftest$ac_exeext
 -       }; then :
 -  ac_retval=0
 -else
 -  $as_echo "$as_me: failed program was:" >&5
 -sed 's/^/| /' conftest.$ac_ext >&5
 -
 -      ac_retval=1
 -fi
 -  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
 -  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
 -  # interfere with the next link command; also delete a directory that is
 -  # left behind by Apple's compiler.  We do this before executing the actions.
 -  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 -  as_fn_set_status $ac_retval
 -
 -} # ac_fn_c_try_link
 -
  # ac_fn_c_try_cpp LINENO
  # ----------------------
  # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
@@@ -1907,7 -1670,7 +1907,7 @@@ sed 's/^/| /' conftest.$ac_ext >&
  
      ac_retval=1
  fi
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
  } # ac_fn_c_try_cpp
  ac_fn_c_check_header_mongrel ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -  if eval "test \"\${$3+set}\"" = set; then :
 +  if eval \${$3+:} false; then :
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  fi
  eval ac_res=\$$3
@@@ -1986,7 -1749,7 +1986,7 @@@ $as_echo "$as_me: WARNING: $2: proceedi
  esac
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    eval "$3=\$ac_header_compiler"
@@@ -1995,7 -1758,7 +1995,7 @@@ eval ac_res=\$$
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
  fi
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_header_mongrel
  
@@@ -2036,7 -1799,7 +2036,7 @@@ sed 's/^/| /' conftest.$ac_ext >&
         ac_retval=$ac_status
  fi
    rm -rf conftest.dSYM conftest_ipa8_conftest.oo
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
    as_fn_set_status $ac_retval
  
  } # ac_fn_c_try_run
@@@ -2050,7 -1813,7 +2050,7 @@@ ac_fn_c_check_header_compile (
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_header_compile
  
 -# ac_fn_c_check_header_preproc LINENO HEADER VAR
 -# ----------------------------------------------
 -# Tests whether HEADER is present, setting the cache variable VAR accordingly.
 -ac_fn_c_check_header_preproc ()
 +# ac_fn_c_try_link LINENO
 +# -----------------------
 +# Try to link conftest.$ac_ext, and return whether this succeeded.
 +ac_fn_c_try_link ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 -$as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <$2>
 -_ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  eval "$3=yes"
 +  rm -f conftest.$ac_objext conftest$ac_exeext
 +  if { { ac_try="$ac_link"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_link") 2>conftest.err
 +  ac_status=$?
 +  if test -s conftest.err; then
 +    grep -v '^ *+' conftest.err >conftest.er1
 +    cat conftest.er1 >&5
 +    mv -f conftest.er1 conftest.err
 +  fi
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; } && {
 +       test -z "$ac_c_werror_flag" ||
 +       test ! -s conftest.err
 +       } && test -s conftest$ac_exeext && {
 +       test "$cross_compiling" = yes ||
 +       $as_test_x conftest$ac_exeext
 +       }; then :
 +  ac_retval=0
  else
 -  eval "$3=no"
 -fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 +  $as_echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
 +
 +      ac_retval=1
  fi
 -eval ac_res=\$$3
 -             { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 -$as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
 +  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
 +  # interfere with the next link command; also delete a directory that is
 +  # left behind by Apple's compiler.  We do this before executing the actions.
 +  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 +  as_fn_set_status $ac_retval
  
 -} # ac_fn_c_check_header_preproc
 +} # ac_fn_c_try_link
  
  # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
  # ---------------------------------------------
@@@ -2129,7 -1875,7 +2129,7 @@@ ac_fn_c_check_decl (
    as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
  $as_echo_n "checking whether $as_decl_name is declared... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_decl
  
 +# ac_fn_c_check_header_preproc LINENO HEADER VAR
 +# ----------------------------------------------
 +# Tests whether HEADER is present, setting the cache variable VAR accordingly.
 +ac_fn_c_check_header_preproc ()
 +{
 +  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 +$as_echo_n "checking for $2... " >&6; }
 +if eval \${$3+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <$2>
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  eval "$3=yes"
 +else
 +  eval "$3=no"
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +fi
 +eval ac_res=\$$3
 +             { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 +$as_echo "$ac_res" >&6; }
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 +
 +} # ac_fn_c_check_header_preproc
 +
  # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
  # ----------------------------------------------------
  # Tries to find if the field MEMBER exists in type AGGR, after including
@@@ -2202,7 -1919,7 +2202,7 @@@ ac_fn_c_check_member (
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
  $as_echo_n "checking for $2.$3... " >&6; }
 -if eval "test \"\${$4+set}\"" = set; then :
 +if eval \${$4+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  eval ac_res=\$$4
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_member
  
@@@ -2258,7 -1975,7 +2258,7 @@@ ac_fn_c_check_func (
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_func
  
@@@ -2326,7 -2043,7 +2326,7 @@@ ac_fn_c_check_type (
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if eval "test \"\${$3+set}\"" = set; then :
 +if eval \${$3+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    eval "$3=no"
  eval ac_res=\$$3
               { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
  $as_echo "$ac_res" >&6; }
 -  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 +  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
  
  } # ac_fn_c_check_type
  cat >config.log <<_ACEOF
  This file contains any messages produced by compilers while
  running configure, to aid debugging if configure makes a mistake.
  
 -It was created by emacs $as_me 23.2.92, which was
 -generated by GNU Autoconf 2.67.  Invocation command line was
 +It was created by emacs $as_me 24.0.50, which was
 +generated by GNU Autoconf 2.68.  Invocation command line was
  
    $ $0 $@
  
  as_fn_append ac_header_list " stdlib.h"
  as_fn_append ac_header_list " unistd.h"
  as_fn_append ac_header_list " sys/param.h"
 -as_fn_append ac_header_list " sys/time.h"
 +gl_getopt_required=GNU
 +as_fn_append ac_header_list " getopt.h"
  as_fn_append ac_func_list " alarm"
 +as_fn_append ac_func_list " tzset"
 +as_fn_append ac_header_list " sys/time.h"
 +as_fn_append ac_func_list " localtime_r"
  # Check that the precious variables saved in the cache have kept the same
  # value.
  ac_cache_corrupted=false
@@@ -2734,3498 -2447,1196 +2734,3498 @@@ ac_compiler_gnu=$ac_cv_c_compiler_gn
  ac_config_headers="$ac_config_headers src/config.h:src/config.in"
  
  
 +am__api_version='1.11'
  
 -test "$program_prefix" != NONE &&
 -  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 -# Use a double $ so make ignores it.
 -test "$program_suffix" != NONE &&
 -  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 -# Double any \ or $.
 -# By default was `s,x,x', remove it if useless.
 -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 -
 -
 -lispdir='${datadir}/emacs/${version}/lisp'
 -locallisppath='${datadir}/emacs/${version}/site-lisp:'\
 -'${datadir}/emacs/site-lisp'
 -lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
 -etcdir='${datadir}/emacs/${version}/etc'
 -archlibdir='${libexecdir}/emacs/${version}/${configuration}'
 -docdir='${datadir}/emacs/${version}/etc'
 -gamedir='${localstatedir}/games/emacs'
 -
 -gameuser=games
 -
 -
 -
 -
 -# Check whether --with-pop was given.
 -if test "${with_pop+set}" = set; then :
 -  withval=$with_pop;
 -else
 -     with_pop=yes
 -fi
 -
 -if test "$with_pop" = yes; then
 -   $as_echo "#define MAIL_USE_POP 1" >>confdefs.h
 -
 -fi
 -
 -
 -# Check whether --with-kerberos was given.
 -if test "${with_kerberos+set}" = set; then :
 -  withval=$with_kerberos;
 -else
 -      with_kerberos=no
 -fi
 -
 -if test "$with_kerberos" != no; then
 -   $as_echo "#define KERBEROS 1" >>confdefs.h
 -
 -fi
 -
 -
 -# Check whether --with-kerberos5 was given.
 -if test "${with_kerberos5+set}" = set; then :
 -  withval=$with_kerberos5;
 -else
 -      with_kerberos5=no
 -fi
 -
 -if test "${with_kerberos5}" != no; then
 -  if test "${with_kerberos}" = no; then
 -    with_kerberos=yes
 -    $as_echo "#define KERBEROS 1" >>confdefs.h
 -
 +ac_aux_dir=
 +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
 +  if test -f "$ac_dir/install-sh"; then
 +    ac_aux_dir=$ac_dir
 +    ac_install_sh="$ac_aux_dir/install-sh -c"
 +    break
 +  elif test -f "$ac_dir/install.sh"; then
 +    ac_aux_dir=$ac_dir
 +    ac_install_sh="$ac_aux_dir/install.sh -c"
 +    break
 +  elif test -f "$ac_dir/shtool"; then
 +    ac_aux_dir=$ac_dir
 +    ac_install_sh="$ac_aux_dir/shtool install -c"
 +    break
    fi
 -
 -$as_echo "#define KERBEROS5 1" >>confdefs.h
 -
 -fi
 -
 -
 -# Check whether --with-hesiod was given.
 -if test "${with_hesiod+set}" = set; then :
 -  withval=$with_hesiod;
 -else
 -      with_hesiod=no
 +done
 +if test -z "$ac_aux_dir"; then
 +  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
  fi
  
 -if test "$with_hesiod" != no; then
 -
 -$as_echo "#define HESIOD 1" >>confdefs.h
 -
 -fi
 +# These three variables are undocumented and unsupported,
 +# and are intended to be withdrawn in a future Autoconf release.
 +# They can cause serious problems if a builder's source tree is in a directory
 +# whose full name contains unusual characters.
 +ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
 +ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 +ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
  
  
 -# Check whether --with-sound was given.
 -if test "${with_sound+set}" = set; then :
 -  withval=$with_sound;
 +# Find a good install program.  We prefer a C program (faster),
 +# so one script is as good as another.  But avoid the broken or
 +# incompatible versions:
 +# SysV /etc/install, /usr/sbin/install
 +# SunOS /usr/etc/install
 +# IRIX /sbin/install
 +# AIX /bin/install
 +# AmigaOS /C/install, which installs bootblocks on floppy discs
 +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 +# AFS /usr/afsws/bin/install, which mishandles nonexistent args
 +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 +# OS/2's system install, which has a completely different semantic
 +# ./install, which can be erroneously created by make from ./install.sh.
 +# Reject install programs that cannot install multiple files.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 +$as_echo_n "checking for a BSD-compatible install... " >&6; }
 +if test -z "$INSTALL"; then
 +if ${ac_cv_path_install+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -     with_sound=yes
 -fi
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    # Account for people who put trailing slashes in PATH elements.
 +case $as_dir/ in #((
 +  ./ | .// | /[cC]/* | \
 +  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
 +  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
 +  /usr/ucb/* ) ;;
 +  *)
 +    # OSF1 and SCO ODT 3.0 have their own names for install.
 +    # Don't use installbsd from OSF since it installs stuff as root
 +    # by default.
 +    for ac_prog in ginstall scoinst install; do
 +      for ac_exec_ext in '' $ac_executable_extensions; do
 +      if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 +        if test $ac_prog = install &&
 +          grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 +          # AIX install.  It has an incompatible calling convention.
 +          :
 +        elif test $ac_prog = install &&
 +          grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 +          # program-specific install script used by HP pwplus--don't use.
 +          :
 +        else
 +          rm -rf conftest.one conftest.two conftest.dir
 +          echo one > conftest.one
 +          echo two > conftest.two
 +          mkdir conftest.dir
 +          if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
 +            test -s conftest.one && test -s conftest.two &&
 +            test -s conftest.dir/conftest.one &&
 +            test -s conftest.dir/conftest.two
 +          then
 +            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
 +            break 3
 +          fi
 +        fi
 +      fi
 +      done
 +    done
 +    ;;
 +esac
  
 +  done
 +IFS=$as_save_IFS
  
 +rm -rf conftest.one conftest.two conftest.dir
  
 -# Check whether --with-sync-input was given.
 -if test "${with_sync_input+set}" = set; then :
 -  withval=$with_sync_input;
 -else
 -     with_sync_input=yes
  fi
 -
 -if test "$with_sync_input" = yes; then
 -
 -$as_echo "#define SYNC_INPUT 1" >>confdefs.h
 -
 +  if test "${ac_cv_path_install+set}" = set; then
 +    INSTALL=$ac_cv_path_install
 +  else
 +    # As a last resort, use the slow shell script.  Don't cache a
 +    # value for INSTALL within a source directory, because that will
 +    # break other packages using the cache if that directory is
 +    # removed, or if the value is a relative name.
 +    INSTALL=$ac_install_sh
 +  fi
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 +$as_echo "$INSTALL" >&6; }
  
 +# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 +# It thinks the first close brace ends the variable substitution.
 +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
  
 -# Check whether --with-x-toolkit was given.
 -if test "${with_x_toolkit+set}" = set; then :
 -  withval=$with_x_toolkit;      case "${withval}" in
 -          y | ye | yes )      val=gtk ;;
 -          n | no )            val=no  ;;
 -          l | lu | luc | luci | lucid )       val=lucid ;;
 -          a | at | ath | athe | athen | athena )      val=athena ;;
 -          m | mo | mot | moti | motif )       val=motif ;;
 -          g | gt | gtk  )     val=gtk ;;
 -          * )
 -as_fn_error $? "\`--with-x-toolkit=$withval' is invalid;
 -this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif' or \`gtk'.
 -\`yes' and \`gtk' are synonyms. \`athena' and \`lucid' are synonyms." "$LINENO" 5
 -          ;;
 -        esac
 -        with_x_toolkit=$val
 +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
  
 -fi
 +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
  
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 +$as_echo_n "checking whether build environment is sane... " >&6; }
 +# Just in case
 +sleep 1
 +echo timestamp > conftest.file
 +# Reject unsafe characters in $srcdir or the absolute working directory
 +# name.  Accept space and tab only in the latter.
 +am_lf='
 +'
 +case `pwd` in
 +  *[\\\"\#\$\&\'\`$am_lf]*)
 +    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
 +esac
 +case $srcdir in
 +  *[\\\"\#\$\&\'\`$am_lf\ \   ]*)
 +    as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
 +esac
  
 +# Do `set' in a subshell so we don't clobber the current shell's
 +# arguments.  Must try -L first in case configure is actually a
 +# symlink; some systems play weird games with the mod time of symlinks
 +# (eg FreeBSD returns the mod time of the symlink's containing
 +# directory).
 +if (
 +   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
 +   if test "$*" = "X"; then
 +      # -L didn't work.
 +      set X `ls -t "$srcdir/configure" conftest.file`
 +   fi
 +   rm -f conftest.file
 +   if test "$*" != "X $srcdir/configure conftest.file" \
 +      && test "$*" != "X conftest.file $srcdir/configure"; then
 +
 +      # If neither matched, then we have a broken ls.  This can happen
 +      # if, for instance, CONFIG_SHELL is bash and it inherits a
 +      # broken ls alias from the environment.  This has actually
 +      # happened.  Such a system could not be considered "sane".
 +      as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
 +alias in your environment" "$LINENO" 5
 +   fi
  
 -# Check whether --with-xpm was given.
 -if test "${with_xpm+set}" = set; then :
 -  withval=$with_xpm;
 +   test "$2" = conftest.file
 +   )
 +then
 +   # Ok.
 +   :
  else
 -     with_xpm=yes
 +   as_fn_error $? "newly created file is older than distributed files!
 +Check your system clock" "$LINENO" 5
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +test "$program_prefix" != NONE &&
 +  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 +# Use a double $ so make ignores it.
 +test "$program_suffix" != NONE &&
 +  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 +# Double any \ or $.
 +# By default was `s,x,x', remove it if useless.
 +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
  
 +# expand $ac_aux_dir to an absolute path
 +am_aux_dir=`cd $ac_aux_dir && pwd`
  
 -# Check whether --with-jpeg was given.
 -if test "${with_jpeg+set}" = set; then :
 -  withval=$with_jpeg;
 +if test x"${MISSING+set}" != xset; then
 +  case $am_aux_dir in
 +  *\ * | *\   *)
 +    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
 +  *)
 +    MISSING="\${SHELL} $am_aux_dir/missing" ;;
 +  esac
 +fi
 +# Use eval to expand $SHELL
 +if eval "$MISSING --run true"; then
 +  am_missing_run="$MISSING --run "
  else
 -     with_jpeg=yes
 +  am_missing_run=
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
  fi
  
 -
 -# Check whether --with-tiff was given.
 -if test "${with_tiff+set}" = set; then :
 -  withval=$with_tiff;
 -else
 -     with_tiff=yes
 +if test x"${install_sh}" != xset; then
 +  case $am_aux_dir in
 +  *\ * | *\   *)
 +    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
 +  *)
 +    install_sh="\${SHELL} $am_aux_dir/install-sh"
 +  esac
  fi
  
 +# Installed binaries are usually stripped using `strip' when the user
 +# run `make install-strip'.  However `strip' might not be the right
 +# tool to use in cross-compilation environments, therefore Automake
 +# will honor the `STRIP' environment variable to overrule this program.
 +if test "$cross_compiling" != no; then
 +  if test -n "$ac_tool_prefix"; then
 +  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}strip; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_STRIP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$STRIP"; then
 +  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 -# Check whether --with-gif was given.
 -if test "${with_gif+set}" = set; then :
 -  withval=$with_gif;
 +fi
 +fi
 +STRIP=$ac_cv_prog_STRIP
 +if test -n "$STRIP"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 +$as_echo "$STRIP" >&6; }
  else
 -     with_gif=yes
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
  
 -# Check whether --with-png was given.
 -if test "${with_png+set}" = set; then :
 -  withval=$with_png;
 -else
 -     with_png=yes
  fi
 +if test -z "$ac_cv_prog_STRIP"; then
 +  ac_ct_STRIP=$STRIP
 +  # Extract the first word of "strip", so it can be a program name with args.
 +set dummy strip; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$ac_ct_STRIP"; then
 +  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_ac_ct_STRIP="strip"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 -
 -# Check whether --with-rsvg was given.
 -if test "${with_rsvg+set}" = set; then :
 -  withval=$with_rsvg;
 +fi
 +fi
 +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 +if test -n "$ac_ct_STRIP"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 +$as_echo "$ac_ct_STRIP" >&6; }
  else
 -     with_rsvg=yes
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
 -
 -
 -# Check whether --with-xft was given.
 -if test "${with_xft+set}" = set; then :
 -  withval=$with_xft;
 +  if test "x$ac_ct_STRIP" = x; then
 +    STRIP=":"
 +  else
 +    case $cross_compiling:$ac_tool_warned in
 +yes:)
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 +ac_tool_warned=yes ;;
 +esac
 +    STRIP=$ac_ct_STRIP
 +  fi
  else
 -     with_xft=yes
 +  STRIP="$ac_cv_prog_STRIP"
  fi
  
 +fi
 +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
  
 -# Check whether --with-libotf was given.
 -if test "${with_libotf+set}" = set; then :
 -  withval=$with_libotf;
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 +if test -z "$MKDIR_P"; then
 +  if ${ac_cv_path_mkdir+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -     with_libotf=yes
 -fi
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_prog in mkdir gmkdir; do
 +       for ac_exec_ext in '' $ac_executable_extensions; do
 +         { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
 +         case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
 +           'mkdir (GNU coreutils) '* | \
 +           'mkdir (coreutils) '* | \
 +           'mkdir (fileutils) '4.1*)
 +             ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
 +             break 3;;
 +         esac
 +       done
 +       done
 +  done
 +IFS=$as_save_IFS
  
 +fi
  
 -# Check whether --with-m17n-flt was given.
 -if test "${with_m17n_flt+set}" = set; then :
 -  withval=$with_m17n_flt;
 -else
 -     with_m17n_flt=yes
 +  test -d ./--version && rmdir ./--version
 +  if test "${ac_cv_path_mkdir+set}" = set; then
 +    MKDIR_P="$ac_cv_path_mkdir -p"
 +  else
 +    # As a last resort, use the slow shell script.  Don't cache a
 +    # value for MKDIR_P within a source directory, because that will
 +    # break other packages using the cache if that directory is
 +    # removed, or if the value is a relative name.
 +    MKDIR_P="$ac_install_sh -d"
 +  fi
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 +$as_echo "$MKDIR_P" >&6; }
  
  
 +mkdir_p="$MKDIR_P"
 +case $mkdir_p in
 +  [\\/$]* | ?:[\\/]*) ;;
 +  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
 +esac
  
 -# Check whether --with-toolkit-scroll-bars was given.
 -if test "${with_toolkit_scroll_bars+set}" = set; then :
 -  withval=$with_toolkit_scroll_bars;
 +for ac_prog in gawk mawk nawk awk
 +do
 +  # Extract the first word of "$ac_prog", so it can be a program name with args.
 +set dummy $ac_prog; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_AWK+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -     with_toolkit_scroll_bars=yes
 +  if test -n "$AWK"; then
 +  ac_cv_prog_AWK="$AWK" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_AWK="$ac_prog"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +AWK=$ac_cv_prog_AWK
 +if test -n "$AWK"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 +$as_echo "$AWK" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
  
 -# Check whether --with-xaw3d was given.
 -if test "${with_xaw3d+set}" = set; then :
 -  withval=$with_xaw3d;
 +  test -n "$AWK" && break
 +done
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 +set x ${MAKE-make}
 +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -     with_xaw3d=yes
 +  cat >conftest.make <<\_ACEOF
 +SHELL = /bin/sh
 +all:
 +      @echo '@@@%%%=$(MAKE)=@@@%%%'
 +_ACEOF
 +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 +case `${MAKE-make} -f conftest.make 2>/dev/null` in
 +  *@@@%%%=?*=@@@%%%*)
 +    eval ac_cv_prog_make_${ac_make}_set=yes;;
 +  *)
 +    eval ac_cv_prog_make_${ac_make}_set=no;;
 +esac
 +rm -f conftest.make
 +fi
 +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +  SET_MAKE=
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +  SET_MAKE="MAKE=${MAKE-make}"
  fi
  
 -
 -# Check whether --with-xim was given.
 -if test "${with_xim+set}" = set; then :
 -  withval=$with_xim;
 +rm -rf .tst 2>/dev/null
 +mkdir .tst 2>/dev/null
 +if test -d .tst; then
 +  am__leading_dot=.
  else
 -     with_xim=yes
 +  am__leading_dot=_
  fi
 +rmdir .tst 2>/dev/null
  
 +if test "`cd $srcdir && pwd`" != "`pwd`"; then
 +  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
 +  # is not polluted with repeated "-I."
 +  am__isrc=' -I$(srcdir)'
 +  # test to see if srcdir already configured
 +  if test -f $srcdir/config.status; then
 +    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
 +  fi
 +fi
  
 -# Check whether --with-ns was given.
 -if test "${with_ns+set}" = set; then :
 -  withval=$with_ns;
 -else
 -      with_ns=no
 +# test whether we have cygpath
 +if test -z "$CYGPATH_W"; then
 +  if (cygpath --version) >/dev/null 2>/dev/null; then
 +    CYGPATH_W='cygpath -w'
 +  else
 +    CYGPATH_W=echo
 +  fi
  fi
  
  
 +# Define the identity of the package.
 + PACKAGE='emacs'
 + VERSION='24.0.50'
  
 -# Check whether --with-gpm was given.
 -if test "${with_gpm+set}" = set; then :
 -  withval=$with_gpm;
 -else
 -     with_gpm=yes
 -fi
  
 +cat >>confdefs.h <<_ACEOF
 +#define PACKAGE "$PACKAGE"
 +_ACEOF
  
 -# Check whether --with-dbus was given.
 -if test "${with_dbus+set}" = set; then :
 -  withval=$with_dbus;
 -else
 -     with_dbus=yes
 -fi
  
 +cat >>confdefs.h <<_ACEOF
 +#define VERSION "$VERSION"
 +_ACEOF
  
 -# Check whether --with-gconf was given.
 -if test "${with_gconf+set}" = set; then :
 -  withval=$with_gconf;
 -else
 -     with_gconf=yes
 -fi
 +# Some tools Automake needs.
  
 +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
  
 -## For the times when you want to build Emacs but don't have
 -## a suitable makeinfo, and can live without the manuals.
  
 -# Check whether --with-makeinfo was given.
 -if test "${with_makeinfo+set}" = set; then :
 -  withval=$with_makeinfo;
 -else
 -     with_makeinfo=yes
 -fi
 +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
  
  
 +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
  
 -# Check whether --with-gtk was given.
 -if test "${with_gtk+set}" = set; then :
 -  withval=$with_gtk; as_fn_error $? "--with-gtk has been removed.  Use --with-x-toolkit to
 -specify a toolkit." "$LINENO" 5
 -fi
  
 +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
  
  
 -# Check whether --with-gcc was given.
 -if test "${with_gcc+set}" = set; then :
 -  withval=$with_gcc; as_fn_error $? "--with-gcc has been removed.  Set the \`CC' environment
 -variable to specify a compiler." "$LINENO" 5
 -fi
 +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
  
 +# We need awk for the "check" target.  The system "awk" is bad on
 +# some platforms.
 +# Always define AMTAR for backward compatibility.
  
 +AMTAR=${AMTAR-"${am_missing_run}tar"}
  
 -# Check whether --with-pkg-config-prog was given.
 -if test "${with_pkg_config_prog+set}" = set; then :
 -  withval=$with_pkg_config_prog;
 -fi
 +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
  
 -if test "X${with_pkg_config_prog}" != X; then
 -   if test "${with_pkg_config_prog}" != yes; then
 -      PKG_CONFIG="${with_pkg_config_prog}"
 -   fi
 -fi
  
 -CRT_DIR=
  
 -# Check whether --with-crt-dir was given.
 -if test "${with_crt_dir+set}" = set; then :
 -  withval=$with_crt_dir;
 -fi
  
 -CRT_DIR="${with_crt_dir}"
  
  
 -# Check whether --with-gnustep-conf was given.
 -if test "${with_gnustep_conf+set}" = set; then :
 -  withval=$with_gnustep_conf;
 -fi
  
 -test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
 -  GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
 -test "X$GNUSTEP_CONFIG_FILE" = "X" && \
 -     GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
  
 -# Check whether --enable-ns-self-contained was given.
 -if test "${enable_ns_self_contained+set}" = set; then :
 -  enableval=$enable_ns_self_contained; EN_NS_SELF_CONTAINED=$enableval
 -else
 -  EN_NS_SELF_CONTAINED=yes
 -fi
 +lispdir='${datadir}/emacs/${version}/lisp'
 +locallisppath='${datadir}/emacs/${version}/site-lisp:'\
 +'${datadir}/emacs/site-lisp'
 +lisppath='${locallisppath}:${lispdir}:${datadir}/emacs/${version}/leim'
 +etcdir='${datadir}/emacs/${version}/etc'
 +archlibdir='${libexecdir}/emacs/${version}/${configuration}'
 +docdir='${datadir}/emacs/${version}/etc'
 +gamedir='${localstatedir}/games/emacs'
  
  
 -# Check whether --enable-asserts was given.
 -if test "${enable_asserts+set}" = set; then :
 -  enableval=$enable_asserts; USE_XASSERTS=$enableval
 +
 +
 +# Check whether --with-pop was given.
 +if test "${with_pop+set}" = set; then :
 +  withval=$with_pop;
  else
 -  USE_XASSERTS=no
 +     with_pop=yes
  fi
  
 +if test "$with_pop" = yes; then
 +   $as_echo "#define MAIL_USE_POP 1" >>confdefs.h
  
 -# Check whether --enable-maintainer-mode was given.
 -if test "${enable_maintainer_mode+set}" = set; then :
 -  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 -else
 -  USE_MAINTAINER_MODE=no
  fi
  
 -if test $USE_MAINTAINER_MODE = yes; then
 -  MAINT=
 +
 +# Check whether --with-kerberos was given.
 +if test "${with_kerberos+set}" = set; then :
 +  withval=$with_kerberos;
  else
 -  MAINT=#
 +      with_kerberos=no
  fi
  
 +if test "$with_kerberos" != no; then
 +   $as_echo "#define KERBEROS 1" >>confdefs.h
  
 -# Check whether --enable-locallisppath was given.
 -if test "${enable_locallisppath+set}" = set; then :
 -  enableval=$enable_locallisppath; if test "${enableval}" = "no"; then
 -  locallisppath=
 -elif test "${enableval}" != "yes"; then
 -  locallisppath=${enableval}
 -fi
  fi
  
  
 -# Check whether --enable-checking was given.
 -if test "${enable_checking+set}" = set; then :
 -  enableval=$enable_checking; ac_checking_flags="${enableval}"
 +# Check whether --with-kerberos5 was given.
 +if test "${with_kerberos5+set}" = set; then :
 +  withval=$with_kerberos5;
 +else
 +      with_kerberos5=no
  fi
  
 -IFS="${IFS=   }"; ac_save_IFS="$IFS"; IFS="$IFS,"
 -for check in $ac_checking_flags
 -do
 -      case $check in
 -      # these set all the flags to specific states
 -      yes)            ac_enable_checking=1 ;;
 -      no)             ac_enable_checking= ;
 -                      ac_gc_check_stringbytes= ;
 -                      ac_gc_check_string_overrun= ;
 -                      ac_gc_check_string_free_list= ;
 -                      ac_xmalloc_overrun= ;
 -                      ac_gc_check_cons_list= ;;
 -      all)            ac_enable_checking=1 ;
 -                      ac_gc_check_stringbytes=1 ;
 -                      ac_gc_check_string_overrun=1 ;
 -                      ac_gc_check_string_free_list=1 ;
 -                      ac_xmalloc_overrun=1 ;
 -                      ac_gc_check_cons_list=1 ;;
 -      # these enable particular checks
 -      stringbytes)    ac_gc_check_stringbytes=1 ;;
 -      stringoverrun)  ac_gc_check_string_overrun=1 ;;
 -      stringfreelist) ac_gc_check_string_free_list=1 ;;
 -      xmallocoverrun) ac_xmalloc_overrun=1 ;;
 -      conslist)       ac_gc_check_cons_list=1 ;;
 -      *)      as_fn_error $? "unknown check category $check" "$LINENO" 5 ;;
 -      esac
 -done
 -IFS="$ac_save_IFS"
 +if test "${with_kerberos5}" != no; then
 +  if test "${with_kerberos}" = no; then
 +    with_kerberos=yes
 +    $as_echo "#define KERBEROS 1" >>confdefs.h
  
 -if test x$ac_enable_checking != x ; then
 +  fi
  
 -$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
 +$as_echo "#define KERBEROS5 1" >>confdefs.h
  
  fi
 -if test x$ac_gc_check_stringbytes != x ; then
  
 -$as_echo "#define GC_CHECK_STRING_BYTES 1" >>confdefs.h
  
 +# Check whether --with-hesiod was given.
 +if test "${with_hesiod+set}" = set; then :
 +  withval=$with_hesiod;
 +else
 +      with_hesiod=no
  fi
 -if test x$ac_gc_check_stringoverrun != x ; then
  
 -$as_echo "#define GC_CHECK_STRING_OVERRUN 1" >>confdefs.h
 +if test "$with_hesiod" != no; then
 +
 +$as_echo "#define HESIOD 1" >>confdefs.h
  
  fi
 -if test x$ac_gc_check_string_free_list != x ; then
  
 -$as_echo "#define GC_CHECK_STRING_FREE_LIST 1" >>confdefs.h
  
 +# Check whether --with-mmdf was given.
 +if test "${with_mmdf+set}" = set; then :
 +  withval=$with_mmdf;
 +else
 +      with_mmdf=no
  fi
 -if test x$ac_xmalloc_overrun != x ; then
  
 -$as_echo "#define XMALLOC_OVERRUN_CHECK 1" >>confdefs.h
 +if test "$with_mmdf" != no; then
 +
 +$as_echo "#define MAIL_USE_MMDF 1" >>confdefs.h
  
  fi
 -if test x$ac_gc_check_cons_list != x ; then
  
 -$as_echo "#define GC_CHECK_CONS_LIST 1" >>confdefs.h
  
 +# Check whether --with-mail-unlink was given.
 +if test "${with_mail_unlink+set}" = set; then :
 +  withval=$with_mail_unlink;
 +else
 +      with_mail_unlink=no
  fi
  
 -# Check whether --enable-profiling was given.
 -if test "${enable_profiling+set}" = set; then :
 -  enableval=$enable_profiling; ac_enable_profiling="${enableval}"
 -fi
 +if test "$with_mail_unlink" != no; then
 +
 +$as_echo "#define MAIL_UNLINK_SPOOL 1" >>confdefs.h
  
 -if test x$ac_enable_profiling != x ; then
 -   PROFILING_CFLAGS="-DPROFILING=1 -pg"
 -   PROFILING_LDFLAGS="-pg"
 -else
 -   PROFILING_CFLAGS=
 -   PROFILING_LDFLAGS=
  fi
  
 -# Check whether --enable-autodepend was given.
 -if test "${enable_autodepend+set}" = set; then :
 -  enableval=$enable_autodepend; ac_enable_autodepend="${enableval}"
 -else
 -  ac_enable_autodepend=yes
 +
 +# Check whether --with-mailhost was given.
 +if test "${with_mailhost+set}" = set; then :
 +  withval=$with_mailhost;
 +cat >>confdefs.h <<_ACEOF
 +#define MAILHOST "$withval"
 +_ACEOF
 +
  fi
  
  
 -#### Make srcdir absolute, if it isn't already.  It's important to
 -#### avoid running the path through pwd unnecessarily, since pwd can
 -#### give you automounter prefixes, which can go away.  We do all this
 -#### so Emacs can find its files when run uninstalled.
 -## Make sure CDPATH doesn't affect cd (in case PWD is relative).
 -unset CDPATH
 -case "${srcdir}" in
 -  /* ) ;;
 -  . )
 -    ## We may be able to use the $PWD environment variable to make this
 -    ## absolute.  But sometimes PWD is inaccurate.
 -    ## Note: we used to use ${PWD} at the end instead of `pwd`,
 -    ## but that tested only for a well-formed and valid PWD,
 -    ## it did not object when PWD was well-formed and valid but just wrong.
 -    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
 -    then
 -      srcdir="$PWD"
 -    else
 -      srcdir="`(cd ${srcdir}; pwd)`"
 -    fi
 -  ;;
 -  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
 -esac
  
 -#### Check if the source directory already has a configured system in it.
 -if test `pwd` != `(cd ${srcdir} && pwd)` \
 -   && test -f "${srcdir}/src/config.h" ; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The directory tree \`${srcdir}' is being used
 -   as a build directory right now; it has been configured in its own
 -   right.  To configure in another directory as well, you MUST
 -   use GNU make.  If you do not have GNU make, then you must
 -   now do \`make distclean' in ${srcdir},
 -   and then run $0 again." >&5
 -$as_echo "$as_me: WARNING: The directory tree \`${srcdir}' is being used
 -   as a build directory right now; it has been configured in its own
 -   right.  To configure in another directory as well, you MUST
 -   use GNU make.  If you do not have GNU make, then you must
 -   now do \`make distclean' in ${srcdir},
 -   and then run $0 again." >&2;}
 +# Check whether --with-sound was given.
 +if test "${with_sound+set}" = set; then :
 +  withval=$with_sound;
 +else
 +     with_sound=yes
  fi
  
 -#### Given the configuration name, set machfile and opsysfile to the
 -#### names of the m/*.h and s/*.h files we should use.
  
 -### Canonicalize the configuration name.
  
 -ac_aux_dir=
 -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
 -  if test -f "$ac_dir/install-sh"; then
 -    ac_aux_dir=$ac_dir
 -    ac_install_sh="$ac_aux_dir/install-sh -c"
 -    break
 -  elif test -f "$ac_dir/install.sh"; then
 -    ac_aux_dir=$ac_dir
 -    ac_install_sh="$ac_aux_dir/install.sh -c"
 -    break
 -  elif test -f "$ac_dir/shtool"; then
 -    ac_aux_dir=$ac_dir
 -    ac_install_sh="$ac_aux_dir/shtool install -c"
 -    break
 -  fi
 -done
 -if test -z "$ac_aux_dir"; then
 -  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 +# Check whether --with-sync-input was given.
 +if test "${with_sync_input+set}" = set; then :
 +  withval=$with_sync_input;
 +else
 +     with_sync_input=yes
  fi
  
 -# These three variables are undocumented and unsupported,
 -# and are intended to be withdrawn in a future Autoconf release.
 -# They can cause serious problems if a builder's source tree is in a directory
 -# whose full name contains unusual characters.
 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
 -ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 +if test "$with_sync_input" = yes; then
  
 +$as_echo "#define SYNC_INPUT 1" >>confdefs.h
  
 -# Make sure we can run config.sub.
 -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 -  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 +fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 -$as_echo_n "checking build system type... " >&6; }
 -if test "${ac_cv_build+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_build_alias=$build_alias
 -test "x$ac_build_alias" = x &&
 -  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 -test "x$ac_build_alias" = x &&
 -  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
 -  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 +
 +# Check whether --with-x-toolkit was given.
 +if test "${with_x_toolkit+set}" = set; then :
 +  withval=$with_x_toolkit;      case "${withval}" in
 +          y | ye | yes )      val=gtk ;;
 +          n | no )            val=no  ;;
 +          l | lu | luc | luci | lucid )       val=lucid ;;
 +          a | at | ath | athe | athen | athena )      val=athena ;;
 +          m | mo | mot | moti | motif )       val=motif ;;
 +          g | gt | gtk  )     val=gtk ;;
 +          gtk3  )     val=gtk3 ;;
 +          * )
 +as_fn_error $? "\`--with-x-toolkit=$withval' is invalid;
 +this option's value should be \`yes', \`no', \`lucid', \`athena', \`motif', \`gtk' or
 +\`gtk3'.  \`yes' and \`gtk' are synonyms. \`athena' and \`lucid' are synonyms." "$LINENO" 5
 +          ;;
 +        esac
 +        with_x_toolkit=$val
  
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 -$as_echo "$ac_cv_build" >&6; }
 -case $ac_cv_build in
 -*-*-*) ;;
 -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 -esac
 -build=$ac_cv_build
 -ac_save_IFS=$IFS; IFS='-'
 -set x $ac_cv_build
 -shift
 -build_cpu=$1
 -build_vendor=$2
 -shift; shift
 -# Remember, the first character of IFS is used to create $*,
 -# except with old shells:
 -build_os=$*
 -IFS=$ac_save_IFS
 -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 -$as_echo_n "checking host system type... " >&6; }
 -if test "${ac_cv_host+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 +
 +# Check whether --with-xpm was given.
 +if test "${with_xpm+set}" = set; then :
 +  withval=$with_xpm;
  else
 -  if test "x$host_alias" = x; then
 -  ac_cv_host=$ac_cv_build
 +     with_xpm=yes
 +fi
 +
 +
 +# Check whether --with-jpeg was given.
 +if test "${with_jpeg+set}" = set; then :
 +  withval=$with_jpeg;
  else
 -  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
 -    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 +     with_jpeg=yes
  fi
  
 +
 +# Check whether --with-tiff was given.
 +if test "${with_tiff+set}" = set; then :
 +  withval=$with_tiff;
 +else
 +     with_tiff=yes
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 -$as_echo "$ac_cv_host" >&6; }
 -case $ac_cv_host in
 -*-*-*) ;;
 -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 -esac
 -host=$ac_cv_host
 -ac_save_IFS=$IFS; IFS='-'
 -set x $ac_cv_host
 -shift
 -host_cpu=$1
 -host_vendor=$2
 -shift; shift
 -# Remember, the first character of IFS is used to create $*,
 -# except with old shells:
 -host_os=$*
 -IFS=$ac_save_IFS
 -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
  
  
 -canonical=$host
 -configuration=${host_alias-${build_alias-$host}}
 +# Check whether --with-gif was given.
 +if test "${with_gif+set}" = set; then :
 +  withval=$with_gif;
 +else
 +     with_gif=yes
 +fi
  
  
 +# Check whether --with-png was given.
 +if test "${with_png+set}" = set; then :
 +  withval=$with_png;
 +else
 +     with_png=yes
 +fi
  
 -### If you add support for a new configuration, add code to this
 -### switch statement to recognize your configuration name and select
 -### the appropriate operating system and machine description files.
  
 -### You would hope that you could choose an m/*.h file pretty much
 -### based on the machine portion of the configuration name, and an s-
 -### file based on the operating system portion.  However, it turns out
 -### that each m/*.h file is pretty manufacturer-specific - for
 -### example mips.h is MIPS
 -### So we basically have to have a special case for each
 -### configuration name.
 -###
 -### As far as handling version numbers on operating systems is
 -### concerned, make sure things will fail in a fixable way.  If
 -### /etc/MACHINES doesn't say anything about version numbers, be
 -### prepared to handle anything reasonably.  If version numbers
 -### matter, be sure /etc/MACHINES says something about it.
 -###
 -### Eric Raymond says we should accept strings like "sysvr4" to mean
 -### "System V Release 4"; he writes, "The old convention encouraged
 -### confusion between `system' and `release' levels'."
 +# Check whether --with-rsvg was given.
 +if test "${with_rsvg+set}" = set; then :
 +  withval=$with_rsvg;
 +else
 +     with_rsvg=yes
 +fi
  
 -machine='' opsys='' unported=no
 -case "${canonical}" in
  
 -  ## FreeBSD ports
 -  *-*-freebsd* )
 -    opsys=freebsd
 -    case "${canonical}" in
 -      alpha*-*-freebsd*)      machine=alpha ;;
 -      arm*-*-freebsd*)          machine=arm ;;
 -      ia64-*-freebsd*)                machine=ia64 ;;
 -      sparc-*-freebsd*)         machine=sparc ;;
 -      sparc64-*-freebsd*)     machine=sparc ;;
 -      powerpc-*-freebsd*)     machine=macppc ;;
 -      i[3456]86-*-freebsd*)   machine=intel386 ;;
 -      amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
 -    esac
 -  ;;
 +# Check whether --with-xml2 was given.
 +if test "${with_xml2+set}" = set; then :
 +  withval=$with_xml2;
 +else
 +     with_xml2=yes
 +fi
  
 -  ## FreeBSD kernel + glibc based userland
 -  *-*-kfreebsd*gnu* )
 -    opsys=gnu-kfreebsd
 -    case "${canonical}" in
 -      alpha*-*-kfreebsd*)     machine=alpha ;;
 -      ia64-*-kfreebsd*)               machine=ia64 ;;
 -      sparc-*-kfreebsd*)      machine=sparc ;;
 -      sparc64-*-kfreebsd*)    machine=sparc ;;
 -      powerpc-*-kfreebsd*)    machine=macppc ;;
 -      i[3456]86-*-kfreebsd*)  machine=intel386 ;;
 -      amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
 -    esac
 -  ;;
  
 -  ## NetBSD ports
 -  *-*-netbsd* )
 -    opsys=netbsd
 -    if test -f /usr/lib/crti.o; then
 +# Check whether --with-imagemagick was given.
 +if test "${with_imagemagick+set}" = set; then :
 +  withval=$with_imagemagick;
 +else
 +     with_imagemagick=yes
 +fi
  
 -$as_echo "#define HAVE_CRTIN /**/" >>confdefs.h
  
 -   fi
  
 -    case "${canonical}" in
 -      alpha*-*-netbsd*)       machine=alpha ;;
 -      i[3456]86-*-netbsd*) machine=intel386 ;;
 -      mips-*-netbsd*) machine=mips ;;
 -      mipsel-*-netbsd*)       machine=mips ;;
 -      mipseb-*-netbsd*)       machine=mips ;;
 -      powerpc-*-netbsd*) machine=macppc ;;
 -      sparc*-*-netbsd*)       machine=sparc ;;
 -      vax-*-netbsd*)  machine=vax ;;
 -      arm-*-netbsd*)  machine=arm ;;
 -      x86_64-*-netbsd*)       machine=amdx86-64 ;;
 -      hppa-*-netbsd*) machine=hp800 ;;
 -      m68k-*-netbsd*) machine=m68k ;;
 -    esac
 -  ;;
 +# Check whether --with-xft was given.
 +if test "${with_xft+set}" = set; then :
 +  withval=$with_xft;
 +else
 +     with_xft=yes
 +fi
  
 -  ## OpenBSD ports
 -  *-*-openbsd* )
 -    opsys=openbsd
 -    case "${canonical}" in
 -      alpha*-*-openbsd*)      machine=alpha ;;
 -      arm-*-openbsd*)          machine=arm ;;
 -      i386-*-openbsd*)         machine=intel386 ;;
 -      powerpc-*-openbsd*)      machine=macppc ;;
 -      sparc*-*-openbsd*)       machine=sparc ;;
 -      vax-*-openbsd*)          machine=vax ;;
 -      x86_64-*-openbsd*)       machine=amdx86-64 ;;
 -      hppa-*-openbsd*)         machine=hp800 ;;
 -    esac
 -  ;;
  
 -  ## LynxOS ports
 -  *-*-lynxos* )
 -    opsys=lynxos
 -    case "${canonical}" in
 -      i[3456]86-*-lynxos*) machine=intel386 ;;
 -      powerpc-*-lynxos*) machine=powerpc ;;
 -    esac
 -  ;;
 +# Check whether --with-libotf was given.
 +if test "${with_libotf+set}" = set; then :
 +  withval=$with_libotf;
 +else
 +     with_libotf=yes
 +fi
  
 -  alpha*-*-linux-gnu* )
 -    machine=alpha opsys=gnu-linux
 -  ;;
  
 -  arm*-*-linux-gnu* )
 -    machine=arm opsys=gnu-linux
 -  ;;
 +# Check whether --with-m17n-flt was given.
 +if test "${with_m17n_flt+set}" = set; then :
 +  withval=$with_m17n_flt;
 +else
 +     with_m17n_flt=yes
 +fi
  
 -  ## Apple Darwin / Mac OS X
 -  *-apple-darwin* )
 -    case "${canonical}" in
 -      i[3456]86-* )  machine=intel386 ;;
 -      powerpc-* )    machine=macppc ;;
 -      x86_64-* )     machine=amdx86-64 ;;
 -      * )            unported=yes ;;
 -    esac
 -    opsys=darwin
 -    # Define CPP as follows to make autoconf work correctly.
 -    CPP="${CC-cc} -E -no-cpp-precomp"
 -    # Use fink packages if available.
 -    if test -d /sw/include && test -d /sw/lib; then
 -      GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
 -      CPP="${CPP} ${GCC_TEST_OPTIONS}"
 -      NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
 -    fi
 -  ;;
  
 -  ## HP 9000 series 700 and 800, running HP/UX
 -  hppa*-hp-hpux10.2* )
 -    machine=hp800 opsys=hpux10-20
 -  ;;
 -  hppa*-hp-hpux1[1-9]* )
 -    machine=hp800 opsys=hpux11
 -    CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
 -  ;;
  
 -  ia64*-hp-hpux1[1-9]* )
 -    machine=hp800 opsys=hpux11
 -  ;;
 +# Check whether --with-toolkit-scroll-bars was given.
 +if test "${with_toolkit_scroll_bars+set}" = set; then :
 +  withval=$with_toolkit_scroll_bars;
 +else
 +     with_toolkit_scroll_bars=yes
 +fi
  
 -  hppa*-*-linux-gnu* )
 -    machine=hp800 opsys=gnu-linux
 -  ;;
  
 -  ## IBM machines
 -  s390-*-linux-gnu* )
 -    machine=ibms390 opsys=gnu-linux
 -  ;;
 -  s390x-*-linux-gnu* )
 -    machine=ibms390x opsys=gnu-linux
 -  ;;
 -  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
 -    machine=ibmrs6000 opsys=aix4-2
 -  ;;
 -  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
 -    machine=ibmrs6000 opsys=aix4-2
 -  ;;
 -  rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
 -    machine=ibmrs6000 opsys=aix4-2
 -  ;;
 -  rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
 -    machine=ibmrs6000 opsys=aix4-2
 -  ;;
 +# Check whether --with-xaw3d was given.
 +if test "${with_xaw3d+set}" = set; then :
 +  withval=$with_xaw3d;
 +else
 +     with_xaw3d=yes
 +fi
  
 -  ## Macintosh PowerPC
 -  powerpc*-*-linux-gnu* )
 -    machine=macppc opsys=gnu-linux
 -  ;;
  
 -  ## Silicon Graphics machines
 -  ## Iris 4D
 -  mips-sgi-irix6.5 )
 -    machine=iris4d opsys=irix6-5
 -    # Without defining _LANGUAGE_C, things get masked out in the headers
 -    # so that, for instance, grepping for `free' in stdlib.h fails and
 -    # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
 -    NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
 -    NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
 -  ;;
 +# Check whether --with-xim was given.
 +if test "${with_xim+set}" = set; then :
 +  withval=$with_xim;
 +else
 +     with_xim=yes
 +fi
  
 -  ## Suns
 -  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
 -    machine=sparc opsys=gnu-linux
 -  ;;
  
 -  *-sun-solaris* \
 -    | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
 -    | x86_64-*-solaris2*    | x86_64-*-sunos5*    \
 -    | powerpc*-*-solaris2*  | rs6000-*-solaris2*)
 -    case "${canonical}" in
 -      i[3456]86-*-* )     machine=intel386 ;;
 -      amd64-*-*|x86_64-*-*)   machine=amdx86-64 ;;
 -      powerpc* | rs6000* )  machine=ibmrs6000 ;;
 -      sparc* )                machine=sparc ;;
 -      * )             unported=yes ;;
 -    esac
 -    case "${canonical}" in
 -      *-sunos5.3* | *-solaris2.3* )
 -              opsys=sol2-3
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              ;;
 -      *-sunos5.4* | *-solaris2.4* )
 -              opsys=sol2-4
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              RANLIB="ar -ts"
 -              ;;
 -      *-sunos5.5* | *-solaris2.5* )
 -              opsys=sol2-5
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              RANLIB="ar -ts"
 -              ;;
 -      *-sunos5.6* | *-solaris2.6* )
 -              opsys=sol2-6
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              RANLIB="ar -ts"
 -              ;;
 -      *-sunos5.[7-9]* | *-solaris2.[7-9]* )
 -              opsys=sol2-6
 -              emacs_check_sunpro_c=yes
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              ;;
 -      *-sunos5* | *-solaris* )
 -              opsys=sol2-10
 -              emacs_check_sunpro_c=yes
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              ;;
 -    esac
 -    ## Watch out for a compiler that we know will not work.
 -    case "${canonical}" in
 -     *-solaris* | *-sunos5* )
 -              if [ "x$CC" = x/usr/ucb/cc ]; then
 -                ## /usr/ucb/cc doesn't work;
 -                ## we should find some other compiler that does work.
 -                unset CC
 -              fi
 -              ;;
 -      *) ;;
 -    esac
 -  ;;
 +# Check whether --with-ns was given.
 +if test "${with_ns+set}" = set; then :
 +  withval=$with_ns;
 +else
 +      with_ns=no
 +fi
  
 -  ## IA-64
 -  ia64*-*-linux* )
 -    machine=ia64 opsys=gnu-linux
 -  ;;
  
 -  ## Intel 386 machines where we don't care about the manufacturer
 -  i[3456]86-*-* )
 -    machine=intel386
 -    case "${canonical}" in
 -      *-cygwin )                opsys=cygwin ;;
 -      *-darwin* )               opsys=darwin
 -                                CPP="${CC-cc} -E -no-cpp-precomp"
 -                              ;;
 -      *-linux-gnu* )          opsys=gnu-linux ;;
 -      *-sysv4.2uw* )          opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 -      *-sysv5uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 -      *-sysv5OpenUNIX* )      opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 -      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
 -    esac
 -  ;;
  
 -  ## m68k Linux-based GNU system
 -  m68k-*-linux-gnu* )
 -    machine=m68k opsys=gnu-linux
 -  ;;
 +# Check whether --with-gpm was given.
 +if test "${with_gpm+set}" = set; then :
 +  withval=$with_gpm;
 +else
 +     with_gpm=yes
 +fi
  
 -  ## Mips Linux-based GNU system
 -  mips-*-linux-gnu* | mipsel-*-linux-gnu* \
 -    | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
 -    machine=mips opsys=gnu-linux
 -  ;;
  
 -  ## AMD x86-64 Linux-based GNU system
 -  x86_64-*-linux-gnu* )
 -    machine=amdx86-64 opsys=gnu-linux
 -  ;;
 +# Check whether --with-dbus was given.
 +if test "${with_dbus+set}" = set; then :
 +  withval=$with_dbus;
 +else
 +     with_dbus=yes
 +fi
  
 -  ## Tensilica Xtensa Linux-based GNU system
 -  xtensa*-*-linux-gnu* )
 -    machine=xtensa opsys=gnu-linux
 -    ;;
  
 -  ## SuperH Linux-based GNU system
 -  sh[34]*-*-linux-gnu* )
 -    machine=sh3 opsys=gnu-linux
 -  ;;
 +# Check whether --with-gconf was given.
 +if test "${with_gconf+set}" = set; then :
 +  withval=$with_gconf;
 +else
 +     with_gconf=yes
 +fi
  
 -  * )
 -    unported=yes
 -  ;;
 -esac
  
 -### If the code above didn't choose an operating system, just choose
 -### an operating system based on the configuration name.  You really
 -### only want to use this when you have no idea what the right
 -### operating system is; if you know what operating systems a machine
 -### runs, it's cleaner to make it explicit in the case statement
 -### above.
 -if test x"${opsys}" = x; then
 -  case "${canonical}" in
 -    *-gnu* )                          opsys=gnu ;;
 -    *-sysv4.2uw* )                    opsys=unixware ;;
 -    *-sysv5uw* )                      opsys=unixware ;;
 -    *-sysv5OpenUNIX* )                        opsys=unixware ;;
 -    *-sysv4.1* | *-sysvr4.1* )
 -      NON_GNU_CPP=/usr/lib/cpp
 -      opsys=usg5-4 ;;
 -    *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
 -      if [ x$NON_GNU_CPP = x ]; then
 -        if [ -f /usr/ccs/lib/cpp ]; then
 -          NON_GNU_CPP=/usr/ccs/lib/cpp
 -        else
 -          NON_GNU_CPP=/lib/cpp
 -        fi
 -      fi
 -      opsys=usg5-4-2 ;;
 -    *-sysv4* | *-sysvr4* )            opsys=usg5-4 ;;
 -    * )
 -      unported=yes
 -    ;;
 -  esac
 +# Check whether --with-selinux was given.
 +if test "${with_selinux+set}" = set; then :
 +  withval=$with_selinux;
 +else
 +     with_selinux=yes
  fi
  
  
 -
 -if test $unported = yes; then
 -  as_fn_error $? "Emacs hasn't been ported to \`${canonical}' systems.
 -Check \`etc/MACHINES' for recognized configuration names." "$LINENO" 5
 +# Check whether --with-gnutls was given.
 +if test "${with_gnutls+set}" = set; then :
 +  withval=$with_gnutls;
 +else
 +     with_gnutls=yes
  fi
  
 -machfile="m/${machine}.h"
 -opsysfile="s/${opsys}.h"
  
 +## For the times when you want to build Emacs but don't have
 +## a suitable makeinfo, and can live without the manuals.
  
 -#### Choose a compiler.
 -test -n "$CC" && cc_specified=yes
 +# Check whether --with-makeinfo was given.
 +if test "${with_makeinfo+set}" = set; then :
 +  withval=$with_makeinfo;
 +else
 +     with_makeinfo=yes
 +fi
  
 -# Save the value of CFLAGS that the user specified.
 -SPECIFIED_CFLAGS="$CFLAGS"
  
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 -if test -n "$ac_tool_prefix"; then
 -  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_CC+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 +## This is an option because I do not know if all info/man support
 +## compressed files, nor how to test if they do so.
 +
 +# Check whether --with-compress-info was given.
 +if test "${with_compress_info+set}" = set; then :
 +  withval=$with_compress_info;
  else
 -  if test -n "$CC"; then
 -  ac_cv_prog_CC="$CC" # Let the user override the test.
 +     with_compress_info=yes
 +fi
 +
 +if test $with_compress_info = yes; then
 +   GZIP_INFO=yes
  else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_CC="${ac_tool_prefix}gcc"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +   GZIP_INFO=
 +fi
 +
  
 +
 +# Check whether --with-pkg-config-prog was given.
 +if test "${with_pkg_config_prog+set}" = set; then :
 +  withval=$with_pkg_config_prog;
  fi
 +
 +if test "X${with_pkg_config_prog}" != X; then
 +   if test "${with_pkg_config_prog}" != yes; then
 +      PKG_CONFIG="${with_pkg_config_prog}"
 +   fi
  fi
 -CC=$ac_cv_prog_CC
 -if test -n "$CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 -$as_echo "$CC" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +
 +CRT_DIR=
 +
 +# Check whether --with-crt-dir was given.
 +if test "${with_crt_dir+set}" = set; then :
 +  withval=$with_crt_dir;
  fi
  
 +CRT_DIR="${with_crt_dir}"
 +
  
 +# Check whether --with-gameuser was given.
 +if test "${with_gameuser+set}" = set; then :
 +  withval=$with_gameuser;
  fi
 -if test -z "$ac_cv_prog_CC"; then
 -  ac_ct_CC=$CC
 -  # Extract the first word of "gcc", so it can be a program name with args.
 -set dummy gcc; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$ac_ct_CC"; then
 -  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_ac_ct_CC="gcc"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
  
 +test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
 +  && gameuser="${with_gameuser}"
 +test "X$gameuser" = X && gameuser=games
 +
 +
 +# Check whether --with-gnustep-conf was given.
 +if test "${with_gnustep_conf+set}" = set; then :
 +  withval=$with_gnustep_conf;
  fi
 -fi
 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
 -if test -n "$ac_ct_CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 -$as_echo "$ac_ct_CC" >&6; }
 +
 +test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
 +  GNUSTEP_CONFIG_FILE="${with_gnustep_conf}"
 +test "X$GNUSTEP_CONFIG_FILE" = "X" && \
 +     GNUSTEP_CONFIG_FILE=/etc/GNUstep/GNUstep.conf
 +
 +# Check whether --enable-ns-self-contained was given.
 +if test "${enable_ns_self_contained+set}" = set; then :
 +  enableval=$enable_ns_self_contained; EN_NS_SELF_CONTAINED=$enableval
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  EN_NS_SELF_CONTAINED=yes
  fi
  
 -  if test "x$ac_ct_CC" = x; then
 -    CC=""
 -  else
 -    case $cross_compiling:$ac_tool_warned in
 -yes:)
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 -ac_tool_warned=yes ;;
 -esac
 -    CC=$ac_ct_CC
 -  fi
 +
 +# Check whether --enable-asserts was given.
 +if test "${enable_asserts+set}" = set; then :
 +  enableval=$enable_asserts; USE_XASSERTS=$enableval
  else
 -  CC="$ac_cv_prog_CC"
 +  USE_XASSERTS=no
  fi
  
 -if test -z "$CC"; then
 -          if test -n "$ac_tool_prefix"; then
 -    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 -set dummy ${ac_tool_prefix}cc; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_CC+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$CC"; then
 -  ac_cv_prog_CC="$CC" # Let the user override the test.
 +
 +# Check whether --enable-maintainer-mode was given.
 +if test "${enable_maintainer_mode+set}" = set; then :
 +  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
  else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_CC="${ac_tool_prefix}cc"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  USE_MAINTAINER_MODE=no
 +fi
  
 +if test $USE_MAINTAINER_MODE = yes; then
 +  MAINT=
 +else
 +  MAINT=#
  fi
 +
 +
 +# Check whether --enable-locallisppath was given.
 +if test "${enable_locallisppath+set}" = set; then :
 +  enableval=$enable_locallisppath; if test "${enableval}" = "no"; then
 +  locallisppath=
 +elif test "${enableval}" != "yes"; then
 +  locallisppath=${enableval}
  fi
 -CC=$ac_cv_prog_CC
 -if test -n "$CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 -$as_echo "$CC" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
  fi
  
  
 -  fi
 +# Check whether --enable-checking was given.
 +if test "${enable_checking+set}" = set; then :
 +  enableval=$enable_checking; ac_checking_flags="${enableval}"
  fi
 -if test -z "$CC"; then
 -  # Extract the first word of "cc", so it can be a program name with args.
 -set dummy cc; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_CC+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$CC"; then
 -  ac_cv_prog_CC="$CC" # Let the user override the test.
 -else
 -  ac_prog_rejected=no
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 +
 +IFS="${IFS=   }"; ac_save_IFS="$IFS"; IFS="$IFS,"
 +for check in $ac_checking_flags
  do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 -       ac_prog_rejected=yes
 -       continue
 -     fi
 -    ac_cv_prog_CC="cc"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 +      case $check in
 +      # these set all the flags to specific states
 +      yes)            ac_enable_checking=1 ;;
 +      no)             ac_enable_checking= ;
 +                      ac_gc_check_stringbytes= ;
 +                      ac_gc_check_string_overrun= ;
 +                      ac_gc_check_string_free_list= ;
 +                      ac_xmalloc_overrun= ;
 +                      ac_gc_check_cons_list= ;;
 +      all)            ac_enable_checking=1 ;
 +                      ac_gc_check_stringbytes=1 ;
 +                      ac_gc_check_string_overrun=1 ;
 +                      ac_gc_check_string_free_list=1 ;
 +                      ac_xmalloc_overrun=1 ;
 +                      ac_gc_check_cons_list=1 ;;
 +      # these enable particular checks
 +      stringbytes)    ac_gc_check_stringbytes=1 ;;
 +      stringoverrun)  ac_gc_check_string_overrun=1 ;;
 +      stringfreelist) ac_gc_check_string_free_list=1 ;;
 +      xmallocoverrun) ac_xmalloc_overrun=1 ;;
 +      conslist)       ac_gc_check_cons_list=1 ;;
 +      *)      as_fn_error $? "unknown check category $check" "$LINENO" 5 ;;
 +      esac
  done
 -  done
 -IFS=$as_save_IFS
 +IFS="$ac_save_IFS"
 +
 +if test x$ac_enable_checking != x ; then
 +
 +$as_echo "#define ENABLE_CHECKING 1" >>confdefs.h
  
 -if test $ac_prog_rejected = yes; then
 -  # We found a bogon in the path, so make sure we never use it.
 -  set dummy $ac_cv_prog_CC
 -  shift
 -  if test $# != 0; then
 -    # We chose a different compiler from the bogus one.
 -    # However, it has the same basename, so the bogon will be chosen
 -    # first if we set CC to just the basename; use the full file name.
 -    shift
 -    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
 -  fi
  fi
 +if test x$ac_gc_check_stringbytes != x ; then
 +
 +$as_echo "#define GC_CHECK_STRING_BYTES 1" >>confdefs.h
 +
  fi
 +if test x$ac_gc_check_stringoverrun != x ; then
 +
 +$as_echo "#define GC_CHECK_STRING_OVERRUN 1" >>confdefs.h
 +
  fi
 -CC=$ac_cv_prog_CC
 -if test -n "$CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 -$as_echo "$CC" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +if test x$ac_gc_check_string_free_list != x ; then
 +
 +$as_echo "#define GC_CHECK_STRING_FREE_LIST 1" >>confdefs.h
 +
  fi
 +if test x$ac_xmalloc_overrun != x ; then
  
 +$as_echo "#define XMALLOC_OVERRUN_CHECK 1" >>confdefs.h
  
  fi
 -if test -z "$CC"; then
 -  if test -n "$ac_tool_prefix"; then
 -  for ac_prog in cl.exe
 -  do
 -    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 -set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_CC+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$CC"; then
 -  ac_cv_prog_CC="$CC" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +if test x$ac_gc_check_cons_list != x ; then
 +
 +$as_echo "#define GC_CHECK_CONS_LIST 1" >>confdefs.h
  
  fi
 +
 +# Check whether --enable-use-lisp-union-type was given.
 +if test "${enable_use_lisp_union_type+set}" = set; then :
 +  enableval=$enable_use_lisp_union_type; if test "${enableval}" != "no"; then
 +
 +$as_echo "#define USE_LISP_UNION_TYPE 1" >>confdefs.h
 +
  fi
 -CC=$ac_cv_prog_CC
 -if test -n "$CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 -$as_echo "$CC" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
  fi
  
  
 -    test -n "$CC" && break
 -  done
 +
 +# Check whether --enable-profiling was given.
 +if test "${enable_profiling+set}" = set; then :
 +  enableval=$enable_profiling; ac_enable_profiling="${enableval}"
  fi
 -if test -z "$CC"; then
 -  ac_ct_CC=$CC
 -  for ac_prog in cl.exe
 +
 +if test x$ac_enable_profiling != x ; then
 +   PROFILING_CFLAGS="-DPROFILING=1 -pg"
 +else
 +   PROFILING_CFLAGS=
 +fi
 +
 +
 +# Check whether --enable-autodepend was given.
 +if test "${enable_autodepend+set}" = set; then :
 +  enableval=$enable_autodepend; ac_enable_autodepend="${enableval}"
 +else
 +  ac_enable_autodepend=yes
 +fi
 +
 +
 +#### Make srcdir absolute, if it isn't already.  It's important to
 +#### avoid running the path through pwd unnecessarily, since pwd can
 +#### give you automounter prefixes, which can go away.  We do all this
 +#### so Emacs can find its files when run uninstalled.
 +## Make sure CDPATH doesn't affect cd (in case PWD is relative).
 +unset CDPATH
 +case "${srcdir}" in
 +  /* ) ;;
 +  . )
 +    ## We may be able to use the $PWD environment variable to make this
 +    ## absolute.  But sometimes PWD is inaccurate.
 +    ## Note: we used to use ${PWD} at the end instead of `pwd`,
 +    ## but that tested only for a well-formed and valid PWD,
 +    ## it did not object when PWD was well-formed and valid but just wrong.
 +    if test ".${PWD}" != "." && test ".`(cd ${PWD} ; sh -c pwd)`" = ".`pwd`"  ;
 +    then
 +      srcdir="$PWD"
 +    else
 +      srcdir="`(cd ${srcdir}; pwd)`"
 +    fi
 +  ;;
 +  *  ) srcdir="`(cd ${srcdir}; pwd)`" ;;
 +esac
 +
 +#### Check if the source directory already has a configured system in it.
 +if test `pwd` != `(cd ${srcdir} && pwd)` \
 +   && test -f "${srcdir}/src/config.h" ; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The directory tree \`${srcdir}' is being used
 +   as a build directory right now; it has been configured in its own
 +   right.  To configure in another directory as well, you MUST
 +   use GNU make.  If you do not have GNU make, then you must
 +   now do \`make distclean' in ${srcdir},
 +   and then run $0 again." >&5
 +$as_echo "$as_me: WARNING: The directory tree \`${srcdir}' is being used
 +   as a build directory right now; it has been configured in its own
 +   right.  To configure in another directory as well, you MUST
 +   use GNU make.  If you do not have GNU make, then you must
 +   now do \`make distclean' in ${srcdir},
 +   and then run $0 again." >&2;}
 +fi
 +
 +#### Given the configuration name, set machfile and opsysfile to the
 +#### names of the m/*.h and s/*.h files we should use.
 +
 +### Canonicalize the configuration name.
 +
 +# Make sure we can run config.sub.
 +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
 +  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 +$as_echo_n "checking build system type... " >&6; }
 +if ${ac_cv_build+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_build_alias=$build_alias
 +test "x$ac_build_alias" = x &&
 +  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 +test "x$ac_build_alias" = x &&
 +  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
 +  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 +$as_echo "$ac_cv_build" >&6; }
 +case $ac_cv_build in
 +*-*-*) ;;
 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
 +esac
 +build=$ac_cv_build
 +ac_save_IFS=$IFS; IFS='-'
 +set x $ac_cv_build
 +shift
 +build_cpu=$1
 +build_vendor=$2
 +shift; shift
 +# Remember, the first character of IFS is used to create $*,
 +# except with old shells:
 +build_os=$*
 +IFS=$ac_save_IFS
 +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 +$as_echo_n "checking host system type... " >&6; }
 +if ${ac_cv_host+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test "x$host_alias" = x; then
 +  ac_cv_host=$ac_cv_build
 +else
 +  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
 +    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 +fi
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 +$as_echo "$ac_cv_host" >&6; }
 +case $ac_cv_host in
 +*-*-*) ;;
 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
 +esac
 +host=$ac_cv_host
 +ac_save_IFS=$IFS; IFS='-'
 +set x $ac_cv_host
 +shift
 +host_cpu=$1
 +host_vendor=$2
 +shift; shift
 +# Remember, the first character of IFS is used to create $*,
 +# except with old shells:
 +host_os=$*
 +IFS=$ac_save_IFS
 +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 +
 +
 +canonical=$host
 +configuration=${host_alias-${build_alias-$host}}
 +
 +
 +
 +### If you add support for a new configuration, add code to this
 +### switch statement to recognize your configuration name and select
 +### the appropriate operating system and machine description files.
 +
 +### You would hope that you could choose an m/*.h file pretty much
 +### based on the machine portion of the configuration name, and an s/*.h
 +### file based on the operating system portion.  However, it turns out
 +### that each m/*.h file is pretty manufacturer-specific - for
 +### example mips.h is MIPS
 +### So we basically have to have a special case for each
 +### configuration name.
 +###
 +### As far as handling version numbers on operating systems is
 +### concerned, make sure things will fail in a fixable way.  If
 +### /etc/MACHINES doesn't say anything about version numbers, be
 +### prepared to handle anything reasonably.  If version numbers
 +### matter, be sure /etc/MACHINES says something about it.
 +
 +machine='' opsys='' unported=no
 +case "${canonical}" in
 +
 +  ## GNU/Linux ports
 +  *-*-linux-gnu*)
 +    opsys=gnu-linux
 +    case ${canonical} in
 +      alpha*) machine=alpha ;;
 +      s390-*) machine=ibms390 ;;
 +      s390x-*)        machine=ibms390x ;;
 +      powerpc*)       machine=macppc ;;
 +      sparc*) machine=sparc ;;
 +      ia64*)  machine=ia64 ;;
 +      m68k*)  machine=m68k ;;
 +      x86_64*)        machine=amdx86-64 ;;
 +    esac
 +  ;;
 +
 +  ## FreeBSD ports
 +  *-*-freebsd* )
 +    opsys=freebsd
 +    case "${canonical}" in
 +      alpha*)           machine=alpha ;;
 +      amd64-*|x86_64-*) machine=amdx86-64 ;;
 +      ia64-*)           machine=ia64 ;;
 +      i[3456]86-*)      machine=intel386 ;;
 +      powerpc-*)        machine=macppc ;;
 +      sparc-*)          machine=sparc ;;
 +      sparc64-*)        machine=sparc ;;
 +    esac
 +  ;;
 +
 +  ## FreeBSD kernel + glibc based userland
 +  *-*-kfreebsd*gnu* )
 +    opsys=gnu-kfreebsd
 +    case "${canonical}" in
 +      alpha*)           machine=alpha ;;
 +      amd64-*|x86_64-*) machine=amdx86-64 ;;
 +      ia64-*)           machine=ia64 ;;
 +      i[3456]86-*)      machine=intel386 ;;
 +      powerpc-*)        machine=macppc ;;
 +      sparc-*)          machine=sparc ;;
 +      sparc64-*)        machine=sparc ;;
 +    esac
 +  ;;
 +
 +  ## NetBSD ports
 +  *-*-netbsd* )
 +    opsys=netbsd
 +    case "${canonical}" in
 +      alpha*)      machine=alpha ;;
 +      x86_64-*)    machine=amdx86-64 ;;
 +      i[3456]86-*) machine=intel386 ;;
 +      m68k-*)      machine=m68k ;;
 +      powerpc-*)   machine=macppc ;;
 +      sparc*-)     machine=sparc ;;
 +      vax-*)       machine=vax ;;
 +    esac
 +  ;;
 +
 +  ## OpenBSD ports
 +  *-*-openbsd* )
 +    opsys=openbsd
 +    case "${canonical}" in
 +      alpha*)    machine=alpha ;;
 +      x86_64-*)  machine=amdx86-64 ;;
 +      i386-*)    machine=intel386 ;;
 +      powerpc-*) machine=macppc ;;
 +      sparc*)    machine=sparc ;;
 +      vax-*)     machine=vax ;;
 +    esac
 +  ;;
 +
 +  ## Apple Darwin / Mac OS X
 +  *-apple-darwin* )
 +    case "${canonical}" in
 +      i[3456]86-* )  machine=intel386 ;;
 +      powerpc-* )    machine=macppc ;;
 +      x86_64-* )     machine=amdx86-64 ;;
 +      * )            unported=yes ;;
 +    esac
 +    opsys=darwin
 +    # Define CPP as follows to make autoconf work correctly.
 +    CPP="${CC-cc} -E -no-cpp-precomp"
 +    # Use fink packages if available.
 +    if test -d /sw/include && test -d /sw/lib; then
 +      GCC_TEST_OPTIONS="-I/sw/include -L/sw/lib"
 +      CPP="${CPP} ${GCC_TEST_OPTIONS}"
 +      NON_GCC_TEST_OPTIONS=${GCC_TEST_OPTIONS}
 +    fi
 +  ;;
 +
 +  ## HP 9000 series 700 and 800, running HP/UX
 +  hppa*-hp-hpux10.2* )
 +    opsys=hpux10-20
 +  ;;
 +  hppa*-hp-hpux1[1-9]* )
 +    opsys=hpux11
 +    CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
 +  ;;
 +
 +  ia64*-hp-hpux1[1-9]* )
 +    machine=hp800 opsys=hpux11
 +    ## FIXME.  Peter O'Gorman reports that dumping using unexelf.o doesn't
 +    ## work either: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6811
 +    CANNOT_DUMP=yes
 +  ;;
 +
 +  hppa*-*-linux-gnu* )
 +    machine=hp800 opsys=gnu-linux
 +  ;;
 +
 +  ## IBM machines
 +  rs6000-ibm-aix4.[23]* )
 +    machine=ibmrs6000 opsys=aix4-2
 +  ;;
 +  powerpc-ibm-aix4.[23]*  )
 +    machine=ibmrs6000 opsys=aix4-2
 +  ;;
 +  rs6000-ibm-aix[56]* )
 +    machine=ibmrs6000 opsys=aix4-2
 +  ;;
 +  powerpc-ibm-aix[56]*  )
 +    machine=ibmrs6000 opsys=aix4-2
 +  ;;
 +
 +  ## Silicon Graphics machines
 +  ## Iris 4D
 +  mips-sgi-irix6.5 )
 +    machine=iris4d opsys=irix6-5
 +    # Without defining _LANGUAGE_C, things get masked out in the headers
 +    # so that, for instance, grepping for `free' in stdlib.h fails and
 +    # AC_HEADER_STD_C fails.   (MIPSPro 7.2.1.2m compilers, Irix 6.5.3m).
 +    NON_GNU_CPP="/lib/cpp -D_LANGUAGE_C"
 +    NON_GCC_TEST_OPTIONS="-D_LANGUAGE_C"
 +  ;;
 +
 +  ## Suns
 +  *-sun-solaris* \
 +    | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
 +    | x86_64-*-solaris2*    | x86_64-*-sunos5*)
 +    case "${canonical}" in
 +      i[3456]86-*-* )     machine=intel386 ;;
 +      amd64-*-*|x86_64-*-*)   machine=amdx86-64 ;;
 +      sparc* )                machine=sparc ;;
 +      * )             unported=yes ;;
 +    esac
 +    case "${canonical}" in
 +      *-sunos5.6* | *-solaris2.6* )
 +              opsys=sol2-6
 +              NON_GNU_CPP=/usr/ccs/lib/cpp
 +              RANLIB="ar -ts"
 +              ;;
 +      *-sunos5.[7-9]* | *-solaris2.[7-9]* )
 +              opsys=sol2-6
 +              emacs_check_sunpro_c=yes
 +              NON_GNU_CPP=/usr/ccs/lib/cpp
 +              ;;
 +      *-sunos5* | *-solaris* )
 +              opsys=sol2-10
 +              emacs_check_sunpro_c=yes
 +              NON_GNU_CPP=/usr/ccs/lib/cpp
 +              ;;
 +    esac
 +    ## Watch out for a compiler that we know will not work.
 +    case "${canonical}" in
 +     *-solaris* | *-sunos5* )
 +              if [ "x$CC" = x/usr/ucb/cc ]; then
 +                ## /usr/ucb/cc doesn't work;
 +                ## we should find some other compiler that does work.
 +                unset CC
 +              fi
 +              ;;
 +      *) ;;
 +    esac
 +  ;;
 +
 +  ## Intel 386 machines where we don't care about the manufacturer.
 +  i[3456]86-*-* )
 +    machine=intel386
 +    case "${canonical}" in
 +      *-cygwin )                opsys=cygwin ;;
 +      *-darwin* )               opsys=darwin
 +                                CPP="${CC-cc} -E -no-cpp-precomp"
 +                              ;;
 +      *-sysv4.2uw* )          opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 +      *-sysv5uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 +      *-sysv5OpenUNIX* )      opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
 +      ## Otherwise, we'll fall through to the generic opsys code at the bottom.
 +    esac
 +  ;;
 +
 +  * )
 +    unported=yes
 +  ;;
 +esac
 +
 +### If the code above didn't choose an operating system, just choose
 +### an operating system based on the configuration name.  You really
 +### only want to use this when you have no idea what the right
 +### operating system is; if you know what operating systems a machine
 +### runs, it's cleaner to make it explicit in the case statement
 +### above.
 +if test x"${opsys}" = x; then
 +  case "${canonical}" in
 +    *-gnu* )                          opsys=gnu ;;
 +    * )
 +      unported=yes
 +    ;;
 +  esac
 +fi
 +
 +
 +
 +if test $unported = yes; then
 +  as_fn_error $? "Emacs hasn't been ported to \`${canonical}' systems.
 +Check \`etc/MACHINES' for recognized configuration names." "$LINENO" 5
 +fi
 +
 +if test -n "$machine"; then
 +  machfile="m/${machine}.h"
 +else
 +  machfile=
 +fi
 +opsysfile="s/${opsys}.h"
 +
 +
 +#### Choose a compiler.
 +test -n "$CC" && cc_specified=yes
 +
 +# Save the value of CFLAGS that the user specified.
 +SPECIFIED_CFLAGS="$CFLAGS"
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +if test -n "$ac_tool_prefix"; then
 +  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}gcc; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$CC"; then
 +  ac_cv_prog_CC="$CC" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_CC="${ac_tool_prefix}gcc"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +CC=$ac_cv_prog_CC
 +if test -n "$CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 +$as_echo "$CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +fi
 +if test -z "$ac_cv_prog_CC"; then
 +  ac_ct_CC=$CC
 +  # Extract the first word of "gcc", so it can be a program name with args.
 +set dummy gcc; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_ac_ct_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$ac_ct_CC"; then
 +  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_ac_ct_CC="gcc"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +ac_ct_CC=$ac_cv_prog_ac_ct_CC
 +if test -n "$ac_ct_CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 +$as_echo "$ac_ct_CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +  if test "x$ac_ct_CC" = x; then
 +    CC=""
 +  else
 +    case $cross_compiling:$ac_tool_warned in
 +yes:)
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 +ac_tool_warned=yes ;;
 +esac
 +    CC=$ac_ct_CC
 +  fi
 +else
 +  CC="$ac_cv_prog_CC"
 +fi
 +
 +if test -z "$CC"; then
 +          if test -n "$ac_tool_prefix"; then
 +    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}cc; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$CC"; then
 +  ac_cv_prog_CC="$CC" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_CC="${ac_tool_prefix}cc"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +CC=$ac_cv_prog_CC
 +if test -n "$CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 +$as_echo "$CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +  fi
 +fi
 +if test -z "$CC"; then
 +  # Extract the first word of "cc", so it can be a program name with args.
 +set dummy cc; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$CC"; then
 +  ac_cv_prog_CC="$CC" # Let the user override the test.
 +else
 +  ac_prog_rejected=no
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
 +       ac_prog_rejected=yes
 +       continue
 +     fi
 +    ac_cv_prog_CC="cc"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +if test $ac_prog_rejected = yes; then
 +  # We found a bogon in the path, so make sure we never use it.
 +  set dummy $ac_cv_prog_CC
 +  shift
 +  if test $# != 0; then
 +    # We chose a different compiler from the bogus one.
 +    # However, it has the same basename, so the bogon will be chosen
 +    # first if we set CC to just the basename; use the full file name.
 +    shift
 +    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
 +  fi
 +fi
 +fi
 +fi
 +CC=$ac_cv_prog_CC
 +if test -n "$CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 +$as_echo "$CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +fi
 +if test -z "$CC"; then
 +  if test -n "$ac_tool_prefix"; then
 +  for ac_prog in cl.exe
 +  do
 +    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 +set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$CC"; then
 +  ac_cv_prog_CC="$CC" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +CC=$ac_cv_prog_CC
 +if test -n "$CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 +$as_echo "$CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +    test -n "$CC" && break
 +  done
 +fi
 +if test -z "$CC"; then
 +  ac_ct_CC=$CC
 +  for ac_prog in cl.exe
 +do
 +  # Extract the first word of "$ac_prog", so it can be a program name with args.
 +set dummy $ac_prog; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_ac_ct_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$ac_ct_CC"; then
 +  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_ac_ct_CC="$ac_prog"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +ac_ct_CC=$ac_cv_prog_ac_ct_CC
 +if test -n "$ac_ct_CC"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 +$as_echo "$ac_ct_CC" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +  test -n "$ac_ct_CC" && break
 +done
 +
 +  if test "x$ac_ct_CC" = x; then
 +    CC=""
 +  else
 +    case $cross_compiling:$ac_tool_warned in
 +yes:)
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 +ac_tool_warned=yes ;;
 +esac
 +    CC=$ac_ct_CC
 +  fi
 +fi
 +
 +fi
 +
 +
 +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "no acceptable C compiler found in \$PATH
 +See \`config.log' for more details" "$LINENO" 5; }
 +
 +# Provide some information about the compiler.
 +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 +set X $ac_compile
 +ac_compiler=$2
 +for ac_option in --version -v -V -qversion; do
 +  { { ac_try="$ac_compiler $ac_option >&5"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
 +  ac_status=$?
 +  if test -s conftest.err; then
 +    sed '10a\
 +... rest of stderr output deleted ...
 +         10q' conftest.err >conftest.er1
 +    cat conftest.er1 >&5
 +  fi
 +  rm -f conftest.er1 conftest.err
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }
 +done
 +
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +ac_clean_files_save=$ac_clean_files
 +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 +# Try to create an executable without -o first, disregard a.out.
 +# It will help us diagnose broken compilers, and finding out an intuition
 +# of exeext.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
 +$as_echo_n "checking whether the C compiler works... " >&6; }
 +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 +
 +# The possible output files:
 +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
 +
 +ac_rmfiles=
 +for ac_file in $ac_files
 +do
 +  case $ac_file in
 +    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
 +    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
 +  esac
 +done
 +rm -f $ac_rmfiles
 +
 +if { { ac_try="$ac_link_default"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_link_default") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }; then :
 +  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 +# in a Makefile.  We should not override ac_cv_exeext if it was cached,
 +# so that the user can short-circuit this test for compilers unknown to
 +# Autoconf.
 +for ac_file in $ac_files ''
 +do
 +  test -f "$ac_file" || continue
 +  case $ac_file in
 +    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
 +      ;;
 +    [ab].out )
 +      # We found the default executable, but exeext='' is most
 +      # certainly right.
 +      break;;
 +    *.* )
 +      if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
 +      then :; else
 +         ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 +      fi
 +      # We set ac_cv_exeext here because the later test for it is not
 +      # safe: cross compilers may not add the suffix if given an `-o'
 +      # argument, so we may need to know it at that point already.
 +      # Even if this section looks crufty: it has the advantage of
 +      # actually working.
 +      break;;
 +    * )
 +      break;;
 +  esac
 +done
 +test "$ac_cv_exeext" = no && ac_cv_exeext=
 +
 +else
 +  ac_file=''
 +fi
 +if test -z "$ac_file"; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +$as_echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
 +
 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error 77 "C compiler cannot create executables
 +See \`config.log' for more details" "$LINENO" 5; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 +$as_echo_n "checking for C compiler default output file name... " >&6; }
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
 +$as_echo "$ac_file" >&6; }
 +ac_exeext=$ac_cv_exeext
 +
 +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 +ac_clean_files=$ac_clean_files_save
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 +$as_echo_n "checking for suffix of executables... " >&6; }
 +if { { ac_try="$ac_link"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_link") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }; then :
 +  # If both `conftest.exe' and `conftest' are `present' (well, observable)
 +# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 +# work properly (i.e., refer to `conftest.exe'), while it won't with
 +# `rm'.
 +for ac_file in conftest.exe conftest conftest.*; do
 +  test -f "$ac_file" || continue
 +  case $ac_file in
 +    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
 +    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 +        break;;
 +    * ) break;;
 +  esac
 +done
 +else
 +  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +rm -f conftest conftest$ac_cv_exeext
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 +$as_echo "$ac_cv_exeext" >&6; }
 +
 +rm -f conftest.$ac_ext
 +EXEEXT=$ac_cv_exeext
 +ac_exeext=$EXEEXT
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <stdio.h>
 +int
 +main ()
 +{
 +FILE *f = fopen ("conftest.out", "w");
 + return ferror (f) || fclose (f) != 0;
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +ac_clean_files="$ac_clean_files conftest.out"
 +# Check that the compiler produces executables we can run.  If not, either
 +# the compiler is broken, or we cross compile.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
 +$as_echo_n "checking whether we are cross compiling... " >&6; }
 +if test "$cross_compiling" != yes; then
 +  { { ac_try="$ac_link"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_link") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }
 +  if { ac_try='./conftest$ac_cv_exeext'
 +  { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }; }; then
 +    cross_compiling=no
 +  else
 +    if test "$cross_compiling" = maybe; then
 +      cross_compiling=yes
 +    else
 +      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "cannot run C compiled programs.
 +If you meant to cross compile, use \`--host'.
 +See \`config.log' for more details" "$LINENO" 5; }
 +    fi
 +  fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 +$as_echo "$cross_compiling" >&6; }
 +
 +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 +ac_clean_files=$ac_clean_files_save
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 +$as_echo_n "checking for suffix of object files... " >&6; }
 +if ${ac_cv_objext+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +rm -f conftest.o conftest.obj
 +if { { ac_try="$ac_compile"
 +case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_compile") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }; then :
 +  for ac_file in conftest.o conftest.obj conftest.*; do
 +  test -f "$ac_file" || continue;
 +  case $ac_file in
 +    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
 +    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
 +       break;;
 +  esac
 +done
 +else
 +  $as_echo "$as_me: failed program was:" >&5
 +sed 's/^/| /' conftest.$ac_ext >&5
 +
 +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "cannot compute suffix of object files: cannot compile
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +rm -f conftest.$ac_cv_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 +$as_echo "$ac_cv_objext" >&6; }
 +OBJEXT=$ac_cv_objext
 +ac_objext=$OBJEXT
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
 +if ${ac_cv_c_compiler_gnu+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +#ifndef __GNUC__
 +       choke me
 +#endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_compiler_gnu=yes
 +else
 +  ac_compiler_gnu=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +ac_cv_c_compiler_gnu=$ac_compiler_gnu
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 +$as_echo "$ac_cv_c_compiler_gnu" >&6; }
 +if test $ac_compiler_gnu = yes; then
 +  GCC=yes
 +else
 +  GCC=
 +fi
 +ac_test_CFLAGS=${CFLAGS+set}
 +ac_save_CFLAGS=$CFLAGS
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 +$as_echo_n "checking whether $CC accepts -g... " >&6; }
 +if ${ac_cv_prog_cc_g+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_save_c_werror_flag=$ac_c_werror_flag
 +   ac_c_werror_flag=yes
 +   ac_cv_prog_cc_g=no
 +   CFLAGS="-g"
 +   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_prog_cc_g=yes
 +else
 +  CFLAGS=""
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +
 +else
 +  ac_c_werror_flag=$ac_save_c_werror_flag
 +       CFLAGS="-g"
 +       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_prog_cc_g=yes
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +   ac_c_werror_flag=$ac_save_c_werror_flag
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 +$as_echo "$ac_cv_prog_cc_g" >&6; }
 +if test "$ac_test_CFLAGS" = set; then
 +  CFLAGS=$ac_save_CFLAGS
 +elif test $ac_cv_prog_cc_g = yes; then
 +  if test "$GCC" = yes; then
 +    CFLAGS="-g -O2"
 +  else
 +    CFLAGS="-g"
 +  fi
 +else
 +  if test "$GCC" = yes; then
 +    CFLAGS="-O2"
 +  else
 +    CFLAGS=
 +  fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
 +if ${ac_cv_prog_cc_c89+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_cv_prog_cc_c89=no
 +ac_save_CC=$CC
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <stdarg.h>
 +#include <stdio.h>
 +#include <sys/types.h>
 +#include <sys/stat.h>
 +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 +struct buf { int x; };
 +FILE * (*rcsopen) (struct buf *, struct stat *, int);
 +static char *e (p, i)
 +     char **p;
 +     int i;
 +{
 +  return p[i];
 +}
 +static char *f (char * (*g) (char **, int), char **p, ...)
 +{
 +  char *s;
 +  va_list v;
 +  va_start (v,p);
 +  s = g (p, va_arg (v,int));
 +  va_end (v);
 +  return s;
 +}
 +
 +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
 +   function prototypes and stuff, but not '\xHH' hex character constants.
 +   These don't provoke an error unfortunately, instead are silently treated
 +   as 'x'.  The following induces an error, until -std is added to get
 +   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
 +   array size at least.  It's necessary to write '\x00'==0 to get something
 +   that's true only with -std.  */
 +int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 +
 +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
 +   inside strings and character constants.  */
 +#define FOO(x) 'x'
 +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
 +
 +int test (int i, double x);
 +struct s1 {int (*f) (int a);};
 +struct s2 {int (*f) (double a);};
 +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
 +int argc;
 +char **argv;
 +int
 +main ()
 +{
 +return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 +      -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 +do
 +  CC="$ac_save_CC $ac_arg"
 +  if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_prog_cc_c89=$ac_arg
 +fi
 +rm -f core conftest.err conftest.$ac_objext
 +  test "x$ac_cv_prog_cc_c89" != "xno" && break
 +done
 +rm -f conftest.$ac_ext
 +CC=$ac_save_CC
 +
 +fi
 +# AC_CACHE_VAL
 +case "x$ac_cv_prog_cc_c89" in
 +  x)
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 +$as_echo "none needed" >&6; } ;;
 +  xno)
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 +$as_echo "unsupported" >&6; } ;;
 +  *)
 +    CC="$CC $ac_cv_prog_cc_c89"
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 +esac
 +if test "x$ac_cv_prog_cc_c89" != xno; then :
 +
 +fi
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +DEPDIR="${am__leading_dot}deps"
 +
 +ac_config_commands="$ac_config_commands depfiles"
 +
 +
 +am_make=${MAKE-make}
 +cat > confinc << 'END'
 +am__doit:
 +      @echo this is the am__doit target
 +.PHONY: am__doit
 +END
 +# If we don't find an include directive, just comment out the code.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 +$as_echo_n "checking for style of include used by $am_make... " >&6; }
 +am__include="#"
 +am__quote=
 +_am_result=none
 +# First try GNU make style include.
 +echo "include confinc" > confmf
 +# Ignore all kinds of additional output from `make'.
 +case `$am_make -s -f confmf 2> /dev/null` in #(
 +*the\ am__doit\ target*)
 +  am__include=include
 +  am__quote=
 +  _am_result=GNU
 +  ;;
 +esac
 +# Now try BSD make style include.
 +if test "$am__include" = "#"; then
 +   echo '.include "confinc"' > confmf
 +   case `$am_make -s -f confmf 2> /dev/null` in #(
 +   *the\ am__doit\ target*)
 +     am__include=.include
 +     am__quote="\""
 +     _am_result=BSD
 +     ;;
 +   esac
 +fi
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 +$as_echo "$_am_result" >&6; }
 +rm -f confinc confmf
 +
 +# Check whether --enable-dependency-tracking was given.
 +if test "${enable_dependency_tracking+set}" = set; then :
 +  enableval=$enable_dependency_tracking;
 +fi
 +
 +if test "x$enable_dependency_tracking" != xno; then
 +  am_depcomp="$ac_aux_dir/depcomp"
 +  AMDEPBACKSLASH='\'
 +fi
 + if test "x$enable_dependency_tracking" != xno; then
 +  AMDEP_TRUE=
 +  AMDEP_FALSE='#'
 +else
 +  AMDEP_TRUE='#'
 +  AMDEP_FALSE=
 +fi
 +
 +
 +
 +depcc="$CC"   am_compiler_list=
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 +$as_echo_n "checking dependency style of $depcc... " >&6; }
 +if ${am_cv_CC_dependencies_compiler_type+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
 +  # We make a subdir and do the tests there.  Otherwise we can end up
 +  # making bogus files that we don't know about and never remove.  For
 +  # instance it was reported that on HP-UX the gcc test will end up
 +  # making a dummy file named `D' -- because `-MD' means `put the output
 +  # in D'.
 +  mkdir conftest.dir
 +  # Copy depcomp to subdir because otherwise we won't find it if we're
 +  # using a relative directory.
 +  cp "$am_depcomp" conftest.dir
 +  cd conftest.dir
 +  # We will build objects and dependencies in a subdirectory because
 +  # it helps to detect inapplicable dependency modes.  For instance
 +  # both Tru64's cc and ICC support -MD to output dependencies as a
 +  # side effect of compilation, but ICC will put the dependencies in
 +  # the current directory while Tru64 will put them in the object
 +  # directory.
 +  mkdir sub
 +
 +  am_cv_CC_dependencies_compiler_type=none
 +  if test "$am_compiler_list" = ""; then
 +     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
 +  fi
 +  am__universal=false
 +  case " $depcc " in #(
 +     *\ -arch\ *\ -arch\ *) am__universal=true ;;
 +     esac
 +
 +  for depmode in $am_compiler_list; do
 +    # Setup a source with many dependencies, because some compilers
 +    # like to wrap large dependency lists on column 80 (with \), and
 +    # we should not choose a depcomp mode which is confused by this.
 +    #
 +    # We need to recreate these files for each test, as the compiler may
 +    # overwrite some of them when testing with obscure command lines.
 +    # This happens at least with the AIX C compiler.
 +    : > sub/conftest.c
 +    for i in 1 2 3 4 5 6; do
 +      echo '#include "conftst'$i'.h"' >> sub/conftest.c
 +      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
 +      # Solaris 8's {/usr,}/bin/sh.
 +      touch sub/conftst$i.h
 +    done
 +    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 +
 +    # We check with `-c' and `-o' for the sake of the "dashmstdout"
 +    # mode.  It turns out that the SunPro C++ compiler does not properly
 +    # handle `-M -o', and we need to detect this.  Also, some Intel
 +    # versions had trouble with output in subdirs
 +    am__obj=sub/conftest.${OBJEXT-o}
 +    am__minus_obj="-o $am__obj"
 +    case $depmode in
 +    gcc)
 +      # This depmode causes a compiler race in universal mode.
 +      test "$am__universal" = false || continue
 +      ;;
 +    nosideeffect)
 +      # after this tag, mechanisms are not by side-effect, so they'll
 +      # only be used when explicitly requested
 +      if test "x$enable_dependency_tracking" = xyes; then
 +      continue
 +      else
 +      break
 +      fi
 +      ;;
 +    msvisualcpp | msvcmsys)
 +      # This compiler won't grok `-c -o', but also, the minuso test has
 +      # not run yet.  These depmodes are late enough in the game, and
 +      # so weak that their functioning should not be impacted.
 +      am__obj=conftest.${OBJEXT-o}
 +      am__minus_obj=
 +      ;;
 +    none) break ;;
 +    esac
 +    if depmode=$depmode \
 +       source=sub/conftest.c object=$am__obj \
 +       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
 +       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
 +         >/dev/null 2>conftest.err &&
 +       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
 +       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
 +       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
 +       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
 +      # icc doesn't choke on unknown options, it will just issue warnings
 +      # or remarks (even with -Werror).  So we grep stderr for any message
 +      # that says an option was ignored or not supported.
 +      # When given -MP, icc 7.0 and 7.1 complain thusly:
 +      #   icc: Command line warning: ignoring option '-M'; no argument required
 +      # The diagnosis changed in icc 8.0:
 +      #   icc: Command line remark: option '-MP' not supported
 +      if (grep 'ignoring option' conftest.err ||
 +          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
 +        am_cv_CC_dependencies_compiler_type=$depmode
 +        break
 +      fi
 +    fi
 +  done
 +
 +  cd ..
 +  rm -rf conftest.dir
 +else
 +  am_cv_CC_dependencies_compiler_type=none
 +fi
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 +
 + if
 +  test "x$enable_dependency_tracking" != xno \
 +  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
 +  am__fastdepCC_TRUE=
 +  am__fastdepCC_FALSE='#'
 +else
 +  am__fastdepCC_TRUE='#'
 +  am__fastdepCC_FALSE=
 +fi
 +
 +
 +if test "x$CC" != xcc; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
 +fi
 +set dummy $CC; ac_cc=`$as_echo "$2" |
 +                    sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
 +if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +# Make sure it works both with $CC and with simple cc.
 +# We do the test twice because some compilers refuse to overwrite an
 +# existing .o file with -o, though they will create one.
 +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
 +rm -f conftest2.*
 +if { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; } &&
 +   test -f conftest2.$ac_objext && { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; };
 +then
 +  eval ac_cv_prog_cc_${ac_cc}_c_o=yes
 +  if test "x$CC" != xcc; then
 +    # Test first that cc exists at all.
 +    if { ac_try='cc -c conftest.$ac_ext >&5'
 +  { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; }; }; then
 +      ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
 +      rm -f conftest2.*
 +      if { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; } &&
 +       test -f conftest2.$ac_objext && { { case "(($ac_try" in
 +  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 +  *) ac_try_echo=$ac_try;;
 +esac
 +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 +$as_echo "$ac_try_echo"; } >&5
 +  (eval "$ac_try") 2>&5
 +  ac_status=$?
 +  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 +  test $ac_status = 0; };
 +      then
 +      # cc works too.
 +      :
 +      else
 +      # cc exists but doesn't like -o.
 +      eval ac_cv_prog_cc_${ac_cc}_c_o=no
 +      fi
 +    fi
 +  fi
 +else
 +  eval ac_cv_prog_cc_${ac_cc}_c_o=no
 +fi
 +rm -f core conftest*
 +
 +fi
 +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +
 +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
 +
 +fi
 +
 +# FIXME: we rely on the cache variable name because
 +# there is no other way.
 +set dummy $CC
 +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
 +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
 +if test "$am_t" != yes; then
 +   # Losing compiler, so override with the script.
 +   # FIXME: It is wrong to rewrite CC.
 +   # But if we don't then we get into trouble of one sort or another.
 +   # A longer-term fix would be to have automake use am__CC in this case,
 +   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
 +   CC="$am_aux_dir/compile $CC"
 +fi
 +
 +
 +
 +# Initialize gnulib right after verifying that the C compiler works.
 +if test -n "$ac_tool_prefix"; then
 +  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_RANLIB+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$RANLIB"; then
 +  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +RANLIB=$ac_cv_prog_RANLIB
 +if test -n "$RANLIB"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 +$as_echo "$RANLIB" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +fi
 +if test -z "$ac_cv_prog_RANLIB"; then
 +  ac_ct_RANLIB=$RANLIB
 +  # Extract the first word of "ranlib", so it can be a program name with args.
 +set dummy ranlib; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$ac_ct_RANLIB"; then
 +  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_ac_ct_RANLIB="ranlib"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 +if test -n "$ac_ct_RANLIB"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 +$as_echo "$ac_ct_RANLIB" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +  if test "x$ac_ct_RANLIB" = x; then
 +    RANLIB=":"
 +  else
 +    case $cross_compiling:$ac_tool_warned in
 +yes:)
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 +ac_tool_warned=yes ;;
 +esac
 +    RANLIB=$ac_ct_RANLIB
 +  fi
 +else
 +  RANLIB="$ac_cv_prog_RANLIB"
 +fi
 +
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 +$as_echo_n "checking how to run the C preprocessor... " >&6; }
 +# On Suns, sometimes $CPP names a directory.
 +if test -n "$CPP" && test -d "$CPP"; then
 +  CPP=
 +fi
 +if test -z "$CPP"; then
 +  if ${ac_cv_prog_CPP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +      # Double quotes because CPP needs to be expanded
 +    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
 +    do
 +      ac_preproc_ok=false
 +for ac_c_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +  break
 +fi
 +
 +    done
 +    ac_cv_prog_CPP=$CPP
 +
 +fi
 +  CPP=$ac_cv_prog_CPP
 +else
 +  ac_cv_prog_CPP=$CPP
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 +$as_echo "$CPP" >&6; }
 +ac_preproc_ok=false
 +for ac_c_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +
 +else
 +  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
 +if ${ac_cv_path_GREP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -z "$GREP"; then
 +  ac_path_GREP_found=false
 +  # Loop through the user's path and test for each of PROGNAME-LIST
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_prog in grep ggrep; do
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
 +      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 +# Check for GNU ac_path_GREP and select it if it is found.
 +  # Check for GNU $ac_path_GREP
 +case `"$ac_path_GREP" --version 2>&1` in
 +*GNU*)
 +  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 +*)
 +  ac_count=0
 +  $as_echo_n 0123456789 >"conftest.in"
 +  while :
 +  do
 +    cat "conftest.in" "conftest.in" >"conftest.tmp"
 +    mv "conftest.tmp" "conftest.in"
 +    cp "conftest.in" "conftest.nl"
 +    $as_echo 'GREP' >> "conftest.nl"
 +    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 +    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 +    as_fn_arith $ac_count + 1 && ac_count=$as_val
 +    if test $ac_count -gt ${ac_path_GREP_max-0}; then
 +      # Best one so far, save it but keep looking for a better one
 +      ac_cv_path_GREP="$ac_path_GREP"
 +      ac_path_GREP_max=$ac_count
 +    fi
 +    # 10*(2^10) chars as input seems more than enough
 +    test $ac_count -gt 10 && break
 +  done
 +  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 +esac
 +
 +      $ac_path_GREP_found && break 3
 +    done
 +  done
 +  done
 +IFS=$as_save_IFS
 +  if test -z "$ac_cv_path_GREP"; then
 +    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
 +  fi
 +else
 +  ac_cv_path_GREP=$GREP
 +fi
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 +$as_echo "$ac_cv_path_GREP" >&6; }
 + GREP="$ac_cv_path_GREP"
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 +$as_echo_n "checking for egrep... " >&6; }
 +if ${ac_cv_path_EGREP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
 +   then ac_cv_path_EGREP="$GREP -E"
 +   else
 +     if test -z "$EGREP"; then
 +  ac_path_EGREP_found=false
 +  # Loop through the user's path and test for each of PROGNAME-LIST
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_prog in egrep; do
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
 +      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 +# Check for GNU ac_path_EGREP and select it if it is found.
 +  # Check for GNU $ac_path_EGREP
 +case `"$ac_path_EGREP" --version 2>&1` in
 +*GNU*)
 +  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 +*)
 +  ac_count=0
 +  $as_echo_n 0123456789 >"conftest.in"
 +  while :
 +  do
 +    cat "conftest.in" "conftest.in" >"conftest.tmp"
 +    mv "conftest.tmp" "conftest.in"
 +    cp "conftest.in" "conftest.nl"
 +    $as_echo 'EGREP' >> "conftest.nl"
 +    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 +    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 +    as_fn_arith $ac_count + 1 && ac_count=$as_val
 +    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
 +      # Best one so far, save it but keep looking for a better one
 +      ac_cv_path_EGREP="$ac_path_EGREP"
 +      ac_path_EGREP_max=$ac_count
 +    fi
 +    # 10*(2^10) chars as input seems more than enough
 +    test $ac_count -gt 10 && break
 +  done
 +  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 +esac
 +
 +      $ac_path_EGREP_found && break 3
 +    done
 +  done
 +  done
 +IFS=$as_save_IFS
 +  if test -z "$ac_cv_path_EGREP"; then
 +    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
 +  fi
 +else
 +  ac_cv_path_EGREP=$EGREP
 +fi
 +
 +   fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 +$as_echo "$ac_cv_path_EGREP" >&6; }
 + EGREP="$ac_cv_path_EGREP"
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 +$as_echo_n "checking for ANSI C header files... " >&6; }
 +if ${ac_cv_header_stdc+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <stdlib.h>
 +#include <stdarg.h>
 +#include <string.h>
 +#include <float.h>
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_header_stdc=yes
 +else
 +  ac_cv_header_stdc=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +
 +if test $ac_cv_header_stdc = yes; then
 +  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <string.h>
 +
 +_ACEOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "memchr" >/dev/null 2>&1; then :
 +
 +else
 +  ac_cv_header_stdc=no
 +fi
 +rm -f conftest*
 +
 +fi
 +
 +if test $ac_cv_header_stdc = yes; then
 +  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <stdlib.h>
 +
 +_ACEOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "free" >/dev/null 2>&1; then :
 +
 +else
 +  ac_cv_header_stdc=no
 +fi
 +rm -f conftest*
 +
 +fi
 +
 +if test $ac_cv_header_stdc = yes; then
 +  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 +  if test "$cross_compiling" = yes; then :
 +  :
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ctype.h>
 +#include <stdlib.h>
 +#if ((' ' & 0x0FF) == 0x020)
 +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 +#else
 +# define ISLOWER(c) \
 +                 (('a' <= (c) && (c) <= 'i') \
 +                   || ('j' <= (c) && (c) <= 'r') \
 +                   || ('s' <= (c) && (c) <= 'z'))
 +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
 +#endif
 +
 +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 +int
 +main ()
 +{
 +  int i;
 +  for (i = 0; i < 256; i++)
 +    if (XOR (islower (i), ISLOWER (i))
 +      || toupper (i) != TOUPPER (i))
 +      return 2;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_run "$LINENO"; then :
 +
 +else
 +  ac_cv_header_stdc=no
 +fi
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
 +fi
 +
 +fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 +$as_echo "$ac_cv_header_stdc" >&6; }
 +if test $ac_cv_header_stdc = yes; then
 +
 +$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 +
 +fi
 +
 +# On IRIX 5.3, sys/types and inttypes.h are conflicting.
 +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 +                inttypes.h stdint.h unistd.h
 +do :
 +  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 +"
 +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +_ACEOF
 +
 +fi
 +
 +done
 +
 +
 +
 +
 +
 +  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
 +if test "x$ac_cv_header_minix_config_h" = xyes; then :
 +  MINIX=yes
 +else
 +  MINIX=
 +fi
 +
 +
 +  if test "$MINIX" = yes; then
 +
 +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
 +
 +
 +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 +
 +
 +$as_echo "#define _MINIX 1" >>confdefs.h
 +
 +  fi
 +
 +        case "$host_os" in
 +    hpux*)
 +
 +$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
 +
 +      ;;
 +  esac
 +
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
 +if ${ac_cv_safe_to_define___extensions__+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +#         define __EXTENSIONS__ 1
 +          $ac_includes_default
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_safe_to_define___extensions__=yes
 +else
 +  ac_cv_safe_to_define___extensions__=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
 +  test $ac_cv_safe_to_define___extensions__ = yes &&
 +    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
 +
 +  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
 +
 +  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
 +
 +  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
 +
 +  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +  # Code from module arg-nonnull:
 +  # Code from module c++defs:
 +  # Code from module dtoastr:
 +  # Code from module extensions:
 +
 +  # Code from module getopt-gnu:
 +  # Code from module getopt-posix:
 +  # Code from module gettext-h:
 +  # Code from module include_next:
 +  # Code from module intprops:
 +  # Code from module mktime:
 +  # Code from module multiarch:
 +  # Code from module stdbool:
 +  # Code from module stddef:
 +  # Code from module strftime:
 +  # Code from module time:
 +  # Code from module time_r:
 +  # Code from module unistd:
 +  # Code from module warn-on-use:
 +
 +
 +# On Suns, sometimes $CPP names a directory.
 +if test -n "$CPP" && test -d "$CPP"; then
 +  CPP=
 +fi
 +
 +## If not using gcc, and on Solaris, and no CPP specified, see if
 +## using a Sun compiler, which needs -Xs to prevent whitespace.
 +if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
 + test x"$CPP" = x; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using a Sun C compiler" >&5
 +$as_echo_n "checking whether we are using a Sun C compiler... " >&6; }
 +  if ${emacs_cv_sunpro_c+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +#ifndef __SUNPRO_C
 +fail;
 +#endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_sunpro_c=yes
 +else
 +  emacs_cv_sunpro_c=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_sunpro_c" >&5
 +$as_echo "$emacs_cv_sunpro_c" >&6; }
 +
 +  if test x"$emacs_cv_sunpro_c" = xyes; then
 +    NON_GNU_CPP="$CC -E -Xs"
 +  fi
 +fi
 +
 +#### Some systems specify a CPP to use unless we are using GCC.
 +#### Now that we know whether we are using GCC, we can decide whether
 +#### to use that one.
 +if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
 +then
 +  CPP="$NON_GNU_CPP"
 +fi
 +
 +#### Some systems specify a CC to use unless we are using GCC.
 +#### Now that we know whether we are using GCC, we can decide whether
 +#### to use that one.
 +if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
 +  test x$cc_specified != xyes
 +then
 +  CC="$NON_GNU_CC"
 +fi
 +
 +if test x$GCC = xyes; then
 +  test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
 +else
 +  test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
 +fi
 +
 +### Use -Wno-pointer-sign if the compiler supports it
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wno-pointer-sign" >&5
 +$as_echo_n "checking whether gcc understands -Wno-pointer-sign... " >&6; }
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wno-pointer-sign"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  has_option=yes
 +else
 +  has_option=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 +$as_echo "$has_option" >&6; }
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +### Use -Wdeclaration-after-statement if the compiler supports it
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wdeclaration-after-statement" >&5
 +$as_echo_n "checking whether gcc understands -Wdeclaration-after-statement... " >&6; }
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wdeclaration-after-statement"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  has_option=yes
 +else
 +  has_option=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 +$as_echo "$has_option" >&6; }
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +### Use -Wold-style-definition if the compiler supports it
 +# This can be removed when conversion to standard C is finished.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wold-style-definition" >&5
 +$as_echo_n "checking whether gcc understands -Wold-style-definition... " >&6; }
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wold-style-definition"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  has_option=yes
 +else
 +  has_option=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wold-style-definition $C_WARNINGS_SWITCH"
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 +$as_echo "$has_option" >&6; }
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +### Use -Wimplicit-function-declaration if the compiler supports it
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wimplicit-function-declaration" >&5
 +$as_echo_n "checking whether gcc understands -Wimplicit-function-declaration... " >&6; }
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wimplicit-function-declaration"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  has_option=yes
 +else
 +  has_option=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wimplicit-function-declaration $C_WARNINGS_SWITCH"
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 +$as_echo "$has_option" >&6; }
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +
 +
 +
 +#### Some other nice autoconf tests.
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 +$as_echo_n "checking how to run the C preprocessor... " >&6; }
 +# On Suns, sometimes $CPP names a directory.
 +if test -n "$CPP" && test -d "$CPP"; then
 +  CPP=
 +fi
 +if test -z "$CPP"; then
 +  if ${ac_cv_prog_CPP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +      # Double quotes because CPP needs to be expanded
 +    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
 +    do
 +      ac_preproc_ok=false
 +for ac_c_preproc_warn_flag in '' yes
  do
 -  # Extract the first word of "$ac_prog", so it can be a program name with args.
 -set dummy $ac_prog; ac_word=$2
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +  break
 +fi
 +
 +    done
 +    ac_cv_prog_CPP=$CPP
 +
 +fi
 +  CPP=$ac_cv_prog_CPP
 +else
 +  ac_cv_prog_CPP=$CPP
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 +$as_echo "$CPP" >&6; }
 +ac_preproc_ok=false
 +for ac_c_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +
 +else
 +  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +
 +
 +if test "x$RANLIB" = x; then
 +  if test -n "$ac_tool_prefix"; then
 +  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_prog_RANLIB+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  if test -n "$RANLIB"; then
 +  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +fi
 +fi
 +RANLIB=$ac_cv_prog_RANLIB
 +if test -n "$RANLIB"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 +$as_echo "$RANLIB" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +fi
 +if test -z "$ac_cv_prog_RANLIB"; then
 +  ac_ct_RANLIB=$RANLIB
 +  # Extract the first word of "ranlib", so it can be a program name with args.
 +set dummy ranlib; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
 +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test -n "$ac_ct_CC"; then
 -  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 +  if test -n "$ac_ct_RANLIB"; then
 +  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
  else
  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  for as_dir in $PATH
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_ac_ct_CC="$ac_prog"
 +    ac_cv_prog_ac_ct_RANLIB="ranlib"
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
@@@ -6244,17 -3655,21 +6244,17 @@@ IFS=$as_save_IF
  
  fi
  fi
 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
 -if test -n "$ac_ct_CC"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 -$as_echo "$ac_ct_CC" >&6; }
 +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 +if test -n "$ac_ct_RANLIB"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 +$as_echo "$ac_ct_RANLIB" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
 -
 -  test -n "$ac_ct_CC" && break
 -done
 -
 -  if test "x$ac_ct_CC" = x; then
 -    CC=""
 +  if test "x$ac_ct_RANLIB" = x; then
 +    RANLIB=":"
    else
      case $cross_compiling:$ac_tool_warned in
  yes:)
  $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
  ac_tool_warned=yes ;;
  esac
 -    CC=$ac_ct_CC
 +    RANLIB=$ac_ct_RANLIB
    fi
 +else
 +  RANLIB="$ac_cv_prog_RANLIB"
  fi
  
  fi
  
 +## Although we're running on an amd64 kernel, we're actually compiling for
 +## the x86 architecture.  The user should probably have provided an
 +## explicit --build to `configure', but if everything else than the kernel
 +## is running in i386 mode, we can help them out.
 +if test "$machine" = "amdx86-64"; then
 +  ac_fn_c_check_decl "$LINENO" "i386" "ac_cv_have_decl_i386" "$ac_includes_default"
 +if test "x$ac_cv_have_decl_i386" = xyes; then :
  
 -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "no acceptable C compiler found in \$PATH
 -See \`config.log' for more details" "$LINENO" 5; }
 +fi
  
 -# Provide some information about the compiler.
 -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 -set X $ac_compile
 -ac_compiler=$2
 -for ac_option in --version -v -V -qversion; do
 -  { { ac_try="$ac_compiler $ac_option >&5"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
 -  ac_status=$?
 -  if test -s conftest.err; then
 -    sed '10a\
 -... rest of stderr output deleted ...
 -         10q' conftest.err >conftest.er1
 -    cat conftest.er1 >&5
 +  if test "$ac_cv_have_decl_i386" = "yes"; then
 +    canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
 +    machine=intel386
 +    machfile="m/${machine}.h"
    fi
 -  rm -f conftest.er1 conftest.err
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }
 -done
 -
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 +fi
  
 -int
 -main ()
 -{
 +# Extract the first word of "install-info", so it can be a program name with args.
 +set dummy install-info; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_INSTALL_INFO+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $INSTALL_INFO in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -ac_clean_files_save=$ac_clean_files
 -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 -# Try to create an executable without -o first, disregard a.out.
 -# It will help us diagnose broken compilers, and finding out an intuition
 -# of exeext.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
 -$as_echo_n "checking whether the C compiler works... " >&6; }
 -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 +  ;;
 +esac
 +fi
 +INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 +if test -n "$INSTALL_INFO"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 +$as_echo "$INSTALL_INFO" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
  
 -# The possible output files:
 -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
  
 -ac_rmfiles=
 -for ac_file in $ac_files
 +# Extract the first word of "install-info", so it can be a program name with args.
 +set dummy install-info; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_INSTALL_INFO+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $INSTALL_INFO in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in /usr/sbin
  do
 -  case $ac_file in
 -    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
 -    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
 -  esac
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
  done
 -rm -f $ac_rmfiles
 +  done
 +IFS=$as_save_IFS
  
 -if { { ac_try="$ac_link_default"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 +  ;;
  esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_link_default") 2>&5
 -  ac_status=$?
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }; then :
 -  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 -# in a Makefile.  We should not override ac_cv_exeext if it was cached,
 -# so that the user can short-circuit this test for compilers unknown to
 -# Autoconf.
 -for ac_file in $ac_files ''
 +fi
 +INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 +if test -n "$INSTALL_INFO"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 +$as_echo "$INSTALL_INFO" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +# Extract the first word of "install-info", so it can be a program name with args.
 +set dummy install-info; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_INSTALL_INFO+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $INSTALL_INFO in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in /sbin
  do
 -  test -f "$ac_file" || continue
 -  case $ac_file in
 -    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
 -      ;;
 -    [ab].out )
 -      # We found the default executable, but exeext='' is most
 -      # certainly right.
 -      break;;
 -    *.* )
 -      if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
 -      then :; else
 -         ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 -      fi
 -      # We set ac_cv_exeext here because the later test for it is not
 -      # safe: cross compilers may not add the suffix if given an `-o'
 -      # argument, so we may need to know it at that point already.
 -      # Even if this section looks crufty: it has the advantage of
 -      # actually working.
 -      break;;
 -    * )
 -      break;;
 -  esac
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
  done
 -test "$ac_cv_exeext" = no && ac_cv_exeext=
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO=":"
 +  ;;
 +esac
 +fi
 +INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 +if test -n "$INSTALL_INFO"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 +$as_echo "$INSTALL_INFO" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
  
 +
 +# Extract the first word of "gzip", so it can be a program name with args.
 +set dummy gzip; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_GZIP_PROG+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  ac_file=''
 +  case $GZIP_PROG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_GZIP_PROG="$GZIP_PROG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_GZIP_PROG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  ;;
 +esac
  fi
 -if test -z "$ac_file"; then :
 +GZIP_PROG=$ac_cv_path_GZIP_PROG
 +if test -n "$GZIP_PROG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP_PROG" >&5
 +$as_echo "$GZIP_PROG" >&6; }
 +else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 -$as_echo "$as_me: failed program was:" >&5
 -sed 's/^/| /' conftest.$ac_ext >&5
 +fi
  
 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error 77 "C compiler cannot create executables
 -See \`config.log' for more details" "$LINENO" 5; }
 +
 +
 +
 +## Need makeinfo >= 4.6 (?) to build the manuals.
 +# Extract the first word of "makeinfo", so it can be a program name with args.
 +set dummy makeinfo; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_MAKEINFO+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 -$as_echo_n "checking for C compiler default output file name... " >&6; }
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
 -$as_echo "$ac_file" >&6; }
 -ac_exeext=$ac_cv_exeext
 +  case $MAKEINFO in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_MAKEINFO="$MAKEINFO" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_MAKEINFO="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 -ac_clean_files=$ac_clean_files_save
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 -$as_echo_n "checking for suffix of executables... " >&6; }
 -if { { ac_try="$ac_link"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 +  test -z "$ac_cv_path_MAKEINFO" && ac_cv_path_MAKEINFO="no"
 +  ;;
  esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_link") 2>&5
 -  ac_status=$?
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }; then :
 -  # If both `conftest.exe' and `conftest' are `present' (well, observable)
 -# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 -# work properly (i.e., refer to `conftest.exe'), while it won't with
 -# `rm'.
 -for ac_file in conftest.exe conftest conftest.*; do
 -  test -f "$ac_file" || continue
 -  case $ac_file in
 -    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
 -    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 -        break;;
 -    * ) break;;
 -  esac
 -done
 +fi
 +MAKEINFO=$ac_cv_path_MAKEINFO
 +if test -n "$MAKEINFO"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
 +$as_echo "$MAKEINFO" >&6; }
  else
 -  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "cannot compute suffix of executables: cannot compile and link
 -See \`config.log' for more details" "$LINENO" 5; }
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
 -rm -f conftest conftest$ac_cv_exeext
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 -$as_echo "$ac_cv_exeext" >&6; }
  
 -rm -f conftest.$ac_ext
 -EXEEXT=$ac_cv_exeext
 -ac_exeext=$EXEEXT
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <stdio.h>
 -int
 -main ()
 -{
 -FILE *f = fopen ("conftest.out", "w");
 - return ferror (f) || fclose (f) != 0;
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -ac_clean_files="$ac_clean_files conftest.out"
 -# Check that the compiler produces executables we can run.  If not, either
 -# the compiler is broken, or we cross compile.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
 -$as_echo_n "checking whether we are cross compiling... " >&6; }
 -if test "$cross_compiling" != yes; then
 -  { { ac_try="$ac_link"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_link") 2>&5
 -  ac_status=$?
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }
 -  if { ac_try='./conftest$ac_cv_exeext'
 -  { { case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_try") 2>&5
 -  ac_status=$?
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }; }; then
 -    cross_compiling=no
 -  else
 -    if test "$cross_compiling" = maybe; then
 -      cross_compiling=yes
 -    else
 -      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "cannot run C compiled programs.
 -If you meant to cross compile, use \`--host'.
 -See \`config.log' for more details" "$LINENO" 5; }
 -    fi
 +if test "$MAKEINFO" != "no" && \
 +  test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[6-9]|4\.[1-5][0-9]+)'`" = x; then
 +   MAKEINFO=no
 +fi
 +
 +## Makeinfo is unusual.  For a released Emacs, the manuals are
 +## pre-built, and not deleted by the normal clean rules.  makeinfo is
 +## therefore in the category of "special tools" not normally required, which
 +## configure does not have to check for (eg autoconf itself).
 +## In a Bazaar checkout on the other hand, the manuals are not included.
 +## So makeinfo is a requirement to build from Bazaar, and configure
 +## should test for it as it does for any other build requirement.
 +## We use the presence of $srcdir/info/emacs to distinguish a release,
 +## with pre-built manuals, from a Bazaar checkout.
 +HAVE_MAKEINFO=yes
 +
 +if test "$MAKEINFO" = "no"; then
 +  MAKEINFO=makeinfo
 +  if test "x${with_makeinfo}" = "xno"; then
 +    HAVE_MAKEINFO=no
 +  elif test ! -e $srcdir/info/emacs; then
 +    as_fn_error $? "You do not seem to have makeinfo >= 4.6, and your
 +source tree does not seem to have pre-built manuals in the \`info' directory.
 +Either install a suitable version of makeinfo, or re-run configure
 +with the \`--without-makeinfo' option to build without the manuals. " "$LINENO" 5
    fi
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 -$as_echo "$cross_compiling" >&6; }
  
 -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
 -ac_clean_files=$ac_clean_files_save
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 -$as_echo_n "checking for suffix of object files... " >&6; }
 -if test "${ac_cv_objext+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -int
 -main ()
 -{
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -rm -f conftest.o conftest.obj
 -if { { ac_try="$ac_compile"
 -case "(($ac_try" in
 -  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
 -  *) ac_try_echo=$ac_try;;
 -esac
 -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 -$as_echo "$ac_try_echo"; } >&5
 -  (eval "$ac_compile") 2>&5
 -  ac_status=$?
 -  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; }; then :
 -  for ac_file in conftest.o conftest.obj conftest.*; do
 -  test -f "$ac_file" || continue;
 -  case $ac_file in
 -    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
 -    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
 -       break;;
 -  esac
 -done
 +if test x$GCC = xyes; then
 +  test "x$GCC_LINK_TEST_OPTIONS" != x && \
 +    ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
  else
 -  $as_echo "$as_me: failed program was:" >&5
 -sed 's/^/| /' conftest.$ac_ext >&5
 -
 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "cannot compute suffix of object files: cannot compile
 -See \`config.log' for more details" "$LINENO" 5; }
 +  test "x$NON_GCC_LINK_TEST_OPTIONS" != x && \
 +    ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
  fi
 -rm -f conftest.$ac_cv_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 -$as_echo "$ac_cv_objext" >&6; }
 -OBJEXT=$ac_cv_objext
 -ac_objext=$OBJEXT
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
 -if test "${ac_cv_c_compiler_gnu+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 +
 +
 +late_LDFLAGS=$LDFLAGS
 +if test x$GCC = xyes; then
 +  LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  LDFLAGS="$LDFLAGS -znocombreloc"
 +fi
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -znocombreloc" >&5
 +$as_echo_n "checking for -znocombreloc... " >&6; }
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  int
  main ()
  {
 -#ifndef __GNUC__
 -       choke me
 -#endif
  
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_compiler_gnu=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
  else
 -  ac_compiler_gnu=no
 +  LDFLAGS=$late_LDFLAGS
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -ac_cv_c_compiler_gnu=$ac_compiler_gnu
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +
 +
 +# The value of CPP is a quoted variable reference, so we need to do this
 +# to get its actual value...
 +CPP=`eval "echo $CPP"`
 +
 +
 +test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
 +case "$opsys" in
 +  your-opsys-here) CANNOT_DUMP=yes ;;
 +esac
 +
 +test "$CANNOT_DUMP" = "yes" && \
 +
 +$as_echo "#define CANNOT_DUMP 1" >>confdefs.h
 +
 +
 +
 +
 +
 +UNEXEC_OBJ=unexelf.o
 +case "$opsys" in
 +  # MSDOS uses unexcoff.o
 +  # MSWindows uses unexw32.o
 +  aix4-2)
 +   UNEXEC_OBJ=unexaix.o
 +   ;;
 +  cygwin)
 +   UNEXEC_OBJ=unexcw.o
 +   ;;
 +  darwin)
 +   UNEXEC_OBJ=unexmacosx.o
 +   ;;
 +  hpux10-20 | hpux11)
 +   UNEXEC_OBJ=unexhp9k800.o
 +   ;;
 +  sol2-10)
 +   # Use the Solaris dldump() function, called from unexsol.c, to dump
 +   # emacs, instead of the generic ELF dump code found in unexelf.c.
 +   # The resulting binary has a complete symbol table, and is better
 +   # for debugging and other observability tools (debuggers, pstack, etc).
 +   #
 +   # If you encounter a problem using dldump(), please consider sending
 +   # a message to the OpenSolaris tools-linking mailing list:
 +   #      http://mail.opensolaris.org/mailman/listinfo/tools-linking
 +   #
 +   # It is likely that dldump() works with older Solaris too, but this has
 +   # not been tested, so for now this change is for Solaris 10 or newer.
 +   UNEXEC_OBJ=unexsol.o
 +   ;;
 +esac
 +
 +LD_SWITCH_SYSTEM=
 +case "$opsys" in
 +  freebsd)
 +   ## Let `ld' find image libs and similar things in /usr/local/lib.
 +   ## The system compiler, GCC, has apparently been modified to not
 +   ## look there, contrary to what a stock GCC would do.
 +   LD_SWITCH_SYSTEM=-L/usr/local/lib
 +   ;;
 +
 +  gnu-linux)
 +   ## cpp test was "ifdef __mips__", but presumably this is equivalent...
 +   case $host_cpu in mips*) LD_SWITCH_SYSTEM="-G 0";; esac
 +   ;;
 +
 +  netbsd)
 +   LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
 +   ;;
 +
 +  openbsd)
 +   ## Han Boetes <han@mijncomputer.nl> says this is necessary,
 +   ## otherwise Emacs dumps core on elf systems.
 +   LD_SWITCH_SYSTEM="-Z"
 +   ;;
 +esac
 +
 +
 +ac_link="$ac_link $LD_SWITCH_SYSTEM"
 +
 +## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_AUX,
 +## which has not been defined yet.  When this was handled with cpp,
 +## it was expanded to null when configure sourced the s/*.h file.
 +## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
 +## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
 +## (or somesuch), but because it is supposed to go at the _front_
 +## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
 +## Compare with the gnu-linux case below, which added to the end
 +## of LD_SWITCH_SYSTEM, and so can instead go at the front of
 +## LD_SWITCH_SYSTEM_TEMACS.
 +case "$opsys" in
 +  netbsd|openbsd)
 +   ## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
 +   LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
 +esac
 +
 +
 +C_SWITCH_MACHINE=
 +if test "$machine" = "alpha"; then
 +  ac_fn_c_check_decl "$LINENO" "__ELF__" "ac_cv_have_decl___ELF__" "$ac_includes_default"
 +if test "x$ac_cv_have_decl___ELF__" = xyes; then :
  
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 -$as_echo "$ac_cv_c_compiler_gnu" >&6; }
 -if test $ac_compiler_gnu = yes; then
 -  GCC=yes
 -else
 -  GCC=
 +
 +  if test "$ac_cv_have_decl___ELF__" = "yes"; then
 +    ## With ELF, make sure that all common symbols get allocated to in the
 +    ## data section.  Otherwise, the dump of temacs may miss variables in
 +    ## the shared library that have been initialized.  For example, with
 +    ## GNU libc, __malloc_initialized would normally be resolved to the
 +    ## shared library's .bss section, which is fatal.
 +    if test "x$GCC" = "xyes"; then
 +      C_SWITCH_MACHINE="-fno-common"
 +    else
 +      as_fn_error $? "What gives?  Fix me if DEC Unix supports ELF now." "$LINENO" 5
 +    fi
 +  else
 +    UNEXEC_OBJ=unexalpha.o
 +  fi
  fi
 -ac_test_CFLAGS=${CFLAGS+set}
 -ac_save_CFLAGS=$CFLAGS
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 -$as_echo_n "checking whether $CC accepts -g... " >&6; }
 -if test "${ac_cv_prog_cc_g+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_save_c_werror_flag=$ac_c_werror_flag
 -   ac_c_werror_flag=yes
 -   ac_cv_prog_cc_g=no
 -   CFLAGS="-g"
 -   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -int
 -main ()
 -{
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_prog_cc_g=yes
 +
 +
 +C_SWITCH_SYSTEM=
 +## Some programs in src produce warnings saying certain subprograms
 +## are too complex and need a MAXMEM value greater than 2000 for
 +## additional optimization.  --nils@exp-math.uni-essen.de
 +test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
 +  C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
 +## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
 +## It is redundant in glibc2, since we define _GNU_SOURCE.
 +
 +
 +
 +LIBS_SYSTEM=
 +case "$opsys" in
 +  ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
 +  aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
 +
 +  freebsd) LIBS_SYSTEM="-lutil" ;;
 +
 +  hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
 +
 +  sol2*) LIBS_SYSTEM="-lsocket -lnsl -lkstat" ;;
 +
 +  ## Motif needs -lgen.
 +  unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
 +esac
 +
 +
 +
 +### Make sure subsequent tests use flags consistent with the build flags.
 +
 +if test x"${OVERRIDE_CPPFLAGS}" != x; then
 +  CPPFLAGS="${OVERRIDE_CPPFLAGS}"
  else
 -  CFLAGS=""
 -      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 +  CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
 +fi
  
 -int
 -main ()
 -{
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
  
 +# Check whether --enable-largefile was given.
 +if test "${enable_largefile+set}" = set; then :
 +  enableval=$enable_largefile;
 +fi
 +
 +if test "$enable_largefile" != no; then
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 +$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
 +if ${ac_cv_sys_largefile_CC+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  ac_c_werror_flag=$ac_save_c_werror_flag
 -       CFLAGS="-g"
 +  ac_cv_sys_largefile_CC=no
 +     if test "$GCC" != yes; then
 +       ac_save_CC=$CC
 +       while :; do
 +       # IRIX 6.2 and later do not support large files by default,
 +       # so use the C compiler's -n32 option if that helps.
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 +#include <sys/types.h>
 + /* Check that off_t can represent 2**63 - 1 correctly.
 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 +    since some C++ compilers masquerading as C compilers
 +    incorrectly reject 9223372036854775807.  */
 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 +                     && LARGE_OFF_T % 2147483647 == 1)
 +                    ? 1 : -1];
  int
  main ()
  {
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_prog_cc_g=yes
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +       if ac_fn_c_try_compile "$LINENO"; then :
 +  break
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext
 +       CC="$CC -n32"
 +       if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_sys_largefile_CC=' -n32'; break
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -   ac_c_werror_flag=$ac_save_c_werror_flag
 +rm -f core conftest.err conftest.$ac_objext
 +       break
 +       done
 +       CC=$ac_save_CC
 +       rm -f conftest.$ac_ext
 +    fi
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 -$as_echo "$ac_cv_prog_cc_g" >&6; }
 -if test "$ac_test_CFLAGS" = set; then
 -  CFLAGS=$ac_save_CFLAGS
 -elif test $ac_cv_prog_cc_g = yes; then
 -  if test "$GCC" = yes; then
 -    CFLAGS="-g -O2"
 -  else
 -    CFLAGS="-g"
 -  fi
 -else
 -  if test "$GCC" = yes; then
 -    CFLAGS="-O2"
 -  else
 -    CFLAGS=
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
 +$as_echo "$ac_cv_sys_largefile_CC" >&6; }
 +  if test "$ac_cv_sys_largefile_CC" != no; then
 +    CC=$CC$ac_cv_sys_largefile_CC
    fi
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
 -if test "${ac_cv_prog_cc_c89+set}" = set; then :
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 +$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
 +if ${ac_cv_sys_file_offset_bits+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_cv_prog_cc_c89=no
 -ac_save_CC=$CC
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  while :; do
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <stdarg.h>
 -#include <stdio.h>
  #include <sys/types.h>
 -#include <sys/stat.h>
 -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 -struct buf { int x; };
 -FILE * (*rcsopen) (struct buf *, struct stat *, int);
 -static char *e (p, i)
 -     char **p;
 -     int i;
 -{
 -  return p[i];
 -}
 -static char *f (char * (*g) (char **, int), char **p, ...)
 + /* Check that off_t can represent 2**63 - 1 correctly.
 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 +    since some C++ compilers masquerading as C compilers
 +    incorrectly reject 9223372036854775807.  */
 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 +                     && LARGE_OFF_T % 2147483647 == 1)
 +                    ? 1 : -1];
 +int
 +main ()
  {
 -  char *s;
 -  va_list v;
 -  va_start (v,p);
 -  s = g (p, va_arg (v,int));
 -  va_end (v);
 -  return s;
 -}
 -
 -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
 -   function prototypes and stuff, but not '\xHH' hex character constants.
 -   These don't provoke an error unfortunately, instead are silently treated
 -   as 'x'.  The following induces an error, until -std is added to get
 -   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
 -   array size at least.  It's necessary to write '\x00'==0 to get something
 -   that's true only with -std.  */
 -int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 -
 -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
 -   inside strings and character constants.  */
 -#define FOO(x) 'x'
 -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
  
 -int test (int i, double x);
 -struct s1 {int (*f) (int a);};
 -struct s2 {int (*f) (double a);};
 -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
 -int argc;
 -char **argv;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_sys_file_offset_bits=no; break
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#define _FILE_OFFSET_BITS 64
 +#include <sys/types.h>
 + /* Check that off_t can represent 2**63 - 1 correctly.
 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 +    since some C++ compilers masquerading as C compilers
 +    incorrectly reject 9223372036854775807.  */
 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 +                     && LARGE_OFF_T % 2147483647 == 1)
 +                    ? 1 : -1];
  int
  main ()
  {
 -return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
 +
    ;
    return 0;
  }
  _ACEOF
 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 -      -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 -do
 -  CC="$ac_save_CC $ac_arg"
 -  if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_prog_cc_c89=$ac_arg
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_sys_file_offset_bits=64; break
  fi
 -rm -f core conftest.err conftest.$ac_objext
 -  test "x$ac_cv_prog_cc_c89" != "xno" && break
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  ac_cv_sys_file_offset_bits=unknown
 +  break
  done
 -rm -f conftest.$ac_ext
 -CC=$ac_save_CC
 -
  fi
 -# AC_CACHE_VAL
 -case "x$ac_cv_prog_cc_c89" in
 -  x)
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 -$as_echo "none needed" >&6; } ;;
 -  xno)
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 -$as_echo "unsupported" >&6; } ;;
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
 +$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
 +case $ac_cv_sys_file_offset_bits in #(
 +  no | unknown) ;;
    *)
 -    CC="$CC $ac_cv_prog_cc_c89"
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 +cat >>confdefs.h <<_ACEOF
 +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
 +_ACEOF
 +;;
  esac
 -if test "x$ac_cv_prog_cc_c89" != xno; then :
 -
 -fi
 -
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 -
 -
 -# On Suns, sometimes $CPP names a directory.
 -if test -n "$CPP" && test -d "$CPP"; then
 -  CPP=
 -fi
 -
 -## If not using gcc, and on Solaris, and no CPP specified, see if
 -## using a Sun compiler, which needs -Xs to prevent whitespace.
 -if test x"$GCC" != xyes && test x"$emacs_check_sunpro_c" = xyes && \
 - test x"$CPP" = x; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using a Sun C compiler" >&5
 -$as_echo_n "checking whether we are using a Sun C compiler... " >&6; }
 -
 -if test "${emacs_cv_sunpro_c+set}" = set; then :
 +rm -rf conftest*
 +  if test $ac_cv_sys_file_offset_bits = unknown; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 +$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
 +if ${ac_cv_sys_large_files+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 +  while :; do
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <sys/types.h>
 + /* Check that off_t can represent 2**63 - 1 correctly.
 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 +    since some C++ compilers masquerading as C compilers
 +    incorrectly reject 9223372036854775807.  */
 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 +                     && LARGE_OFF_T % 2147483647 == 1)
 +                    ? 1 : -1];
 +int
 +main ()
 +{
  
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_sys_large_files=no; break
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#define _LARGE_FILES 1
 +#include <sys/types.h>
 + /* Check that off_t can represent 2**63 - 1 correctly.
 +    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 +    since some C++ compilers masquerading as C compilers
 +    incorrectly reject 9223372036854775807.  */
 +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 +  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 +                     && LARGE_OFF_T % 2147483647 == 1)
 +                    ? 1 : -1];
  int
  main ()
  {
 -#ifndef __SUNPRO_C
 -fail;
 -#endif
  
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_sunpro_c=yes
 -else
 -  emacs_cv_sunpro_c=no
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_sys_large_files=1; break
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  ac_cv_sys_large_files=unknown
 +  break
 +done
  fi
 -
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_sunpro_c" >&5
 -$as_echo "$emacs_cv_sunpro_c" >&6; }
 -
 -  if test x"$emacs_cv_sunpro_c" = xyes; then
 -    NON_GNU_CPP="$CC -E -Xs"
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
 +$as_echo "$ac_cv_sys_large_files" >&6; }
 +case $ac_cv_sys_large_files in #(
 +  no | unknown) ;;
 +  *)
 +cat >>confdefs.h <<_ACEOF
 +#define _LARGE_FILES $ac_cv_sys_large_files
 +_ACEOF
 +;;
 +esac
 +rm -rf conftest*
    fi
  fi
  
 -#### Some systems specify a CPP to use unless we are using GCC.
 -#### Now that we know whether we are using GCC, we can decide whether
 -#### to use that one.
 -if test "x$NON_GNU_CPP" != x && test x$GCC != xyes && test "x$CPP" = x
 -then
 -  CPP="$NON_GNU_CPP"
 -fi
  
 -#### Some systems specify a CC to use unless we are using GCC.
 -#### Now that we know whether we are using GCC, we can decide whether
 -#### to use that one.
 -if test "x$NON_GNU_CC" != x && test x$GCC != xyes &&
 -  test x$cc_specified != xyes
 -then
 -  CC="$NON_GNU_CC"
 -fi
  
 -if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
 -then
 -  CC="$CC $GCC_TEST_OPTIONS"
 -fi
 +## If user specified a crt-dir, use that unconditionally.
 +if test "X$CRT_DIR" = "X"; then
  
 -if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
 -then
 -  CC="$CC $NON_GCC_TEST_OPTIONS"
 -fi
 +  case "$canonical" in
 +    x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
 +    ## On x86-64 and s390x GNU/Linux distributions, the standard library
 +    ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
 +    ## For anything else (eg /usr/lib32), it is up the user to specify
 +    ## the location (bug#5655).
 +    ## Test for crtn.o, not just the directory, because sometimes the
 +    ## directory exists but does not have the relevant files (bug#1287).
 +    ## FIXME better to test for binary compatibility somehow.
 +    test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
 +    ;;
  
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 -$as_echo_n "checking how to run the C preprocessor... " >&6; }
 -# On Suns, sometimes $CPP names a directory.
 -if test -n "$CPP" && test -d "$CPP"; then
 -  CPP=
 -fi
 -if test -z "$CPP"; then
 -  if test "${ac_cv_prog_CPP+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -      # Double quotes because CPP needs to be expanded
 -    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
 -    do
 -      ac_preproc_ok=false
 -for ac_c_preproc_warn_flag in '' yes
 -do
 -  # Use a header file that comes with gcc, so configuring glibc
 -  # with a fresh cross-compiler works.
 -  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 -  # <limits.h> exists even on freestanding compilers.
 -  # On the NeXT, cc -E runs the code through the compiler's parser,
 -  # not just through cpp. "Syntax error" is here to catch this case.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#ifdef __STDC__
 -# include <limits.h>
 -#else
 -# include <assert.h>
 -#endif
 -                   Syntax error
 -_ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 +    powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
 +  esac
  
 -else
 -  # Broken: fails on valid input.
 -continue
 -fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 +  case "$opsys" in
 +    hpux10-20) CRT_DIR=/lib ;;
 +  esac
 +
 +  ## Default is /usr/lib.
 +  test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
  
 -  # OK, works on sane cases.  Now check whether nonexistent headers
 -  # can be detected and how.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <ac_nonexistent.h>
 -_ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  # Broken: success on invalid input.
 -continue
  else
 -  # Passes both tests.
 -ac_preproc_ok=:
 -break
 +
 +  ## Some platforms don't use any of these files, so it is not
 +  ## appropriate to put this test outside the if block.
 +  test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
 +    as_fn_error $? "crt*.o not found in specified location." "$LINENO" 5
 +
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
  
 -done
 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.i conftest.err conftest.$ac_ext
 -if $ac_preproc_ok; then :
 -  break
 +
 +
 +LIB_MATH=-lm
 +LIB_STANDARD=
 +START_FILES=
 +
 +case $opsys in
 +  cygwin )
 +    LIB_MATH=
 +    START_FILES='pre-crt0.o'
 +    ;;
 +  darwin )
 +    ## Adding -lm confuses the dynamic linker, so omit it.
 +    LIB_MATH=
 +    START_FILES='pre-crt0.o'
 +    ;;
 +  freebsd )
 +    LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
 +    ;;
 +  gnu-linux | gnu-kfreebsd )
 +    LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
 +    ;;
 +  hpux10-20 | hpux11 )
 +    LIB_STANDARD=-lc
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
 +    ;;
 +  netbsd | openbsd )
 +    if test -f $CRT_DIR/crti.o; then
 +      LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
 +        START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
 +    else
 +      LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
 +      START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
 +    fi
 +    ;;
 +esac
 +
 +
 +
 +
 +
 +
 +
 +if test "${with_sound}" != "no"; then
 +  # Sound support for GNU/Linux and the free BSDs.
 +  for ac_header in machine/soundcard.h sys/soundcard.h soundcard.h
 +do :
 +  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +_ACEOF
 + have_sound_header=yes
  fi
  
 -    done
 -    ac_cv_prog_CPP=$CPP
 +done
  
 -fi
 -  CPP=$ac_cv_prog_CPP
 +  # Emulation library used on NetBSD.
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _oss_ioctl in -lossaudio" >&5
 +$as_echo_n "checking for _oss_ioctl in -lossaudio... " >&6; }
 +if ${ac_cv_lib_ossaudio__oss_ioctl+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  ac_cv_prog_CPP=$CPP
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 -$as_echo "$CPP" >&6; }
 -ac_preproc_ok=false
 -for ac_c_preproc_warn_flag in '' yes
 -do
 -  # Use a header file that comes with gcc, so configuring glibc
 -  # with a fresh cross-compiler works.
 -  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 -  # <limits.h> exists even on freestanding compilers.
 -  # On the NeXT, cc -E runs the code through the compiler's parser,
 -  # not just through cpp. "Syntax error" is here to catch this case.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lossaudio  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#ifdef __STDC__
 -# include <limits.h>
 -#else
 -# include <assert.h>
 +
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
  #endif
 -                   Syntax error
 +char _oss_ioctl ();
 +int
 +main ()
 +{
 +return _oss_ioctl ();
 +  ;
 +  return 0;
 +}
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_ossaudio__oss_ioctl=yes
  else
 -  # Broken: fails on valid input.
 -continue
 +  ac_cv_lib_ossaudio__oss_ioctl=no
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 -
 -  # OK, works on sane cases.  Now check whether nonexistent headers
 -  # can be detected and how.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <ac_nonexistent.h>
 -_ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  # Broken: success on invalid input.
 -continue
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ossaudio__oss_ioctl" >&5
 +$as_echo "$ac_cv_lib_ossaudio__oss_ioctl" >&6; }
 +if test "x$ac_cv_lib_ossaudio__oss_ioctl" = xyes; then :
 +  LIBSOUND=-lossaudio
  else
 -  # Passes both tests.
 -ac_preproc_ok=:
 -break
 +  LIBSOUND=
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
  
 -done
 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.i conftest.err conftest.$ac_ext
 -if $ac_preproc_ok; then :
  
 -else
 -  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 -See \`config.log' for more details" "$LINENO" 5; }
 -fi
  
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +  ALSA_REQUIRED=1.0.0
 +  ALSA_MODULES="alsa >= $ALSA_REQUIRED"
  
 +  succeeded=no
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
 -if test "${ac_cv_path_GREP+set}" = set; then :
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test -z "$GREP"; then
 -  ac_path_GREP_found=false
 -  # Loop through the user's path and test for each of PROGNAME-LIST
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 +for as_dir in $PATH
  do
    IFS=$as_save_IFS
    test -z "$as_dir" && as_dir=.
 -    for ac_prog in grep ggrep; do
      for ac_exec_ext in '' $ac_executable_extensions; do
 -      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
 -      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 -# Check for GNU ac_path_GREP and select it if it is found.
 -  # Check for GNU $ac_path_GREP
 -case `"$ac_path_GREP" --version 2>&1` in
 -*GNU*)
 -  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 -*)
 -  ac_count=0
 -  $as_echo_n 0123456789 >"conftest.in"
 -  while :
 -  do
 -    cat "conftest.in" "conftest.in" >"conftest.tmp"
 -    mv "conftest.tmp" "conftest.in"
 -    cp "conftest.in" "conftest.nl"
 -    $as_echo 'GREP' >> "conftest.nl"
 -    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 -    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 -    as_fn_arith $ac_count + 1 && ac_count=$as_val
 -    if test $ac_count -gt ${ac_path_GREP_max-0}; then
 -      # Best one so far, save it but keep looking for a better one
 -      ac_cv_path_GREP="$ac_path_GREP"
 -      ac_path_GREP_max=$ac_count
 -    fi
 -    # 10*(2^10) chars as input seems more than enough
 -    test $ac_count -gt 10 && break
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
    done
 -  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
  esac
 +fi
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  if test "$PKG_CONFIG" = "no" ; then
 +     HAVE_ALSA=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ALSA_MODULES" >&5
 +$as_echo_n "checking for $ALSA_MODULES... " >&6; }
 +
 +        if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_CFLAGS" >&5
 +$as_echo_n "checking ALSA_CFLAGS... " >&6; }
 +            ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
 +$as_echo "$ALSA_CFLAGS" >&6; }
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_LIBS" >&5
 +$as_echo_n "checking ALSA_LIBS... " >&6; }
 +            ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
 +$as_echo "$ALSA_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            ALSA_CFLAGS=""
 +            ALSA_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            ALSA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$ALSA_MODULES"`
 +
 +        fi
 +
 +
 +
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
 +
 +  if test $succeeded = yes; then
 +     HAVE_ALSA=yes
 +  else
 +     HAVE_ALSA=no
 +  fi
 +
 +  if test $HAVE_ALSA = yes; then
 +    SAVE_CFLAGS="$CFLAGS"
 +    SAVE_LDFLAGS="$LDFLAGS"
 +    CFLAGS="$ALSA_CFLAGS $CFLAGS"
 +    LDFLAGS="$ALSA_LIBS $LDFLAGS"
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <asoundlib.h>
 +int
 +main ()
 +{
 +snd_lib_error_set_handler (0);
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_alsa_normal=yes
 +else
 +  emacs_alsa_normal=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +    if test "$emacs_alsa_normal" != yes; then
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <alsa/asoundlib.h>
 +int
 +main ()
 +{
 +snd_lib_error_set_handler (0);
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_alsa_subdir=yes
 +else
 +  emacs_alsa_subdir=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +      if test "$emacs_alsa_subdir" != yes; then
 +        as_fn_error $? "pkg-config found alsa, but it does not compile.  See config.log for error messages." "$LINENO" 5
 +      fi
 +      ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
 +    fi
 +
 +    CFLAGS="$SAVE_CFLAGS"
 +    LDFLAGS="$SAVE_LDFLAGS"
 +    LIBSOUND="$LIBSOUND $ALSA_LIBS"
 +    CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
 +
 +$as_echo "#define HAVE_ALSA 1" >>confdefs.h
  
 -      $ac_path_GREP_found && break 3
 -    done
 -  done
 -  done
 -IFS=$as_save_IFS
 -  if test -z "$ac_cv_path_GREP"; then
 -    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
    fi
 -else
 -  ac_cv_path_GREP=$GREP
 +
 +        if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then
 +     case "$opsys" in
 +              gnu-linux|freebsd|netbsd)
 +
 +$as_echo "#define HAVE_SOUND 1" >>confdefs.h
 +
 +         ;;
 +     esac
 +  fi
 +
 +
  fi
  
 +for ac_header in sys/select.h sys/time.h unistd.h utime.h \
 +  linux/version.h sys/systeminfo.h limits.h \
 +  stdio_ext.h fcntl.h coff.h pty.h sys/mman.h \
 +  sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
 +  sys/utsname.h pwd.h utmp.h dirent.h util.h
 +do :
 +  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +_ACEOF
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 -$as_echo "$ac_cv_path_GREP" >&6; }
 - GREP="$ac_cv_path_GREP"
  
 +done
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 -$as_echo_n "checking for egrep... " >&6; }
 -if test "${ac_cv_path_EGREP+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
 -   then ac_cv_path_EGREP="$GREP -E"
 -   else
 -     if test -z "$EGREP"; then
 -  ac_path_EGREP_found=false
 -  # Loop through the user's path and test for each of PROGNAME-LIST
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_prog in egrep; do
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
 -      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 -# Check for GNU ac_path_EGREP and select it if it is found.
 -  # Check for GNU $ac_path_EGREP
 -case `"$ac_path_EGREP" --version 2>&1` in
 -*GNU*)
 -  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 -*)
 -  ac_count=0
 -  $as_echo_n 0123456789 >"conftest.in"
 -  while :
 -  do
 -    cat "conftest.in" "conftest.in" >"conftest.tmp"
 -    mv "conftest.tmp" "conftest.in"
 -    cp "conftest.in" "conftest.nl"
 -    $as_echo 'EGREP' >> "conftest.nl"
 -    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
 -    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
 -    as_fn_arith $ac_count + 1 && ac_count=$as_val
 -    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
 -      # Best one so far, save it but keep looking for a better one
 -      ac_cv_path_EGREP="$ac_path_EGREP"
 -      ac_path_EGREP_max=$ac_count
 -    fi
 -    # 10*(2^10) chars as input seems more than enough
 -    test $ac_count -gt 10 && break
 -  done
 -  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 -esac
  
 -      $ac_path_EGREP_found && break 3
 -    done
 -  done
 -  done
 -IFS=$as_save_IFS
 -  if test -z "$ac_cv_path_EGREP"; then
 -    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
 -  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if personality LINUX32 can be set" >&5
 +$as_echo_n "checking if personality LINUX32 can be set... " >&6; }
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/personality.h>
 +int
 +main ()
 +{
 +personality (PER_LINUX32)
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_personality_linux32=yes
  else
 -  ac_cv_path_EGREP=$EGREP
 +  emacs_cv_personality_linux32=no
  fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_personality_linux32" >&5
 +$as_echo "$emacs_cv_personality_linux32" >&6; }
 +
 +if test $emacs_cv_personality_linux32 = yes; then
 +
 +$as_echo "#define HAVE_PERSONALITY_LINUX32 1" >>confdefs.h
  
 -   fi
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 -$as_echo "$ac_cv_path_EGREP" >&6; }
 - EGREP="$ac_cv_path_EGREP"
  
 +for ac_header in term.h
 +do :
 +  ac_fn_c_check_header_preproc "$LINENO" "term.h" "ac_cv_header_term_h"
 +if test "x$ac_cv_header_term_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_TERM_H 1
 +_ACEOF
 +
 +fi
 +
 +done
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
  $as_echo_n "checking for ANSI C header files... " >&6; }
 -if test "${ac_cv_header_stdc+set}" = set; then :
 +if ${ac_cv_header_stdc+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -7395,1463 -4630,1209 +7395,1463 @@@ $as_echo "#define STDC_HEADERS 1" >>con
  
  fi
  
 -# On IRIX 5.3, sys/types and inttypes.h are conflicting.
 -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 -                inttypes.h stdint.h unistd.h
 -do :
 -  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 -"
 -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
 +if ${ac_cv_header_time+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h>
 +#include <sys/time.h>
 +#include <time.h>
 +
 +int
 +main ()
 +{
 +if ((struct tm *) 0)
 +return 0;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_header_time=yes
 +else
 +  ac_cv_header_time=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
 +$as_echo "$ac_cv_header_time" >&6; }
 +if test $ac_cv_header_time = yes; then
 +
 +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 +
 +fi
 +
 +ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default"
 +if test "x$ac_cv_have_decl_sys_siglist" = xyes; then :
 +  ac_have_decl=1
 +else
 +  ac_have_decl=0
 +fi
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_DECL_SYS_SIGLIST $ac_have_decl
 +_ACEOF
 +
 +if test $ac_cv_have_decl_sys_siglist != yes; then
 +  # For Tru64, at least:
 +  ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$ac_includes_default"
 +if test "x$ac_cv_have_decl___sys_siglist" = xyes; then :
 +  ac_have_decl=1
 +else
 +  ac_have_decl=0
 +fi
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_DECL___SYS_SIGLIST $ac_have_decl
 +_ACEOF
 +
 +  if test $ac_cv_have_decl___sys_siglist = yes; then
 +
 +$as_echo "#define sys_siglist __sys_siglist" >>confdefs.h
 +
 +  fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
 +$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
 +if ${ac_cv_header_sys_wait_h+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h>
 +#include <sys/wait.h>
 +#ifndef WEXITSTATUS
 +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
 +#endif
 +#ifndef WIFEXITED
 +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
 +#endif
 +
 +int
 +main ()
 +{
 +  int s;
 +  wait (&s);
 +  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_header_sys_wait_h=yes
 +else
 +  ac_cv_header_sys_wait_h=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
 +$as_echo "$ac_cv_header_sys_wait_h" >&6; }
 +if test $ac_cv_header_sys_wait_h = yes; then
 +
 +$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 +
 +fi
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
 +$as_echo_n "checking for struct utimbuf... " >&6; }
 +if ${emacs_cv_struct_utimbuf+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef TIME_WITH_SYS_TIME
 +#include <sys/time.h>
 +#include <time.h>
 +#else
 +#ifdef HAVE_SYS_TIME_H
 +#include <sys/time.h>
 +#else
 +#include <time.h>
 +#endif
 +#endif
 +#ifdef HAVE_UTIME_H
 +#include <utime.h>
 +#endif
 +int
 +main ()
 +{
 +static struct utimbuf x; x.actime = x.modtime;
 +  ;
 +  return 0;
 +}
  _ACEOF
 -
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_struct_utimbuf=yes
 +else
 +  emacs_cv_struct_utimbuf=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_utimbuf" >&5
 +$as_echo "$emacs_cv_struct_utimbuf" >&6; }
 +if test $emacs_cv_struct_utimbuf = yes; then
  
 -done
 +$as_echo "#define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
  
 +fi
  
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
 +$as_echo_n "checking return type of signal handlers... " >&6; }
 +if ${ac_cv_type_signal+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h>
 +#include <signal.h>
  
 -  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
 -if test "x$ac_cv_header_minix_config_h" = x""yes; then :
 -  MINIX=yes
 +int
 +main ()
 +{
 +return *(signal (0, 0)) (0) == 1;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_type_signal=int
  else
 -  MINIX=
 +  ac_cv_type_signal=void
  fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
 +$as_echo "$ac_cv_type_signal" >&6; }
  
 +cat >>confdefs.h <<_ACEOF
 +#define RETSIGTYPE $ac_cv_type_signal
 +_ACEOF
  
 -  if test "$MINIX" = yes; then
 -
 -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
 -
 -
 -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
 -
 -
 -$as_echo "#define _MINIX 1" >>confdefs.h
 -
 -  fi
  
  
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
 -if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for speed_t" >&5
 +$as_echo_n "checking for speed_t... " >&6; }
 +if ${emacs_cv_speed_t+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -#       define __EXTENSIONS__ 1
 -        $ac_includes_default
 +#include <termios.h>
  int
  main ()
  {
 -
 +speed_t x = 1;
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_safe_to_define___extensions__=yes
 +  emacs_cv_speed_t=yes
  else
 -  ac_cv_safe_to_define___extensions__=no
 +  emacs_cv_speed_t=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
 -  test $ac_cv_safe_to_define___extensions__ = yes &&
 -    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
 -
 -  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
 -
 -  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
 -
 -  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
 -
 -  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_speed_t" >&5
 +$as_echo "$emacs_cv_speed_t" >&6; }
 +if test $emacs_cv_speed_t = yes; then
  
 +$as_echo "#define HAVE_SPEED_T 1" >>confdefs.h
  
 +fi
  
 -### Use -Wno-pointer-sign if the compiler supports it
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wno-pointer-sign" >&5
 -$as_echo_n "checking whether gcc understands -Wno-pointer-sign... " >&6; }
 -SAVE_CFLAGS="$CFLAGS"
 -CFLAGS="$CFLAGS -Wno-pointer-sign"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
 +$as_echo_n "checking for struct timeval... " >&6; }
 +if ${emacs_cv_struct_timeval+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 +#ifdef TIME_WITH_SYS_TIME
 +#include <sys/time.h>
 +#include <time.h>
 +#else
 +#ifdef HAVE_SYS_TIME_H
 +#include <sys/time.h>
 +#else
 +#include <time.h>
 +#endif
 +#endif
  int
  main ()
  {
 -
 +static struct timeval x; x.tv_sec = x.tv_usec;
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_compile "$LINENO"; then :
 -  has_option=yes
 +  emacs_cv_struct_timeval=yes
  else
 -  has_option=no
 +  emacs_cv_struct_timeval=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -if test $has_option = yes; then
 -   C_WARNINGS_SWITCH="-Wno-pointer-sign $C_WARNINGS_SWITCH"
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 -$as_echo "$has_option" >&6; }
 -CFLAGS="$SAVE_CFLAGS"
 -unset has_option
 -unset SAVE_CFLAGS
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_timeval" >&5
 +$as_echo "$emacs_cv_struct_timeval" >&6; }
 +HAVE_TIMEVAL=$emacs_cv_struct_timeval
 +if test $emacs_cv_struct_timeval = yes; then
  
 -### Use -Wdeclaration-after-statement if the compiler supports it
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -Wdeclaration-after-statement" >&5
 -$as_echo_n "checking whether gcc understands -Wdeclaration-after-statement... " >&6; }
 -SAVE_CFLAGS="$CFLAGS"
 -CFLAGS="$CFLAGS -Wdeclaration-after-statement"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 +$as_echo "#define HAVE_TIMEVAL 1" >>confdefs.h
 +
 +fi
  
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct exception" >&5
 +$as_echo_n "checking for struct exception... " >&6; }
 +if ${emacs_cv_struct_exception+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <math.h>
  int
  main ()
  {
 -
 +static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_compile "$LINENO"; then :
 -  has_option=yes
 +  emacs_cv_struct_exception=yes
  else
 -  has_option=no
 +  emacs_cv_struct_exception=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -if test $has_option = yes; then
 -   C_WARNINGS_SWITCH="-Wdeclaration-after-statement $C_WARNINGS_SWITCH"
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_option" >&5
 -$as_echo "$has_option" >&6; }
 -CFLAGS="$SAVE_CFLAGS"
 -unset has_option
 -unset SAVE_CFLAGS
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_exception" >&5
 +$as_echo "$emacs_cv_struct_exception" >&6; }
 +HAVE_EXCEPTION=$emacs_cv_struct_exception
 +if test $emacs_cv_struct_exception != yes; then
  
 -#### Some other nice autoconf tests.
 +$as_echo "#define NO_MATHERR 1" >>confdefs.h
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 -$as_echo_n "checking whether ln -s works... " >&6; }
 -LN_S=$as_ln_s
 -if test "$LN_S" = "ln -s"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 -$as_echo "no, using $LN_S" >&6; }
  fi
  
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 -$as_echo_n "checking how to run the C preprocessor... " >&6; }
 -# On Suns, sometimes $CPP names a directory.
 -if test -n "$CPP" && test -d "$CPP"; then
 -  CPP=
 +for ac_header in sys/socket.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
 +if test "x$ac_cv_header_sys_socket_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_SYS_SOCKET_H 1
 +_ACEOF
 +
  fi
 -if test -z "$CPP"; then
 -  if test "${ac_cv_prog_CPP+set}" = set; then :
 +
 +done
 +
 +for ac_header in net/if.h
 +do :
 +  ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
 +#endif
 +"
 +if test "x$ac_cv_header_net_if_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_NET_IF_H 1
 +_ACEOF
 +
 +fi
 +
 +done
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 +$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 +if ${ac_cv_struct_tm+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -      # Double quotes because CPP needs to be expanded
 -    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
 -    do
 -      ac_preproc_ok=false
 -for ac_c_preproc_warn_flag in '' yes
 -do
 -  # Use a header file that comes with gcc, so configuring glibc
 -  # with a fresh cross-compiler works.
 -  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 -  # <limits.h> exists even on freestanding compilers.
 -  # On the NeXT, cc -E runs the code through the compiler's parser,
 -  # not just through cpp. "Syntax error" is here to catch this case.
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#ifdef __STDC__
 -# include <limits.h>
 -#else
 -# include <assert.h>
 -#endif
 -                   Syntax error
 +#include <sys/types.h>
 +#include <time.h>
 +
 +int
 +main ()
 +{
 +struct tm tm;
 +                                   int *p = &tm.tm_sec;
 +                                   return !p;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_struct_tm=time.h
 +else
 +  ac_cv_struct_tm=sys/time.h
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
 +$as_echo "$ac_cv_struct_tm" >&6; }
 +if test $ac_cv_struct_tm = sys/time.h; then
 +
 +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
 +
 +fi
 +
 +ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
 +#include <$ac_cv_struct_tm>
 +
 +"
 +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_TM_TM_ZONE 1
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 +
 +
 +fi
 +
 +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
 +
 +$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
  
  else
 -  # Broken: fails on valid input.
 -continue
 +  ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
 +"
 +if test "x$ac_cv_have_decl_tzname" = xyes; then :
 +  ac_have_decl=1
 +else
 +  ac_have_decl=0
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
  
 -  # OK, works on sane cases.  Now check whether nonexistent headers
 -  # can be detected and how.
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_DECL_TZNAME $ac_have_decl
 +_ACEOF
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
 +$as_echo_n "checking for tzname... " >&6; }
 +if ${ac_cv_var_tzname+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <ac_nonexistent.h>
 +#include <time.h>
 +#if !HAVE_DECL_TZNAME
 +extern char *tzname[];
 +#endif
 +
 +int
 +main ()
 +{
 +return tzname[0][0];
 +  ;
 +  return 0;
 +}
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  # Broken: success on invalid input.
 -continue
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_var_tzname=yes
  else
 -  # Passes both tests.
 -ac_preproc_ok=:
 -break
 +  ac_cv_var_tzname=no
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 -
 -done
 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.i conftest.err conftest.$ac_ext
 -if $ac_preproc_ok; then :
 -  break
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
 +$as_echo "$ac_cv_var_tzname" >&6; }
 +  if test $ac_cv_var_tzname = yes; then
  
 -    done
 -    ac_cv_prog_CPP=$CPP
 +$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
  
 +  fi
  fi
 -  CPP=$ac_cv_prog_CPP
 -else
 -  ac_cv_prog_CPP=$CPP
 +
 +ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
 +"
 +if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
 +
 +$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 -$as_echo "$CPP" >&6; }
 -ac_preproc_ok=false
 -for ac_c_preproc_warn_flag in '' yes
 -do
 -  # Use a header file that comes with gcc, so configuring glibc
 -  # with a fresh cross-compiler works.
 -  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 -  # <limits.h> exists even on freestanding compilers.
 -  # On the NeXT, cc -E runs the code through the compiler's parser,
 -  # not just through cpp. "Syntax error" is here to catch this case.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#ifdef __STDC__
 -# include <limits.h>
 -#else
 -# include <assert.h>
 +
 +ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_flags" "ac_cv_member_struct_ifreq_ifr_flags" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
  #endif
 -                   Syntax error
 +#if HAVE_NET_IF_H
 +#include <net/if.h>
 +#endif
 +"
 +if test "x$ac_cv_member_struct_ifreq_ifr_flags" = xyes; then :
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
  
 -else
 -  # Broken: fails on valid input.
 -continue
 +
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 +ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
 +#endif
 +#if HAVE_NET_IF_H
 +#include <net/if.h>
 +#endif
 +"
 +if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = xyes; then :
  
 -  # OK, works on sane cases.  Now check whether nonexistent headers
 -  # can be detected and how.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <ac_nonexistent.h>
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  # Broken: success on invalid input.
 -continue
 -else
 -  # Passes both tests.
 -ac_preproc_ok=:
 -break
 -fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
  
 -done
 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.i conftest.err conftest.$ac_ext
 -if $ac_preproc_ok; then :
  
 -else
 -  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 -See \`config.log' for more details" "$LINENO" 5; }
  fi
 +ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_netmask" "ac_cv_member_struct_ifreq_ifr_netmask" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
 +#endif
 +#if HAVE_NET_IF_H
 +#include <net/if.h>
 +#endif
 +"
 +if test "x$ac_cv_member_struct_ifreq_ifr_netmask" = xyes; then :
  
 -ac_ext=c
 -ac_cpp='$CPP $CPPFLAGS'
 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1
 +_ACEOF
  
 -# Find a good install program.  We prefer a C program (faster),
 -# so one script is as good as another.  But avoid the broken or
 -# incompatible versions:
 -# SysV /etc/install, /usr/sbin/install
 -# SunOS /usr/etc/install
 -# IRIX /sbin/install
 -# AIX /bin/install
 -# AmigaOS /C/install, which installs bootblocks on floppy discs
 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 -# OS/2's system install, which has a completely different semantic
 -# ./install, which can be erroneously created by make from ./install.sh.
 -# Reject install programs that cannot install multiple files.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 -$as_echo_n "checking for a BSD-compatible install... " >&6; }
 -if test -z "$INSTALL"; then
 -if test "${ac_cv_path_install+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    # Account for people who put trailing slashes in PATH elements.
 -case $as_dir/ in #((
 -  ./ | .// | /[cC]/* | \
 -  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
 -  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
 -  /usr/ucb/* ) ;;
 -  *)
 -    # OSF1 and SCO ODT 3.0 have their own names for install.
 -    # Don't use installbsd from OSF since it installs stuff as root
 -    # by default.
 -    for ac_prog in ginstall scoinst install; do
 -      for ac_exec_ext in '' $ac_executable_extensions; do
 -      if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 -        if test $ac_prog = install &&
 -          grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 -          # AIX install.  It has an incompatible calling convention.
 -          :
 -        elif test $ac_prog = install &&
 -          grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 -          # program-specific install script used by HP pwplus--don't use.
 -          :
 -        else
 -          rm -rf conftest.one conftest.two conftest.dir
 -          echo one > conftest.one
 -          echo two > conftest.two
 -          mkdir conftest.dir
 -          if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
 -            test -s conftest.one && test -s conftest.two &&
 -            test -s conftest.dir/conftest.one &&
 -            test -s conftest.dir/conftest.two
 -          then
 -            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
 -            break 3
 -          fi
 -        fi
 -      fi
 -      done
 -    done
 -    ;;
 -esac
  
 -  done
 -IFS=$as_save_IFS
 +fi
 +ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_broadaddr" "ac_cv_member_struct_ifreq_ifr_broadaddr" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
 +#endif
 +#if HAVE_NET_IF_H
 +#include <net/if.h>
 +#endif
 +"
 +if test "x$ac_cv_member_struct_ifreq_ifr_broadaddr" = xyes; then :
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1
 +_ACEOF
  
 -rm -rf conftest.one conftest.two conftest.dir
  
  fi
 -  if test "${ac_cv_path_install+set}" = set; then
 -    INSTALL=$ac_cv_path_install
 -  else
 -    # As a last resort, use the slow shell script.  Don't cache a
 -    # value for INSTALL within a source directory, because that will
 -    # break other packages using the cache if that directory is
 -    # removed, or if the value is a relative name.
 -    INSTALL=$ac_install_sh
 -  fi
 +ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_addr" "ac_cv_member_struct_ifreq_ifr_addr" "$ac_includes_default
 +#if HAVE_SYS_SOCKET_H
 +#include <sys/socket.h>
 +#endif
 +#if HAVE_NET_IF_H
 +#include <net/if.h>
 +#endif
 +"
 +if test "x$ac_cv_member_struct_ifreq_ifr_addr" = xyes; then :
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_IFREQ_IFR_ADDR 1
 +_ACEOF
 +
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 -$as_echo "$INSTALL" >&6; }
  
 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 -# It thinks the first close brace ends the variable substitution.
 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
  
 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
  
 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5
 +$as_echo_n "checking for function prototypes... " >&6; }
 +if test "$ac_cv_prog_cc_c89" != no; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
  
 -if test "x$RANLIB" = x; then
 -  if test -n "$ac_tool_prefix"; then
 -  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_RANLIB+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$RANLIB"; then
 -  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +$as_echo "#define PROTOTYPES 1" >>confdefs.h
 +
 +
 +$as_echo "#define __PROTOTYPES 1" >>confdefs.h
  
 -fi
 -fi
 -RANLIB=$ac_cv_prog_RANLIB
 -if test -n "$RANLIB"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 -$as_echo "$RANLIB" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
 -
 -fi
 -if test -z "$ac_cv_prog_RANLIB"; then
 -  ac_ct_RANLIB=$RANLIB
 -  # Extract the first word of "ranlib", so it can be a program name with args.
 -set dummy ranlib; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
 +$as_echo_n "checking for working volatile... " >&6; }
 +if ${ac_cv_c_volatile+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test -n "$ac_ct_RANLIB"; then
 -  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_ac_ct_RANLIB="ranlib"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -fi
 -fi
 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 -if test -n "$ac_ct_RANLIB"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 -$as_echo "$ac_ct_RANLIB" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -fi
 +int
 +main ()
 +{
  
 -  if test "x$ac_ct_RANLIB" = x; then
 -    RANLIB=":"
 -  else
 -    case $cross_compiling:$ac_tool_warned in
 -yes:)
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 -ac_tool_warned=yes ;;
 -esac
 -    RANLIB=$ac_ct_RANLIB
 -  fi
 +volatile int x;
 +int * volatile y = (int *) 0;
 +return !x && !y;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_volatile=yes
  else
 -  RANLIB="$ac_cv_prog_RANLIB"
 +  ac_cv_c_volatile=no
  fi
 -
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -# Extract the first word of "install-info", so it can be a program name with args.
 -set dummy install-info; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  case $INSTALL_INFO in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
 +$as_echo "$ac_cv_c_volatile" >&6; }
 +if test $ac_cv_c_volatile = no; then
  
 -  ;;
 -esac
 -fi
 -INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 -if test -n "$INSTALL_INFO"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 -$as_echo "$INSTALL_INFO" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -fi
 +$as_echo "#define volatile /**/" >>confdefs.h
  
 +fi
  
 -# Extract the first word of "install-info", so it can be a program name with args.
 -set dummy install-info; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
 +if ${ac_cv_c_const+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $INSTALL_INFO in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in /usr/sbin
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -  ;;
 -esac
 -fi
 -INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 -if test -n "$INSTALL_INFO"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 -$as_echo "$INSTALL_INFO" >&6; }
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +int
 +main ()
 +{
 +/* FIXME: Include the comments suggested by Paul. */
 +#ifndef __cplusplus
 +  /* Ultrix mips cc rejects this.  */
 +  typedef int charset[2];
 +  const charset cs;
 +  /* SunOS 4.1.1 cc rejects this.  */
 +  char const *const *pcpcc;
 +  char **ppc;
 +  /* NEC SVR4.0.2 mips cc rejects this.  */
 +  struct point {int x, y;};
 +  static struct point const zero = {0,0};
 +  /* AIX XL C 1.02.0.0 rejects this.
 +     It does not let you subtract one const X* pointer from another in
 +     an arm of an if-expression whose if-part is not a constant
 +     expression */
 +  const char *g = "string";
 +  pcpcc = &g + (g ? g-g : 0);
 +  /* HPUX 7.0 cc rejects these. */
 +  ++pcpcc;
 +  ppc = (char**) pcpcc;
 +  pcpcc = (char const *const *) ppc;
 +  { /* SCO 3.2v4 cc rejects this.  */
 +    char *t;
 +    char const *s = 0 ? (char *) 0 : (char const *) 0;
 +
 +    *t++ = 0;
 +    if (s) return 0;
 +  }
 +  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
 +    int x[] = {25, 17};
 +    const int *foo = &x[0];
 +    ++foo;
 +  }
 +  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
 +    typedef const int *iptr;
 +    iptr p = 0;
 +    ++p;
 +  }
 +  { /* AIX XL C 1.02.0.0 rejects this saying
 +       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
 +    struct s { int j; const int *ap[3]; };
 +    struct s *b; b->j = 5;
 +  }
 +  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
 +    const int foo = 10;
 +    if (!foo) return 0;
 +  }
 +  return !cs[0] && !zero.x;
 +#endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_const=yes
 +else
 +  ac_cv_c_const=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
 +$as_echo "$ac_cv_c_const" >&6; }
 +if test $ac_cv_c_const = no; then
 +
 +$as_echo "#define const /**/" >>confdefs.h
  
 +fi
  
 -# Extract the first word of "install-info", so it can be a program name with args.
 -set dummy install-info; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_INSTALL_INFO+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for void * support" >&5
 +$as_echo_n "checking for void * support... " >&6; }
 +if ${emacs_cv_void_star+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $INSTALL_INFO in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in /sbin
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -  test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO=":"
 -  ;;
 -esac
 -fi
 -INSTALL_INFO=$ac_cv_path_INSTALL_INFO
 -if test -n "$INSTALL_INFO"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL_INFO" >&5
 -$as_echo "$INSTALL_INFO" >&6; }
 +int
 +main ()
 +{
 +void * foo;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_void_star=yes
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  emacs_cv_void_star=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_void_star" >&5
 +$as_echo "$emacs_cv_void_star" >&6; }
 +if test $emacs_cv_void_star = yes; then
 +  $as_echo "#define POINTER_TYPE void" >>confdefs.h
  
 +else
 +  $as_echo "#define POINTER_TYPE char" >>confdefs.h
  
 -# Extract the first word of "gzip", so it can be a program name with args.
 -set dummy gzip; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_GZIP_PROG+set}" = set; then :
 +fi
 +
 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
 +if ${ac_cv_c_bigendian+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $GZIP_PROG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_GZIP_PROG="$GZIP_PROG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_GZIP_PROG="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  ac_cv_c_bigendian=unknown
 +    # See if we're dealing with a universal compiler.
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifndef __APPLE_CC__
 +             not a universal capable compiler
 +           #endif
 +           typedef int dummy;
  
 -  ;;
 -esac
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +
 +      # Check for potential -arch flags.  It is not universal unless
 +      # there are at least two -arch flags with different values.
 +      ac_arch=
 +      ac_prev=
 +      for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
 +       if test -n "$ac_prev"; then
 +         case $ac_word in
 +           i?86 | x86_64 | ppc | ppc64)
 +             if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
 +               ac_arch=$ac_word
 +             else
 +               ac_cv_c_bigendian=universal
 +               break
 +             fi
 +             ;;
 +         esac
 +         ac_prev=
 +       elif test "x$ac_word" = "x-arch"; then
 +         ac_prev=arch
 +       fi
 +       done
  fi
 -GZIP_PROG=$ac_cv_path_GZIP_PROG
 -if test -n "$GZIP_PROG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP_PROG" >&5
 -$as_echo "$GZIP_PROG" >&6; }
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +    if test $ac_cv_c_bigendian = unknown; then
 +      # See if sys/param.h defines the BYTE_ORDER macro.
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h>
 +           #include <sys/param.h>
 +
 +int
 +main ()
 +{
 +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
 +                   && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
 +                   && LITTLE_ENDIAN)
 +            bogus endian macros
 +           #endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  # It does; now see whether it defined to BIG_ENDIAN or not.
 +       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h>
 +              #include <sys/param.h>
 +
 +int
 +main ()
 +{
 +#if BYTE_ORDER != BIG_ENDIAN
 +               not big endian
 +              #endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_bigendian=yes
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  ac_cv_c_bigendian=no
  fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +    fi
 +    if test $ac_cv_c_bigendian = unknown; then
 +      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <limits.h>
  
 +int
 +main ()
 +{
 +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
 +            bogus endian macros
 +           #endif
  
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  # It does; now see whether it defined to _BIG_ENDIAN or not.
 +       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <limits.h>
  
 +int
 +main ()
 +{
 +#ifndef _BIG_ENDIAN
 +               not big endian
 +              #endif
  
 -## Need makeinfo >= 4.6 (?) to build the manuals.
 -# Extract the first word of "makeinfo", so it can be a program name with args.
 -set dummy makeinfo; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_MAKEINFO+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_bigendian=yes
  else
 -  case $MAKEINFO in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_MAKEINFO="$MAKEINFO" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_MAKEINFO="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  ac_cv_c_bigendian=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +    fi
 +    if test $ac_cv_c_bigendian = unknown; then
 +      # Compile a test program.
 +      if test "$cross_compiling" = yes; then :
 +  # Try to guess by grepping values from an object file.
 +       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +short int ascii_mm[] =
 +                { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
 +              short int ascii_ii[] =
 +                { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
 +              int use_ascii (int i) {
 +                return ascii_mm[i] + ascii_ii[i];
 +              }
 +              short int ebcdic_ii[] =
 +                { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
 +              short int ebcdic_mm[] =
 +                { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
 +              int use_ebcdic (int i) {
 +                return ebcdic_mm[i] + ebcdic_ii[i];
 +              }
 +              extern int foo;
  
 -  test -z "$ac_cv_path_MAKEINFO" && ac_cv_path_MAKEINFO="no"
 -  ;;
 -esac
 +int
 +main ()
 +{
 +return use_ascii (foo) == use_ebcdic (foo);
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
 +            ac_cv_c_bigendian=yes
 +          fi
 +          if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
 +            if test "$ac_cv_c_bigendian" = unknown; then
 +              ac_cv_c_bigendian=no
 +            else
 +              # finding both strings is unlikely to happen, but who knows?
 +              ac_cv_c_bigendian=unknown
 +            fi
 +          fi
  fi
 -MAKEINFO=$ac_cv_path_MAKEINFO
 -if test -n "$MAKEINFO"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKEINFO" >&5
 -$as_echo "$MAKEINFO" >&6; }
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -fi
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +$ac_includes_default
 +int
 +main ()
 +{
  
 +           /* Are we little or big endian?  From Harbison&Steele.  */
 +           union
 +           {
 +             long int l;
 +             char c[sizeof (long int)];
 +           } u;
 +           u.l = 1;
 +           return u.c[sizeof (long int) - 1] == 1;
  
 -if test "$MAKEINFO" != "no" && \
 -  test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[6-9]|4\.[1-5][0-9]+)'`" = x; then
 -   MAKEINFO=no
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_run "$LINENO"; then :
 +  ac_cv_c_bigendian=no
 +else
 +  ac_cv_c_bigendian=yes
 +fi
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
  
 -## Makeinfo is unusual.  For a released Emacs, the manuals are
 -## pre-built, and not deleted by the normal clean rules.  makeinfo is
 -## therefore in the category of "special tools" not normally required, which
 -## configure does not have to check for (eg autoconf itself).
 -## In a Bazaar checkout on the other hand, the manuals are not included.
 -## So makeinfo is a requirement to build from Bazaar, and configure
 -## should test for it as it does for any other build requirement.
 -## We use the presence of $srcdir/info/emacs to distinguish a release,
 -## with pre-built manuals, from a Bazaar checkout.
 -if test "$MAKEINFO" = "no"; then
 -  if test "x${with_makeinfo}" = "xno"; then
 -    MAKEINFO=off
 -  elif ! test -e $srcdir/info/emacs; then
 -    as_fn_error $? "You do not seem to have makeinfo >= 4.6, and your
 -source tree does not seem to have pre-built manuals in the \`info' directory.
 -Either install a suitable version of makeinfo, or re-run configure
 -with the \`--without-makeinfo' option to build without the manuals. " "$LINENO" 5
 -  fi
 +    fi
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
 +$as_echo "$ac_cv_c_bigendian" >&6; }
 + case $ac_cv_c_bigendian in #(
 +   yes)
 +     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
 +;; #(
 +   no)
 +      ;; #(
 +   universal)
  
 +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 +
 +     ;; #(
 +   *)
 +     as_fn_error $? "unknown endianness
 + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
 + esac
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for  __attribute__ ((__aligned__ (expr)))" >&5
 +$as_echo_n "checking for  __attribute__ ((__aligned__ (expr)))... " >&6; }
 +if ${emacs_cv_attribute_aligned+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +char __attribute__ ((__aligned__ (1 << 3))) c;
 +int
 +main ()
 +{
  
 -if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
 -then
 -  ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_attribute_aligned=yes
 +else
 +  emacs_cv_attribute_aligned=no
  fi
 -
 -if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
 -then
 -  ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_attribute_aligned" >&5
 +$as_echo "$emacs_cv_attribute_aligned" >&6; }
 +if test $emacs_cv_attribute_aligned = yes; then
  
 +$as_echo "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
  
 -late_LDFLAGS=$LDFLAGS
 -if test "$GCC" = yes; then
 -  LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
 -else
 -  LDFLAGS="$LDFLAGS -znocombreloc"
  fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -znocombreloc" >&5
 -$as_echo_n "checking for -znocombreloc... " >&6; }
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -main(){return 0;}
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 +set x ${MAKE-make}
 +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat >conftest.make <<\_ACEOF
 +SHELL = /bin/sh
 +all:
 +      @echo '@@@%%%=$(MAKE)=@@@%%%'
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 +case `${MAKE-make} -f conftest.make 2>/dev/null` in
 +  *@@@%%%=?*=@@@%%%*)
 +    eval ac_cv_prog_make_${ac_make}_set=yes;;
 +  *)
 +    eval ac_cv_prog_make_${ac_make}_set=no;;
 +esac
 +rm -f conftest.make
 +fi
 +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  $as_echo "yes" >&6; }
 +  SET_MAKE=
  else
 -  LDFLAGS=$late_LDFLAGS
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 +  SET_MAKE="MAKE=${MAKE-make}"
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -
 -#### Extract some information from the operating system and machine files.
 -
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the machine- and system-dependent files to find out
 - - which libraries the lib-src programs will want, and
 - - whether the GNU malloc routines are usable..." >&5
 -$as_echo "$as_me: checking the machine- and system-dependent files to find out
 - - which libraries the lib-src programs will want, and
 - - whether the GNU malloc routines are usable..." >&6;}
 -
 -### First figure out CFLAGS (which we use for running the compiler here)
 -### and REAL_CFLAGS (which we use for real compilation).
 -### The two are the same except on a few systems, where they are made
 -### different to work around various lossages.  For example,
 -### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
 -### as implying static linking.
 -
 -### If the CFLAGS env var is specified, we use that value
 -### instead of the default.
 -
 -### It's not important that this name contain the PID; you can't run
 -### two configures in the same directory and have anything work
 -### anyway.
 -tempcname="conftest.c"
 -
 -echo '
 -#include "'${srcdir}'/src/'${opsysfile}'"
 -#include "'${srcdir}'/src/'${machfile}'"
 -#ifndef LIBS_MACHINE
 -#define LIBS_MACHINE
 -#endif
 -#ifndef LIBS_SYSTEM
 -#define LIBS_SYSTEM
 -#endif
 -#ifndef C_SWITCH_SYSTEM
 -#define C_SWITCH_SYSTEM
 -#endif
 -#ifndef C_SWITCH_MACHINE
 -#define C_SWITCH_MACHINE
 -#endif
 -configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
 -configure___ c_switch_system=C_SWITCH_SYSTEM
 -configure___ c_switch_machine=C_SWITCH_MACHINE
 -
 -#ifndef LIB_X11_LIB
 -#define LIB_X11_LIB -lX11
 -#endif
 -
 -#ifndef LIBX11_SYSTEM
 -#define LIBX11_SYSTEM
 -#endif
 -configure___ LIBX=LIB_X11_LIB LIBX11_SYSTEM
 -
 -#ifdef UNEXEC
 -configure___ unexec=UNEXEC
 -#else
 -configure___ unexec=unexec.o
 -#endif
 -
 -#ifdef SYSTEM_MALLOC
 -configure___ system_malloc=yes
 -#else
 -configure___ system_malloc=no
 -#endif
 -
 -#ifdef USE_MMAP_FOR_BUFFERS
 -configure___ use_mmap_for_buffers=yes
 -#else
 -configure___ use_mmap_for_buffers=no
 -#endif
  
 -#ifndef C_DEBUG_SWITCH
 -#define C_DEBUG_SWITCH -g
 -#endif
 -
 -#ifndef C_OPTIMIZE_SWITCH
 -#ifdef __GNUC__
 -#define C_OPTIMIZE_SWITCH -O2
 -#else
 -#define C_OPTIMIZE_SWITCH -O
 -#endif
 -#endif
 -
 -#ifndef C_WARNINGS_SWITCH
 -#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
 -#endif
  
 -#ifndef LD_SWITCH_MACHINE
 -#define LD_SWITCH_MACHINE
 -#endif
 -
 -#ifndef LD_SWITCH_SYSTEM
 -#define LD_SWITCH_SYSTEM
 -#endif
 -
 -#ifndef LD_SWITCH_X_SITE_AUX
 -#define LD_SWITCH_X_SITE_AUX
 -#endif
 +DEPFLAGS=
 +MKDEPDIR=":"
 +deps_frag=deps.mk
 +if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
 +   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU Make" >&5
 +$as_echo_n "checking whether we are using GNU Make... " >&6; }
 +   HAVE_GNU_MAKE=no
 +   testval=`make --version 2>/dev/null | grep 'GNU Make'`
 +   if test "x$testval" != x; then
 +      HAVE_GNU_MAKE=yes
 +   else
 +      ac_enable_autodepend=no
 +   fi
 +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_GNU_MAKE" >&5
 +$as_echo "$HAVE_GNU_MAKE" >&6; }
 +   if test $HAVE_GNU_MAKE = yes; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -MMD -MF" >&5
 +$as_echo_n "checking whether gcc understands -MMD -MF... " >&6; }
 +      SAVE_CFLAGS="$CFLAGS"
 +      CFLAGS="$CFLAGS -MMD -MF deps.d"
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -configure___ ld_switch_system=LD_SWITCH_SYSTEM
 -configure___ ld_switch_machine=LD_SWITCH_MACHINE
 +int
 +main ()
 +{
  
 -#ifdef THIS_IS_CONFIGURE
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
  
 -/* Get the CFLAGS for tests in configure.  */
 -#ifdef __GNUC__
 -configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
 -#else
 -configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 -#endif
 +else
 +  ac_enable_autodepend=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +      CFLAGS="$SAVE_CFLAGS"
 +      test -f deps.d || ac_enable_autodepend=no
 +      rm -rf deps.d
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_autodepend" >&5
 +$as_echo "$ac_enable_autodepend" >&6; }
 +   fi
 +   if test $ac_enable_autodepend = yes; then
 +      DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
 +      ## In parallel builds, another make might create depdir between
 +      ## the first test and mkdir, so stick another test on the end.
 +      ## Or use mkinstalldirs?  mkdir -p is not portable.
 +      MKDEPDIR='test -d ${DEPDIR} || mkdir ${DEPDIR} || test -d ${DEPDIR}'
 +      deps_frag=autodeps.mk
 +   fi
 +fi
 +deps_frag=$srcdir/src/$deps_frag
  
 -#else /* not THIS_IS_CONFIGURE */
  
 -/* Get the CFLAGS for real compilation.  */
 -#ifdef __GNUC__
 -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
 -#else
 -configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 -#endif
  
 -#endif /* not THIS_IS_CONFIGURE */
 -' > ${tempcname}
  
 -LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
  
 -# The value of CPP is a quoted variable reference, so we need to do this
 -# to get its actual value...
 -CPP=`eval "echo $CPP"`
 -eval `${CPP} -Isrc ${tempcname} \
 -       | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 -if test "x$SPECIFIED_CFLAGS" = x; then
 -  eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
 -       | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
 +$as_echo_n "checking for long file names... " >&6; }
 +if ${ac_cv_sys_long_file_names+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  REAL_CFLAGS="$CFLAGS"
 +  ac_cv_sys_long_file_names=yes
 +# Test for long file names in all the places we know might matter:
 +#      .              the current directory, where building will happen
 +#      $prefix/lib    where we will be installing things
 +#      $exec_prefix/lib       likewise
 +#      $TMPDIR                if set, where it might want to write temporary files
 +#      /tmp           where it might want to write temporary files
 +#      /var/tmp               likewise
 +#      /usr/tmp               likewise
 +for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do
 +  # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib
 +  # in the usual case where exec_prefix is '${prefix}'.
 +  case $ac_dir in #(
 +    . | /* | ?:[\\/]*) ;; #(
 +    *) continue;;
 +  esac
 +  test -w "$ac_dir/." || continue # It is less confusing to not echo anything here.
 +  ac_xdir=$ac_dir/cf$$
 +  (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue
 +  ac_tf1=$ac_xdir/conftest9012345
 +  ac_tf2=$ac_xdir/conftest9012346
 +  touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" ||
 +    ac_cv_sys_long_file_names=no
 +  rm -f -r "$ac_xdir" 2>/dev/null
 +  test $ac_cv_sys_long_file_names = no && break
 +done
  fi
 -rm ${tempcname}
 -
 -ac_link="$ac_link $ld_switch_machine $ld_switch_system"
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_long_file_names" >&5
 +$as_echo "$ac_cv_sys_long_file_names" >&6; }
 +if test $ac_cv_sys_long_file_names = yes; then
  
 -### Make sure subsequent tests use flags consistent with the build flags.
 +$as_echo "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
  
 -if test x"${OVERRIDE_CPPFLAGS}" != x; then
 -  CPPFLAGS="${OVERRIDE_CPPFLAGS}"
 -else
 -  CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
  fi
  
  
 +#### Choose a window system.
  
 -# Check whether --enable-largefile was given.
 -if test "${enable_largefile+set}" = set; then :
 -  enableval=$enable_largefile;
 -fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
 +$as_echo_n "checking for X... " >&6; }
  
 -if test "$enable_largefile" != no; then
  
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 -$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
 -if test "${ac_cv_sys_largefile_CC+set}" = set; then :
 +# Check whether --with-x was given.
 +if test "${with_x+set}" = set; then :
 +  withval=$with_x;
 +fi
 +
 +# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
 +if test "x$with_x" = xno; then
 +  # The user explicitly disabled X.
 +  have_x=disabled
 +else
 +  case $x_includes,$x_libraries in #(
 +    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
 +    *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_cv_sys_largefile_CC=no
 -     if test "$GCC" != yes; then
 -       ac_save_CC=$CC
 -       while :; do
 -       # IRIX 6.2 and later do not support large files by default,
 -       # so use the C compiler's -n32 option if that helps.
 -       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <sys/types.h>
 - /* Check that off_t can represent 2**63 - 1 correctly.
 -    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 -    since some C++ compilers masquerading as C compilers
 -    incorrectly reject 9223372036854775807.  */
 -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 -  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 -                     && LARGE_OFF_T % 2147483647 == 1)
 -                    ? 1 : -1];
 -int
 -main ()
 -{
 -
 -  ;
 -  return 0;
 -}
 +  # One or both of the vars are not set, and there is no cached value.
 +ac_x_includes=no ac_x_libraries=no
 +rm -f -r conftest.dir
 +if mkdir conftest.dir; then
 +  cd conftest.dir
 +  cat >Imakefile <<'_ACEOF'
 +incroot:
 +      @echo incroot='${INCROOT}'
 +usrlibdir:
 +      @echo usrlibdir='${USRLIBDIR}'
 +libdir:
 +      @echo libdir='${LIBDIR}'
  _ACEOF
 -       if ac_fn_c_try_compile "$LINENO"; then :
 -  break
 -fi
 -rm -f core conftest.err conftest.$ac_objext
 -       CC="$CC -n32"
 -       if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_sys_largefile_CC=' -n32'; break
 -fi
 -rm -f core conftest.err conftest.$ac_objext
 -       break
 -       done
 -       CC=$ac_save_CC
 -       rm -f conftest.$ac_ext
 -    fi
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
 -$as_echo "$ac_cv_sys_largefile_CC" >&6; }
 -  if test "$ac_cv_sys_largefile_CC" != no; then
 -    CC=$CC$ac_cv_sys_largefile_CC
 +  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
 +    # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 +    for ac_var in incroot usrlibdir libdir; do
 +      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
 +    done
 +    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
 +    for ac_extension in a so sl dylib la dll; do
 +      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
 +       test -f "$ac_im_libdir/libX11.$ac_extension"; then
 +      ac_im_usrlibdir=$ac_im_libdir; break
 +      fi
 +    done
 +    # Screen out bogus values from the imake configuration.  They are
 +    # bogus both because they are the default anyway, and because
 +    # using them would break gcc on systems where it needs fixed includes.
 +    case $ac_im_incroot in
 +      /usr/include) ac_x_includes= ;;
 +      *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
 +    esac
 +    case $ac_im_usrlibdir in
 +      /usr/lib | /usr/lib64 | /lib | /lib64) ;;
 +      *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
 +    esac
    fi
 +  cd ..
 +  rm -f -r conftest.dir
 +fi
  
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 -$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  while :; do
 +# Standard set of common directories for X headers.
 +# Check X11 before X11Rn because it is often a symlink to the current release.
 +ac_x_header_dirs='
 +/usr/X11/include
 +/usr/X11R7/include
 +/usr/X11R6/include
 +/usr/X11R5/include
 +/usr/X11R4/include
 +
 +/usr/include/X11
 +/usr/include/X11R7
 +/usr/include/X11R6
 +/usr/include/X11R5
 +/usr/include/X11R4
 +
 +/usr/local/X11/include
 +/usr/local/X11R7/include
 +/usr/local/X11R6/include
 +/usr/local/X11R5/include
 +/usr/local/X11R4/include
 +
 +/usr/local/include/X11
 +/usr/local/include/X11R7
 +/usr/local/include/X11R6
 +/usr/local/include/X11R5
 +/usr/local/include/X11R4
 +
 +/usr/X386/include
 +/usr/x386/include
 +/usr/XFree86/include/X11
 +
 +/usr/include
 +/usr/local/include
 +/usr/unsupported/include
 +/usr/athena/include
 +/usr/local/x11r5/include
 +/usr/lpp/Xamples/include
 +
 +/usr/openwin/include
 +/usr/openwin/share/include'
 +
 +if test "$ac_x_includes" = no; then
 +  # Guess where to find include files, by looking for Xlib.h.
 +  # First, try using that file with no special directory specified.
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <sys/types.h>
 - /* Check that off_t can represent 2**63 - 1 correctly.
 -    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 -    since some C++ compilers masquerading as C compilers
 -    incorrectly reject 9223372036854775807.  */
 -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 -  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 -                     && LARGE_OFF_T % 2147483647 == 1)
 -                    ? 1 : -1];
 -int
 -main ()
 -{
 -
 -  ;
 -  return 0;
 -}
 +#include <X11/Xlib.h>
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_sys_file_offset_bits=no; break
 +if ac_fn_c_try_cpp "$LINENO"; then :
 +  # We can compile using X headers with no special include directory.
 +ac_x_includes=
 +else
 +  for ac_dir in $ac_x_header_dirs; do
 +  if test -r "$ac_dir/X11/Xlib.h"; then
 +    ac_x_includes=$ac_dir
 +    break
 +  fi
 +done
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +fi # $ac_x_includes = no
 +
 +if test "$ac_x_libraries" = no; then
 +  # Check for the libraries.
 +  # See if we find them without any special options.
 +  # Don't add to $LIBS permanently.
 +  ac_save_LIBS=$LIBS
 +  LIBS="-lX11 $LIBS"
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#define _FILE_OFFSET_BITS 64
 -#include <sys/types.h>
 - /* Check that off_t can represent 2**63 - 1 correctly.
 -    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 -    since some C++ compilers masquerading as C compilers
 -    incorrectly reject 9223372036854775807.  */
 -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 -  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 -                     && LARGE_OFF_T % 2147483647 == 1)
 -                    ? 1 : -1];
 +#include <X11/Xlib.h>
  int
  main ()
  {
 -
 +XrmInitialize ()
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_sys_file_offset_bits=64; break
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -  ac_cv_sys_file_offset_bits=unknown
 -  break
 +if ac_fn_c_try_link "$LINENO"; then :
 +  LIBS=$ac_save_LIBS
 +# We can link X programs with no special library path.
 +ac_x_libraries=
 +else
 +  LIBS=$ac_save_LIBS
 +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
 +do
 +  # Don't even attempt the hair of trying to link an X program!
 +  for ac_extension in a so sl dylib la dll; do
 +    if test -r "$ac_dir/libX11.$ac_extension"; then
 +      ac_x_libraries=$ac_dir
 +      break 2
 +    fi
 +  done
  done
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
 -$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
 -case $ac_cv_sys_file_offset_bits in #(
 -  no | unknown) ;;
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi # $ac_x_libraries = no
 +
 +case $ac_x_includes,$ac_x_libraries in #(
 +  no,* | *,no | *\'*)
 +    # Didn't find X, or a directory has "'" in its name.
 +    ac_cv_have_x="have_x=no";; #(
    *)
 -cat >>confdefs.h <<_ACEOF
 -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
 -_ACEOF
 -;;
 +    # Record where we found X for the cache.
 +    ac_cv_have_x="have_x=yes\
 +      ac_x_includes='$ac_x_includes'\
 +      ac_x_libraries='$ac_x_libraries'"
  esac
 -rm -rf conftest*
 -  if test $ac_cv_sys_file_offset_bits = unknown; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 -$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
 -if test "${ac_cv_sys_large_files+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  while :; do
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <sys/types.h>
 - /* Check that off_t can represent 2**63 - 1 correctly.
 -    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 -    since some C++ compilers masquerading as C compilers
 -    incorrectly reject 9223372036854775807.  */
 -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 -  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 -                     && LARGE_OFF_T % 2147483647 == 1)
 -                    ? 1 : -1];
 -int
 -main ()
 -{
 +fi
 +;; #(
 +    *) have_x=yes;;
 +  esac
 +  eval "$ac_cv_have_x"
 +fi # $with_x != no
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_sys_large_files=no; break
 +if test "$have_x" != yes; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
 +$as_echo "$have_x" >&6; }
 +  no_x=yes
 +else
 +  # If each of the values was on the command line, it overrides each guess.
 +  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
 +  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
 +  # Update the cache value to reflect the command line values.
 +  ac_cv_have_x="have_x=yes\
 +      ac_x_includes='$x_includes'\
 +      ac_x_libraries='$x_libraries'"
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#define _LARGE_FILES 1
 -#include <sys/types.h>
 - /* Check that off_t can represent 2**63 - 1 correctly.
 -    We can't simply define LARGE_OFF_T to be 9223372036854775807,
 -    since some C++ compilers masquerading as C compilers
 -    incorrectly reject 9223372036854775807.  */
 -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
 -  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 -                     && LARGE_OFF_T % 2147483647 == 1)
 -                    ? 1 : -1];
 -int
 -main ()
 -{
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_sys_large_files=1; break
 +if test "$no_x" = yes; then
 +  window_system=none
 +else
 +  window_system=x11
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -  ac_cv_sys_large_files=unknown
 -  break
 -done
 +
 +## Workaround for bug in autoconf <= 2.62.
 +## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
 +## No need to do anything special for these standard directories.
 +if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
 +
 +   x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
 -$as_echo "$ac_cv_sys_large_files" >&6; }
 -case $ac_cv_sys_large_files in #(
 -  no | unknown) ;;
 -  *)
 -cat >>confdefs.h <<_ACEOF
 -#define _LARGE_FILES $ac_cv_sys_large_files
 -_ACEOF
 -;;
 -esac
 -rm -rf conftest*
 +
 +LD_SWITCH_X_SITE_AUX=
 +LD_SWITCH_X_SITE_AUX_RPATH=
 +if test "${x_libraries}" != NONE; then
 +  if test -n "${x_libraries}"; then
 +    LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
 +    LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
 +    LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
 +  fi
 +  x_default_search_path=""
 +  x_search_path=${x_libraries}
 +  if test -z "${x_search_path}"; then
 +    x_search_path=/usr/lib
    fi
 +  for x_library in `echo ${x_search_path}: | \
 +                  sed -e "s/:/ /g" -e p -e "s:/lib[^ /]* :/share :g"`; do
 +    x_search_path="\
 +${x_library}/X11/%L/%T/%N%C%S:\
 +${x_library}/X11/%l/%T/%N%C%S:\
 +${x_library}/X11/%T/%N%C%S:\
 +${x_library}/X11/%L/%T/%N%S:\
 +${x_library}/X11/%l/%T/%N%S:\
 +${x_library}/X11/%T/%N%S"
 +    if test x"${x_default_search_path}" = x; then
 +      x_default_search_path=${x_search_path}
 +    else
 +      x_default_search_path="${x_search_path}:${x_default_search_path}"
 +    fi
 +  done
  fi
  
  
 -## Note: at present CRT_DIR is only used for amdx86-64 and ibms390x.
 -## Other machine types hard-code the location in src/[ms]/*.h.
 -case "${canonical}" in
 -  x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
 -   ## On x86-64 and s390x GNU/Linux distributions, the standard library
 -   ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
 -   ## For anything else (eg /usr/lib32), it is up the user to specify
 -   ## the location (bug#5655).
 -   ## Test for crtn.o, not just the directory, because sometimes the
 -   ## directory exists but does not have the relevant files (bug#1287).
 -   ## If user specified a crt-dir, use that unconditionally.
 -   if test "X$CRT_DIR" = "X"; then
 -     CRT_DIR=/usr/lib
 -     test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
 -   fi
 -
 -   test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
 -     as_fn_error $? "crt*.o not found.  Use --with-crt-dir to specify the location." "$LINENO" 5
 -   ;;
 -esac
 -test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
 -
 -
 -
  
 +if test "${x_includes}" != NONE && test -n "${x_includes}"; then
 +  C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
 +fi
  
 -if test "${with_sound}" != "no"; then
 -  # Sound support for GNU/Linux and the free BSDs.
 -  for ac_header in machine/soundcard.h sys/soundcard.h soundcard.h
 -do :
 -  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 -_ACEOF
 +if test x"${x_includes}" = x; then
 +  bitmapdir=/usr/include/X11/bitmaps
 +else
 +  # accumulate include directories that have X11 bitmap subdirectories
 +  bmd_acc="dummyval"
 +  for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
 +    if test -d "${bmd}/X11/bitmaps"; then
 +      bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
 +    fi
 +    if test -d "${bmd}/bitmaps"; then
 +      bmd_acc="${bmd_acc}:${bmd}/bitmaps"
 +    fi
 +  done
 +  if test ${bmd_acc} != "dummyval"; then
 +    bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
 +  fi
 +fi
  
 +HAVE_NS=no
 +NS_IMPL_COCOA=no
 +NS_IMPL_GNUSTEP=no
 +tmp_CPPFLAGS="$CPPFLAGS"
 +tmp_CFLAGS="$CFLAGS"
 +CPPFLAGS="$CPPFLAGS -x objective-c"
 +CFLAGS="$CFLAGS -x objective-c"
 +TEMACS_LDFLAGS2="\${LDFLAGS}"
 +if test "${with_ns}" != no; then
 +  if test "${opsys}" = darwin; then
 +     NS_IMPL_COCOA=yes
 +     ns_appdir=`pwd`/nextstep/Emacs.app
 +     ns_appbindir=${ns_appdir}/Contents/MacOS/
 +     ns_appresdir=${ns_appdir}/Contents/Resources
 +     ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
 +  elif test -f $GNUSTEP_CONFIG_FILE; then
 +     NS_IMPL_GNUSTEP=yes
 +     ns_appdir=`pwd`/nextstep/Emacs.app
 +     ns_appbindir=${ns_appdir}/
 +     ns_appresdir=${ns_appdir}/Resources
 +     ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
 +          GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
 +     GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
 +          GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
 +     GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
 +     test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
 +       GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
 +     test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
 +       GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
 +     CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
 +     CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
 +     LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
 +     LIB_STANDARD=
 +     START_FILES=
 +     TEMACS_LDFLAGS2=
 +  fi
 +  ac_fn_c_check_header_mongrel "$LINENO" "AppKit/AppKit.h" "ac_cv_header_AppKit_AppKit_h" "$ac_includes_default"
 +if test "x$ac_cv_header_AppKit_AppKit_h" = xyes; then :
 +  HAVE_NS=yes
 +else
 +  as_fn_error $? "\`--with-ns' was specified, but the include
 +  files are missing or cannot be compiled." "$LINENO" 5
  fi
  
 -done
  
 -  # Emulation library used on NetBSD.
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _oss_ioctl in -lossaudio" >&5
 -$as_echo_n "checking for _oss_ioctl in -lossaudio... " >&6; }
 -if test "${ac_cv_lib_ossaudio__oss_ioctl+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lossaudio  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  NS_HAVE_NSINTEGER=yes
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char _oss_ioctl ();
 +#include <Foundation/NSObjCRuntime.h>
  int
  main ()
  {
 -return _oss_ioctl ();
 +NSInteger i;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_ossaudio__oss_ioctl=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ns_have_nsinteger=yes
  else
 -  ac_cv_lib_ossaudio__oss_ioctl=no
 +  ns_have_nsinteger=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  if test $ns_have_nsinteger = no; then
 +    NS_HAVE_NSINTEGER=no
 +  fi
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ossaudio__oss_ioctl" >&5
 -$as_echo "$ac_cv_lib_ossaudio__oss_ioctl" >&6; }
 -if test "x$ac_cv_lib_ossaudio__oss_ioctl" = x""yes; then :
 -  LIBSOUND=-lossaudio
 -else
 -  LIBSOUND=
 +
 +
 +ns_frag=/dev/null
 +NS_OBJ=
 +NS_SUPPORT=
 +if test "${HAVE_NS}" = yes; then
 +  window_system=nextstep
 +  with_xft=no
 +  # set up packaging dirs
 +  exec_prefix=${ns_appbindir}
 +  libexecdir=${ns_appbindir}/libexec
 +  if test "${EN_NS_SELF_CONTAINED}" = yes; then
 +     prefix=${ns_appresdir}
 +  fi
 +  ns_frag=$srcdir/src/ns.mk
 +  NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
 +  NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
  fi
 +CFLAGS="$tmp_CFLAGS"
 +CPPFLAGS="$tmp_CPPFLAGS"
  
  
  
 -  ALSA_REQUIRED=1.0.0
 -  ALSA_MODULES="alsa >= $ALSA_REQUIRED"
  
 -  succeeded=no
  
 -  # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 +case "${window_system}" in
 +  x11 )
 +    HAVE_X_WINDOWS=yes
 +    HAVE_X11=yes
 +    case "${with_x_toolkit}" in
 +      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
 +      motif ) USE_X_TOOLKIT=MOTIF ;;
 +      gtk ) with_gtk=yes
 +            USE_X_TOOLKIT=none ;;
 +      gtk3 ) with_gtk3=yes
 +             USE_X_TOOLKIT=none ;;
 +      no ) USE_X_TOOLKIT=none ;;
 +      * ) USE_X_TOOLKIT=maybe ;;
 +    esac
 +  ;;
 +  nextstep | none )
 +    HAVE_X_WINDOWS=no
 +    HAVE_X11=no
 +    USE_X_TOOLKIT=none
 +  ;;
 +esac
 +
 +if test "$window_system" = none && test "X$with_x" != "Xno"; then
 +   # Extract the first word of "X", so it can be a program name with args.
 +set dummy X; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_prog_HAVE_XSERVER+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +  if test -n "$HAVE_XSERVER"; then
 +  ac_cv_prog_HAVE_XSERVER="$HAVE_XSERVER" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  for as_dir in $PATH
  do
    IFS=$as_save_IFS
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    ac_cv_prog_HAVE_XSERVER="true"
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
    done
  IFS=$as_save_IFS
  
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 -esac
 +  test -z "$ac_cv_prog_HAVE_XSERVER" && ac_cv_prog_HAVE_XSERVER="false"
  fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 -$as_echo "$PKG_CONFIG" >&6; }
 +fi
 +HAVE_XSERVER=$ac_cv_prog_HAVE_XSERVER
 +if test -n "$HAVE_XSERVER"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_XSERVER" >&5
 +$as_echo "$HAVE_XSERVER" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
  
 +   if test "$HAVE_XSERVER" = true ||
 +      test -n "$DISPLAY" ||
 +      test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
 +        as_fn_error $? "You seem to be running X, but no X development libraries
 +were found.  You should install the relevant development files for X
 +and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
 +sure you have development files for image handling, i.e.
 +tiff, gif, jpeg, png and xpm.
 +If you are sure you want Emacs compiled without X window support, pass
 +  --without-x
 +to configure." "$LINENO" 5
 +   fi
 +fi
  
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_ALSA=no
 -  else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ALSA_MODULES" >&5
 -$as_echo_n "checking for $ALSA_MODULES... " >&6; }
 -
 -        if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -            succeeded=yes
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_CFLAGS" >&5
 -$as_echo_n "checking ALSA_CFLAGS... " >&6; }
 -            ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
 -$as_echo "$ALSA_CFLAGS" >&6; }
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_LIBS" >&5
 -$as_echo_n "checking ALSA_LIBS... " >&6; }
 -            ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
 -$as_echo "$ALSA_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            ALSA_CFLAGS=""
 -            ALSA_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            ALSA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$ALSA_MODULES"`
 -
 -        fi
 -
 +### If we're using X11, we should use the X menu package.
 +HAVE_MENUS=no
 +case ${HAVE_X11} in
 +  yes ) HAVE_MENUS=yes ;;
 +esac
  
 +# Do the opsystem or machine files prohibit the use of the GNU malloc?
 +# Assume not, until told otherwise.
 +GNU_MALLOC=yes
 +doug_lea_malloc=yes
 +ac_fn_c_check_func "$LINENO" "malloc_get_state" "ac_cv_func_malloc_get_state"
 +if test "x$ac_cv_func_malloc_get_state" = xyes; then :
  
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
 +else
 +  doug_lea_malloc=no
 +fi
  
 -  if test $succeeded = yes; then
 -     HAVE_ALSA=yes
 -  else
 -     HAVE_ALSA=no
 -  fi
 +ac_fn_c_check_func "$LINENO" "malloc_set_state" "ac_cv_func_malloc_set_state"
 +if test "x$ac_cv_func_malloc_set_state" = xyes; then :
  
 -  if test $HAVE_ALSA = yes; then
 -    SAVE_CFLAGS="$CFLAGS"
 -    SAVE_LDFLAGS="$LDFLAGS"
 -    CFLAGS="$ALSA_CFLAGS $CFLAGS"
 -    LDFLAGS="$ALSA_LIBS $LDFLAGS"
 -    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <asoundlib.h>
 -int
 -main ()
 -{
 -snd_lib_error_set_handler (0);
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_alsa_normal=yes
  else
 -  emacs_alsa_normal=no
 +  doug_lea_malloc=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -    if test "$emacs_alsa_normal" != yes; then
 -      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __after_morecore_hook exists" >&5
 +$as_echo_n "checking whether __after_morecore_hook exists... " >&6; }
 +if ${emacs_cv_var___after_morecore_hook+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <alsa/asoundlib.h>
 +extern void (* __after_morecore_hook)();
  int
  main ()
  {
 -snd_lib_error_set_handler (0);
 +__after_morecore_hook = 0
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_alsa_subdir=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_var___after_morecore_hook=yes
  else
 -  emacs_alsa_subdir=no
 +  emacs_cv_var___after_morecore_hook=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_var___after_morecore_hook" >&5
 +$as_echo "$emacs_cv_var___after_morecore_hook" >&6; }
 +if test $emacs_cv_var___after_morecore_hook = no; then
 +  doug_lea_malloc=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -      if test "$emacs_alsa_subdir" != yes; then
 -        as_fn_error $? "pkg-config found alsa, but it does not compile.  See config.log for error messages." "$LINENO" 5
 -      fi
 -      ALSA_CFLAGS="$ALSA_CFLAGS -DALSA_SUBDIR_INCLUDE"
 -    fi
  
 -    CFLAGS="$SAVE_CFLAGS"
 -    LDFLAGS="$SAVE_LDFLAGS"
 -    LIBSOUND="$LIBSOUND $ALSA_LIBS"
 -    CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
  
 -$as_echo "#define HAVE_ALSA 1" >>confdefs.h
 +system_malloc=no
 +case "$opsys" in
 +  ## darwin ld insists on the use of malloc routines in the System framework.
 +  darwin|sol2-10) system_malloc=yes ;;
 +esac
 +
 +if test "${system_malloc}" = "yes"; then
 +
 +$as_echo "#define SYSTEM_MALLOC 1" >>confdefs.h
  
 +  GNU_MALLOC=no
 +  GNU_MALLOC_reason="
 +    (The GNU allocators don't work with this system configuration.)"
 +  GMALLOC_OBJ=
 +  VMLIMIT_OBJ=
 +else
 +  test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
 +  VMLIMIT_OBJ=vm-limit.o
 +fi
 +
 +
 +
 +if test "$doug_lea_malloc" = "yes" ; then
 +  if test "$GNU_MALLOC" = yes ; then
 +    GNU_MALLOC_reason="
 +      (Using Doug Lea's new malloc from the GNU C Library.)"
    fi
  
 +$as_echo "#define DOUG_LEA_MALLOC 1" >>confdefs.h
 +
 +
 +  ## Use mmap directly for allocating larger buffers.
 +  ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
 +  ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
 +  ## Does the AC_FUNC_MMAP test below make this check unecessary?
 +  case "$opsys" in
 +    gnu*) REL_ALLOC=no ;;
 +  esac
 +fi
 +
 +if test x"${REL_ALLOC}" = x; then
 +  REL_ALLOC=${GNU_MALLOC}
  fi
  
 -for ac_header in sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
 -  linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
 -  termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
 -  sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
 -  sys/utsname.h pwd.h utmp.h
 +use_mmap_for_buffers=no
 +case "$opsys" in
 +  freebsd|irix6-5) use_mmap_for_buffers=yes ;;
 +esac
 +
 +
 +
 +
 +  for ac_header in $ac_header_list
  do :
    as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 +"
  if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
    cat >>confdefs.h <<_ACEOF
  #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
  done
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if personality LINUX32 can be set" >&5
 -$as_echo_n "checking if personality LINUX32 can be set... " >&6; }
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <sys/personality.h>
 -int
 -main ()
 -{
 -personality (PER_LINUX32)
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_personality_linux32=yes
 -else
 -  emacs_cv_personality_linux32=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_personality_linux32" >&5
 -$as_echo "$emacs_cv_personality_linux32" >&6; }
  
 -if test $emacs_cv_personality_linux32 = yes; then
  
 -$as_echo "#define HAVE_PERSONALITY_LINUX32 1" >>confdefs.h
  
 -fi
  
 -for ac_header in term.h
 +
 +
 +for ac_func in getpagesize
  do :
 -  ac_fn_c_check_header_preproc "$LINENO" "term.h" "ac_cv_header_term_h"
 -if test "x$ac_cv_header_term_h" = x""yes; then :
 +  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
 +if test "x$ac_cv_func_getpagesize" = xyes; then :
    cat >>confdefs.h <<_ACEOF
 -#define HAVE_TERM_H 1
 +#define HAVE_GETPAGESIZE 1
  _ACEOF
  
  fi
 -
  done
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 -$as_echo_n "checking for ANSI C header files... " >&6; }
 -if test "${ac_cv_header_stdc+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
 +$as_echo_n "checking for working mmap... " >&6; }
 +if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <stdlib.h>
 -#include <stdarg.h>
 -#include <string.h>
 -#include <float.h>
 -
 -int
 -main ()
 -{
 -
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_header_stdc=yes
 -else
 -  ac_cv_header_stdc=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -
 -if test $ac_cv_header_stdc = yes; then
 -  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <string.h>
 -
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "memchr" >/dev/null 2>&1; then :
 -
 +  if test "$cross_compiling" = yes; then :
 +  ac_cv_func_mmap_fixed_mapped=no
  else
 -  ac_cv_header_stdc=no
 -fi
 -rm -f conftest*
 -
 -fi
 -
 -if test $ac_cv_header_stdc = yes; then
 -  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <stdlib.h>
 +$ac_includes_default
 +/* malloc might have been renamed as rpl_malloc. */
 +#undef malloc
  
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "free" >/dev/null 2>&1; then :
 +/* Thanks to Mike Haertel and Jim Avera for this test.
 +   Here is a matrix of mmap possibilities:
 +      mmap private not fixed
 +      mmap private fixed at somewhere currently unmapped
 +      mmap private fixed at somewhere already mapped
 +      mmap shared not fixed
 +      mmap shared fixed at somewhere currently unmapped
 +      mmap shared fixed at somewhere already mapped
 +   For private mappings, we should verify that changes cannot be read()
 +   back from the file, nor mmap's back from the file at a different
 +   address.  (There have been systems where private was not correctly
 +   implemented like the infamous i386 svr4.0, and systems where the
 +   VM page cache was not coherent with the file system buffer cache
 +   like early versions of FreeBSD and possibly contemporary NetBSD.)
 +   For shared mappings, we should conversely verify that changes get
 +   propagated back to all the places they're supposed to be.
  
 -else
 -  ac_cv_header_stdc=no
 -fi
 -rm -f conftest*
 +   Grep wants private fixed already mapped.
 +   The main things grep needs to know about mmap are:
 +   * does it exist and is it safe to write into the mmap'd area
 +   * how to use it (BSD variants)  */
  
 -fi
 +#include <fcntl.h>
 +#include <sys/mman.h>
  
 -if test $ac_cv_header_stdc = yes; then
 -  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 -  if test "$cross_compiling" = yes; then :
 -  :
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <ctype.h>
 -#include <stdlib.h>
 -#if ((' ' & 0x0FF) == 0x020)
 -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 -#else
 -# define ISLOWER(c) \
 -                 (('a' <= (c) && (c) <= 'i') \
 -                   || ('j' <= (c) && (c) <= 'r') \
 -                   || ('s' <= (c) && (c) <= 'z'))
 -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
 +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
 +char *malloc ();
  #endif
  
 -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 +/* This mess was copied from the GNU getpagesize.h.  */
 +#ifndef HAVE_GETPAGESIZE
 +# ifdef _SC_PAGESIZE
 +#  define getpagesize() sysconf(_SC_PAGESIZE)
 +# else /* no _SC_PAGESIZE */
 +#  ifdef HAVE_SYS_PARAM_H
 +#   include <sys/param.h>
 +#   ifdef EXEC_PAGESIZE
 +#    define getpagesize() EXEC_PAGESIZE
 +#   else /* no EXEC_PAGESIZE */
 +#    ifdef NBPG
 +#     define getpagesize() NBPG * CLSIZE
 +#     ifndef CLSIZE
 +#      define CLSIZE 1
 +#     endif /* no CLSIZE */
 +#    else /* no NBPG */
 +#     ifdef NBPC
 +#      define getpagesize() NBPC
 +#     else /* no NBPC */
 +#      ifdef PAGESIZE
 +#       define getpagesize() PAGESIZE
 +#      endif /* PAGESIZE */
 +#     endif /* no NBPC */
 +#    endif /* no NBPG */
 +#   endif /* no EXEC_PAGESIZE */
 +#  else /* no HAVE_SYS_PARAM_H */
 +#   define getpagesize() 8192 /* punt totally */
 +#  endif /* no HAVE_SYS_PARAM_H */
 +# endif /* no _SC_PAGESIZE */
 +
 +#endif /* no HAVE_GETPAGESIZE */
 +
  int
  main ()
  {
 -  int i;
 -  for (i = 0; i < 256; i++)
 -    if (XOR (islower (i), ISLOWER (i))
 -      || toupper (i) != TOUPPER (i))
 -      return 2;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_run "$LINENO"; then :
 -
 -else
 -  ac_cv_header_stdc=no
 -fi
 -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 -  conftest.$ac_objext conftest.beam conftest.$ac_ext
 -fi
 +  char *data, *data2, *data3;
 +  const char *cdata2;
 +  int i, pagesize;
 +  int fd, fd2;
  
 -fi
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 -$as_echo "$ac_cv_header_stdc" >&6; }
 -if test $ac_cv_header_stdc = yes; then
 +  pagesize = getpagesize ();
  
 -$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 +  /* First, make a file with some known garbage in it. */
 +  data = (char *) malloc (pagesize);
 +  if (!data)
 +    return 1;
 +  for (i = 0; i < pagesize; ++i)
 +    *(data + i) = rand ();
 +  umask (0);
 +  fd = creat ("conftest.mmap", 0600);
 +  if (fd < 0)
 +    return 2;
 +  if (write (fd, data, pagesize) != pagesize)
 +    return 3;
 +  close (fd);
  
 -fi
 +  /* Next, check that the tail of a page is zero-filled.  File must have
 +     non-zero length, otherwise we risk SIGBUS for entire page.  */
 +  fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
 +  if (fd2 < 0)
 +    return 4;
 +  cdata2 = "";
 +  if (write (fd2, cdata2, 1) != 1)
 +    return 5;
 +  data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
 +  if (data2 == MAP_FAILED)
 +    return 6;
 +  for (i = 0; i < pagesize; ++i)
 +    if (*(data2 + i))
 +      return 7;
 +  close (fd2);
 +  if (munmap (data2, pagesize))
 +    return 8;
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
 -if test "${ac_cv_header_time+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <sys/types.h>
 -#include <sys/time.h>
 -#include <time.h>
 +  /* Next, try to mmap the file at a fixed address which already has
 +     something else allocated at it.  If we can, also make sure that
 +     we see the same garbage.  */
 +  fd = open ("conftest.mmap", O_RDWR);
 +  if (fd < 0)
 +    return 9;
 +  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
 +                   MAP_PRIVATE | MAP_FIXED, fd, 0L))
 +    return 10;
 +  for (i = 0; i < pagesize; ++i)
 +    if (*(data + i) != *(data2 + i))
 +      return 11;
  
 -int
 -main ()
 -{
 -if ((struct tm *) 0)
 -return 0;
 -  ;
 +  /* Finally, make sure that changes to the mapped area do not
 +     percolate back to the file as seen by read().  (This is a bug on
 +     some variants of i386 svr4.0.)  */
 +  for (i = 0; i < pagesize; ++i)
 +    *(data2 + i) = *(data2 + i) + 1;
 +  data3 = (char *) malloc (pagesize);
 +  if (!data3)
 +    return 12;
 +  if (read (fd, data3, pagesize) != pagesize)
 +    return 13;
 +  for (i = 0; i < pagesize; ++i)
 +    if (*(data + i) != *(data3 + i))
 +      return 14;
 +  close (fd);
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_header_time=yes
 +if ac_fn_c_try_run "$LINENO"; then :
 +  ac_cv_func_mmap_fixed_mapped=yes
  else
 -  ac_cv_header_time=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  ac_cv_func_mmap_fixed_mapped=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
 -$as_echo "$ac_cv_header_time" >&6; }
 -if test $ac_cv_header_time = yes; then
 -
 -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 -
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
  
 -ac_fn_c_check_decl "$LINENO" "sys_siglist" "ac_cv_have_decl_sys_siglist" "$ac_includes_default"
 -if test "x$ac_cv_have_decl_sys_siglist" = x""yes; then :
 -  ac_have_decl=1
 -else
 -  ac_have_decl=0
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
 +if test $ac_cv_func_mmap_fixed_mapped = yes; then
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_DECL_SYS_SIGLIST $ac_have_decl
 -_ACEOF
 +$as_echo "#define HAVE_MMAP 1" >>confdefs.h
  
 -if test $ac_cv_have_decl_sys_siglist != yes; then
 -  # For Tru64, at least:
 -  ac_fn_c_check_decl "$LINENO" "__sys_siglist" "ac_cv_have_decl___sys_siglist" "$ac_includes_default"
 -if test "x$ac_cv_have_decl___sys_siglist" = x""yes; then :
 -  ac_have_decl=1
 -else
 -  ac_have_decl=0
  fi
 +rm -f conftest.mmap conftest.txt
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_DECL___SYS_SIGLIST $ac_have_decl
 -_ACEOF
 -
 -  if test $ac_cv_have_decl___sys_siglist = yes; then
 +if test $use_mmap_for_buffers = yes; then
  
 -$as_echo "#define sys_siglist __sys_siglist" >>confdefs.h
 +$as_echo "#define USE_MMAP_FOR_BUFFERS 1" >>confdefs.h
  
 -  fi
 +  REL_ALLOC=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
 -$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
 -if test "${ac_cv_header_sys_wait_h+set}" = set; then :
 +
 +LIBS="$LIBS_SYSTEM $LIBS"
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
 +if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-ldnet  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <sys/types.h>
 -#include <sys/wait.h>
 -#ifndef WEXITSTATUS
 -# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
 -#endif
 -#ifndef WIFEXITED
 -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
 -#endif
  
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char dnet_ntoa ();
  int
  main ()
  {
 -  int s;
 -  wait (&s);
 -  s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 +return dnet_ntoa ();
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_header_sys_wait_h=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_dnet_dnet_ntoa=yes
  else
 -  ac_cv_header_sys_wait_h=no
 +  ac_cv_lib_dnet_dnet_ntoa=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5
 -$as_echo "$ac_cv_header_sys_wait_h" >&6; }
 -if test $ac_cv_header_sys_wait_h = yes; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
 +if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBDNET 1
 +_ACEOF
  
 -$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 +  LIBS="-ldnet $LIBS"
  
  fi
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
 -$as_echo_n "checking for struct utimbuf... " >&6; }
 -if test "${emacs_cv_struct_utimbuf+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXbsd" >&5
 +$as_echo_n "checking for main in -lXbsd... " >&6; }
 +if ${ac_cv_lib_Xbsd_main+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lXbsd  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#ifdef TIME_WITH_SYS_TIME
 -#include <sys/time.h>
 -#include <time.h>
 -#else
 -#ifdef HAVE_SYS_TIME_H
 -#include <sys/time.h>
 -#else
 -#include <time.h>
 -#endif
 -#endif
 -#ifdef HAVE_UTIME_H
 -#include <utime.h>
 -#endif
 +
 +
  int
  main ()
  {
 -static struct utimbuf x; x.actime = x.modtime;
 +return main ();
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_struct_utimbuf=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_Xbsd_main=yes
  else
 -  emacs_cv_struct_utimbuf=no
 +  ac_cv_lib_Xbsd_main=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_utimbuf" >&5
 -$as_echo "$emacs_cv_struct_utimbuf" >&6; }
 -if test $emacs_cv_struct_utimbuf = yes; then
 -
 -$as_echo "#define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
 -
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xbsd_main" >&5
 +$as_echo "$ac_cv_lib_Xbsd_main" >&6; }
 +if test "x$ac_cv_lib_Xbsd_main" = xyes; then :
 +  LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd"
  fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
 -$as_echo_n "checking return type of signal handlers... " >&6; }
 -if test "${ac_cv_type_signal+set}" = set; then :
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cma_open in -lpthreads" >&5
 +$as_echo_n "checking for cma_open in -lpthreads... " >&6; }
 +if ${ac_cv_lib_pthreads_cma_open+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lpthreads  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <sys/types.h>
 -#include <signal.h>
  
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char cma_open ();
  int
  main ()
  {
 -return *(signal (0, 0)) (0) == 1;
 +return cma_open ();
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_type_signal=int
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_pthreads_cma_open=yes
  else
 -  ac_cv_type_signal=void
 +  ac_cv_lib_pthreads_cma_open=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
 -$as_echo "$ac_cv_type_signal" >&6; }
 -
 -cat >>confdefs.h <<_ACEOF
 -#define RETSIGTYPE $ac_cv_type_signal
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_cma_open" >&5
 +$as_echo "$ac_cv_lib_pthreads_cma_open" >&6; }
 +if test "x$ac_cv_lib_pthreads_cma_open" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBPTHREADS 1
  _ACEOF
  
 +  LIBS="-lpthreads $LIBS"
 +
 +fi
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for speed_t" >&5
 -$as_echo_n "checking for speed_t... " >&6; }
 -if test "${emacs_cv_speed_t+set}" = set; then :
 +## Note: when using cpp in s/aix4.2.h, this definition depended on
 +## HAVE_LIBPTHREADS.  That was not defined earlier in configure when
 +## the system file was sourced.  Hence the value of LIBS_SYSTEM
 +## added to LIBS in configure would never contain the pthreads part,
 +## but the value used in Makefiles might.  FIXME?
 +##
 +## -lpthreads seems to be necessary for Xlib in X11R6, and should
 +## be harmless on older versions of X where it happens to exist.
 +test "$opsys" = "aix4-2" && \
 +  test $ac_cv_lib_pthreads_cma_open = yes && \
 +  LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
 +
 +
 +case ${host_os} in
 +aix*)
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -bbigtoc option" >&5
 +$as_echo_n "checking for -bbigtoc option... " >&6; }
 +if ${gdb_cv_bigtoc+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +    case $GCC in
 +    yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
 +    *) gdb_cv_bigtoc=-bbigtoc ;;
 +    esac
 +
 +    LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <termios.h>
 +
  int
  main ()
  {
 -speed_t x = 1;
 +int i;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_speed_t=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +
  else
 -  emacs_cv_speed_t=no
 +  gdb_cv_bigtoc=
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_speed_t" >&5
 -$as_echo "$emacs_cv_speed_t" >&6; }
 -if test $emacs_cv_speed_t = yes; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_bigtoc" >&5
 +$as_echo "$gdb_cv_bigtoc" >&6; }
 +  ;;
 +esac
  
 -$as_echo "#define HAVE_SPEED_T 1" >>confdefs.h
 +# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
 +# used for the tests that follow.  We set them back to REAL_CFLAGS and
 +# REAL_CPPFLAGS later on.
  
 -fi
 +REAL_CFLAGS="$CFLAGS"
 +REAL_CPPFLAGS="$CPPFLAGS"
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
 -$as_echo_n "checking for struct timeval... " >&6; }
 -if test "${emacs_cv_struct_timeval+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +if test "${HAVE_X11}" = "yes"; then
 +  DEFS="$C_SWITCH_X_SITE $DEFS"
 +  LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
 +  LIBS="-lX11 $LIBS"
 +  CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
 +  CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
 +
 +  # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
 +  # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
 +  # but it's more convenient here to set LD_RUN_PATH
 +  # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
 +  if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
 +    LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
 +    export LD_RUN_PATH
 +  fi
 +
 +  if test "${opsys}" = "gnu-linux"; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether X on GNU/Linux needs -b to link" >&5
 +$as_echo_n "checking whether X on GNU/Linux needs -b to link... " >&6; }
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#ifdef TIME_WITH_SYS_TIME
 -#include <sys/time.h>
 -#include <time.h>
 -#else
 -#ifdef HAVE_SYS_TIME_H
 -#include <sys/time.h>
 -#else
 -#include <time.h>
 -#endif
 -#endif
 +
  int
  main ()
  {
 -static struct timeval x; x.tv_sec = x.tv_usec;
 +XOpenDisplay ("foo");
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_struct_timeval=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  xlinux_first_failure=no
  else
 -  emacs_cv_struct_timeval=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_timeval" >&5
 -$as_echo "$emacs_cv_struct_timeval" >&6; }
 -HAVE_TIMEVAL=$emacs_cv_struct_timeval
 -if test $emacs_cv_struct_timeval = yes; then
 -
 -$as_echo "#define HAVE_TIMEVAL 1" >>confdefs.h
 -
 +  xlinux_first_failure=yes
  fi
 -
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct exception" >&5
 -$as_echo_n "checking for struct exception... " >&6; }
 -if test "${emacs_cv_struct_exception+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +    if test "${xlinux_first_failure}" = "yes"; then
 +      OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
 +      OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
 +      OLD_CPPFLAGS="$CPPFLAGS"
 +      OLD_LIBS="$LIBS"
 +      LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
 +      C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
 +      CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
 +      LIBS="$LIBS -b i486-linuxaout"
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <math.h>
 +
  int
  main ()
  {
 -static struct exception x; x.arg1 = x.arg2 = x.retval; x.name = ""; x.type = 1;
 +XOpenDisplay ("foo");
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_struct_exception=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  xlinux_second_failure=no
  else
 -  emacs_cv_struct_exception=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_struct_exception" >&5
 -$as_echo "$emacs_cv_struct_exception" >&6; }
 -HAVE_EXCEPTION=$emacs_cv_struct_exception
 -if test $emacs_cv_struct_exception != yes; then
 -
 -$as_echo "#define NO_MATHERR 1" >>confdefs.h
 -
 -fi
 -
 -for ac_header in sys/socket.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
 -if test "x$ac_cv_header_sys_socket_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_SYS_SOCKET_H 1
 -_ACEOF
 -
 -fi
 -
 -done
 -
 -for ac_header in net/if.h
 -do :
 -  ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -"
 -if test "x$ac_cv_header_net_if_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_NET_IF_H 1
 -_ACEOF
 -
 +  xlinux_second_failure=yes
  fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +      if test "${xlinux_second_failure}" = "yes"; then
 +      # If we get the same failure with -b, there is no use adding -b.
 +      # So take it out.  This plays safe.
 +      LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
 +      C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
 +      CPPFLAGS="$OLD_CPPFLAGS"
 +      LIBS="$OLD_LIBS"
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +      else
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +      fi
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +    fi
 +  fi
  
 -done
 -
 -
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
 -if test "${ac_cv_struct_tm+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 +  # Reportedly, some broken Solaris systems have XKBlib.h but are missing
 +  # header files included from there.
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xkb" >&5
 +$as_echo_n "checking for Xkb... " >&6; }
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <sys/types.h>
 -#include <time.h>
 -
 +#include <X11/Xlib.h>
 +#include <X11/XKBlib.h>
  int
  main ()
  {
 -struct tm tm;
 -                                   int *p = &tm.tm_sec;
 -                                   return !p;
 +XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_struct_tm=time.h
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_xkb=yes
  else
 -  ac_cv_struct_tm=sys/time.h
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
 -$as_echo "$ac_cv_struct_tm" >&6; }
 -if test $ac_cv_struct_tm = sys/time.h; then
 -
 -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
 -
 +  emacs_xkb=no
  fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_xkb" >&5
 +$as_echo "$emacs_xkb" >&6; }
 +  if test $emacs_xkb = yes; then
  
 -ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
 -#include <$ac_cv_struct_tm>
 +$as_echo "#define HAVE_XKBGETKEYBOARD 1" >>confdefs.h
  
 -"
 -if test "x$ac_cv_member_struct_tm_tm_zone" = x""yes; then :
 +  fi
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_TM_TM_ZONE 1
 +  for ac_func in XrmSetDatabase XScreenResourceString \
 +XScreenNumberOfScreen XSetWMProtocols
 +do :
 +  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 +if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
  _ACEOF
  
 -
  fi
 +done
  
 -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
 -
 -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
 -
 -else
 -  ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
 -"
 -if test "x$ac_cv_have_decl_tzname" = x""yes; then :
 -  ac_have_decl=1
 -else
 -  ac_have_decl=0
  fi
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_DECL_TZNAME $ac_have_decl
 -_ACEOF
 -
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
 -$as_echo_n "checking for tzname... " >&6; }
 -if test "${ac_cv_var_tzname+set}" = set; then :
 +if test "${window_system}" = "x11"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking X11 version 6" >&5
 +$as_echo_n "checking X11 version 6... " >&6; }
 +  if ${emacs_cv_x11_version_6+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <time.h>
 -#if !HAVE_DECL_TZNAME
 -extern char *tzname[];
 -#endif
 -
 +#include <X11/Xlib.h>
  int
  main ()
  {
 -return tzname[0][0];
 +#if XlibSpecificationRelease < 6
 +fail;
 +#endif
 +
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_var_tzname=yes
 +  emacs_cv_x11_version_6=yes
  else
 -  ac_cv_var_tzname=no
 +  emacs_cv_x11_version_6=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
 -$as_echo "$ac_cv_var_tzname" >&6; }
 -  if test $ac_cv_var_tzname = yes; then
  
 -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
 +  if test $emacs_cv_x11_version_6 = yes; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 6 or newer" >&5
 +$as_echo "6 or newer" >&6; }
 +
 +$as_echo "#define HAVE_X11R6 1" >>confdefs.h
 +
 +
 +$as_echo "#define HAVE_X_I18N 1" >>confdefs.h
 +
 +    ## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
 +    ## XIM support.
 +    case "$opsys" in
 +      sol2-*) : ;;
 +      *)
 +$as_echo "#define HAVE_X11R6_XIM 1" >>confdefs.h
  
 +         ;;
 +    esac
 +  else
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: before 6" >&5
 +$as_echo "before 6" >&6; }
    fi
  fi
  
 -ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
 -"
 -if test "x$ac_cv_member_struct_tm_tm_gmtoff" = x""yes; then :
  
 -$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
 +### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
 +HAVE_RSVG=no
 +if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
 +  if test "${with_rsvg}" != "no"; then
 +    RSVG_REQUIRED=2.11.0
 +    RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
 +
 +
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
 +fi
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
 -ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_flags" "ac_cv_member_struct_ifreq_ifr_flags" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -#if HAVE_NET_IF_H
 -#include <net/if.h>
 -#endif
 -"
 -if test "x$ac_cv_member_struct_ifreq_ifr_flags" = x""yes; then :
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_IFREQ_IFR_FLAGS 1
 -_ACEOF
  
 +  if test "$PKG_CONFIG" = "no" ; then
 +     :
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $RSVG_MODULE" >&5
 +$as_echo_n "checking for $RSVG_MODULE... " >&6; }
  
 -fi
 -ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_hwaddr" "ac_cv_member_struct_ifreq_ifr_hwaddr" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -#if HAVE_NET_IF_H
 -#include <net/if.h>
 -#endif
 -"
 -if test "x$ac_cv_member_struct_ifreq_ifr_hwaddr" = x""yes; then :
 +        if $PKG_CONFIG --exists "$RSVG_MODULE" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_IFREQ_IFR_HWADDR 1
 -_ACEOF
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_CFLAGS" >&5
 +$as_echo_n "checking RSVG_CFLAGS... " >&6; }
 +            RSVG_CFLAGS=`$PKG_CONFIG --cflags "$RSVG_MODULE"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_CFLAGS" >&5
 +$as_echo "$RSVG_CFLAGS" >&6; }
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_LIBS" >&5
 +$as_echo_n "checking RSVG_LIBS... " >&6; }
 +            RSVG_LIBS=`$PKG_CONFIG --libs "$RSVG_MODULE"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_LIBS" >&5
 +$as_echo "$RSVG_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            RSVG_CFLAGS=""
 +            RSVG_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            RSVG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$RSVG_MODULE"`
 +
 +        fi
  
  
 +
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
 +
 +  if test $succeeded = yes; then
 +     HAVE_RSVG=yes
 +  else
 +     :
 +  fi
 +
 +
 +
 +
 +    if test $HAVE_RSVG = yes; then
 +
 +$as_echo "#define HAVE_RSVG 1" >>confdefs.h
 +
 +      CFLAGS="$CFLAGS $RSVG_CFLAGS"
 +      LIBS="$RSVG_LIBS $LIBS"
 +    fi
 +  fi
  fi
 -ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_netmask" "ac_cv_member_struct_ifreq_ifr_netmask" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -#if HAVE_NET_IF_H
 -#include <net/if.h>
 -#endif
 -"
 -if test "x$ac_cv_member_struct_ifreq_ifr_netmask" = x""yes; then :
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_IFREQ_IFR_NETMASK 1
 -_ACEOF
 +HAVE_IMAGEMAGICK=no
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_imagemagick}" != "no"; then
 +    IMAGEMAGICK_MODULE="Wand"
 +
 +  succeeded=no
  
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
  
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
  fi
 -ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_broadaddr" "ac_cv_member_struct_ifreq_ifr_broadaddr" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -#if HAVE_NET_IF_H
 -#include <net/if.h>
 -#endif
 -"
 -if test "x$ac_cv_member_struct_ifreq_ifr_broadaddr" = x""yes; then :
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  if test "$PKG_CONFIG" = "no" ; then
 +     :
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $IMAGEMAGICK_MODULE" >&5
 +$as_echo_n "checking for $IMAGEMAGICK_MODULE... " >&6; }
 +
 +        if $PKG_CONFIG --exists "$IMAGEMAGICK_MODULE" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking IMAGEMAGICK_CFLAGS" >&5
 +$as_echo_n "checking IMAGEMAGICK_CFLAGS... " >&6; }
 +            IMAGEMAGICK_CFLAGS=`$PKG_CONFIG --cflags "$IMAGEMAGICK_MODULE"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK_CFLAGS" >&5
 +$as_echo "$IMAGEMAGICK_CFLAGS" >&6; }
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking IMAGEMAGICK_LIBS" >&5
 +$as_echo_n "checking IMAGEMAGICK_LIBS... " >&6; }
 +            IMAGEMAGICK_LIBS=`$PKG_CONFIG --libs "$IMAGEMAGICK_MODULE"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK_LIBS" >&5
 +$as_echo "$IMAGEMAGICK_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            IMAGEMAGICK_CFLAGS=""
 +            IMAGEMAGICK_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            IMAGEMAGICK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$IMAGEMAGICK_MODULE"`
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_IFREQ_IFR_BROADADDR 1
 -_ACEOF
 +        fi
  
  
 -fi
 -ac_fn_c_check_member "$LINENO" "struct ifreq" "ifr_addr" "ac_cv_member_struct_ifreq_ifr_addr" "$ac_includes_default
 -#if HAVE_SYS_SOCKET_H
 -#include <sys/socket.h>
 -#endif
 -#if HAVE_NET_IF_H
 -#include <net/if.h>
 -#endif
 -"
 -if test "x$ac_cv_member_struct_ifreq_ifr_addr" = x""yes; then :
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_IFREQ_IFR_ADDR 1
 -_ACEOF
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
  
 +  if test $succeeded = yes; then
 +     HAVE_IMAGEMAGICK=yes
 +  else
 +     :
 +  fi
  
 -fi
  
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for function prototypes" >&5
 -$as_echo_n "checking for function prototypes... " >&6; }
 -if test "$ac_cv_prog_cc_c89" != no; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 +    if test $HAVE_IMAGEMAGICK = yes; then
  
 -$as_echo "#define PROTOTYPES 1" >>confdefs.h
 +$as_echo "#define HAVE_IMAGEMAGICK 1" >>confdefs.h
  
 +      CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
 +      LIBS="$IMAGEMAGICK_LIBS $LIBS"
 +      for ac_func in MagickExportImagePixels
 +do :
 +  ac_fn_c_check_func "$LINENO" "MagickExportImagePixels" "ac_cv_func_MagickExportImagePixels"
 +if test "x$ac_cv_func_MagickExportImagePixels" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_MAGICKEXPORTIMAGEPIXELS 1
 +_ACEOF
  
 -$as_echo "#define __PROTOTYPES 1" >>confdefs.h
 +fi
 +done
  
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +    fi
 +  fi
  fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
 -$as_echo_n "checking for working volatile... " >&6; }
 -if test "${ac_cv_c_volatile+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -int
 -main ()
 -{
 +HAVE_GTK=no
 +if test "${with_gtk3}" = "yes"; then
 +  GLIB_REQUIRED=2.6
 +  GTK_REQUIRED=2.90
 +  GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
  
 -volatile int x;
 -int * volatile y = (int *) 0;
 -return !x && !y;
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_c_volatile=yes
 +
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  ac_cv_c_volatile=no
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
 -$as_echo "$ac_cv_c_volatile" >&6; }
 -if test $ac_cv_c_volatile = no; then
  
 -$as_echo "#define volatile /**/" >>confdefs.h
  
 -fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
 -if test "${ac_cv_c_const+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 +  if test "$PKG_CONFIG" = "no" ; then
 +     pkg_check_gtk=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5
 +$as_echo_n "checking for $GTK_MODULES... " >&6; }
  
 -int
 -main ()
 -{
 -/* FIXME: Include the comments suggested by Paul. */
 -#ifndef __cplusplus
 -  /* Ultrix mips cc rejects this.  */
 -  typedef int charset[2];
 -  const charset cs;
 -  /* SunOS 4.1.1 cc rejects this.  */
 -  char const *const *pcpcc;
 -  char **ppc;
 -  /* NEC SVR4.0.2 mips cc rejects this.  */
 -  struct point {int x, y;};
 -  static struct point const zero = {0,0};
 -  /* AIX XL C 1.02.0.0 rejects this.
 -     It does not let you subtract one const X* pointer from another in
 -     an arm of an if-expression whose if-part is not a constant
 -     expression */
 -  const char *g = "string";
 -  pcpcc = &g + (g ? g-g : 0);
 -  /* HPUX 7.0 cc rejects these. */
 -  ++pcpcc;
 -  ppc = (char**) pcpcc;
 -  pcpcc = (char const *const *) ppc;
 -  { /* SCO 3.2v4 cc rejects this.  */
 -    char *t;
 -    char const *s = 0 ? (char *) 0 : (char const *) 0;
 +        if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
  
 -    *t++ = 0;
 -    if (s) return 0;
 -  }
 -  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
 -    int x[] = {25, 17};
 -    const int *foo = &x[0];
 -    ++foo;
 -  }
 -  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
 -    typedef const int *iptr;
 -    iptr p = 0;
 -    ++p;
 -  }
 -  { /* AIX XL C 1.02.0.0 rejects this saying
 -       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
 -    struct s { int j; const int *ap[3]; };
 -    struct s *b; b->j = 5;
 -  }
 -  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
 -    const int foo = 10;
 -    if (!foo) return 0;
 -  }
 -  return !cs[0] && !zero.x;
 -#endif
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5
 +$as_echo_n "checking GTK_CFLAGS... " >&6; }
 +            GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5
 +$as_echo "$GTK_CFLAGS" >&6; }
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_c_const=yes
 -else
 -  ac_cv_c_const=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
 -$as_echo "$ac_cv_c_const" >&6; }
 -if test $ac_cv_c_const = no; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5
 +$as_echo_n "checking GTK_LIBS... " >&6; }
 +            GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5
 +$as_echo "$GTK_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            GTK_CFLAGS=""
 +            GTK_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
  
 -$as_echo "#define const /**/" >>confdefs.h
 +        fi
  
 -fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for void * support" >&5
 -$as_echo_n "checking for void * support... " >&6; }
 -if test "${emacs_cv_void_star+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -int
 -main ()
 -{
 -void * foo;
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_void_star=yes
 -else
 -  emacs_cv_void_star=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_void_star" >&5
 -$as_echo "$emacs_cv_void_star" >&6; }
 -if test $emacs_cv_void_star = yes; then
 -  $as_echo "#define POINTER_TYPE void" >>confdefs.h
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
  
 -else
 -  $as_echo "#define POINTER_TYPE char" >>confdefs.h
 +  if test $succeeded = yes; then
 +     pkg_check_gtk=yes
 +  else
 +     pkg_check_gtk=no
 +  fi
  
 +  if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
 +     as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
 +  fi
  fi
  
 +if test "$pkg_check_gtk" != "yes"; then
 +  HAVE_GTK=no
 +if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
 +  GLIB_REQUIRED=2.6
 +  GTK_REQUIRED=2.6
 +  GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
  
  
 +  succeeded=no
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 -set x ${MAKE-make}
 -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat >conftest.make <<\_ACEOF
 -SHELL = /bin/sh
 -all:
 -      @echo '@@@%%%=$(MAKE)=@@@%%%'
 -_ACEOF
 -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 -case `${MAKE-make} -f conftest.make 2>/dev/null` in
 -  *@@@%%%=?*=@@@%%%*)
 -    eval ac_cv_prog_make_${ac_make}_set=yes;;
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
    *)
 -    eval ac_cv_prog_make_${ac_make}_set=no;;
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
  esac
 -rm -f conftest.make
  fi
 -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -  SET_MAKE=
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 -  SET_MAKE="MAKE=${MAKE-make}"
  fi
  
  
 -if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
 -   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU Make" >&5
 -$as_echo_n "checking whether we are using GNU Make... " >&6; }
 -   HAVE_GNU_MAKE=no
 -   testval=`make --version 2>/dev/null | grep 'GNU Make'`
 -   if test "x$testval" != x; then
 -      HAVE_GNU_MAKE=yes
 -   else
 -      ac_enable_autodepend=no
 -   fi
 -   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_GNU_MAKE" >&5
 -$as_echo "$HAVE_GNU_MAKE" >&6; }
 -   if test $HAVE_GNU_MAKE = yes; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -MMD -MF" >&5
 -$as_echo_n "checking whether gcc understands -MMD -MF... " >&6; }
 -      SAVE_CFLAGS="$CFLAGS"
 -      CFLAGS="$CFLAGS -MMD -MF deps.d"
 -      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -int
 -main ()
 -{
 +  if test "$PKG_CONFIG" = "no" ; then
 +     pkg_check_gtk=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5
 +$as_echo_n "checking for $GTK_MODULES... " >&6; }
  
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 +        if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
  
 -else
 -  ac_enable_autodepend=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -      CFLAGS="$SAVE_CFLAGS"
 -      test -f deps.d || ac_enable_autodepend=no
 -      rm -rf deps.d
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_autodepend" >&5
 -$as_echo "$ac_enable_autodepend" >&6; }
 -   fi
 -   if test $ac_enable_autodepend = yes; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5
 +$as_echo_n "checking GTK_CFLAGS... " >&6; }
 +            GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5
 +$as_echo "$GTK_CFLAGS" >&6; }
  
 -$as_echo "#define AUTO_DEPEND 1" >>confdefs.h
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5
 +$as_echo_n "checking GTK_LIBS... " >&6; }
 +            GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5
 +$as_echo "$GTK_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            GTK_CFLAGS=""
 +            GTK_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
  
 -   fi
 -fi
 +        fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
 -$as_echo_n "checking for long file names... " >&6; }
 -if test "${ac_cv_sys_long_file_names+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_cv_sys_long_file_names=yes
 -# Test for long file names in all the places we know might matter:
 -#      .              the current directory, where building will happen
 -#      $prefix/lib    where we will be installing things
 -#      $exec_prefix/lib       likewise
 -#      $TMPDIR                if set, where it might want to write temporary files
 -#      /tmp           where it might want to write temporary files
 -#      /var/tmp               likewise
 -#      /usr/tmp               likewise
 -for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do
 -  # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib
 -  # in the usual case where exec_prefix is '${prefix}'.
 -  case $ac_dir in #(
 -    . | /* | ?:[\\/]*) ;; #(
 -    *) continue;;
 -  esac
 -  test -w "$ac_dir/." || continue # It is less confusing to not echo anything here.
 -  ac_xdir=$ac_dir/cf$$
 -  (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue
 -  ac_tf1=$ac_xdir/conftest9012345
 -  ac_tf2=$ac_xdir/conftest9012346
 -  touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" ||
 -    ac_cv_sys_long_file_names=no
 -  rm -f -r "$ac_xdir" 2>/dev/null
 -  test $ac_cv_sys_long_file_names = no && break
 -done
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_long_file_names" >&5
 -$as_echo "$ac_cv_sys_long_file_names" >&6; }
 -if test $ac_cv_sys_long_file_names = yes; then
  
 -$as_echo "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
  
 -fi
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
  
 +  if test $succeeded = yes; then
 +     pkg_check_gtk=yes
 +  else
 +     pkg_check_gtk=no
 +  fi
  
 -#### Choose a window system.
 +  if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
 +     as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
 +  fi
 +fi
 +fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
 -$as_echo_n "checking for X... " >&6; }
 +GTK_OBJ=
 +if test x"$pkg_check_gtk" = xyes; then
  
  
 -# Check whether --with-x was given.
 -if test "${with_x+set}" = set; then :
 -  withval=$with_x;
 -fi
  
 -# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
 -if test "x$with_x" = xno; then
 -  # The user explicitly disabled X.
 -  have_x=disabled
 -else
 -  case $x_includes,$x_libraries in #(
 -    *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #(
 -    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  # One or both of the vars are not set, and there is no cached value.
 -ac_x_includes=no ac_x_libraries=no
 -rm -f -r conftest.dir
 -if mkdir conftest.dir; then
 -  cd conftest.dir
 -  cat >Imakefile <<'_ACEOF'
 -incroot:
 -      @echo incroot='${INCROOT}'
 -usrlibdir:
 -      @echo usrlibdir='${USRLIBDIR}'
 -libdir:
 -      @echo libdir='${LIBDIR}'
 +  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
 +  CFLAGS="$CFLAGS $GTK_CFLAGS"
 +  LIBS="$GTK_LIBS $LIBS"
 +    GTK_COMPILES=no
 +  for ac_func in gtk_main
 +do :
 +  ac_fn_c_check_func "$LINENO" "gtk_main" "ac_cv_func_gtk_main"
 +if test "x$ac_cv_func_gtk_main" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_GTK_MAIN 1
  _ACEOF
 -  if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
 -    # GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
 -    for ac_var in incroot usrlibdir libdir; do
 -      eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
 -    done
 -    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
 -    for ac_extension in a so sl dylib la dll; do
 -      if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
 -       test -f "$ac_im_libdir/libX11.$ac_extension"; then
 -      ac_im_usrlibdir=$ac_im_libdir; break
 -      fi
 -    done
 -    # Screen out bogus values from the imake configuration.  They are
 -    # bogus both because they are the default anyway, and because
 -    # using them would break gcc on systems where it needs fixed includes.
 -    case $ac_im_incroot in
 -      /usr/include) ac_x_includes= ;;
 -      *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
 -    esac
 -    case $ac_im_usrlibdir in
 -      /usr/lib | /usr/lib64 | /lib | /lib64) ;;
 -      *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
 -    esac
 + GTK_COMPILES=yes
 +fi
 +done
 +
 +  if test "${GTK_COMPILES}" != "yes"; then
 +    if test "$USE_X_TOOLKIT" != "maybe"; then
 +      as_fn_error $? "Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?" "$LINENO" 5;
 +    fi
 +  else
 +    HAVE_GTK=yes
 +
 +$as_echo "#define USE_GTK 1" >>confdefs.h
 +
 +    GTK_OBJ=gtkutil.o
 +    USE_X_TOOLKIT=none
 +    if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
 +      :
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of Gtk+ will have problems with
 +       closing open displays.  This is no problem if you just use
 +       one display, but if you use more than one and close one of them
 +       Emacs may crash." >&5
 +$as_echo "$as_me: WARNING: Your version of Gtk+ will have problems with
 +       closing open displays.  This is no problem if you just use
 +       one display, but if you use more than one and close one of them
 +       Emacs may crash." >&2;}
 +      sleep 3
 +    fi
    fi
 -  cd ..
 -  rm -f -r conftest.dir
 +
  fi
  
 -# Standard set of common directories for X headers.
 -# Check X11 before X11Rn because it is often a symlink to the current release.
 -ac_x_header_dirs='
 -/usr/X11/include
 -/usr/X11R7/include
 -/usr/X11R6/include
 -/usr/X11R5/include
 -/usr/X11R4/include
  
 -/usr/include/X11
 -/usr/include/X11R7
 -/usr/include/X11R6
 -/usr/include/X11R5
 -/usr/include/X11R4
  
 -/usr/local/X11/include
 -/usr/local/X11R7/include
 -/usr/local/X11R6/include
 -/usr/local/X11R5/include
 -/usr/local/X11R4/include
 +if test "${HAVE_GTK}" = "yes"; then
  
 -/usr/local/include/X11
 -/usr/local/include/X11R7
 -/usr/local/include/X11R6
 -/usr/local/include/X11R5
 -/usr/local/include/X11R4
 +      if test "$with_toolkit_scroll_bars" != no; then
 +    with_toolkit_scroll_bars=yes
 +  fi
  
 -/usr/X386/include
 -/usr/x386/include
 -/usr/XFree86/include/X11
 +          HAVE_GTK_FILE_SELECTION=no
 +  ac_fn_c_check_decl "$LINENO" "GTK_TYPE_FILE_SELECTION" "ac_cv_have_decl_GTK_TYPE_FILE_SELECTION" "$ac_includes_default
 +#include <gtk/gtk.h>
 +"
 +if test "x$ac_cv_have_decl_GTK_TYPE_FILE_SELECTION" = xyes; then :
 +  HAVE_GTK_FILE_SELECTION=yes
 +else
 +  HAVE_GTK_FILE_SELECTION=no
 +fi
  
 -/usr/include
 -/usr/local/include
 -/usr/unsupported/include
 -/usr/athena/include
 -/usr/local/x11r5/include
 -/usr/lpp/Xamples/include
 +  if test "$HAVE_GTK_FILE_SELECTION" = yes; then
 +    for ac_func in gtk_file_selection_new
 +do :
 +  ac_fn_c_check_func "$LINENO" "gtk_file_selection_new" "ac_cv_func_gtk_file_selection_new"
 +if test "x$ac_cv_func_gtk_file_selection_new" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_GTK_FILE_SELECTION_NEW 1
 +_ACEOF
  
 -/usr/openwin/include
 -/usr/openwin/share/include'
 +fi
 +done
  
 -if test "$ac_x_includes" = no; then
 -  # Guess where to find include files, by looking for Xlib.h.
 -  # First, try using that file with no special directory specified.
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <X11/Xlib.h>
 -_ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 -  # We can compile using X headers with no special include directory.
 -ac_x_includes=
 -else
 -  for ac_dir in $ac_x_header_dirs; do
 -  if test -r "$ac_dir/X11/Xlib.h"; then
 -    ac_x_includes=$ac_dir
 -    break
    fi
 -done
 +
 +        HAVE_GTK_AND_PTHREAD=no
 +    for ac_header in pthread.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
 +if test "x$ac_cv_header_pthread_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_PTHREAD_H 1
 +_ACEOF
 +
  fi
 -rm -f conftest.err conftest.i conftest.$ac_ext
 -fi # $ac_x_includes = no
  
 -if test "$ac_x_libraries" = no; then
 -  # Check for the libraries.
 -  # See if we find them without any special options.
 -  # Don't add to $LIBS permanently.
 -  ac_save_LIBS=$LIBS
 -  LIBS="-lX11 $LIBS"
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +done
 +
 +    if test "$ac_cv_header_pthread_h"; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5
 +$as_echo_n "checking for pthread_self in -lpthread... " >&6; }
 +if ${ac_cv_lib_pthread_pthread_self+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lpthread  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <X11/Xlib.h>
 +
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char pthread_self ();
  int
  main ()
  {
 -XrmInitialize ()
 +return pthread_self ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  LIBS=$ac_save_LIBS
 -# We can link X programs with no special library path.
 -ac_x_libraries=
 +  ac_cv_lib_pthread_pthread_self=yes
  else
 -  LIBS=$ac_save_LIBS
 -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
 -do
 -  # Don't even attempt the hair of trying to link an X program!
 -  for ac_extension in a so sl dylib la dll; do
 -    if test -r "$ac_dir/libX11.$ac_extension"; then
 -      ac_x_libraries=$ac_dir
 -      break 2
 -    fi
 -  done
 -done
 +  ac_cv_lib_pthread_pthread_self=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 -fi # $ac_x_libraries = no
 -
 -case $ac_x_includes,$ac_x_libraries in #(
 -  no,* | *,no | *\'*)
 -    # Didn't find X, or a directory has "'" in its name.
 -    ac_cv_have_x="have_x=no";; #(
 -  *)
 -    # Record where we found X for the cache.
 -    ac_cv_have_x="have_x=yes\
 -      ac_x_includes='$ac_x_includes'\
 -      ac_x_libraries='$ac_x_libraries'"
 -esac
 -fi
 -;; #(
 -    *) have_x=yes;;
 -  esac
 -  eval "$ac_cv_have_x"
 -fi # $with_x != no
 -
 -if test "$have_x" != yes; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
 -$as_echo "$have_x" >&6; }
 -  no_x=yes
 -else
 -  # If each of the values was on the command line, it overrides each guess.
 -  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
 -  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
 -  # Update the cache value to reflect the command line values.
 -  ac_cv_have_x="have_x=yes\
 -      ac_x_includes='$x_includes'\
 -      ac_x_libraries='$x_libraries'"
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; }
 -fi
 -
 -if test "$no_x" = yes; then
 -  window_system=none
 -else
 -  window_system=x11
 -fi
 -
 -## Workaround for bug in autoconf <= 2.62.
 -## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
 -## No need to do anything special for these standard directories.
 -## This is an experiment, take it out if it causes problems.
 -if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
 -
 -   x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
 -
 -fi
 -
 -if test "${x_libraries}" != NONE; then
 -  if test -n "${x_libraries}"; then
 -    LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
 -    LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
 -  fi
 -  x_default_search_path=""
 -  x_search_path=${x_libraries}
 -  if test -z "${x_search_path}"; then
 -    x_search_path=/usr/lib
 -  fi
 -  for x_library in `echo ${x_search_path}: | \
 -                  sed -e "s/:/ /g" -e p -e "s:/lib[^ /]* :/share :g"`; do
 -    x_search_path="\
 -${x_library}/X11/%L/%T/%N%C%S:\
 -${x_library}/X11/%l/%T/%N%C%S:\
 -${x_library}/X11/%T/%N%C%S:\
 -${x_library}/X11/%L/%T/%N%S:\
 -${x_library}/X11/%l/%T/%N%S:\
 -${x_library}/X11/%T/%N%S"
 -    if test x"${x_default_search_path}" = x; then
 -      x_default_search_path=${x_search_path}
 -    else
 -      x_default_search_path="${x_search_path}:${x_default_search_path}"
 -    fi
 -  done
 -fi
 -if test "${x_includes}" != NONE && test -n "${x_includes}"; then
 -  C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
 -fi
 -
 -if test x"${x_includes}" = x; then
 -  bitmapdir=/usr/include/X11/bitmaps
 -else
 -  # accumulate include directories that have X11 bitmap subdirectories
 -  bmd_acc="dummyval"
 -  for bmd in `echo ${x_includes} | sed -e "s/:/ /g"`; do
 -    if test -d "${bmd}/X11/bitmaps"; then
 -      bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps"
 -    fi
 -    if test -d "${bmd}/bitmaps"; then
 -      bmd_acc="${bmd_acc}:${bmd}/bitmaps"
 -    fi
 -  done
 -  if test ${bmd_acc} != "dummyval"; then
 -    bitmapdir=`echo ${bmd_acc} | sed -e "s/^dummyval://"`
 -  fi
 +LIBS=$ac_check_lib_save_LIBS
  fi
 -
 -HAVE_NS=no
 -NS_IMPL_COCOA=no
 -NS_IMPL_GNUSTEP=no
 -tmp_CPPFLAGS="$CPPFLAGS"
 -tmp_CFLAGS="$CFLAGS"
 -CPPFLAGS="$CPPFLAGS -x objective-c"
 -CFLAGS="$CFLAGS -x objective-c"
 -if test "${with_ns}" != no; then
 -  if test "${opsys}" = darwin; then
 -     NS_IMPL_COCOA=yes
 -     ns_appdir=`pwd`/nextstep/Emacs.app
 -     ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS
 -     ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources
 -     ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
 -  elif test -f $GNUSTEP_CONFIG_FILE; then
 -     NS_IMPL_GNUSTEP=yes
 -     ns_appdir=`pwd`/nextstep/Emacs.app
 -     ns_appbindir=`pwd`/nextstep/Emacs.app
 -     ns_appresdir=`pwd`/nextstep/Emacs.app/Resources
 -     ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
 -          GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
 -     GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
 -     GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
 -     CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}"
 -  fi
 -  ac_fn_c_check_header_mongrel "$LINENO" "AppKit/AppKit.h" "ac_cv_header_AppKit_AppKit_h" "$ac_includes_default"
 -if test "x$ac_cv_header_AppKit_AppKit_h" = x""yes; then :
 -  HAVE_NS=yes
 -else
 -  as_fn_error $? "\`--with-ns' was specified, but the include
 -  files are missing or cannot be compiled." "$LINENO" 5
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5
 +$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; }
 +if test "x$ac_cv_lib_pthread_pthread_self" = xyes; then :
 +  HAVE_GTK_AND_PTHREAD=yes
  fi
  
 +    fi
 +    if test "$HAVE_GTK_AND_PTHREAD" = yes; then
 +      case "${canonical}" in
 +        *-hpux*) ;;
 +        *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
 +      esac
  
 -  NS_HAVE_NSINTEGER=yes
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <Foundation/NSObjCRuntime.h>
 -int
 -main ()
 -{
 -NSInteger i;
 -  ;
 -  return 0;
 -}
 +$as_echo "#define HAVE_GTK_AND_PTHREAD 1" >>confdefs.h
 +
 +    fi
 +
 +    for ac_func in gtk_widget_get_window gtk_widget_set_has_window \
 +                 gtk_dialog_get_action_area gtk_widget_get_sensitive \
 +                 gtk_widget_get_mapped gtk_adjustment_get_page_size \
 +                 gtk_orientable_set_orientation
 +do :
 +  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 +if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ns_have_nsinteger=yes
 -else
 -  ns_have_nsinteger=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -  if test $ns_have_nsinteger = no; then
 -    NS_HAVE_NSINTEGER=no
 -  fi
 +
  fi
 -if test "${HAVE_NS}" = yes; then
 -  window_system=nextstep
 -  with_xft=no
 -  # set up packaging dirs
 -  exec_prefix=${ns_appbindir}
 -  libexecdir=${ns_appbindir}/libexec
 -  if test "${EN_NS_SELF_CONTAINED}" = yes; then
 -     prefix=${ns_appresdir}
 -  fi
 +done
 +
 +
  fi
 -CFLAGS="$tmp_CFLAGS"
 -CPPFLAGS="$tmp_CPPFLAGS"
  
 -case "${window_system}" in
 -  x11 )
 -    HAVE_X_WINDOWS=yes
 -    HAVE_X11=yes
 -    case "${with_x_toolkit}" in
 -      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
 -      motif ) USE_X_TOOLKIT=MOTIF ;;
 -      gtk ) with_gtk=yes
 -            USE_X_TOOLKIT=none ;;
 -      no ) USE_X_TOOLKIT=none ;;
 -      * ) USE_X_TOOLKIT=maybe ;;
 -    esac
 -  ;;
 -  nextstep | none )
 -    HAVE_X_WINDOWS=no
 -    HAVE_X11=no
 -    USE_X_TOOLKIT=none
 -  ;;
 -esac
 +HAVE_DBUS=no
 +DBUS_OBJ=
 +if test "${with_dbus}" = "yes"; then
  
 -if test "$window_system" = none && test "X$with_x" != "Xno"; then
 -   # Extract the first word of "X", so it can be a program name with args.
 -set dummy X; ac_word=$2
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_HAVE_XSERVER+set}" = set; then :
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test -n "$HAVE_XSERVER"; then
 -  ac_cv_prog_HAVE_XSERVER="$HAVE_XSERVER" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
  for as_dir in $PATH
  do
    IFS=$as_save_IFS
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_HAVE_XSERVER="true"
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
    done
  IFS=$as_save_IFS
  
 -  test -z "$ac_cv_prog_HAVE_XSERVER" && ac_cv_prog_HAVE_XSERVER="false"
 -fi
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
  fi
 -HAVE_XSERVER=$ac_cv_prog_HAVE_XSERVER
 -if test -n "$HAVE_XSERVER"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_XSERVER" >&5
 -$as_echo "$HAVE_XSERVER" >&6; }
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
  
 -   if test "$HAVE_XSERVER" = true ||
 -      test -n "$DISPLAY" ||
 -      test "`echo /usr/lib/libX11.*`" != "/usr/lib/libX11.*"; then
 -        as_fn_error $? "You seem to be running X, but no X development libraries
 -were found.  You should install the relevant development files for X
 -and for the toolkit you want, such as Gtk+, Lesstif or Motif.  Also make
 -sure you have development files for image handling, i.e.
 -tiff, gif, jpeg, png and xpm.
 -If you are sure you want Emacs compiled without X window support, pass
 -  --without-x
 -to configure." "$LINENO" 5
 -   fi
 -fi
  
 -### If we're using X11, we should use the X menu package.
 -HAVE_MENUS=no
 -case ${HAVE_X11} in
 -  yes ) HAVE_MENUS=yes ;;
 -esac
 +  if test "$PKG_CONFIG" = "no" ; then
 +     HAVE_DBUS=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-1 >= 1.0" >&5
 +$as_echo_n "checking for dbus-1 >= 1.0... " >&6; }
  
 -# Do the opsystem or machine files prohibit the use of the GNU malloc?
 -# Assume not, until told otherwise.
 -GNU_MALLOC=yes
 -doug_lea_malloc=yes
 -ac_fn_c_check_func "$LINENO" "malloc_get_state" "ac_cv_func_malloc_get_state"
 -if test "x$ac_cv_func_malloc_get_state" = x""yes; then :
 +        if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
  
 -else
 -  doug_lea_malloc=no
 -fi
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_CFLAGS" >&5
 +$as_echo_n "checking DBUS_CFLAGS... " >&6; }
 +            DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_CFLAGS" >&5
 +$as_echo "$DBUS_CFLAGS" >&6; }
  
 -ac_fn_c_check_func "$LINENO" "malloc_set_state" "ac_cv_func_malloc_set_state"
 -if test "x$ac_cv_func_malloc_set_state" = x""yes; then :
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_LIBS" >&5
 +$as_echo_n "checking DBUS_LIBS... " >&6; }
 +            DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_LIBS" >&5
 +$as_echo "$DBUS_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            DBUS_CFLAGS=""
 +            DBUS_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            DBUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dbus-1 >= 1.0"`
  
 -else
 -  doug_lea_malloc=no
 -fi
 +        fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether __after_morecore_hook exists" >&5
 -$as_echo_n "checking whether __after_morecore_hook exists... " >&6; }
 -if test "${emacs_cv_var___after_morecore_hook+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -extern void (* __after_morecore_hook)();
 -int
 -main ()
 -{
 -__after_morecore_hook = 0
 -  ;
 -  return 0;
 -}
 +
 +
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
 +
 +  if test $succeeded = yes; then
 +     HAVE_DBUS=yes
 +  else
 +     HAVE_DBUS=no
 +  fi
 +
 +   if test "$HAVE_DBUS" = yes; then
 +     LIBS="$LIBS $DBUS_LIBS"
 +
 +$as_echo "#define HAVE_DBUS 1" >>confdefs.h
 +
 +     for ac_func in dbus_watch_get_unix_fd
 +do :
 +  ac_fn_c_check_func "$LINENO" "dbus_watch_get_unix_fd" "ac_cv_func_dbus_watch_get_unix_fd"
 +if test "x$ac_cv_func_dbus_watch_get_unix_fd" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_DBUS_WATCH_GET_UNIX_FD 1
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_var___after_morecore_hook=yes
 -else
 -  emacs_cv_var___after_morecore_hook=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_var___after_morecore_hook" >&5
 -$as_echo "$emacs_cv_var___after_morecore_hook" >&6; }
 -if test $emacs_cv_var___after_morecore_hook = no; then
 -  doug_lea_malloc=no
 +
  fi
 -if test "${system_malloc}" = "yes"; then
 -  GNU_MALLOC=no
 -  GNU_MALLOC_reason="
 -    (The GNU allocators don't work with this system configuration.)"
 +done
 +
 +     DBUS_OBJ=dbusbind.o
 +   fi
  fi
 -if test "$doug_lea_malloc" = "yes" ; then
 -  if test "$GNU_MALLOC" = yes ; then
 -    GNU_MALLOC_reason="
 -      (Using Doug Lea's new malloc from the GNU C Library.)"
 -  fi
  
 -$as_echo "#define DOUG_LEA_MALLOC 1" >>confdefs.h
  
 +HAVE_GCONF=no
 +if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
 +
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
  fi
 -
 -if test x"${REL_ALLOC}" = x; then
 -  REL_ALLOC=${GNU_MALLOC}
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
  
  
 +  if test "$PKG_CONFIG" = "no" ; then
 +     HAVE_GCONF=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gconf-2.0 >= 2.13" >&5
 +$as_echo_n "checking for gconf-2.0 >= 2.13... " >&6; }
  
 +        if $PKG_CONFIG --exists "gconf-2.0 >= 2.13" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
  
 -  for ac_header in $ac_header_list
 -do :
 -  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 -"
 -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 -_ACEOF
 -
 -fi
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_CFLAGS" >&5
 +$as_echo_n "checking GCONF_CFLAGS... " >&6; }
 +            GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_CFLAGS" >&5
 +$as_echo "$GCONF_CFLAGS" >&6; }
  
 -done
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_LIBS" >&5
 +$as_echo_n "checking GCONF_LIBS... " >&6; }
 +            GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_LIBS" >&5
 +$as_echo "$GCONF_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            GCONF_CFLAGS=""
 +            GCONF_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            GCONF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gconf-2.0 >= 2.13"`
  
 +        fi
  
  
  
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
  
 +  if test $succeeded = yes; then
 +     HAVE_GCONF=yes
 +  else
 +     HAVE_GCONF=no
 +  fi
  
 +   if test "$HAVE_GCONF" = yes; then
  
 +$as_echo "#define HAVE_GCONF 1" >>confdefs.h
  
 -for ac_func in getpagesize
 +            for ac_func in g_type_init
  do :
 -  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
 -if test "x$ac_cv_func_getpagesize" = x""yes; then :
 +  ac_fn_c_check_func "$LINENO" "g_type_init" "ac_cv_func_g_type_init"
 +if test "x$ac_cv_func_g_type_init" = xyes; then :
    cat >>confdefs.h <<_ACEOF
 -#define HAVE_GETPAGESIZE 1
 +#define HAVE_G_TYPE_INIT 1
  _ACEOF
  
  fi
  done
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
 -$as_echo_n "checking for working mmap... " >&6; }
 -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
 +   fi
 +fi
 +
 +HAVE_LIBSELINUX=no
 +LIBSELINUX_LIBS=
 +if test "${with_selinux}" = "yes"; then
 +   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lgetfilecon in -lselinux" >&5
 +$as_echo_n "checking for lgetfilecon in -lselinux... " >&6; }
 +if ${ac_cv_lib_selinux_lgetfilecon+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test "$cross_compiling" = yes; then :
 -  ac_cv_func_mmap_fixed_mapped=no
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lselinux  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -$ac_includes_default
 -/* malloc might have been renamed as rpl_malloc. */
 -#undef malloc
 -
 -/* Thanks to Mike Haertel and Jim Avera for this test.
 -   Here is a matrix of mmap possibilities:
 -      mmap private not fixed
 -      mmap private fixed at somewhere currently unmapped
 -      mmap private fixed at somewhere already mapped
 -      mmap shared not fixed
 -      mmap shared fixed at somewhere currently unmapped
 -      mmap shared fixed at somewhere already mapped
 -   For private mappings, we should verify that changes cannot be read()
 -   back from the file, nor mmap's back from the file at a different
 -   address.  (There have been systems where private was not correctly
 -   implemented like the infamous i386 svr4.0, and systems where the
 -   VM page cache was not coherent with the file system buffer cache
 -   like early versions of FreeBSD and possibly contemporary NetBSD.)
 -   For shared mappings, we should conversely verify that changes get
 -   propagated back to all the places they're supposed to be.
 -
 -   Grep wants private fixed already mapped.
 -   The main things grep needs to know about mmap are:
 -   * does it exist and is it safe to write into the mmap'd area
 -   * how to use it (BSD variants)  */
  
 -#include <fcntl.h>
 -#include <sys/mman.h>
 -
 -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
 -char *malloc ();
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
  #endif
 -
 -/* This mess was copied from the GNU getpagesize.h.  */
 -#ifndef HAVE_GETPAGESIZE
 -# ifdef _SC_PAGESIZE
 -#  define getpagesize() sysconf(_SC_PAGESIZE)
 -# else /* no _SC_PAGESIZE */
 -#  ifdef HAVE_SYS_PARAM_H
 -#   include <sys/param.h>
 -#   ifdef EXEC_PAGESIZE
 -#    define getpagesize() EXEC_PAGESIZE
 -#   else /* no EXEC_PAGESIZE */
 -#    ifdef NBPG
 -#     define getpagesize() NBPG * CLSIZE
 -#     ifndef CLSIZE
 -#      define CLSIZE 1
 -#     endif /* no CLSIZE */
 -#    else /* no NBPG */
 -#     ifdef NBPC
 -#      define getpagesize() NBPC
 -#     else /* no NBPC */
 -#      ifdef PAGESIZE
 -#       define getpagesize() PAGESIZE
 -#      endif /* PAGESIZE */
 -#     endif /* no NBPC */
 -#    endif /* no NBPG */
 -#   endif /* no EXEC_PAGESIZE */
 -#  else /* no HAVE_SYS_PARAM_H */
 -#   define getpagesize() 8192 /* punt totally */
 -#  endif /* no HAVE_SYS_PARAM_H */
 -# endif /* no _SC_PAGESIZE */
 -
 -#endif /* no HAVE_GETPAGESIZE */
 -
 +char lgetfilecon ();
  int
  main ()
  {
 -  char *data, *data2, *data3;
 -  const char *cdata2;
 -  int i, pagesize;
 -  int fd, fd2;
 +return lgetfilecon ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_selinux_lgetfilecon=yes
 +else
 +  ac_cv_lib_selinux_lgetfilecon=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_lgetfilecon" >&5
 +$as_echo "$ac_cv_lib_selinux_lgetfilecon" >&6; }
 +if test "x$ac_cv_lib_selinux_lgetfilecon" = xyes; then :
 +  HAVE_LIBSELINUX=yes
 +else
 +  HAVE_LIBSELINUX=no
 +fi
  
 -  pagesize = getpagesize ();
 +   if test "$HAVE_LIBSELINUX" = yes; then
  
 -  /* First, make a file with some known garbage in it. */
 -  data = (char *) malloc (pagesize);
 -  if (!data)
 -    return 1;
 -  for (i = 0; i < pagesize; ++i)
 -    *(data + i) = rand ();
 -  umask (0);
 -  fd = creat ("conftest.mmap", 0600);
 -  if (fd < 0)
 -    return 2;
 -  if (write (fd, data, pagesize) != pagesize)
 -    return 3;
 -  close (fd);
 +$as_echo "#define HAVE_LIBSELINUX 1" >>confdefs.h
  
 -  /* Next, check that the tail of a page is zero-filled.  File must have
 -     non-zero length, otherwise we risk SIGBUS for entire page.  */
 -  fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
 -  if (fd2 < 0)
 -    return 4;
 -  cdata2 = "";
 -  if (write (fd2, cdata2, 1) != 1)
 -    return 5;
 -  data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
 -  if (data2 == MAP_FAILED)
 -    return 6;
 -  for (i = 0; i < pagesize; ++i)
 -    if (*(data2 + i))
 -      return 7;
 -  close (fd2);
 -  if (munmap (data2, pagesize))
 -    return 8;
 +      LIBSELINUX_LIBS=-lselinux
 +   fi
 +fi
  
 -  /* Next, try to mmap the file at a fixed address which already has
 -     something else allocated at it.  If we can, also make sure that
 -     we see the same garbage.  */
 -  fd = open ("conftest.mmap", O_RDWR);
 -  if (fd < 0)
 -    return 9;
 -  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
 -                   MAP_PRIVATE | MAP_FIXED, fd, 0L))
 -    return 10;
 -  for (i = 0; i < pagesize; ++i)
 -    if (*(data + i) != *(data2 + i))
 -      return 11;
  
 -  /* Finally, make sure that changes to the mapped area do not
 -     percolate back to the file as seen by read().  (This is a bug on
 -     some variants of i386 svr4.0.)  */
 -  for (i = 0; i < pagesize; ++i)
 -    *(data2 + i) = *(data2 + i) + 1;
 -  data3 = (char *) malloc (pagesize);
 -  if (!data3)
 -    return 12;
 -  if (read (fd, data3, pagesize) != pagesize)
 -    return 13;
 -  for (i = 0; i < pagesize; ++i)
 -    if (*(data + i) != *(data3 + i))
 -      return 14;
 -  close (fd);
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_run "$LINENO"; then :
 -  ac_cv_func_mmap_fixed_mapped=yes
 +HAVE_GNUTLS=no
 +if test "${with_gnutls}" = "yes" ; then
 +
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  ac_cv_func_mmap_fixed_mapped=no
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
  fi
 -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 -  conftest.$ac_objext conftest.beam conftest.$ac_ext
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
  fi
  
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
 -$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
 -if test $ac_cv_func_mmap_fixed_mapped = yes; then
  
 -$as_echo "#define HAVE_MMAP 1" >>confdefs.h
  
 -fi
 -rm -f conftest.mmap conftest.txt
 +  if test "$PKG_CONFIG" = "no" ; then
 +     HAVE_GNUTLS=no
 +  else
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 2.2.4" >&5
 +$as_echo_n "checking for gnutls >= 2.2.4... " >&6; }
  
 -if test $use_mmap_for_buffers = yes; then
 -  REL_ALLOC=no
 +        if $PKG_CONFIG --exists "gnutls >= 2.2.4" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_CFLAGS" >&5
 +$as_echo_n "checking LIBGNUTLS_CFLAGS... " >&6; }
 +            LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 2.2.4"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CFLAGS" >&5
 +$as_echo "$LIBGNUTLS_CFLAGS" >&6; }
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_LIBS" >&5
 +$as_echo_n "checking LIBGNUTLS_LIBS... " >&6; }
 +            LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 2.2.4"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_LIBS" >&5
 +$as_echo "$LIBGNUTLS_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            LIBGNUTLS_CFLAGS=""
 +            LIBGNUTLS_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            LIBGNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.2.4"`
 +
 +        fi
 +
 +
 +
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
 +
 +  if test $succeeded = yes; then
 +     HAVE_GNUTLS=yes
 +  else
 +     HAVE_GNUTLS=no
 +  fi
 +
 +  if test "${HAVE_GNUTLS}" = "yes"; then
 +
 +$as_echo "#define HAVE_GNUTLS 1" >>confdefs.h
 +
 +  fi
  fi
  
 -LIBS="$libsrc_libs $LIBS"
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5
 -$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; }
 -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then :
 +
 +HAVE_XAW3D=no
 +LUCID_LIBW=
 +if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
 +  if test "$with_xaw3d" != no; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xaw3d" >&5
 +$as_echo_n "checking for xaw3d... " >&6; }
 +    if ${emacs_cv_xaw3d+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +#include <X11/Intrinsic.h>
 +#include <X11/Xaw3d/Simple.h>
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
++  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XawScrollbarSetThumb in -lXaw3d" >&5
++$as_echo_n "checking for XawScrollbarSetThumb in -lXaw3d... " >&6; }
++if test "${ac_cv_lib_Xaw3d_XawScrollbarSetThumb+set}" = set; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
 -LIBS="-ldnet  $LIBS"
++LIBS="-lXaw3d  $LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ /* Override any GCC internal prototype to avoid an error.
+    Use char because int might match the return type of a GCC
+    builtin and then its argument prototype would still apply.  */
+ #ifdef __cplusplus
+ extern "C"
+ #endif
 -char dnet_ntoa ();
++char XawScrollbarSetThumb ();
+ int
+ main ()
+ {
 -return dnet_ntoa ();
++return XawScrollbarSetThumb ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_dnet_dnet_ntoa=yes
++  ac_cv_lib_Xaw3d_XawScrollbarSetThumb=yes
+ else
 -  ac_cv_lib_dnet_dnet_ntoa=no
++  ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; }
 -if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBDNET 1
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&5
++$as_echo "$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&6; }
++if test "x$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" = x""yes; then :
 +  emacs_cv_xaw3d=yes
 +else
 +  emacs_cv_xaw3d=no
 +fi
++
++else
++  emacs_cv_xaw3d=no
++fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
 +
 +  else
 +    emacs_cv_xaw3d=no
 +  fi
 +  if test $emacs_cv_xaw3d = yes; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5
 +$as_echo "yes; using Lucid toolkit" >&6; }
 +    USE_X_TOOLKIT=LUCID
 +    HAVE_XAW3D=yes
 +    LUCID_LIBW=-lXaw3d
 +
 +$as_echo "#define HAVE_XAW3D 1" >>confdefs.h
 +
 +  else
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libXaw" >&5
 +$as_echo_n "checking for libXaw... " >&6; }
 +    if ${emacs_cv_xaw+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +
 +#include <X11/Intrinsic.h>
 +#include <X11/Xaw/Simple.h>
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
  _ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_xaw=yes
 +else
 +  emacs_cv_xaw=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
  
 -  LIBS="-ldnet $LIBS"
 +    if test $emacs_cv_xaw = yes; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5
 +$as_echo "yes; using Lucid toolkit" >&6; }
 +      USE_X_TOOLKIT=LUCID
 +      LUCID_LIBW=-lXaw
 +    elif test x"${USE_X_TOOLKIT}" = xLUCID; then
 +      as_fn_error $? "Lucid toolkit requires X11/Xaw include files" "$LINENO" 5
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; do not use toolkit by default" >&5
 +$as_echo "no; do not use toolkit by default" >&6; }
 +      USE_X_TOOLKIT=none
 +    fi
 +  fi
 +fi
 +
 +X_TOOLKIT_TYPE=$USE_X_TOOLKIT
 +
 +LIBXTR6=
 +if test "${USE_X_TOOLKIT}" != "none"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking X11 toolkit version" >&5
 +$as_echo_n "checking X11 toolkit version... " >&6; }
 +  if ${emacs_cv_x11_toolkit_version_6+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <X11/Intrinsic.h>
 +int
 +main ()
 +{
 +#if XtSpecificationRelease < 6
 +fail;
 +#endif
  
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_x11_toolkit_version_6=yes
 +else
 +  emacs_cv_x11_toolkit_version_6=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
  fi
  
 +  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
 +  if test $emacs_cv_x11_toolkit_version_6 = yes; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 6 or newer" >&5
 +$as_echo "6 or newer" >&6; }
 +
 +$as_echo "#define HAVE_X11XTR6 1" >>confdefs.h
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lXbsd" >&5
 -$as_echo_n "checking for main in -lXbsd... " >&6; }
 -if test "${ac_cv_lib_Xbsd_main+set}" = set; then :
 +    LIBXTR6="-lSM -lICE"
 +    case "$opsys" in
 +      ## Use libw.a along with X11R6 Xt.
 +      unixware) LIBXTR6="$LIBXTR6 -lw" ;;
 +    esac
 +  else
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: before 6" >&5
 +$as_echo "before 6" >&6; }
 +  fi
 +
 +  OLDLIBS="$LIBS"
 +  if test x$HAVE_X11XTR6 = xyes; then
 +    LIBS="-lXt -lSM -lICE $LIBS"
 +  else
 +    LIBS="-lXt $LIBS"
 +  fi
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XmuConvertStandardSelection in -lXmu" >&5
 +$as_echo_n "checking for XmuConvertStandardSelection in -lXmu... " >&6; }
 +if ${ac_cv_lib_Xmu_XmuConvertStandardSelection+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXbsd  $LIBS"
 +LIBS="-lXmu  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 -
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char XmuConvertStandardSelection ();
  int
  main ()
  {
 -return main ();
 +return XmuConvertStandardSelection ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xbsd_main=yes
 +  ac_cv_lib_Xmu_XmuConvertStandardSelection=yes
  else
 -  ac_cv_lib_Xbsd_main=no
 +  ac_cv_lib_Xmu_XmuConvertStandardSelection=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xbsd_main" >&5
 -$as_echo "$ac_cv_lib_Xbsd_main" >&6; }
 -if test "x$ac_cv_lib_Xbsd_main" = x""yes; then :
 -  LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd"
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xmu_XmuConvertStandardSelection" >&5
 +$as_echo "$ac_cv_lib_Xmu_XmuConvertStandardSelection" >&6; }
 +if test "x$ac_cv_lib_Xmu_XmuConvertStandardSelection" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBXMU 1
 +_ACEOF
 +
 +  LIBS="-lXmu $LIBS"
 +
 +fi
 +
 +  test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
  fi
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cma_open in -lpthreads" >&5
 -$as_echo_n "checking for cma_open in -lpthreads... " >&6; }
 -if test "${ac_cv_lib_pthreads_cma_open+set}" = set; then :
 +LIBXMU=-lXmu
 +case $opsys in
 +  ## These systems don't supply Xmu.
 +  hpux* | aix4-2 )
 +    test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
 +    ;;
 +esac
 +
 +
 +# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${USE_X_TOOLKIT}" != "none"; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShapeQueryExtension in -lXext" >&5
 +$as_echo_n "checking for XShapeQueryExtension in -lXext... " >&6; }
 +if ${ac_cv_lib_Xext_XShapeQueryExtension+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lpthreads  $LIBS"
 +LIBS="-lXext  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char cma_open ();
 +char XShapeQueryExtension ();
  int
  main ()
  {
 -return cma_open ();
 +return XShapeQueryExtension ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_pthreads_cma_open=yes
 +  ac_cv_lib_Xext_XShapeQueryExtension=yes
  else
 -  ac_cv_lib_pthreads_cma_open=no
 +  ac_cv_lib_Xext_XShapeQueryExtension=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_cma_open" >&5
 -$as_echo "$ac_cv_lib_pthreads_cma_open" >&6; }
 -if test "x$ac_cv_lib_pthreads_cma_open" = x""yes; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5
 +$as_echo "$ac_cv_lib_Xext_XShapeQueryExtension" >&6; }
 +if test "x$ac_cv_lib_Xext_XShapeQueryExtension" = xyes; then :
    cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBPTHREADS 1
 +#define HAVE_LIBXEXT 1
  _ACEOF
  
 -  LIBS="-lpthreads $LIBS"
 +  LIBS="-lXext $LIBS"
  
  fi
  
 +  fi
 +fi
  
 -
 -case ${host_os} in
 -aix*)
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -bbigtoc option" >&5
 -$as_echo_n "checking for -bbigtoc option... " >&6; }
 -if test "${gdb_cv_bigtoc+set}" = set; then :
 +LIBXP=
 +if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif version 2.1" >&5
 +$as_echo_n "checking for Motif version 2.1... " >&6; }
 +if ${emacs_cv_motif_version_2_1+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -
 -    case $GCC in
 -    yes) gdb_cv_bigtoc=-Wl,-bbigtoc ;;
 -    *) gdb_cv_bigtoc=-bbigtoc ;;
 -    esac
 -
 -    LDFLAGS=$LDFLAGS\ $gdb_cv_bigtoc
 -    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 +#include <Xm/Xm.h>
  int
  main ()
  {
 -int i;
 +#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
 +int x = 5;
 +#else
 +Motif version prior to 2.1.
 +#endif
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_motif_version_2_1=yes
  else
 -  gdb_cv_bigtoc=
 +  emacs_cv_motif_version_2_1=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_bigtoc" >&5
 -$as_echo "$gdb_cv_bigtoc" >&6; }
 -  ;;
 -esac
 -
 -# Change CFLAGS and CPPFLAGS temporarily so that C_SWITCH_X_SITE gets
 -# used for the tests that follow.  We set them back to REAL_CFLAGS and
 -# REAL_CPPFLAGS later on.
 -
 -REAL_CPPFLAGS="$CPPFLAGS"
 -
 -if test "${HAVE_X11}" = "yes"; then
 -  DEFS="$C_SWITCH_X_SITE $DEFS"
 -  LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
 -  LIBS="$LIBX $LIBS"
 -  CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
 -  CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
 -
 -  # On Solaris, arrange for LD_RUN_PATH to point to the X libraries for tests.
 -  # This is handled by LD_SWITCH_X_SITE_AUX during the real build,
 -  # but it's more convenient here to set LD_RUN_PATH
 -  # since this also works on hosts that don't understand LD_SWITCH_X_SITE_AUX.
 -  if test "${x_libraries}" != NONE && test -n "${x_libraries}"; then
 -    LD_RUN_PATH=$x_libraries${LD_RUN_PATH+:}$LD_RUN_PATH
 -    export LD_RUN_PATH
 -  fi
 -
 -  if test "${opsys}" = "gnu-linux"; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether X on GNU/Linux needs -b to link" >&5
 -$as_echo_n "checking whether X on GNU/Linux needs -b to link... " >&6; }
 -    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_motif_version_2_1" >&5
 +$as_echo "$emacs_cv_motif_version_2_1" >&6; }
 +  if test $emacs_cv_motif_version_2_1 = yes; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpCreateContext in -lXp" >&5
 +$as_echo_n "checking for XpCreateContext in -lXp... " >&6; }
 +if ${ac_cv_lib_Xp_XpCreateContext+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lXp  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char XpCreateContext ();
  int
  main ()
  {
 -XOpenDisplay ("foo");
 +return XpCreateContext ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  xlinux_first_failure=no
 +  ac_cv_lib_Xp_XpCreateContext=yes
  else
 -  xlinux_first_failure=yes
 +  ac_cv_lib_Xp_XpCreateContext=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 -    if test "${xlinux_first_failure}" = "yes"; then
 -      OLD_LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE"
 -      OLD_C_SWITCH_X_SITE="$C_SWITCH_X_SITE"
 -      OLD_CPPFLAGS="$CPPFLAGS"
 -      OLD_LIBS="$LIBS"
 -      LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -b i486-linuxaout"
 -      C_SWITCH_X_SITE="$C_SWITCH_X_SITE -b i486-linuxaout"
 -      CPPFLAGS="$CPPFLAGS -b i486-linuxaout"
 -      LIBS="$LIBS -b i486-linuxaout"
 -      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_XpCreateContext" >&5
 +$as_echo "$ac_cv_lib_Xp_XpCreateContext" >&6; }
 +if test "x$ac_cv_lib_Xp_XpCreateContext" = xyes; then :
 +  LIBXP=-lXp
 +fi
  
 +  else
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LessTif where some systems put it" >&5
 +$as_echo_n "checking for LessTif where some systems put it... " >&6; }
 +if ${emacs_cv_lesstif+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  # We put this in CFLAGS temporarily to precede other -I options
 +    # that might be in CFLAGS temporarily.
 +    # We put this in CPPFLAGS where it precedes the other -I options.
 +    OLD_CPPFLAGS=$CPPFLAGS
 +    OLD_CFLAGS=$CFLAGS
 +    CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
 +    CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>
  int
  main ()
  {
 -XOpenDisplay ("foo");
 +int x = 5;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  xlinux_second_failure=no
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_lesstif=yes
  else
 -  xlinux_second_failure=yes
 +  emacs_cv_lesstif=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -      if test "${xlinux_second_failure}" = "yes"; then
 -      # If we get the same failure with -b, there is no use adding -b.
 -      # So take it out.  This plays safe.
 -      LD_SWITCH_X_SITE="$OLD_LD_SWITCH_X_SITE"
 -      C_SWITCH_X_SITE="$OLD_C_SWITCH_X_SITE"
 -      CPPFLAGS="$OLD_CPPFLAGS"
 -      LIBS="$OLD_LIBS"
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -      else
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -      fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_lesstif" >&5
 +$as_echo "$emacs_cv_lesstif" >&6; }
 +    if test $emacs_cv_lesstif = yes; then
 +      # Make sure this -I option remains in CPPFLAGS after it is set
 +      # back to REAL_CPPFLAGS.
 +      # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
 +      # have those other -I options anyway.  Ultimately, having this
 +      # directory ultimately in CPPFLAGS will be enough.
 +      REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
 +      LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
      else
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +      CFLAGS=$OLD_CFLAGS
 +      CPPFLAGS=$OLD_CPPFLAGS
      fi
    fi
 +fi
  
 -  # Reportedly, some broken Solaris systems have XKBlib.h but are missing
 -  # header files included from there.
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Xkb" >&5
 -$as_echo_n "checking for Xkb... " >&6; }
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +USE_TOOLKIT_SCROLL_BARS=no
 +if test "${with_toolkit_scroll_bars}" != "no"; then
 +  if test "${USE_X_TOOLKIT}" != "none"; then
 +    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 +      $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 +
 +      HAVE_XAW3D=no
 +      USE_TOOLKIT_SCROLL_BARS=yes
 +    elif test "${HAVE_XAW3D}" = "yes"; then
 +      $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 +
 +      USE_TOOLKIT_SCROLL_BARS=yes
 +    fi
 +  elif test "${HAVE_GTK}" = "yes"; then
 +    $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 +
 +    USE_TOOLKIT_SCROLL_BARS=yes
 +  elif test "${HAVE_NS}" = "yes"; then
 +    $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 +
 +    USE_TOOLKIT_SCROLL_BARS=yes
 +  fi
 +fi
 +
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <X11/Xlib.h>
 -#include <X11/XKBlib.h>
 +
 +        #include <X11/Xlib.h>
 +        #include <X11/Xresource.h>
  int
  main ()
  {
 -XkbDescPtr kb = XkbGetKeyboard (0, XkbAllComponentsMask, XkbUseCoreKbd);
 +XIMProc  callback;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_xkb=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  HAVE_XIM=yes
 +
 +$as_echo "#define HAVE_XIM 1" >>confdefs.h
 +
  else
 -  emacs_xkb=no
 +  HAVE_XIM=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_xkb" >&5
 -$as_echo "$emacs_xkb" >&6; }
 -  if test $emacs_xkb = yes; then
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  
 -$as_echo "#define HAVE_XKBGETKEYBOARD 1" >>confdefs.h
  
 -  fi
 +if test "${with_xim}" != "no"; then
  
 -  for ac_func in XrmSetDatabase XScreenResourceString \
 -XScreenNumberOfScreen XSetWMProtocols
 -do :
 -  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 -if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 -_ACEOF
 +$as_echo "#define USE_XIM 1" >>confdefs.h
  
  fi
 -done
  
 -fi
  
 -if test "${window_system}" = "x11"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking X11 version 6" >&5
 -$as_echo_n "checking X11 version 6... " >&6; }
 -  if test "${emacs_cv_x11_version_6+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 +if test "${HAVE_XIM}" != "no"; then
 +  late_CFLAGS=$CFLAGS
 +  if test "$GCC" = yes; then
 +    CFLAGS="$CFLAGS --pedantic-errors"
 +  fi
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +
  #include <X11/Xlib.h>
 +#include <X11/Xresource.h>
  int
  main ()
  {
 -#if XlibSpecificationRelease < 6
 -fail;
 +Display *display;
 +XrmDatabase db;
 +char *res_name;
 +char *res_class;
 +XIMProc  callback;
 +XPointer *client_data;
 +#ifndef __GNUC__
 +/* If we're not using GCC, it's probably not XFree86, and this is
 +   probably right, but we can't use something like --pedantic-errors.  */
 +extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
 +                                           char*, XIMProc, XPointer*);
  #endif
 -
 +(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
 +   client_data);
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_x11_version_6=yes
 -else
 -  emacs_cv_x11_version_6=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  emacs_cv_arg6_star=yes
  fi
 -
 -  if test $emacs_cv_x11_version_6 = yes; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 6 or newer" >&5
 -$as_echo "6 or newer" >&6; }
 -
 -$as_echo "#define HAVE_X11R6 1" >>confdefs.h
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +    if test "$emacs_cv_arg6_star" = yes; then
 +    $as_echo "#define XRegisterIMInstantiateCallback_arg6 XPointer*" >>confdefs.h
  
    else
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: before 6" >&5
 -$as_echo "before 6" >&6; }
 +    $as_echo "#define XRegisterIMInstantiateCallback_arg6 XPointer" >>confdefs.h
 +
    fi
 +  CFLAGS=$late_CFLAGS
  fi
  
 +### Start of font-backend (under any platform) section.
 +# (nothing here yet -- this is a placeholder)
 +### End of font-backend (under any platform) section.
  
 -### Use -lrsvg-2 if available, unless `--with-rsvg=no' is specified.
 -HAVE_RSVG=no
 -if test "${HAVE_X11}" = "yes" || test "${NS_IMPL_GNUSTEP}" = "yes"; then
 -  if test "${with_rsvg}" != "no"; then
 -    RSVG_REQUIRED=2.11.0
 -    RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
 -
 +### Start of font-backend (under X11) section.
 +if test "${HAVE_X11}" = "yes"; then
  
    succeeded=no
  
  set dummy pkg-config; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    case $PKG_CONFIG in
  
  
    if test "$PKG_CONFIG" = "no" ; then
 -     :
 +     HAVE_FC=no
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
       if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $RSVG_MODULE" >&5
 -$as_echo_n "checking for $RSVG_MODULE... " >&6; }
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig >= 2.2.0" >&5
 +$as_echo_n "checking for fontconfig >= 2.2.0... " >&6; }
  
 -        if $PKG_CONFIG --exists "$RSVG_MODULE" 2>&5; then
 +        if $PKG_CONFIG --exists "fontconfig >= 2.2.0" 2>&5; then
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  $as_echo "yes" >&6; }
              succeeded=yes
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_CFLAGS" >&5
 -$as_echo_n "checking RSVG_CFLAGS... " >&6; }
 -            RSVG_CFLAGS=`$PKG_CONFIG --cflags "$RSVG_MODULE"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_CFLAGS" >&5
 -$as_echo "$RSVG_CFLAGS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_CFLAGS" >&5
 +$as_echo_n "checking FONTCONFIG_CFLAGS... " >&6; }
 +            FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_CFLAGS" >&5
 +$as_echo "$FONTCONFIG_CFLAGS" >&6; }
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_LIBS" >&5
 -$as_echo_n "checking RSVG_LIBS... " >&6; }
 -            RSVG_LIBS=`$PKG_CONFIG --libs "$RSVG_MODULE"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_LIBS" >&5
 -$as_echo "$RSVG_LIBS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_LIBS" >&5
 +$as_echo_n "checking FONTCONFIG_LIBS... " >&6; }
 +            FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_LIBS" >&5
 +$as_echo "$FONTCONFIG_LIBS" >&6; }
          else
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 -            RSVG_CFLAGS=""
 -            RSVG_LIBS=""
 +            FONTCONFIG_CFLAGS=""
 +            FONTCONFIG_LIBS=""
              ## If we have a custom action on failure, don't print errors, but
              ## do set a variable so people can do so.
 -            RSVG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$RSVG_MODULE"`
 +            FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig >= 2.2.0"`
  
          fi
  
    fi
  
    if test $succeeded = yes; then
 -     :
 +     HAVE_FC=yes
    else
 -     :
 +     HAVE_FC=no
    fi
  
  
 -
 -
 -    if test ".${RSVG_CFLAGS}" != "."; then
 -      HAVE_RSVG=yes
 -
 -$as_echo "#define HAVE_RSVG 1" >>confdefs.h
 -
 -      CFLAGS="$CFLAGS $RSVG_CFLAGS"
 -      LIBS="$RSVG_LIBS $LIBS"
 +   ## Use -lXft if available, unless `--with-xft=no'.
 +   HAVE_XFT=maybe
 +    if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
 +      with_xft="no";
      fi
 -  fi
 -fi
 -
 -
 -HAVE_GTK=no
 -if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
 -  GLIB_REQUIRED=2.6
 -  GTK_REQUIRED=2.6
 -  GTK_MODULES="gtk+-2.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 +    if test "x${with_xft}" != "xno"; then
  
  
    succeeded=no
  set dummy pkg-config; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    case $PKG_CONFIG in
  
  
    if test "$PKG_CONFIG" = "no" ; then
 -     pkg_check_gtk=no
 +     HAVE_XFT=no
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
       if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5
 -$as_echo_n "checking for $GTK_MODULES... " >&6; }
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xft >= 0.13.0" >&5
 +$as_echo_n "checking for xft >= 0.13.0... " >&6; }
  
 -        if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
 +        if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  $as_echo "yes" >&6; }
              succeeded=yes
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5
 -$as_echo_n "checking GTK_CFLAGS... " >&6; }
 -            GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5
 -$as_echo "$GTK_CFLAGS" >&6; }
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5
 -$as_echo_n "checking GTK_LIBS... " >&6; }
 -            GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5
 -$as_echo "$GTK_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            GTK_CFLAGS=""
 -            GTK_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
 -
 -        fi
 -
 -
 -
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
 -
 -  if test $succeeded = yes; then
 -     pkg_check_gtk=yes
 -  else
 -     pkg_check_gtk=no
 -  fi
 -
 -  if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
 -     as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
 -  fi
 -fi
 -
 -
 -if test x"$pkg_check_gtk" = xyes; then
 -
 -
 -
 -  C_SWITCH_X_SITE="$C_SWITCH_X_SITE $GTK_CFLAGS"
 -  CFLAGS="$CFLAGS $GTK_CFLAGS"
 -  LIBS="$GTK_LIBS $LIBS"
 -    GTK_COMPILES=no
 -  for ac_func in gtk_main
 -do :
 -  ac_fn_c_check_func "$LINENO" "gtk_main" "ac_cv_func_gtk_main"
 -if test "x$ac_cv_func_gtk_main" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GTK_MAIN 1
 -_ACEOF
 - GTK_COMPILES=yes
 -fi
 -done
 -
 -  if test "${GTK_COMPILES}" != "yes"; then
 -    if test "$USE_X_TOOLKIT" != "maybe"; then
 -      as_fn_error $? "Gtk+ wanted, but it does not compile, see config.log.  Maybe some x11-devel files missing?" "$LINENO" 5;
 -    fi
 -  else
 -    HAVE_GTK=yes
 -
 -$as_echo "#define USE_GTK 1" >>confdefs.h
 -
 -    USE_X_TOOLKIT=none
 -    if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
 -      :
 -    else
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Your version of Gtk+ will have problems with
 -       closing open displays.  This is no problem if you just use
 -       one display, but if you use more than one and close one of them
 -       Emacs may crash." >&5
 -$as_echo "$as_me: WARNING: Your version of Gtk+ will have problems with
 -       closing open displays.  This is no problem if you just use
 -       one display, but if you use more than one and close one of them
 -       Emacs may crash." >&2;}
 -      sleep 3
 -    fi
 -  fi
 -
 -fi
 -
 -
 -if test "${HAVE_GTK}" = "yes"; then
 -
 -      if test "$with_toolkit_scroll_bars" != no; then
 -    with_toolkit_scroll_bars=yes
 -  fi
 -
 -      HAVE_GTK_MULTIDISPLAY=no
 -  for ac_func in gdk_display_open
 -do :
 -  ac_fn_c_check_func "$LINENO" "gdk_display_open" "ac_cv_func_gdk_display_open"
 -if test "x$ac_cv_func_gdk_display_open" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GDK_DISPLAY_OPEN 1
 -_ACEOF
 - HAVE_GTK_MULTIDISPLAY=yes
 -fi
 -done
 -
 -  if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 -
 -$as_echo "#define HAVE_GTK_MULTIDISPLAY 1" >>confdefs.h
 -
 -  fi
 -
 -          HAVE_GTK_FILE_SELECTION=no
 -  ac_fn_c_check_decl "$LINENO" "GTK_TYPE_FILE_SELECTION" "ac_cv_have_decl_GTK_TYPE_FILE_SELECTION" "$ac_includes_default
 -#include <gtk/gtk.h>
 -"
 -if test "x$ac_cv_have_decl_GTK_TYPE_FILE_SELECTION" = x""yes; then :
 -  HAVE_GTK_FILE_SELECTION=yes
 -else
 -  HAVE_GTK_FILE_SELECTION=no
 -fi
 -
 -  if test "$HAVE_GTK_FILE_SELECTION" = yes; then
 -    for ac_func in gtk_file_selection_new
 -do :
 -  ac_fn_c_check_func "$LINENO" "gtk_file_selection_new" "ac_cv_func_gtk_file_selection_new"
 -if test "x$ac_cv_func_gtk_file_selection_new" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GTK_FILE_SELECTION_NEW 1
 -_ACEOF
 - HAVE_GTK_FILE_SELECTION=yes
 -else
 -  HAVE_GTK_FILE_SELECTION=no
 -fi
 -done
 -
 -  fi
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_CFLAGS" >&5
 +$as_echo_n "checking XFT_CFLAGS... " >&6; }
 +            XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_CFLAGS" >&5
 +$as_echo "$XFT_CFLAGS" >&6; }
  
 -    HAVE_GTK_FILE_CHOOSER=no
 -  ac_fn_c_check_decl "$LINENO" "GTK_TYPE_FILE_CHOOSER" "ac_cv_have_decl_GTK_TYPE_FILE_CHOOSER" "$ac_includes_default
 -#include <gtk/gtk.h>
 -"
 -if test "x$ac_cv_have_decl_GTK_TYPE_FILE_CHOOSER" = x""yes; then :
 -  HAVE_GTK_FILE_CHOOSER=yes
 -else
 -  HAVE_GTK_FILE_CHOOSER=no
 -fi
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_LIBS" >&5
 +$as_echo_n "checking XFT_LIBS... " >&6; }
 +            XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_LIBS" >&5
 +$as_echo "$XFT_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            XFT_CFLAGS=""
 +            XFT_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            XFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xft >= 0.13.0"`
  
 -  if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 -    for ac_func in gtk_file_chooser_dialog_new
 -do :
 -  ac_fn_c_check_func "$LINENO" "gtk_file_chooser_dialog_new" "ac_cv_func_gtk_file_chooser_dialog_new"
 -if test "x$ac_cv_func_gtk_file_chooser_dialog_new" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GTK_FILE_CHOOSER_DIALOG_NEW 1
 -_ACEOF
 - HAVE_GTK_FILE_CHOOSER=yes
 -else
 -  HAVE_GTK_FILE_CHOOSER=no
 -fi
 -done
 +        fi
  
 -  fi
  
 -  if test "$HAVE_GTK_FILE_SELECTION" = yes \
 -     && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
  
 -$as_echo "#define HAVE_GTK_FILE_BOTH 1" >>confdefs.h
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
  
 +  if test $succeeded = yes; then
 +     :
 +  else
 +     HAVE_XFT=no
    fi
  
 -      if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 -    HAVE_GTK_AND_PTHREAD=no
 -    for ac_header in pthread.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
 -if test "x$ac_cv_header_pthread_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_PTHREAD_H 1
 -_ACEOF
 +      ## Because xftfont.c uses XRenderQueryExtension, we also
 +      ## need to link to -lXrender.
 +      HAVE_XRENDER=no
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRenderQueryExtension in -lXrender" >&5
 +$as_echo_n "checking for XRenderQueryExtension in -lXrender... " >&6; }
 +if ${ac_cv_lib_Xrender_XRenderQueryExtension+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lXrender  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char XRenderQueryExtension ();
 +int
 +main ()
 +{
 +return XRenderQueryExtension ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_Xrender_XRenderQueryExtension=yes
 +else
 +  ac_cv_lib_Xrender_XRenderQueryExtension=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrender_XRenderQueryExtension" >&5
 +$as_echo "$ac_cv_lib_Xrender_XRenderQueryExtension" >&6; }
 +if test "x$ac_cv_lib_Xrender_XRenderQueryExtension" = xyes; then :
 +  HAVE_XRENDER=yes
  fi
  
 -done
 -
 -    if test "$ac_cv_header_pthread_h"; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_self in -lpthread" >&5
 -$as_echo_n "checking for pthread_self in -lpthread... " >&6; }
 -if test "${ac_cv_lib_pthread_pthread_self+set}" = set; then :
 +      if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
 +      OLD_CPPFLAGS="$CPPFLAGS"
 +      OLD_CFLAGS="$CFLAGS"
 +      OLD_LIBS="$LIBS"
 +      CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
 +      CFLAGS="$CFLAGS $XFT_CFLAGS"
 +      XFT_LIBS="-lXrender $XFT_LIBS"
 +      LIBS="$XFT_LIBS $LIBS"
 +      ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default"
 +if test "x$ac_cv_header_X11_Xft_Xft_h" = xyes; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XftFontOpen in -lXft" >&5
 +$as_echo_n "checking for XftFontOpen in -lXft... " >&6; }
 +if ${ac_cv_lib_Xft_XftFontOpen+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lpthread  $LIBS"
 +LIBS="-lXft $XFT_LIBS $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char pthread_self ();
 +char XftFontOpen ();
  int
  main ()
  {
 -return pthread_self ();
 +return XftFontOpen ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_pthread_pthread_self=yes
 +  ac_cv_lib_Xft_XftFontOpen=yes
  else
 -  ac_cv_lib_pthread_pthread_self=no
 +  ac_cv_lib_Xft_XftFontOpen=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_self" >&5
 -$as_echo "$ac_cv_lib_pthread_pthread_self" >&6; }
 -if test "x$ac_cv_lib_pthread_pthread_self" = x""yes; then :
 -  HAVE_GTK_AND_PTHREAD=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xft_XftFontOpen" >&5
 +$as_echo "$ac_cv_lib_Xft_XftFontOpen" >&6; }
 +if test "x$ac_cv_lib_Xft_XftFontOpen" = xyes; then :
 +  HAVE_XFT=yes
  fi
  
 -    fi
 -    if test "$HAVE_GTK_AND_PTHREAD" = yes; then
 -      case "${canonical}" in
 -        *-hpux*) ;;
 -        *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
 -      esac
 +fi
  
 -$as_echo "#define HAVE_GTK_AND_PTHREAD 1" >>confdefs.h
  
 +
 +      if test "${HAVE_XFT}" = "yes"; then
 +
 +$as_echo "#define HAVE_XFT 1" >>confdefs.h
 +
 +
 +        C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
 +      else
 +        CPPFLAGS="$OLD_CPPFLAGS"
 +        CFLAGS="$OLD_CFLAGS"
 +        LIBS="$OLD_LIBS"
 +      fi                        # "${HAVE_XFT}" = "yes"
 +      fi                          # "$HAVE_XFT" != no
 +    fi                            # "x${with_xft}" != "xno"
 +
 +        if test "$HAVE_XFT" != "yes"; then
 +       HAVE_XFT=no
      fi
 -  fi
 -fi
  
 -HAVE_DBUS=no
 -if test "${with_dbus}" = "yes"; then
 +    ## We used to allow building with FreeType and without Xft.
 +    ## However, the ftx font backend driver is not in good shape.
 +    HAVE_FREETYPE=$HAVE_XFT
 +
 +    HAVE_LIBOTF=no
 +    if test "${HAVE_FREETYPE}" = "yes"; then
 +
 +$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h
 +
 +      if test "${with_libotf}" != "no"; then
  
    succeeded=no
  
  set dummy pkg-config; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    case $PKG_CONFIG in
  
  
    if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_DBUS=no
 +     HAVE_LIBOTF=no
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
       if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-1 >= 1.0" >&5
 -$as_echo_n "checking for dbus-1 >= 1.0... " >&6; }
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotf" >&5
 +$as_echo_n "checking for libotf... " >&6; }
  
 -        if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5; then
 +        if $PKG_CONFIG --exists "libotf" 2>&5; then
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  $as_echo "yes" >&6; }
              succeeded=yes
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_CFLAGS" >&5
 -$as_echo_n "checking DBUS_CFLAGS... " >&6; }
 -            DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_CFLAGS" >&5
 -$as_echo "$DBUS_CFLAGS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_CFLAGS" >&5
 +$as_echo_n "checking LIBOTF_CFLAGS... " >&6; }
 +            LIBOTF_CFLAGS=`$PKG_CONFIG --cflags "libotf"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_CFLAGS" >&5
 +$as_echo "$LIBOTF_CFLAGS" >&6; }
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_LIBS" >&5
 -$as_echo_n "checking DBUS_LIBS... " >&6; }
 -            DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_LIBS" >&5
 -$as_echo "$DBUS_LIBS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_LIBS" >&5
 +$as_echo_n "checking LIBOTF_LIBS... " >&6; }
 +            LIBOTF_LIBS=`$PKG_CONFIG --libs "libotf"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_LIBS" >&5
 +$as_echo "$LIBOTF_LIBS" >&6; }
          else
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 -            DBUS_CFLAGS=""
 -            DBUS_LIBS=""
 +            LIBOTF_CFLAGS=""
 +            LIBOTF_LIBS=""
              ## If we have a custom action on failure, don't print errors, but
              ## do set a variable so people can do so.
 -            DBUS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dbus-1 >= 1.0"`
 +            LIBOTF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libotf"`
  
          fi
  
    fi
  
    if test $succeeded = yes; then
 -     HAVE_DBUS=yes
 +     HAVE_LIBOTF=yes
    else
 -     HAVE_DBUS=no
 +     HAVE_LIBOTF=no
    fi
  
 -   if test "$HAVE_DBUS" = yes; then
 -     LIBS="$LIBS $DBUS_LIBS"
 +      if test "$HAVE_LIBOTF" = "yes"; then
  
 -$as_echo "#define HAVE_DBUS 1" >>confdefs.h
 +$as_echo "#define HAVE_LIBOTF 1" >>confdefs.h
  
 -     for ac_func in dbus_watch_get_unix_fd
 -do :
 -  ac_fn_c_check_func "$LINENO" "dbus_watch_get_unix_fd" "ac_cv_func_dbus_watch_get_unix_fd"
 -if test "x$ac_cv_func_dbus_watch_get_unix_fd" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_DBUS_WATCH_GET_UNIX_FD 1
 -_ACEOF
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OTF_get_variation_glyphs in -lotf" >&5
 +$as_echo_n "checking for OTF_get_variation_glyphs in -lotf... " >&6; }
 +if ${ac_cv_lib_otf_OTF_get_variation_glyphs+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lotf  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char OTF_get_variation_glyphs ();
 +int
 +main ()
 +{
 +return OTF_get_variation_glyphs ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_otf_OTF_get_variation_glyphs=yes
 +else
 +  ac_cv_lib_otf_OTF_get_variation_glyphs=no
  fi
 -done
 -
 -   fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_otf_OTF_get_variation_glyphs" >&5
 +$as_echo "$ac_cv_lib_otf_OTF_get_variation_glyphs" >&6; }
 +if test "x$ac_cv_lib_otf_OTF_get_variation_glyphs" = xyes; then :
 +  HAVE_OTF_GET_VARIATION_GLYPHS=yes
 +else
 +  HAVE_OTF_GET_VARIATION_GLYPHS=no
  fi
  
 -HAVE_GCONF=no
 -if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
 +        if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
 +
 +$as_echo "#define HAVE_OTF_GET_VARIATION_GLYPHS 1" >>confdefs.h
 +
 +        fi
 +      fi
 +      fi
 +            fi
 +
 +    HAVE_M17N_FLT=no
 +    if test "${HAVE_LIBOTF}" = yes; then
 +      if test "${with_m17n_flt}" != "no"; then
  
    succeeded=no
  
  set dummy pkg-config; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    case $PKG_CONFIG in
  
  
    if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_GCONF=no
 +     HAVE_M17N_FLT=no
    else
       PKG_CONFIG_MIN_VERSION=0.9.0
       if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gconf-2.0 >= 2.13" >&5
 -$as_echo_n "checking for gconf-2.0 >= 2.13... " >&6; }
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m17n-flt" >&5
 +$as_echo_n "checking for m17n-flt... " >&6; }
  
 -        if $PKG_CONFIG --exists "gconf-2.0 >= 2.13" 2>&5; then
 +        if $PKG_CONFIG --exists "m17n-flt" 2>&5; then
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  $as_echo "yes" >&6; }
              succeeded=yes
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_CFLAGS" >&5
 -$as_echo_n "checking GCONF_CFLAGS... " >&6; }
 -            GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_CFLAGS" >&5
 -$as_echo "$GCONF_CFLAGS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_CFLAGS" >&5
 +$as_echo_n "checking M17N_FLT_CFLAGS... " >&6; }
 +            M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_CFLAGS" >&5
 +$as_echo "$M17N_FLT_CFLAGS" >&6; }
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_LIBS" >&5
 -$as_echo_n "checking GCONF_LIBS... " >&6; }
 -            GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_LIBS" >&5
 -$as_echo "$GCONF_LIBS" >&6; }
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_LIBS" >&5
 +$as_echo_n "checking M17N_FLT_LIBS... " >&6; }
 +            M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_LIBS" >&5
 +$as_echo "$M17N_FLT_LIBS" >&6; }
          else
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
 -            GCONF_CFLAGS=""
 -            GCONF_LIBS=""
 +            M17N_FLT_CFLAGS=""
 +            M17N_FLT_LIBS=""
              ## If we have a custom action on failure, don't print errors, but
              ## do set a variable so people can do so.
 -            GCONF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gconf-2.0 >= 2.13"`
 +            M17N_FLT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "m17n-flt"`
  
          fi
  
    fi
  
    if test $succeeded = yes; then
 -     HAVE_GCONF=yes
 +     HAVE_M17N_FLT=yes
    else
 -     HAVE_GCONF=no
 +     HAVE_M17N_FLT=no
    fi
  
 -   if test "$HAVE_GCONF" = yes; then
 -
 -$as_echo "#define HAVE_GCONF 1" >>confdefs.h
 +      if test "$HAVE_M17N_FLT" = "yes"; then
  
 -            for ac_func in g_type_init
 -do :
 -  ac_fn_c_check_func "$LINENO" "g_type_init" "ac_cv_func_g_type_init"
 -if test "x$ac_cv_func_g_type_init" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_G_TYPE_INIT 1
 -_ACEOF
 +$as_echo "#define HAVE_M17N_FLT 1" >>confdefs.h
  
 +      fi
 +      fi
 +    fi
 +else
 +    HAVE_XFT=no
 +    HAVE_FREETYPE=no
 +    HAVE_LIBOTF=no
 +    HAVE_M17N_FLT=no
  fi
 -done
  
 -   fi
 -fi
 +### End of font-backend (under X11) section.
  
 -HAVE_XAW3D=no
 -if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
 -  if test "$with_xaw3d" != no; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xaw3d" >&5
 -$as_echo_n "checking for xaw3d... " >&6; }
 -    if test "${emacs_cv_xaw3d+set}" = set; then :
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +### Use -lXpm if available, unless `--with-xpm=no'.
 +HAVE_XPM=no
 +LIBXPM=
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_xpm}" != "no"; then
 +    ac_fn_c_check_header_mongrel "$LINENO" "X11/xpm.h" "ac_cv_header_X11_xpm_h" "$ac_includes_default"
 +if test "x$ac_cv_header_X11_xpm_h" = xyes; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReadFileToPixmap in -lXpm" >&5
 +$as_echo_n "checking for XpmReadFileToPixmap in -lXpm... " >&6; }
 +if ${ac_cv_lib_Xpm_XpmReadFileToPixmap+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lXpm -lX11 $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 -#include <X11/Intrinsic.h>
 -#include <X11/Xaw3d/Simple.h>
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char XpmReadFileToPixmap ();
  int
  main ()
  {
 -
 +return XpmReadFileToPixmap ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XawScrollbarSetThumb in -lXaw3d" >&5
 -$as_echo_n "checking for XawScrollbarSetThumb in -lXaw3d... " >&6; }
 -if test "${ac_cv_lib_Xaw3d_XawScrollbarSetThumb+set}" = set; then :
 +  ac_cv_lib_Xpm_XpmReadFileToPixmap=yes
 +else
 +  ac_cv_lib_Xpm_XpmReadFileToPixmap=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_XpmReadFileToPixmap" >&5
 +$as_echo "$ac_cv_lib_Xpm_XpmReadFileToPixmap" >&6; }
 +if test "x$ac_cv_lib_Xpm_XpmReadFileToPixmap" = xyes; then :
 +  HAVE_XPM=yes
 +fi
 +
 +fi
 +
 +
 +    if test "${HAVE_XPM}" = "yes"; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReturnAllocPixels preprocessor define" >&5
 +$as_echo_n "checking for XpmReturnAllocPixels preprocessor define... " >&6; }
 +      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include "X11/xpm.h"
 +#ifndef XpmReturnAllocPixels
 +no_return_alloc_pixels
 +#endif
 +
 +_ACEOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "no_return_alloc_pixels" >/dev/null 2>&1; then :
 +  HAVE_XPM=no
 +else
 +  HAVE_XPM=yes
 +fi
 +rm -f conftest*
 +
 +
 +      if test "${HAVE_XPM}" = "yes"; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +      else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +      fi
 +    fi
 +  fi
 +
 +  if test "${HAVE_XPM}" = "yes"; then
 +
 +$as_echo "#define HAVE_XPM 1" >>confdefs.h
 +
 +    LIBXPM=-lXpm
 +  fi
 +fi
 +
 +
 +### Use -ljpeg if available, unless `--with-jpeg=no'.
 +HAVE_JPEG=no
 +LIBJPEG=
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_jpeg}" != "no"; then
 +            ac_fn_c_check_header_mongrel "$LINENO" "jerror.h" "ac_cv_header_jerror_h" "$ac_includes_default"
 +if test "x$ac_cv_header_jerror_h" = xyes; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_destroy_compress in -ljpeg" >&5
 +$as_echo_n "checking for jpeg_destroy_compress in -ljpeg... " >&6; }
 +if ${ac_cv_lib_jpeg_jpeg_destroy_compress+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXaw3d  $LIBS"
 +LIBS="-ljpeg  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XawScrollbarSetThumb ();
 +char jpeg_destroy_compress ();
  int
  main ()
  {
 -return XawScrollbarSetThumb ();
 +return jpeg_destroy_compress ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xaw3d_XawScrollbarSetThumb=yes
 +  ac_cv_lib_jpeg_jpeg_destroy_compress=yes
  else
 -  ac_cv_lib_Xaw3d_XawScrollbarSetThumb=no
 +  ac_cv_lib_jpeg_jpeg_destroy_compress=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&5
 -$as_echo "$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" >&6; }
 -if test "x$ac_cv_lib_Xaw3d_XawScrollbarSetThumb" = x""yes; then :
 -  emacs_cv_xaw3d=yes
 -else
 -  emacs_cv_xaw3d=no
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_destroy_compress" >&5
 +$as_echo "$ac_cv_lib_jpeg_jpeg_destroy_compress" >&6; }
 +if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = xyes; then :
 +  HAVE_JPEG=yes
  fi
  
 -else
 -  emacs_cv_xaw3d=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 +
 +
 +  fi
 +
 +    if test "${HAVE_JPEG}" = "yes"; then
 +    $as_echo "#define HAVE_JPEG 1" >>confdefs.h
 +
 +    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <jpeglib.h>
 +       version=JPEG_LIB_VERSION
 +
 +_ACEOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "version= *(6[2-9]|[7-9][0-9])" >/dev/null 2>&1; then :
 +  $as_echo "#define HAVE_JPEG 1" >>confdefs.h
 +
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libjpeg found, but not version 6b or later" >&5
 +$as_echo "$as_me: WARNING: libjpeg found, but not version 6b or later" >&2;}
 +        HAVE_JPEG=no
  fi
 +rm -f conftest*
  
 -  else
 -    emacs_cv_xaw3d=no
    fi
 -  if test $emacs_cv_xaw3d = yes; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5
 -$as_echo "yes; using Lucid toolkit" >&6; }
 -    USE_X_TOOLKIT=LUCID
 -    HAVE_XAW3D=yes
 +  if test "${HAVE_JPEG}" = "yes"; then
 +    LIBJPEG=-ljpeg
 +  fi
 +fi
  
 -$as_echo "#define HAVE_XAW3D 1" >>confdefs.h
  
 -  else
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libXaw" >&5
 -$as_echo_n "checking for libXaw... " >&6; }
 -    if test "${emacs_cv_xaw+set}" = set; then :
 +### Use -lpng if available, unless `--with-png=no'.
 +HAVE_PNG=no
 +LIBPNG=
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_png}" != "no"; then
 +    # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
 +    # in /usr/include/libpng.
 +    for ac_header in png.h libpng/png.h
 +do :
 +  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +_ACEOF
 +
 +fi
 +
 +done
 +
 +    if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_get_channels in -lpng" >&5
 +$as_echo_n "checking for png_get_channels in -lpng... " >&6; }
 +if ${ac_cv_lib_png_png_get_channels+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lpng -lz -lm $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 -#include <X11/Intrinsic.h>
 -#include <X11/Xaw/Simple.h>
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char png_get_channels ();
  int
  main ()
  {
 -
 +return png_get_channels ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_xaw=yes
 +  ac_cv_lib_png_png_get_channels=yes
  else
 -  emacs_cv_xaw=no
 +  ac_cv_lib_png_png_get_channels=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_get_channels" >&5
 +$as_echo "$ac_cv_lib_png_png_get_channels" >&6; }
 +if test "x$ac_cv_lib_png_png_get_channels" = xyes; then :
 +  HAVE_PNG=yes
  fi
  
 -    if test $emacs_cv_xaw = yes; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes; using Lucid toolkit" >&5
 -$as_echo "yes; using Lucid toolkit" >&6; }
 -      USE_X_TOOLKIT=LUCID
 -    elif test x"${USE_X_TOOLKIT}" = xLUCID; then
 -      as_fn_error $? "Lucid toolkit requires X11/Xaw include files" "$LINENO" 5
 -    else
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no; do not use toolkit by default" >&5
 -$as_echo "no; do not use toolkit by default" >&6; }
 -      USE_X_TOOLKIT=none
      fi
    fi
 +
 +  if test "${HAVE_PNG}" = "yes"; then
 +
 +$as_echo "#define HAVE_PNG 1" >>confdefs.h
 +
 +    LIBPNG="-lpng -lz -lm"
 +  fi
  fi
  
 -X_TOOLKIT_TYPE=$USE_X_TOOLKIT
  
 -if test "${USE_X_TOOLKIT}" != "none"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking X11 toolkit version" >&5
 -$as_echo_n "checking X11 toolkit version... " >&6; }
 -  if test "${emacs_cv_x11_toolkit_version_6+set}" = set; then :
 +### Use -ltiff if available, unless `--with-tiff=no'.
 +HAVE_TIFF=no
 +LIBTIFF=
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_tiff}" != "no"; then
 +    ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default"
 +if test "x$ac_cv_header_tiffio_h" = xyes; then :
 +  tifflibs="-lz -lm"
 +      # At least one tiff package requires the jpeg library.
 +      if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff" >&5
 +$as_echo_n "checking for TIFFGetVersion in -ltiff... " >&6; }
 +if ${ac_cv_lib_tiff_TIFFGetVersion+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-ltiff $tifflibs $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <X11/Intrinsic.h>
 +
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char TIFFGetVersion ();
  int
  main ()
  {
 -#if XtSpecificationRelease < 6
 -fail;
 -#endif
 -
 +return TIFFGetVersion ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_x11_toolkit_version_6=yes
 +  ac_cv_lib_tiff_TIFFGetVersion=yes
  else
 -  emacs_cv_x11_toolkit_version_6=no
 +  ac_cv_lib_tiff_TIFFGetVersion=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5
 +$as_echo "$ac_cv_lib_tiff_TIFFGetVersion" >&6; }
 +if test "x$ac_cv_lib_tiff_TIFFGetVersion" = xyes; then :
 +  HAVE_TIFF=yes
  fi
  
 -  HAVE_X11XTR6=$emacs_cv_x11_toolkit_version_6
 -  if test $emacs_cv_x11_toolkit_version_6 = yes; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: 6 or newer" >&5
 -$as_echo "6 or newer" >&6; }
 +fi
  
 -$as_echo "#define HAVE_X11XTR6 1" >>confdefs.h
  
 -  else
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: result: before 6" >&5
 -$as_echo "before 6" >&6; }
    fi
  
 -  OLDLIBS="$LIBS"
 -  if test x$HAVE_X11XTR6 = xyes; then
 -    LIBS="-lXt -lSM -lICE $LIBS"
 -  else
 -    LIBS="-lXt $LIBS"
 +  if test "${HAVE_TIFF}" = "yes"; then
 +
 +$as_echo "#define HAVE_TIFF 1" >>confdefs.h
 +
 +        LIBTIFF=-ltiff
    fi
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XmuConvertStandardSelection in -lXmu" >&5
 -$as_echo_n "checking for XmuConvertStandardSelection in -lXmu... " >&6; }
 -if test "${ac_cv_lib_Xmu_XmuConvertStandardSelection+set}" = set; then :
 +fi
 +
 +
 +### Use -lgif or -lungif if available, unless `--with-gif=no'.
 +HAVE_GIF=no
 +LIBGIF=
 +if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
 +  ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
 +if test "x$ac_cv_header_gif_lib_h" = xyes; then :
 +  # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
 +# Earlier versions can crash Emacs.
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGifPutExtensionLast in -lgif" >&5
 +$as_echo_n "checking for EGifPutExtensionLast in -lgif... " >&6; }
 +if ${ac_cv_lib_gif_EGifPutExtensionLast+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXmu  $LIBS"
 +LIBS="-lgif  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XmuConvertStandardSelection ();
 +char EGifPutExtensionLast ();
  int
  main ()
  {
 -return XmuConvertStandardSelection ();
 +return EGifPutExtensionLast ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xmu_XmuConvertStandardSelection=yes
 +  ac_cv_lib_gif_EGifPutExtensionLast=yes
  else
 -  ac_cv_lib_Xmu_XmuConvertStandardSelection=no
 +  ac_cv_lib_gif_EGifPutExtensionLast=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xmu_XmuConvertStandardSelection" >&5
 -$as_echo "$ac_cv_lib_Xmu_XmuConvertStandardSelection" >&6; }
 -if test "x$ac_cv_lib_Xmu_XmuConvertStandardSelection" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBXMU 1
 -_ACEOF
 -
 -  LIBS="-lXmu $LIBS"
 -
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_EGifPutExtensionLast" >&5
 +$as_echo "$ac_cv_lib_gif_EGifPutExtensionLast" >&6; }
 +if test "x$ac_cv_lib_gif_EGifPutExtensionLast" = xyes; then :
 +  HAVE_GIF=yes
 +else
 +  HAVE_GIF=maybe
  fi
  
 -  test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
  fi
  
 -# On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
 -if test "${HAVE_X11}" = "yes"; then
 -  if test "${USE_X_TOOLKIT}" != "none"; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XShapeQueryExtension in -lXext" >&5
 -$as_echo_n "checking for XShapeQueryExtension in -lXext... " >&6; }
 -if test "${ac_cv_lib_Xext_XShapeQueryExtension+set}" = set; then :
 +
 +
 +  if test "$HAVE_GIF" = yes; then
 +    LIBGIF=-lgif
 +  elif test "$HAVE_GIF" = maybe; then
 +# If gif_lib.h but no libgif, try libungif.
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGifPutExtensionLast in -lungif" >&5
 +$as_echo_n "checking for EGifPutExtensionLast in -lungif... " >&6; }
 +if ${ac_cv_lib_ungif_EGifPutExtensionLast+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXext  $LIBS"
 +LIBS="-lungif  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XShapeQueryExtension ();
 +char EGifPutExtensionLast ();
  int
  main ()
  {
 -return XShapeQueryExtension ();
 +return EGifPutExtensionLast ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xext_XShapeQueryExtension=yes
 +  ac_cv_lib_ungif_EGifPutExtensionLast=yes
  else
 -  ac_cv_lib_Xext_XShapeQueryExtension=no
 +  ac_cv_lib_ungif_EGifPutExtensionLast=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xext_XShapeQueryExtension" >&5
 -$as_echo "$ac_cv_lib_Xext_XShapeQueryExtension" >&6; }
 -if test "x$ac_cv_lib_Xext_XShapeQueryExtension" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBXEXT 1
 -_ACEOF
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ungif_EGifPutExtensionLast" >&5
 +$as_echo "$ac_cv_lib_ungif_EGifPutExtensionLast" >&6; }
 +if test "x$ac_cv_lib_ungif_EGifPutExtensionLast" = xyes; then :
 +  HAVE_GIF=yes
 +else
 +  HAVE_GIF=no
 +fi
  
 -  LIBS="-lXext $LIBS"
 +    test "$HAVE_GIF" = yes && LIBGIF=-lungif
 +  fi
 +
 +  if test "${HAVE_GIF}" = "yes"; then
 +
 +$as_echo "#define HAVE_GIF 1" >>confdefs.h
  
 +  fi
  fi
  
 +
 +if test "${HAVE_X11}" = "yes"; then
 +  MISSING=""
 +  WITH_NO=""
 +  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
 +    MISSING="libXpm" && WITH_NO="--with-xpm=no"
 +  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
 +    MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
 +  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
 +    MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
 +  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
 +    MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
 +  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
 +    MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
 +
 +  if test "X${MISSING}" != X; then
 +    as_fn_error $? "The following required libraries were not found:
 +    $MISSING
 +Maybe some development libraries/packages are missing?
 +If you don't want to link with them give
 +    $WITH_NO
 +as options to configure" "$LINENO" 5
    fi
  fi
  
 -if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Motif version 2.1" >&5
 -$as_echo_n "checking for Motif version 2.1... " >&6; }
 -if test "${emacs_cv_motif_version_2_1+set}" = set; then :
 +### Use -lgpm if available, unless `--with-gpm=no'.
 +HAVE_GPM=no
 +LIBGPM=
 +MOUSE_SUPPORT=
 +if test "${with_gpm}" != "no"; then
 +  ac_fn_c_check_header_mongrel "$LINENO" "gpm.h" "ac_cv_header_gpm_h" "$ac_includes_default"
 +if test "x$ac_cv_header_gpm_h" = xyes; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gpm_Open in -lgpm" >&5
 +$as_echo_n "checking for Gpm_Open in -lgpm... " >&6; }
 +if ${ac_cv_lib_gpm_Gpm_Open+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lgpm  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <Xm/Xm.h>
 +
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char Gpm_Open ();
  int
  main ()
  {
 -#if XmVERSION > 2 || (XmVERSION == 2 && XmREVISION >= 1)
 -int x = 5;
 -#else
 -Motif version prior to 2.1.
 -#endif
 +return Gpm_Open ();
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_motif_version_2_1=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_gpm_Gpm_Open=yes
  else
 -  emacs_cv_motif_version_2_1=no
 +  ac_cv_lib_gpm_Gpm_Open=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gpm_Gpm_Open" >&5
 +$as_echo "$ac_cv_lib_gpm_Gpm_Open" >&6; }
 +if test "x$ac_cv_lib_gpm_Gpm_Open" = xyes; then :
 +  HAVE_GPM=yes
 +fi
 +
 +fi
 +
 +
 +
 +  if test "${HAVE_GPM}" = "yes"; then
 +
 +$as_echo "#define HAVE_GPM 1" >>confdefs.h
 +
 +    LIBGPM=-lgpm
 +    ## May be reset below.
 +    MOUSE_SUPPORT="\$(GPM_MOUSE_SUPPORT)"
 +  fi
 +fi
 +
 +
 +ac_fn_c_check_header_mongrel "$LINENO" "malloc/malloc.h" "ac_cv_header_malloc_malloc_h" "$ac_includes_default"
 +if test "x$ac_cv_header_malloc_malloc_h" = xyes; then :
 +
 +$as_echo "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h
 +
 +fi
 +
 +
 +
 +C_SWITCH_X_SYSTEM=
 +### Use NeXTstep API to implement GUI.
 +if test "${HAVE_NS}" = "yes"; then
 +
 +$as_echo "#define HAVE_NS 1" >>confdefs.h
 +
 +  if test "${NS_IMPL_COCOA}" = "yes"; then
 +
 +$as_echo "#define NS_IMPL_COCOA 1" >>confdefs.h
 +
 +    GNU_OBJC_CFLAGS=
 +  fi
 +  if test "${NS_IMPL_GNUSTEP}" = "yes"; then
 +
 +$as_echo "#define NS_IMPL_GNUSTEP 1" >>confdefs.h
 +
 +    # See also .m.o rule in Makefile.in */
 +    # FIXME: are all these flags really needed?  Document here why.  */
 +    C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing"
 +    GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
 +  fi
 +  if test "${NS_HAVE_NSINTEGER}" = "yes"; then
 +
 +$as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h
 +
 +  fi
 +  # We also have mouse menus.
 +  HAVE_MENUS=yes
 +  OTHER_FILES=ns-app
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_motif_version_2_1" >&5
 -$as_echo "$emacs_cv_motif_version_2_1" >&6; }
 -  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
 -  if test $emacs_cv_motif_version_2_1 = yes; then
 -    HAVE_LIBXP=no
  
 -$as_echo "#define HAVE_MOTIF_2_1 1" >>confdefs.h
  
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpCreateContext in -lXp" >&5
 -$as_echo_n "checking for XpCreateContext in -lXp... " >&6; }
 -if test "${ac_cv_lib_Xp_XpCreateContext+set}" = set; then :
 +### Use session management (-lSM -lICE) if available
 +HAVE_X_SM=no
 +LIBXSM=
 +if test "${HAVE_X11}" = "yes"; then
 +  ac_fn_c_check_header_mongrel "$LINENO" "X11/SM/SMlib.h" "ac_cv_header_X11_SM_SMlib_h" "$ac_includes_default"
 +if test "x$ac_cv_header_X11_SM_SMlib_h" = xyes; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SmcOpenConnection in -lSM" >&5
 +$as_echo_n "checking for SmcOpenConnection in -lSM... " >&6; }
 +if ${ac_cv_lib_SM_SmcOpenConnection+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXp  $LIBS"
 +LIBS="-lSM -lICE $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XpCreateContext ();
 +char SmcOpenConnection ();
  int
  main ()
  {
 -return XpCreateContext ();
 +return SmcOpenConnection ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xp_XpCreateContext=yes
 +  ac_cv_lib_SM_SmcOpenConnection=yes
  else
 -  ac_cv_lib_Xp_XpCreateContext=no
 +  ac_cv_lib_SM_SmcOpenConnection=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xp_XpCreateContext" >&5
 -$as_echo "$ac_cv_lib_Xp_XpCreateContext" >&6; }
 -if test "x$ac_cv_lib_Xp_XpCreateContext" = x""yes; then :
 -  HAVE_LIBXP=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SM_SmcOpenConnection" >&5
 +$as_echo "$ac_cv_lib_SM_SmcOpenConnection" >&6; }
 +if test "x$ac_cv_lib_SM_SmcOpenConnection" = xyes; then :
 +  HAVE_X_SM=yes
  fi
  
 -    if test ${HAVE_LIBXP} = yes; then
 +fi
  
 -$as_echo "#define HAVE_LIBXP 1" >>confdefs.h
  
 -    fi
 +
 +  if test "${HAVE_X_SM}" = "yes"; then
 +
 +$as_echo "#define HAVE_X_SM 1" >>confdefs.h
 +
 +    LIBXSM="-lSM -lICE"
 +    case "$LIBS" in
 +      *-lSM*) ;;
 +      *)      LIBS="$LIBXSM $LIBS" ;;
 +    esac
 +  fi
 +fi
 +
 +
 +### Use libxml (-lxml2) if available
 +if test "${with_xml2}" != "no"; then
 +  ### I'm not sure what the version number should be, so I just guessed.
 +
 +  succeeded=no
 +
 +  # Extract the first word of "pkg-config", so it can be a program name with args.
 +set dummy pkg-config; ac_word=$2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 +$as_echo_n "checking for $ac_word... " >&6; }
 +if ${ac_cv_path_PKG_CONFIG+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  case $PKG_CONFIG in
 +  [\\/]* | ?:[\\/]*)
 +  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 +  ;;
 +  *)
 +  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +for as_dir in $PATH
 +do
 +  IFS=$as_save_IFS
 +  test -z "$as_dir" && as_dir=.
 +    for ac_exec_ext in '' $ac_executable_extensions; do
 +  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 +    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 +    break 2
 +  fi
 +done
 +  done
 +IFS=$as_save_IFS
 +
 +  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 +  ;;
 +esac
 +fi
 +PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 +if test -n "$PKG_CONFIG"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 +$as_echo "$PKG_CONFIG" >&6; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  if test "$PKG_CONFIG" = "no" ; then
 +     HAVE_LIBXML2=no
    else
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LessTif where some systems put it" >&5
 -$as_echo_n "checking for LessTif where some systems put it... " >&6; }
 -if test "${emacs_cv_lesstif+set}" = set; then :
 +     PKG_CONFIG_MIN_VERSION=0.9.0
 +     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 > 2.6.17" >&5
 +$as_echo_n "checking for libxml-2.0 > 2.6.17... " >&6; }
 +
 +        if $PKG_CONFIG --exists "libxml-2.0 > 2.6.17" 2>&5; then
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +            succeeded=yes
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXML2_CFLAGS" >&5
 +$as_echo_n "checking LIBXML2_CFLAGS... " >&6; }
 +            LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 > 2.6.17"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML2_CFLAGS" >&5
 +$as_echo "$LIBXML2_CFLAGS" >&6; }
 +
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXML2_LIBS" >&5
 +$as_echo_n "checking LIBXML2_LIBS... " >&6; }
 +            LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 > 2.6.17"|sed -e 's,///*,/,g'`
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML2_LIBS" >&5
 +$as_echo "$LIBXML2_LIBS" >&6; }
 +        else
 +            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +            LIBXML2_CFLAGS=""
 +            LIBXML2_LIBS=""
 +            ## If we have a custom action on failure, don't print errors, but
 +            ## do set a variable so people can do so.
 +            LIBXML2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libxml-2.0 > 2.6.17"`
 +
 +        fi
 +
 +
 +
 +     else
 +        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 +        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 +     fi
 +  fi
 +
 +  if test $succeeded = yes; then
 +     HAVE_LIBXML2=yes
 +  else
 +     HAVE_LIBXML2=no
 +  fi
 +
 +  if test "${HAVE_LIBXML2}" = "yes"; then
 +    LIBS="$LIBXML2_LIBS $LIBS"
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for htmlReadMemory in -lxml2" >&5
 +$as_echo_n "checking for htmlReadMemory in -lxml2... " >&6; }
 +if ${ac_cv_lib_xml2_htmlReadMemory+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  # We put this in CFLAGS temporarily to precede other -I options
 -    # that might be in CFLAGS temporarily.
 -    # We put this in CPPFLAGS where it precedes the other -I options.
 -    OLD_CPPFLAGS=$CPPFLAGS
 -    OLD_CFLAGS=$CFLAGS
 -    CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CPPFLAGS"
 -    CFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $CFLAGS"
 -    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lxml2  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include </usr/X11R6/LessTif/Motif1.2/include/Xm/Xm.h>
 +
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char htmlReadMemory ();
  int
  main ()
  {
 -int x = 5;
 +return htmlReadMemory ();
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_lesstif=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_xml2_htmlReadMemory=yes
  else
 -  emacs_cv_lesstif=no
 +  ac_cv_lib_xml2_htmlReadMemory=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_lesstif" >&5
 -$as_echo "$emacs_cv_lesstif" >&6; }
 -    if test $emacs_cv_lesstif = yes; then
 -      # Make sure this -I option remains in CPPFLAGS after it is set
 -      # back to REAL_CPPFLAGS.
 -      # There is no need to change REAL_CFLAGS, because REAL_CFLAGS does not
 -      # have those other -I options anyway.  Ultimately, having this
 -      # directory ultimately in CPPFLAGS will be enough.
 -      REAL_CPPFLAGS="-I/usr/X11R6/LessTif/Motif1.2/include $REAL_CPPFLAGS"
 -      LDFLAGS="-L/usr/X11R6/LessTif/Motif1.2/lib $LDFLAGS"
 -    else
 -      CFLAGS=$OLD_CFLAGS
 -      CPPFLAGS=$OLD_CPPFLAGS
 -    fi
 -  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_htmlReadMemory" >&5
 +$as_echo "$ac_cv_lib_xml2_htmlReadMemory" >&6; }
 +if test "x$ac_cv_lib_xml2_htmlReadMemory" = xyes; then :
 +  HAVE_LIBXML2=yes
 +else
 +  HAVE_LIBXML2=no
  fi
  
 +    if test "${HAVE_LIBXML2}" = "yes"; then
  
 -USE_TOOLKIT_SCROLL_BARS=no
 -if test "${with_toolkit_scroll_bars}" != "no"; then
 -  if test "${USE_X_TOOLKIT}" != "none"; then
 -    if test "${USE_X_TOOLKIT}" = "MOTIF"; then
 -      $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 -
 -      HAVE_XAW3D=no
 -      USE_TOOLKIT_SCROLL_BARS=yes
 -    elif test "${HAVE_XAW3D}" = "yes"; then
 -      $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 +$as_echo "#define HAVE_LIBXML2 1" >>confdefs.h
  
 -      USE_TOOLKIT_SCROLL_BARS=yes
 +    else
 +      LIBXML2_LIBS=""
 +      LIBXML2_CFLAGS=""
      fi
 -  elif test "${HAVE_GTK}" = "yes"; then
 -    $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 -
 -    USE_TOOLKIT_SCROLL_BARS=yes
 -  elif test "${HAVE_NS}" = "yes"; then
 -    $as_echo "#define USE_TOOLKIT_SCROLL_BARS 1" >>confdefs.h
 -
 -    USE_TOOLKIT_SCROLL_BARS=yes
    fi
  fi
  
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -        #include <X11/Xlib.h>
 -        #include <X11/Xresource.h>
 +
 +# If netdb.h doesn't declare h_errno, we must declare it by hand.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether netdb declares h_errno" >&5
 +$as_echo_n "checking whether netdb declares h_errno... " >&6; }
 +if ${emacs_cv_netdb_declares_h_errno+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <netdb.h>
  int
  main ()
  {
 -XIMProc  callback;
 +return h_errno;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  HAVE_XIM=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_netdb_declares_h_errno=yes
 +else
 +  emacs_cv_netdb_declares_h_errno=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_netdb_declares_h_errno" >&5
 +$as_echo "$emacs_cv_netdb_declares_h_errno" >&6; }
 +if test $emacs_cv_netdb_declares_h_errno = yes; then
  
 -$as_echo "#define HAVE_XIM 1" >>confdefs.h
 +$as_echo "#define HAVE_H_ERRNO 1" >>confdefs.h
  
 -else
 -  HAVE_XIM=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  
 +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
 +if test "x$ac_cv_type_size_t" = xyes; then :
  
 -if test "${with_xim}" != "no"; then
 +else
  
 -$as_echo "#define USE_XIM 1" >>confdefs.h
 +cat >>confdefs.h <<_ACEOF
 +#define size_t unsigned int
 +_ACEOF
  
  fi
  
 -
 -if test "${HAVE_XIM}" != "no"; then
 -  late_CFLAGS=$CFLAGS
 -  if test "$GCC" = yes; then
 -    CFLAGS="$CFLAGS --pedantic-errors"
 -  fi
 +# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 +# for constant arguments.  Useless!
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
 +$as_echo_n "checking for working alloca.h... " >&6; }
 +if ${ac_cv_working_alloca_h+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -#include <X11/Xlib.h>
 -#include <X11/Xresource.h>
 +#include <alloca.h>
  int
 -main ()
 -{
 -Display *display;
 -XrmDatabase db;
 -char *res_name;
 -char *res_class;
 -XIMProc  callback;
 -XPointer *client_data;
 -#ifndef __GNUC__
 -/* If we're not using GCC, it's probably not XFree86, and this is
 -   probably right, but we can't use something like --pedantic-errors.  */
 -extern Bool XRegisterIMInstantiateCallback(Display*, XrmDatabase, char*,
 -                                           char*, XIMProc, XPointer*);
 -#endif
 -(void)XRegisterIMInstantiateCallback(display, db, res_name, res_class, callback,
 -   client_data);
 +main ()
 +{
 +char *p = (char *) alloca (2 * sizeof (int));
 +                        if (p) return 0;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_arg6_star=yes
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_working_alloca_h=yes
 +else
 +  ac_cv_working_alloca_h=no
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -    if test "$emacs_cv_arg6_star" = yes; then
 -    $as_echo "#define XRegisterIMInstantiateCallback_arg6 XPointer*" >>confdefs.h
 -
 -  else
 -    $as_echo "#define XRegisterIMInstantiateCallback_arg6 XPointer" >>confdefs.h
 -
 -  fi
 -  CFLAGS=$late_CFLAGS
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
 +$as_echo "$ac_cv_working_alloca_h" >&6; }
 +if test $ac_cv_working_alloca_h = yes; then
  
 -### Start of font-backend (under any platform) section.
 -# (nothing here yet -- this is a placeholder)
 -### End of font-backend (under any platform) section.
 -
 -### Start of font-backend (under X11) section.
 -if test "${HAVE_X11}" = "yes"; then
 +$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
  
 -  succeeded=no
 +fi
  
 -  # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
 +$as_echo_n "checking for alloca... " >&6; }
 +if ${ac_cv_func_alloca_works+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __GNUC__
 +# define alloca __builtin_alloca
 +#else
 +# ifdef _MSC_VER
 +#  include <malloc.h>
 +#  define alloca _alloca
 +# else
 +#  ifdef HAVE_ALLOCA_H
 +#   include <alloca.h>
 +#  else
 +#   ifdef _AIX
 + #pragma alloca
 +#   else
 +#    ifndef alloca /* predefined by HP cc +Olibcalls */
 +void *alloca (size_t);
 +#    endif
 +#   endif
 +#  endif
 +# endif
 +#endif
  
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 -esac
 -fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 -$as_echo "$PKG_CONFIG" >&6; }
 +int
 +main ()
 +{
 +char *p = (char *) alloca (1);
 +                                  if (p) return 0;
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_func_alloca_works=yes
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  ac_cv_func_alloca_works=no
  fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
 +$as_echo "$ac_cv_func_alloca_works" >&6; }
  
 +if test $ac_cv_func_alloca_works = yes; then
  
 +$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
  
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_FC=no
 -  else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig >= 2.2.0" >&5
 -$as_echo_n "checking for fontconfig >= 2.2.0... " >&6; }
 -
 -        if $PKG_CONFIG --exists "fontconfig >= 2.2.0" 2>&5; then
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -            succeeded=yes
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_CFLAGS" >&5
 -$as_echo_n "checking FONTCONFIG_CFLAGS... " >&6; }
 -            FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_CFLAGS" >&5
 -$as_echo "$FONTCONFIG_CFLAGS" >&6; }
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_LIBS" >&5
 -$as_echo_n "checking FONTCONFIG_LIBS... " >&6; }
 -            FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_LIBS" >&5
 -$as_echo "$FONTCONFIG_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            FONTCONFIG_CFLAGS=""
 -            FONTCONFIG_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            FONTCONFIG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "fontconfig >= 2.2.0"`
 +else
 +  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
 +# that cause trouble.  Some versions do not even contain alloca or
 +# contain a buggy version.  If you still want to use their alloca,
 +# use ar to extract alloca.o from them instead of compiling alloca.c.
  
 -        fi
 +ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
  
 +$as_echo "#define C_ALLOCA 1" >>confdefs.h
  
  
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
 +$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
 +if ${ac_cv_os_cray+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#if defined CRAY && ! defined CRAY2
 +webecray
 +#else
 +wenotbecray
 +#endif
  
 -  if test $succeeded = yes; then
 -     HAVE_FC=yes
 -  else
 -     HAVE_FC=no
 -  fi
 +_ACEOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "webecray" >/dev/null 2>&1; then :
 +  ac_cv_os_cray=yes
 +else
 +  ac_cv_os_cray=no
 +fi
 +rm -f conftest*
  
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
 +$as_echo "$ac_cv_os_cray" >&6; }
 +if test $ac_cv_os_cray = yes; then
 +  for ac_func in _getb67 GETB67 getb67; do
 +    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 +if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  
 -   ## Use -lXft if available, unless `--with-xft=no'.
 -   HAVE_XFT=maybe
 -    if test "${HAVE_FC}" = "no" || test "x${with_x}" = "xno"; then
 -      with_xft="no";
 -    fi
 -    if test "x${with_xft}" != "xno"; then
 +cat >>confdefs.h <<_ACEOF
 +#define CRAY_STACKSEG_END $ac_func
 +_ACEOF
  
 +    break
 +fi
  
 -  succeeded=no
 +  done
 +fi
  
 -  # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
 +$as_echo_n "checking stack direction for C alloca... " >&6; }
 +if ${ac_cv_c_stack_direction+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 -
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 -esac
 -fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 -$as_echo "$PKG_CONFIG" >&6; }
 +  if test "$cross_compiling" = yes; then :
 +  ac_cv_c_stack_direction=0
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -fi
 -
 -
 -
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_XFT=no
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +$ac_includes_default
 +int
 +find_stack_direction ()
 +{
 +  static char *addr = 0;
 +  auto char dummy;
 +  if (addr == 0)
 +    {
 +      addr = &dummy;
 +      return find_stack_direction ();
 +    }
    else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xft >= 0.13.0" >&5
 -$as_echo_n "checking for xft >= 0.13.0... " >&6; }
 -
 -        if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -            succeeded=yes
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_CFLAGS" >&5
 -$as_echo_n "checking XFT_CFLAGS... " >&6; }
 -            XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_CFLAGS" >&5
 -$as_echo "$XFT_CFLAGS" >&6; }
 +    return (&dummy > addr) ? 1 : -1;
 +}
  
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_LIBS" >&5
 -$as_echo_n "checking XFT_LIBS... " >&6; }
 -            XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_LIBS" >&5
 -$as_echo "$XFT_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            XFT_CFLAGS=""
 -            XFT_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            XFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xft >= 0.13.0"`
 +int
 +main ()
 +{
 +  return find_stack_direction () < 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_run "$LINENO"; then :
 +  ac_cv_c_stack_direction=1
 +else
 +  ac_cv_c_stack_direction=-1
 +fi
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
 +fi
  
 -        fi
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
 +$as_echo "$ac_cv_c_stack_direction" >&6; }
 +cat >>confdefs.h <<_ACEOF
 +#define STACK_DIRECTION $ac_cv_c_stack_direction
 +_ACEOF
  
  
 +fi
  
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
  
 -  if test $succeeded = yes; then
 -     :
 -  else
 -     HAVE_XFT=no
 -  fi
 +if test x"$ac_cv_func_alloca_works" != xyes; then
 +   as_fn_error $? "a system implementation of alloca is required " "$LINENO" 5
 +fi
  
 -      ## Because xftfont.c uses XRenderQueryExtension, we also
 -      ## need to link to -lXrender.
 -      HAVE_XRENDER=no
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XRenderQueryExtension in -lXrender" >&5
 -$as_echo_n "checking for XRenderQueryExtension in -lXrender... " >&6; }
 -if test "${ac_cv_lib_Xrender_XRenderQueryExtension+set}" = set; then :
 +# fmod, logb, and frexp are found in -lm on most systems.
 +# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
 +$as_echo_n "checking for sqrt in -lm... " >&6; }
 +if ${ac_cv_lib_m_sqrt+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXrender  $LIBS"
 +LIBS="-lm  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XRenderQueryExtension ();
 +char sqrt ();
  int
  main ()
  {
 -return XRenderQueryExtension ();
 +return sqrt ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xrender_XRenderQueryExtension=yes
 +  ac_cv_lib_m_sqrt=yes
  else
 -  ac_cv_lib_Xrender_XRenderQueryExtension=no
 +  ac_cv_lib_m_sqrt=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xrender_XRenderQueryExtension" >&5
 -$as_echo "$ac_cv_lib_Xrender_XRenderQueryExtension" >&6; }
 -if test "x$ac_cv_lib_Xrender_XRenderQueryExtension" = x""yes; then :
 -  HAVE_XRENDER=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5
 +$as_echo "$ac_cv_lib_m_sqrt" >&6; }
 +if test "x$ac_cv_lib_m_sqrt" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBM 1
 +_ACEOF
 +
 +  LIBS="-lm $LIBS"
 +
  fi
  
 -      if test "$HAVE_XFT" != no && test "$HAVE_XRENDER" != no; then
 -      OLD_CPPFLAGS="$CPPFLAGS"
 -      OLD_CFLAGS="$CFLAGS"
 -      OLD_LIBS="$LIBS"
 -      CPPFLAGS="$CPPFLAGS $XFT_CFLAGS"
 -      CFLAGS="$CFLAGS $XFT_CFLAGS"
 -      XFT_LIBS="-lXrender $XFT_LIBS"
 -      LIBS="$XFT_LIBS $LIBS"
 -      ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default"
 -if test "x$ac_cv_header_X11_Xft_Xft_h" = x""yes; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XftFontOpen in -lXft" >&5
 -$as_echo_n "checking for XftFontOpen in -lXft... " >&6; }
 -if test "${ac_cv_lib_Xft_XftFontOpen+set}" = set; then :
 +
 +# Check for mail-locking functions in a "mail" library.  Probably this should
 +# have the same check as for liblockfile below.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for maillock in -lmail" >&5
 +$as_echo_n "checking for maillock in -lmail... " >&6; }
 +if ${ac_cv_lib_mail_maillock+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXft $XFT_LIBS $LIBS"
 +LIBS="-lmail  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char XftFontOpen ();
 +char maillock ();
  int
  main ()
  {
 -return XftFontOpen ();
 +return maillock ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xft_XftFontOpen=yes
 +  ac_cv_lib_mail_maillock=yes
  else
 -  ac_cv_lib_Xft_XftFontOpen=no
 +  ac_cv_lib_mail_maillock=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xft_XftFontOpen" >&5
 -$as_echo "$ac_cv_lib_Xft_XftFontOpen" >&6; }
 -if test "x$ac_cv_lib_Xft_XftFontOpen" = x""yes; then :
 -  HAVE_XFT=yes
 -fi
 -
 -fi
 -
 -
 -
 -      if test "${HAVE_XFT}" = "yes"; then
 -
 -$as_echo "#define HAVE_XFT 1" >>confdefs.h
 -
 -
 -        C_SWITCH_X_SITE="$C_SWITCH_X_SITE $XFT_CFLAGS"
 -      else
 -        CPPFLAGS="$OLD_CPPFLAGS"
 -        CFLAGS="$OLD_CFLAGS"
 -        LIBS="$OLD_LIBS"
 -      fi                        # "${HAVE_XFT}" = "yes"
 -      fi                          # "$HAVE_XFT" != no
 -    fi                            # "x${with_xft}" != "xno"
 -
 -        if test "$HAVE_XFT" != "yes"; then
 -       HAVE_XFT=no
 -    fi
 -
 -
 -    HAVE_FREETYPE=no
 -    ## We used to allow building with FreeType and without Xft.
 -    ## However, the ftx font backend driver is not in good shape.
 -    if test "${HAVE_XFT}" = "yes"; then
 -                  HAVE_FREETYPE=yes
 -      FONTCONFIG_CFLAGS=
 -      FONTCONFIG_LIBS=
 -    fi
 -
 -    HAVE_LIBOTF=no
 -    if test "${HAVE_FREETYPE}" = "yes"; then
 -
 -$as_echo "#define HAVE_FREETYPE 1" >>confdefs.h
 -
 -      if test "${with_libotf}" != "no"; then
 -
 -  succeeded=no
 -
 -  # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 -  fi
 -done
 -  done
 -IFS=$as_save_IFS
 -
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 -esac
 -fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 -$as_echo "$PKG_CONFIG" >&6; }
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mail_maillock" >&5
 +$as_echo "$ac_cv_lib_mail_maillock" >&6; }
 +if test "x$ac_cv_lib_mail_maillock" = xyes; then :
 +  have_mail=yes
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  have_mail=no
  fi
  
 +if test $have_mail = yes; then
 +  LIBS_MAIL=-lmail
 +  LIBS="$LIBS_MAIL $LIBS"
  
 +$as_echo "#define HAVE_LIBMAIL 1" >>confdefs.h
  
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_LIBOTF=no
 -  else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotf" >&5
 -$as_echo_n "checking for libotf... " >&6; }
 -
 -        if $PKG_CONFIG --exists "libotf" 2>&5; then
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -            succeeded=yes
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_CFLAGS" >&5
 -$as_echo_n "checking LIBOTF_CFLAGS... " >&6; }
 -            LIBOTF_CFLAGS=`$PKG_CONFIG --cflags "libotf"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_CFLAGS" >&5
 -$as_echo "$LIBOTF_CFLAGS" >&6; }
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_LIBS" >&5
 -$as_echo_n "checking LIBOTF_LIBS... " >&6; }
 -            LIBOTF_LIBS=`$PKG_CONFIG --libs "libotf"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_LIBS" >&5
 -$as_echo "$LIBOTF_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            LIBOTF_CFLAGS=""
 -            LIBOTF_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            LIBOTF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libotf"`
 -
 -        fi
 -
 -
 -
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
 -
 -  if test $succeeded = yes; then
 -     HAVE_LIBOTF=yes
 -  else
 -     HAVE_LIBOTF=no
 -  fi
 -
 -      if test "$HAVE_LIBOTF" = "yes"; then
 -
 -$as_echo "#define HAVE_LIBOTF 1" >>confdefs.h
 -
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OTF_get_variation_glyphs in -lotf" >&5
 -$as_echo_n "checking for OTF_get_variation_glyphs in -lotf... " >&6; }
 -if test "${ac_cv_lib_otf_OTF_get_variation_glyphs+set}" = set; then :
 +else
 +  LIBS_MAIL=
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for maillock in -llockfile" >&5
 +$as_echo_n "checking for maillock in -llockfile... " >&6; }
 +if ${ac_cv_lib_lockfile_maillock+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lotf  $LIBS"
 +LIBS="-llockfile  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char OTF_get_variation_glyphs ();
 +char maillock ();
  int
  main ()
  {
 -return OTF_get_variation_glyphs ();
 +return maillock ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_otf_OTF_get_variation_glyphs=yes
 +  ac_cv_lib_lockfile_maillock=yes
  else
 -  ac_cv_lib_otf_OTF_get_variation_glyphs=no
 +  ac_cv_lib_lockfile_maillock=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_otf_OTF_get_variation_glyphs" >&5
 -$as_echo "$ac_cv_lib_otf_OTF_get_variation_glyphs" >&6; }
 -if test "x$ac_cv_lib_otf_OTF_get_variation_glyphs" = x""yes; then :
 -  HAVE_OTF_GET_VARIATION_GLYPHS=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lockfile_maillock" >&5
 +$as_echo "$ac_cv_lib_lockfile_maillock" >&6; }
 +if test "x$ac_cv_lib_lockfile_maillock" = xyes; then :
 +  have_lockfile=yes
  else
 -  HAVE_OTF_GET_VARIATION_GLYPHS=no
 +  have_lockfile=no
  fi
  
 -        if test "${HAVE_OTF_GET_VARIATION_GLYPHS}" = "yes"; then
 -
 -$as_echo "#define HAVE_OTF_GET_VARIATION_GLYPHS 1" >>confdefs.h
 -
 -        fi
 -      fi
 -      fi
 -            fi
 -
 -    HAVE_M17N_FLT=no
 -    if test "${HAVE_LIBOTF}" = yes; then
 -      if test "${with_m17n_flt}" != "no"; then
 +if test $have_lockfile = yes; then
 +   LIBS_MAIL=-llockfile
 +   LIBS="$LIBS_MAIL $LIBS"
  
 -  succeeded=no
 +$as_echo "#define HAVE_LIBLOCKFILE 1" >>confdefs.h
  
 -  # Extract the first word of "pkg-config", so it can be a program name with args.
 -set dummy pkg-config; ac_word=$2
 +else
 +# If we have the shared liblockfile, assume we must use it for mail
 +# locking (e.g. Debian).  If we couldn't link against liblockfile
 +# (no liblockfile.a installed), ensure that we don't need to.
 +      # Extract the first word of "liblockfile.so", so it can be a program name with args.
 +set dummy liblockfile.so; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
 +if ${ac_cv_prog_liblockfile+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  case $PKG_CONFIG in
 -  [\\/]* | ?:[\\/]*)
 -  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
 -  ;;
 -  *)
 -  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -for as_dir in $PATH
 +  if test -n "$liblockfile"; then
 +  ac_cv_prog_liblockfile="$liblockfile" # Let the user override the test.
 +else
 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 +as_dummy="/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH"
 +for as_dir in $as_dummy
  do
    IFS=$as_save_IFS
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
 +    ac_cv_prog_liblockfile="yes"
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
    done
  IFS=$as_save_IFS
  
 -  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
 -  ;;
 -esac
 +  test -z "$ac_cv_prog_liblockfile" && ac_cv_prog_liblockfile="no"
  fi
 -PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 -if test -n "$PKG_CONFIG"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 -$as_echo "$PKG_CONFIG" >&6; }
 +fi
 +liblockfile=$ac_cv_prog_liblockfile
 +if test -n "$liblockfile"; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $liblockfile" >&5
 +$as_echo "$liblockfile" >&6; }
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
  $as_echo "no" >&6; }
  fi
  
  
 -
 -  if test "$PKG_CONFIG" = "no" ; then
 -     HAVE_M17N_FLT=no
 -  else
 -     PKG_CONFIG_MIN_VERSION=0.9.0
 -     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
 -        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for m17n-flt" >&5
 -$as_echo_n "checking for m17n-flt... " >&6; }
 -
 -        if $PKG_CONFIG --exists "m17n-flt" 2>&5; then
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -            succeeded=yes
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_CFLAGS" >&5
 -$as_echo_n "checking M17N_FLT_CFLAGS... " >&6; }
 -            M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_CFLAGS" >&5
 -$as_echo "$M17N_FLT_CFLAGS" >&6; }
 -
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_LIBS" >&5
 -$as_echo_n "checking M17N_FLT_LIBS... " >&6; }
 -            M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt"|sed -e 's,///*,/,g'`
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_LIBS" >&5
 -$as_echo "$M17N_FLT_LIBS" >&6; }
 -        else
 -            { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -            M17N_FLT_CFLAGS=""
 -            M17N_FLT_LIBS=""
 -            ## If we have a custom action on failure, don't print errors, but
 -            ## do set a variable so people can do so.
 -            M17N_FLT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "m17n-flt"`
 -
 -        fi
 -
 -
 -
 -     else
 -        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
 -        echo "*** See http://www.freedesktop.org/software/pkgconfig"
 -     fi
 -  fi
 -
 -  if test $succeeded = yes; then
 -     HAVE_M17N_FLT=yes
 -  else
 -     HAVE_M17N_FLT=no
 +  if test $ac_cv_prog_liblockfile = yes; then
 +    as_fn_error $? "Shared liblockfile found but can't link against it.
 +This probably means that movemail could lose mail.
 +There may be a \`development' package to install containing liblockfile." "$LINENO" 5
    fi
 +fi
 +for ac_func in touchlock
 +do :
 +  ac_fn_c_check_func "$LINENO" "touchlock" "ac_cv_func_touchlock"
 +if test "x$ac_cv_func_touchlock" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_TOUCHLOCK 1
 +_ACEOF
  
 -      if test "$HAVE_M17N_FLT" = "yes"; then
 +fi
 +done
  
 -$as_echo "#define HAVE_M17N_FLT 1" >>confdefs.h
 +for ac_header in maillock.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "maillock.h" "ac_cv_header_maillock_h" "$ac_includes_default"
 +if test "x$ac_cv_header_maillock_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_MAILLOCK_H 1
 +_ACEOF
  
 -      fi
 -      fi
 -    fi
 -else
 -    HAVE_XFT=no
 -    HAVE_FREETYPE=no
 -    HAVE_LIBOTF=no
 -    HAVE_M17N_FLT=no
  fi
 -### End of font-backend (under X11) section.
 -
  
 +done
  
  
  
 +## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
 +## interlock access to the mail spool.  The alternative is a lock file named
 +## /usr/spool/mail/$USER.lock.
 +mail_lock=no
 +case "$opsys" in
 +  aix4-2) mail_lock="lockf" ;;
 +
 +  gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
 +
 +  ## On GNU/Linux systems, both methods are used by various mail programs.
 +  ## I assume most people are using newer mailers that have heard of flock.
 +  ## Change this if you need to.
 +  ## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
 +  ## configure gets the right answers, and that means *NOT* using flock.
 +  ## Using flock is guaranteed to be the wrong thing. See Debian Policy
 +  ## for details.'' and then uses `#ifdef DEBIAN'.  Unfortunately the
 +  ## Debian maintainer hasn't provided a clean fix for Emacs.
 +  ## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
 +  ## HAVE_MAILLOCK_H are defined, so the following appears to be the
 +  ## correct logic.  -- fx
 +  ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
 +  ## liblockfile is a Free Software replacement for libmail, used on
 +  ## Debian systems and elsewhere. -rfr.
 +  gnu-*)
 +    mail_lock="flock"
 +    if test $have_mail = yes || test $have_lockfile = yes; then
 +      test $ac_cv_header_maillock_h = yes && mail_lock=no
 +    fi
 +    ;;
 +esac
  
 +BLESSMAIL_TARGET=
 +case "$mail_lock" in
 +  flock)
 +$as_echo "#define MAIL_USE_FLOCK 1" >>confdefs.h
 + ;;
  
 +  lockf)
 +$as_echo "#define MAIL_USE_LOCKF 1" >>confdefs.h
 + ;;
  
 +  *) BLESSMAIL_TARGET="need-blessmail" ;;
 +esac
  
  
 -### Use -lXpm if available, unless `--with-xpm=no'.
 -HAVE_XPM=no
 -if test "${HAVE_X11}" = "yes"; then
 -  if test "${with_xpm}" != "no"; then
 -    ac_fn_c_check_header_mongrel "$LINENO" "X11/xpm.h" "ac_cv_header_X11_xpm_h" "$ac_includes_default"
 -if test "x$ac_cv_header_X11_xpm_h" = x""yes; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReadFileToPixmap in -lXpm" >&5
 -$as_echo_n "checking for XpmReadFileToPixmap in -lXpm... " >&6; }
 -if test "${ac_cv_lib_Xpm_XpmReadFileToPixmap+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lXpm -lX11 $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char XpmReadFileToPixmap ();
 -int
 -main ()
 -{
 -return XpmReadFileToPixmap ();
 -  ;
 -  return 0;
 -}
 +for ac_func in gethostname getdomainname dup2 \
 +rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
 +random lrand48 logb frexp fmod rint cbrt ftime setsid \
 +strerror fpathconf select euidaccess getpagesize tzset setlocale \
 +utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
 +sendto recvfrom getsockopt setsockopt getsockname getpeername \
 +gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
 +memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
 +cfmakeraw cfsetspeed isnan copysign __executable_start
 +do :
 +  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 +if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_Xpm_XpmReadFileToPixmap=yes
 -else
 -  ac_cv_lib_Xpm_XpmReadFileToPixmap=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Xpm_XpmReadFileToPixmap" >&5
 -$as_echo "$ac_cv_lib_Xpm_XpmReadFileToPixmap" >&6; }
 -if test "x$ac_cv_lib_Xpm_XpmReadFileToPixmap" = x""yes; then :
 -  HAVE_XPM=yes
 -fi
 -
 -fi
 -
 -
 -    if test "${HAVE_XPM}" = "yes"; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmReturnAllocPixels preprocessor define" >&5
 -$as_echo_n "checking for XpmReturnAllocPixels preprocessor define... " >&6; }
 -      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include "X11/xpm.h"
 -#ifndef XpmReturnAllocPixels
 -no_return_alloc_pixels
 -#endif
  
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "no_return_alloc_pixels" >/dev/null 2>&1; then :
 -  HAVE_XPM=no
 -else
 -  HAVE_XPM=yes
  fi
 -rm -f conftest*
 -
 -
 -      if test "${HAVE_XPM}" = "yes"; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 -$as_echo "yes" >&6; }
 -      else
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 -      fi
 -    fi
 -  fi
 -
 -  if test "${HAVE_XPM}" = "yes"; then
 -
 -$as_echo "#define HAVE_XPM 1" >>confdefs.h
 +done
  
 -  fi
 -fi
  
 -### Use -ljpeg if available, unless `--with-jpeg=no'.
 -HAVE_JPEG=no
 -if test "${HAVE_X11}" = "yes"; then
 -  if test "${with_jpeg}" != "no"; then
 -            ac_fn_c_check_header_mongrel "$LINENO" "jerror.h" "ac_cv_header_jerror_h" "$ac_includes_default"
 -if test "x$ac_cv_header_jerror_h" = x""yes; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_destroy_compress in -ljpeg" >&5
 -$as_echo_n "checking for jpeg_destroy_compress in -ljpeg... " >&6; }
 -if test "${ac_cv_lib_jpeg_jpeg_destroy_compress+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_unwind_init" >&5
 +$as_echo_n "checking for __builtin_unwind_init... " >&6; }
 +if ${emacs_cv_func___builtin_unwind_init+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-ljpeg  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char jpeg_destroy_compress ();
  int
  main ()
  {
 -return jpeg_destroy_compress ();
 +__builtin_unwind_init ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_jpeg_jpeg_destroy_compress=yes
 +  emacs_cv_func___builtin_unwind_init=yes
  else
 -  ac_cv_lib_jpeg_jpeg_destroy_compress=no
 +  emacs_cv_func___builtin_unwind_init=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_destroy_compress" >&5
 -$as_echo "$ac_cv_lib_jpeg_jpeg_destroy_compress" >&6; }
 -if test "x$ac_cv_lib_jpeg_jpeg_destroy_compress" = x""yes; then :
 -  HAVE_JPEG=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_func___builtin_unwind_init" >&5
 +$as_echo "$emacs_cv_func___builtin_unwind_init" >&6; }
 +if test $emacs_cv_func___builtin_unwind_init = yes; then
 +
 +$as_echo "#define HAVE___BUILTIN_UNWIND_INIT 1" >>confdefs.h
 +
  fi
  
 +for ac_header in sys/un.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default"
 +if test "x$ac_cv_header_sys_un_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_SYS_UN_H 1
 +_ACEOF
 +
  fi
  
 +done
  
 -  fi
  
 -    if test "${HAVE_JPEG}" = "yes"; then
 -    $as_echo "#define HAVE_JPEG 1" >>confdefs.h
 +ac_have_func=no # yes means we've found a way to get the load average.
  
 -    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <jpeglib.h>
 -       version=JPEG_LIB_VERSION
 +# Make sure getloadavg.c is where it belongs, at configure-time.
 +test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" ||
 +  as_fn_error $? "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
  
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "version= *(6[2-9]|[7-9][0-9])" >/dev/null 2>&1; then :
 -  $as_echo "#define HAVE_JPEG 1" >>confdefs.h
 +ac_save_LIBS=$LIBS
  
 +# Check for getloadavg, but be sure not to touch the cache variable.
 +(ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
 +if test "x$ac_cv_func_getloadavg" = xyes; then :
 +  exit 0
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: libjpeg found, but not version 6b or later" >&5
 -$as_echo "$as_me: WARNING: libjpeg found, but not version 6b or later" >&2;}
 -        HAVE_JPEG=no
 -fi
 -rm -f conftest*
 -
 -  fi
 +  exit 1
  fi
 +) && ac_have_func=yes
  
 -### Use -lpng if available, unless `--with-png=no'.
 -HAVE_PNG=no
 -if test "${HAVE_X11}" = "yes"; then
 -  if test "${with_png}" != "no"; then
 -    # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
 -    # in /usr/include/libpng.
 -    for ac_header in png.h libpng/png.h
 +# On HPUX9, an unprivileged user can get load averages through this function.
 +for ac_func in pstat_getdynamic
  do :
 -  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
 -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
 +  ac_fn_c_check_func "$LINENO" "pstat_getdynamic" "ac_cv_func_pstat_getdynamic"
 +if test "x$ac_cv_func_pstat_getdynamic" = xyes; then :
    cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 +#define HAVE_PSTAT_GETDYNAMIC 1
  _ACEOF
  
  fi
 -
  done
  
 -    if test "$ac_cv_header_png_h" = yes || test "$ac_cv_header_libpng_png_h" = yes ; then
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_get_channels in -lpng" >&5
 -$as_echo_n "checking for png_get_channels in -lpng... " >&6; }
 -if test "${ac_cv_lib_png_png_get_channels+set}" = set; then :
 +
 +# Solaris has libkstat which does not require root.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5
 +$as_echo_n "checking for kstat_open in -lkstat... " >&6; }
 +if ${ac_cv_lib_kstat_kstat_open+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lpng -lz -lm $LIBS"
 +LIBS="-lkstat  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char png_get_channels ();
 +char kstat_open ();
  int
  main ()
  {
 -return png_get_channels ();
 +return kstat_open ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_png_png_get_channels=yes
 +  ac_cv_lib_kstat_kstat_open=yes
  else
 -  ac_cv_lib_png_png_get_channels=no
 +  ac_cv_lib_kstat_kstat_open=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_get_channels" >&5
 -$as_echo "$ac_cv_lib_png_png_get_channels" >&6; }
 -if test "x$ac_cv_lib_png_png_get_channels" = x""yes; then :
 -  HAVE_PNG=yes
 -fi
 -
 -    fi
 -  fi
 -
 -  if test "${HAVE_PNG}" = "yes"; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5
 +$as_echo "$ac_cv_lib_kstat_kstat_open" >&6; }
 +if test "x$ac_cv_lib_kstat_kstat_open" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBKSTAT 1
 +_ACEOF
  
 -$as_echo "#define HAVE_PNG 1" >>confdefs.h
 +  LIBS="-lkstat $LIBS"
  
 -  fi
  fi
  
 -### Use -ltiff if available, unless `--with-tiff=no'.
 -HAVE_TIFF=no
 -if test "${HAVE_X11}" = "yes"; then
 -  if test "${with_tiff}" != "no"; then
 -    ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default"
 -if test "x$ac_cv_header_tiffio_h" = x""yes; then :
 -  tifflibs="-lz -lm"
 -      # At least one tiff package requires the jpeg library.
 -      if test "${HAVE_JPEG}" = yes; then tifflibs="-ljpeg $tifflibs"; fi
 -      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFGetVersion in -ltiff" >&5
 -$as_echo_n "checking for TIFFGetVersion in -ltiff... " >&6; }
 -if test "${ac_cv_lib_tiff_TIFFGetVersion+set}" = set; then :
 +test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes
 +
 +# Some systems with -lutil have (and need) -lkvm as well, some do not.
 +# On Solaris, -lkvm requires nlist from -lelf, so check that first
 +# to get the right answer into the cache.
 +# For kstat on solaris, we need libelf to force the definition of SVR4 below.
 +if test $ac_have_func = no; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_begin in -lelf" >&5
 +$as_echo_n "checking for elf_begin in -lelf... " >&6; }
 +if ${ac_cv_lib_elf_elf_begin+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-ltiff $tifflibs $LIBS"
 +LIBS="-lelf  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char TIFFGetVersion ();
 +char elf_begin ();
  int
  main ()
  {
 -return TIFFGetVersion ();
 +return elf_begin ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_tiff_TIFFGetVersion=yes
 +  ac_cv_lib_elf_elf_begin=yes
  else
 -  ac_cv_lib_tiff_TIFFGetVersion=no
 +  ac_cv_lib_elf_elf_begin=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFGetVersion" >&5
 -$as_echo "$ac_cv_lib_tiff_TIFFGetVersion" >&6; }
 -if test "x$ac_cv_lib_tiff_TIFFGetVersion" = x""yes; then :
 -  HAVE_TIFF=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_elf_begin" >&5
 +$as_echo "$ac_cv_lib_elf_elf_begin" >&6; }
 +if test "x$ac_cv_lib_elf_elf_begin" = xyes; then :
 +  LIBS="-lelf $LIBS"
  fi
  
  fi
 +if test $ac_have_func = no; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5
 +$as_echo_n "checking for kvm_open in -lkvm... " >&6; }
 +if ${ac_cv_lib_kvm_kvm_open+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lkvm  $LIBS"
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -
 -  fi
 -
 -  if test "${HAVE_TIFF}" = "yes"; then
 -
 -$as_echo "#define HAVE_TIFF 1" >>confdefs.h
 -
 -  fi
 +/* Override any GCC internal prototype to avoid an error.
 +   Use char because int might match the return type of a GCC
 +   builtin and then its argument prototype would still apply.  */
 +#ifdef __cplusplus
 +extern "C"
 +#endif
 +char kvm_open ();
 +int
 +main ()
 +{
 +return kvm_open ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_kvm_kvm_open=yes
 +else
 +  ac_cv_lib_kvm_kvm_open=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +LIBS=$ac_check_lib_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5
 +$as_echo "$ac_cv_lib_kvm_kvm_open" >&6; }
 +if test "x$ac_cv_lib_kvm_kvm_open" = xyes; then :
 +  LIBS="-lkvm $LIBS"
  fi
  
 -### Use -lgif or -lungif if available, unless `--with-gif=no'.
 -HAVE_GIF=no
 -if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
 -  ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
 -if test "x$ac_cv_header_gif_lib_h" = x""yes; then :
 -  # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
 -# Earlier versions can crash Emacs.
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGifPutExtensionLast in -lgif" >&5
 -$as_echo_n "checking for EGifPutExtensionLast in -lgif... " >&6; }
 -if test "${ac_cv_lib_gif_EGifPutExtensionLast+set}" = set; then :
 +  # Check for the 4.4BSD definition of getloadavg.
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lutil" >&5
 +$as_echo_n "checking for getloadavg in -lutil... " >&6; }
 +if ${ac_cv_lib_util_getloadavg+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lgif  $LIBS"
 +LIBS="-lutil  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char EGifPutExtensionLast ();
 +char getloadavg ();
  int
  main ()
  {
 -return EGifPutExtensionLast ();
 +return getloadavg ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_gif_EGifPutExtensionLast=yes
 +  ac_cv_lib_util_getloadavg=yes
  else
 -  ac_cv_lib_gif_EGifPutExtensionLast=no
 +  ac_cv_lib_util_getloadavg=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_EGifPutExtensionLast" >&5
 -$as_echo "$ac_cv_lib_gif_EGifPutExtensionLast" >&6; }
 -if test "x$ac_cv_lib_gif_EGifPutExtensionLast" = x""yes; then :
 -  HAVE_GIF=yes
 -else
 -  try_libungif=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_getloadavg" >&5
 +$as_echo "$ac_cv_lib_util_getloadavg" >&6; }
 +if test "x$ac_cv_lib_util_getloadavg" = xyes; then :
 +  LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes
  fi
  
  fi
  
 -
 -
 -  if test "$HAVE_GIF" = yes; then
 -      ac_gif_lib_name="-lgif"
 -  fi
 -
 -# If gif_lib.h but no libgif, try libungif.
 -  if test x"$try_libungif" = xyes; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGifPutExtensionLast in -lungif" >&5
 -$as_echo_n "checking for EGifPutExtensionLast in -lungif... " >&6; }
 -if test "${ac_cv_lib_ungif_EGifPutExtensionLast+set}" = set; then :
 +if test $ac_have_func = no; then
 +  # There is a commonly available library for RS/6000 AIX.
 +  # Since it is not a standard part of AIX, it might be installed locally.
 +  ac_getloadavg_LIBS=$LIBS
 +  LIBS="-L/usr/local/lib $LIBS"
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5
 +$as_echo_n "checking for getloadavg in -lgetloadavg... " >&6; }
 +if ${ac_cv_lib_getloadavg_getloadavg+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lungif  $LIBS"
 +LIBS="-lgetloadavg  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char EGifPutExtensionLast ();
 +char getloadavg ();
  int
  main ()
  {
 -return EGifPutExtensionLast ();
 +return getloadavg ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_ungif_EGifPutExtensionLast=yes
 +  ac_cv_lib_getloadavg_getloadavg=yes
  else
 -  ac_cv_lib_ungif_EGifPutExtensionLast=no
 +  ac_cv_lib_getloadavg_getloadavg=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ungif_EGifPutExtensionLast" >&5
 -$as_echo "$ac_cv_lib_ungif_EGifPutExtensionLast" >&6; }
 -if test "x$ac_cv_lib_ungif_EGifPutExtensionLast" = x""yes; then :
 -  HAVE_GIF=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_getloadavg_getloadavg" >&5
 +$as_echo "$ac_cv_lib_getloadavg_getloadavg" >&6; }
 +if test "x$ac_cv_lib_getloadavg_getloadavg" = xyes; then :
 +  LIBS="-lgetloadavg $LIBS"
 +else
 +  LIBS=$ac_getloadavg_LIBS
  fi
  
 +fi
  
 -    if test "$HAVE_GIF" = yes; then
 -
 -$as_echo "#define LIBGIF -lungif" >>confdefs.h
 -
 -      ac_gif_lib_name="-lungif"
 -    fi
 -  fi
 +# Make sure it is really in the library, if we think we found it,
 +# otherwise set up the replacement function.
 +for ac_func in getloadavg
 +do :
 +  ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
 +if test "x$ac_cv_func_getloadavg" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_GETLOADAVG 1
 +_ACEOF
  
 -  if test "${HAVE_GIF}" = "yes"; then
 +else
 +  case " $LIBOBJS " in
 +  *" getloadavg.$ac_objext "* ) ;;
 +  *) LIBOBJS="$LIBOBJS getloadavg.$ac_objext"
 + ;;
 +esac
  
 -$as_echo "#define HAVE_GIF 1" >>confdefs.h
  
 -  fi
 -fi
 +$as_echo "#define C_GETLOADAVG 1" >>confdefs.h
  
 -if test "${HAVE_X11}" = "yes"; then
 -  MISSING=""
 -  WITH_NO=""
 -  test "${with_xpm}" != "no" && test "${HAVE_XPM}" != "yes" &&
 -    MISSING="libXpm" && WITH_NO="--with-xpm=no"
 -  test "${with_jpeg}" != "no" && test "${HAVE_JPEG}" != "yes" &&
 -    MISSING="$MISSING libjpeg" && WITH_NO="$WITH_NO --with-jpeg=no"
 -  test "${with_png}" != "no" && test "${HAVE_PNG}" != "yes" &&
 -    MISSING="$MISSING libpng" && WITH_NO="$WITH_NO --with-png=no"
 -  test "${with_gif}" != "no" && test "${HAVE_GIF}" != "yes" &&
 -    MISSING="$MISSING libgif/libungif" && WITH_NO="$WITH_NO --with-gif=no"
 -  test "${with_tiff}" != "no" && test "${HAVE_TIFF}" != "yes" &&
 -    MISSING="$MISSING libtiff" && WITH_NO="$WITH_NO --with-tiff=no"
 +# Figure out what our getloadavg.c needs.
 +ac_have_func=no
 +ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default"
 +if test "x$ac_cv_header_sys_dg_sys_info_h" = xyes; then :
 +  ac_have_func=yes
  
 -  if test "X${MISSING}" != X; then
 -    as_fn_error $? "The following required libraries were not found:
 -    $MISSING
 -Maybe some development libraries/packages are missing?
 -If you don't want to link with them give
 -    $WITH_NO
 -as options to configure" "$LINENO" 5
 -  fi
 -fi
 +$as_echo "#define DGUX 1" >>confdefs.h
  
 -### Use -lgpm if available, unless `--with-gpm=no'.
 -HAVE_GPM=no
 -if test "${with_gpm}" != "no"; then
 -  ac_fn_c_check_header_mongrel "$LINENO" "gpm.h" "ac_cv_header_gpm_h" "$ac_includes_default"
 -if test "x$ac_cv_header_gpm_h" = x""yes; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Gpm_Open in -lgpm" >&5
 -$as_echo_n "checking for Gpm_Open in -lgpm... " >&6; }
 -if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then :
 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dg_sys_info in -ldgc" >&5
 +$as_echo_n "checking for dg_sys_info in -ldgc... " >&6; }
 +if ${ac_cv_lib_dgc_dg_sys_info+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lgpm  $LIBS"
 +LIBS="-ldgc  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char Gpm_Open ();
 +char dg_sys_info ();
  int
  main ()
  {
 -return Gpm_Open ();
 +return dg_sys_info ();
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_gpm_Gpm_Open=yes
 +  ac_cv_lib_dgc_dg_sys_info=yes
  else
 -  ac_cv_lib_gpm_Gpm_Open=no
 +  ac_cv_lib_dgc_dg_sys_info=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gpm_Gpm_Open" >&5
 -$as_echo "$ac_cv_lib_gpm_Gpm_Open" >&6; }
 -if test "x$ac_cv_lib_gpm_Gpm_Open" = x""yes; then :
 -  HAVE_GPM=yes
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dgc_dg_sys_info" >&5
 +$as_echo "$ac_cv_lib_dgc_dg_sys_info" >&6; }
 +if test "x$ac_cv_lib_dgc_dg_sys_info" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_LIBDGC 1
 +_ACEOF
 +
 +  LIBS="-ldgc $LIBS"
 +
  fi
  
  fi
  
  
 +
 +ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
 +if test "x$ac_cv_header_locale_h" = xyes; then :
 +
  fi
  
 -if test "${HAVE_GPM}" = "yes"; then
  
 -$as_echo "#define HAVE_GPM 1" >>confdefs.h
 +for ac_func in setlocale
 +do :
 +  ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
 +if test "x$ac_cv_func_setlocale" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_SETLOCALE 1
 +_ACEOF
  
  fi
 +done
  
 -ac_fn_c_check_header_mongrel "$LINENO" "malloc/malloc.h" "ac_cv_header_malloc_malloc_h" "$ac_includes_default"
 -if test "x$ac_cv_header_malloc_malloc_h" = x""yes; then :
  
 -$as_echo "#define HAVE_MALLOC_MALLOC_H 1" >>confdefs.h
 +# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
 +# uses stabs), but it is still SVR4.  We cannot check for <elf.h> because
 +# Irix 4.0.5F has the header but not the library.
 +if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes \
 +    && test "$ac_cv_lib_kvm_kvm_open" = yes; then
 +  ac_have_func=yes
 +
 +$as_echo "#define SVR4 1" >>confdefs.h
  
  fi
  
 +if test $ac_have_func = no; then
 +  ac_fn_c_check_header_mongrel "$LINENO" "inq_stats/cpustats.h" "ac_cv_header_inq_stats_cpustats_h" "$ac_includes_default"
 +if test "x$ac_cv_header_inq_stats_cpustats_h" = xyes; then :
 +  ac_have_func=yes
  
 +$as_echo "#define UMAX 1" >>confdefs.h
  
 -### Use NeXTstep API to implement GUI.
 -if test "${HAVE_NS}" = "yes"; then
  
 -$as_echo "#define HAVE_NS 1" >>confdefs.h
 +$as_echo "#define UMAX4_3 1" >>confdefs.h
  
 -  if test "${NS_IMPL_COCOA}" = "yes"; then
 +fi
  
 -$as_echo "#define NS_IMPL_COCOA 1" >>confdefs.h
  
 -    GNU_OBJC_CFLAGS=
 -  fi
 -  if test "${NS_IMPL_GNUSTEP}" = "yes"; then
 +fi
  
 -$as_echo "#define NS_IMPL_GNUSTEP 1" >>confdefs.h
 +if test $ac_have_func = no; then
 +  ac_fn_c_check_header_mongrel "$LINENO" "sys/cpustats.h" "ac_cv_header_sys_cpustats_h" "$ac_includes_default"
 +if test "x$ac_cv_header_sys_cpustats_h" = xyes; then :
 +  ac_have_func=yes; $as_echo "#define UMAX 1" >>confdefs.h
  
 -    GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
 -  fi
 -  if test "${NS_HAVE_NSINTEGER}" = "yes"; then
 +fi
  
 -$as_echo "#define NS_HAVE_NSINTEGER 1" >>confdefs.h
  
 -  fi
 -  # We also have mouse menus.
 -  HAVE_MENUS=yes
 -  OTHER_FILES=ns-app
  fi
  
 +if test $ac_have_func = no; then
 +  for ac_header in mach/mach.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "mach/mach.h" "ac_cv_header_mach_mach_h" "$ac_includes_default"
 +if test "x$ac_cv_header_mach_mach_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_MACH_MACH_H 1
 +_ACEOF
 +
 +fi
  
 -### Use session management (-lSM -lICE) if available
 -HAVE_X_SM=no
 -if test "${HAVE_X11}" = "yes"; then
 -  ac_fn_c_check_header_mongrel "$LINENO" "X11/SM/SMlib.h" "ac_cv_header_X11_SM_SMlib_h" "$ac_includes_default"
 -if test "x$ac_cv_header_X11_SM_SMlib_h" = x""yes; then :
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SmcOpenConnection in -lSM" >&5
 -$as_echo_n "checking for SmcOpenConnection in -lSM... " >&6; }
 -if test "${ac_cv_lib_SM_SmcOpenConnection+set}" = set; then :
 +done
 +
 +fi
 +
 +for ac_header in nlist.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "nlist.h" "ac_cv_header_nlist_h" "$ac_includes_default"
 +if test "x$ac_cv_header_nlist_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_NLIST_H 1
 +_ACEOF
 + ac_fn_c_check_member "$LINENO" "struct nlist" "n_un.n_name" "ac_cv_member_struct_nlist_n_un_n_name" "#include <nlist.h>
 +"
 +if test "x$ac_cv_member_struct_nlist_n_un_n_name" = xyes; then :
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1
 +_ACEOF
 +
 +
 +$as_echo "#define NLIST_NAME_UNION 1" >>confdefs.h
 +
 +fi
 +
 +
 +fi
 +
 +done
 +
 +fi
 +done
 +
 +
 +# Some definitions of getloadavg require that the program be installed setgid.
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getloadavg requires setgid" >&5
 +$as_echo_n "checking whether getloadavg requires setgid... " >&6; }
 +if ${ac_cv_func_getloadavg_setgid+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lSM -lICE $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 +#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
 +#ifdef LDAV_PRIVILEGED
 +Yowza Am I SETGID yet
  #endif
 -char SmcOpenConnection ();
 -int
 -main ()
 -{
 -return SmcOpenConnection ();
 -  ;
 -  return 0;
 -}
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_SM_SmcOpenConnection=yes
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then :
 +  ac_cv_func_getloadavg_setgid=yes
  else
 -  ac_cv_lib_SM_SmcOpenConnection=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +  ac_cv_func_getloadavg_setgid=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_SM_SmcOpenConnection" >&5
 -$as_echo "$ac_cv_lib_SM_SmcOpenConnection" >&6; }
 -if test "x$ac_cv_lib_SM_SmcOpenConnection" = x""yes; then :
 -  HAVE_X_SM=yes
 +rm -f conftest*
 +
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getloadavg_setgid" >&5
 +$as_echo "$ac_cv_func_getloadavg_setgid" >&6; }
 +if test $ac_cv_func_getloadavg_setgid = yes; then
 +  NEED_SETGID=true
 +
 +$as_echo "#define GETLOADAVG_PRIVILEGED 1" >>confdefs.h
  
 +else
 +  NEED_SETGID=false
  fi
  
 +if test $ac_cv_func_getloadavg_setgid = yes; then
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking group of /dev/kmem" >&5
 +$as_echo_n "checking group of /dev/kmem... " >&6; }
 +if ${ac_cv_group_kmem+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +   # On Solaris, /dev/kmem is a symlink.  Get info on the real file.
 +  ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null`
 +  # If we got an error (system does not support symlinks), try without -L.
 +  test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem`
 +  ac_cv_group_kmem=`$as_echo "$ac_ls_output" \
 +    | sed -ne 's/[     ][      ]*/ /g;
 +             s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\)  *.*/\1/;
 +             / /s/.* //;p;'`
  
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_group_kmem" >&5
 +$as_echo "$ac_cv_group_kmem" >&6; }
 +  KMEM_GROUP=$ac_cv_group_kmem
 +fi
 +if test "x$ac_save_LIBS" = x; then
 +  GETLOADAVG_LIBS=$LIBS
 +else
 +  GETLOADAVG_LIBS=`$as_echo "$LIBS" | sed "s|$ac_save_LIBS||"`
 +fi
 +LIBS=$ac_save_LIBS
  
 -  if test "${HAVE_X_SM}" = "yes"; then
  
 -$as_echo "#define HAVE_X_SM 1" >>confdefs.h
  
 -    case "$LIBS" in
 -      *-lSM*) ;;
 -      *)      LIBS="-lSM -lICE $LIBS" ;;
 -    esac
 -  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 +$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
 +if ${ac_cv_sys_largefile_source+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  while :; do
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <sys/types.h> /* for off_t */
 +     #include <stdio.h>
 +int
 +main ()
 +{
 +int (*fp) (FILE *, off_t, int) = fseeko;
 +     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_sys_largefile_source=no; break
  fi
 -
 -# If netdb.h doesn't declare h_errno, we must declare it by hand.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether netdb declares h_errno" >&5
 -$as_echo_n "checking whether netdb declares h_errno... " >&6; }
 -if test "${emacs_cv_netdb_declares_h_errno+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <netdb.h>
 +#define _LARGEFILE_SOURCE 1
 +#include <sys/types.h> /* for off_t */
 +     #include <stdio.h>
  int
  main ()
  {
 -return h_errno;
 +int (*fp) (FILE *, off_t, int) = fseeko;
 +     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  emacs_cv_netdb_declares_h_errno=yes
 -else
 -  emacs_cv_netdb_declares_h_errno=no
 +  ac_cv_sys_largefile_source=1; break
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
 +  ac_cv_sys_largefile_source=unknown
 +  break
 +done
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_netdb_declares_h_errno" >&5
 -$as_echo "$emacs_cv_netdb_declares_h_errno" >&6; }
 -if test $emacs_cv_netdb_declares_h_errno = yes; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
 +$as_echo "$ac_cv_sys_largefile_source" >&6; }
 +case $ac_cv_sys_largefile_source in #(
 +  no | unknown) ;;
 +  *)
 +cat >>confdefs.h <<_ACEOF
 +#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
 +_ACEOF
 +;;
 +esac
 +rm -rf conftest*
  
 -$as_echo "#define HAVE_H_ERRNO 1" >>confdefs.h
 +# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
 +# in glibc 2.1.3, but that breaks too many other things.
 +# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
 +if test $ac_cv_sys_largefile_source != unknown; then
 +
 +$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
  
  fi
  
 -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 -# for constant arguments.  Useless!
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
 -$as_echo_n "checking for working alloca.h... " >&6; }
 -if test "${ac_cv_working_alloca_h+set}" = set; then :
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5
 +$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; }
 +if ${ac_cv_func_getpgrp_void+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  # Use it with a single arg.
 +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <alloca.h>
 +$ac_includes_default
  int
  main ()
  {
 -char *p = (char *) alloca (2 * sizeof (int));
 -                        if (p) return 0;
 +getpgrp (0);
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_working_alloca_h=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_func_getpgrp_void=no
  else
 -  ac_cv_working_alloca_h=no
 +  ac_cv_func_getpgrp_void=yes
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
 -$as_echo "$ac_cv_working_alloca_h" >&6; }
 -if test $ac_cv_working_alloca_h = yes; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5
 +$as_echo "$ac_cv_func_getpgrp_void" >&6; }
 +if test $ac_cv_func_getpgrp_void = yes; then
  
 -$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
 +$as_echo "#define GETPGRP_VOID 1" >>confdefs.h
  
  fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
 -$as_echo_n "checking for alloca... " >&6; }
 -if test "${ac_cv_func_alloca_works+set}" = set; then :
 +
 +# Configure gnulib.
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +          LIBC_FATAL_STDERR_=1
 +  export LIBC_FATAL_STDERR_
 +
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strtold conforms to C99" >&5
 +$as_echo_n "checking whether strtold conforms to C99... " >&6; }
 +if ${gl_cv_func_c99_strtold+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#ifdef __GNUC__
 -# define alloca __builtin_alloca
 -#else
 -# ifdef _MSC_VER
 -#  include <malloc.h>
 -#  define alloca _alloca
 -# else
 -#  ifdef HAVE_ALLOCA_H
 -#   include <alloca.h>
 -#  else
 -#   ifdef _AIX
 - #pragma alloca
 -#   else
 -#    ifndef alloca /* predefined by HP cc +Olibcalls */
 -char *alloca ();
 -#    endif
 -#   endif
 -#  endif
 -# endif
 -#endif
 -
 +/* On HP-UX before 11.23, strtold returns a struct instead of
 +                long double.  Reject implementations like that, by requiring
 +                compatibility with the C99 prototype.  */
 +             #include <stdlib.h>
 +             static long double (*p) (char const *, char **) = strtold;
 +             static long double
 +             test (char const *nptr, char **endptr)
 +             {
 +               long double r;
 +               r = strtold (nptr, endptr);
 +               return r;
 +             }
  int
  main ()
  {
 -char *p = (char *) alloca (1);
 -                                  if (p) return 0;
 +return test ("1.0", NULL) != 1 || p ("1.0", NULL) != 1;
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_func_alloca_works=yes
 +  gl_cv_func_c99_strtold=yes
  else
 -  ac_cv_func_alloca_works=no
 +  gl_cv_func_c99_strtold=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
 -$as_echo "$ac_cv_func_alloca_works" >&6; }
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_c99_strtold" >&5
 +$as_echo "$gl_cv_func_c99_strtold" >&6; }
 +  if test $gl_cv_func_c99_strtold = yes; then
  
 -if test $ac_cv_func_alloca_works = yes; then
 +$as_echo "#define HAVE_C99_STRTOLD 1" >>confdefs.h
 +
 +  fi
  
 -$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
  
 +  GNULIB_CHOWN=0;
 +  GNULIB_CLOSE=0;
 +  GNULIB_DUP2=0;
 +  GNULIB_DUP3=0;
 +  GNULIB_ENVIRON=0;
 +  GNULIB_EUIDACCESS=0;
 +  GNULIB_FACCESSAT=0;
 +  GNULIB_FCHDIR=0;
 +  GNULIB_FCHOWNAT=0;
 +  GNULIB_FSYNC=0;
 +  GNULIB_FTRUNCATE=0;
 +  GNULIB_GETCWD=0;
 +  GNULIB_GETDOMAINNAME=0;
 +  GNULIB_GETDTABLESIZE=0;
 +  GNULIB_GETGROUPS=0;
 +  GNULIB_GETHOSTNAME=0;
 +  GNULIB_GETLOGIN=0;
 +  GNULIB_GETLOGIN_R=0;
 +  GNULIB_GETPAGESIZE=0;
 +  GNULIB_GETUSERSHELL=0;
 +  GNULIB_LCHOWN=0;
 +  GNULIB_LINK=0;
 +  GNULIB_LINKAT=0;
 +  GNULIB_LSEEK=0;
 +  GNULIB_PIPE=0;
 +  GNULIB_PIPE2=0;
 +  GNULIB_PREAD=0;
 +  GNULIB_PWRITE=0;
 +  GNULIB_READLINK=0;
 +  GNULIB_READLINKAT=0;
 +  GNULIB_RMDIR=0;
 +  GNULIB_SLEEP=0;
 +  GNULIB_SYMLINK=0;
 +  GNULIB_SYMLINKAT=0;
 +  GNULIB_TTYNAME_R=0;
 +  GNULIB_UNISTD_H_GETOPT=0;
 +  GNULIB_UNISTD_H_SIGPIPE=0;
 +  GNULIB_UNLINK=0;
 +  GNULIB_UNLINKAT=0;
 +  GNULIB_USLEEP=0;
 +  GNULIB_WRITE=0;
 +    HAVE_CHOWN=1;
 +  HAVE_DUP2=1;
 +  HAVE_DUP3=1;
 +  HAVE_EUIDACCESS=1;
 +  HAVE_FACCESSAT=1;
 +  HAVE_FCHDIR=1;
 +  HAVE_FCHOWNAT=1;
 +  HAVE_FSYNC=1;
 +  HAVE_FTRUNCATE=1;
 +  HAVE_GETDTABLESIZE=1;
 +  HAVE_GETGROUPS=1;
 +  HAVE_GETHOSTNAME=1;
 +  HAVE_GETLOGIN=1;
 +  HAVE_GETPAGESIZE=1;
 +  HAVE_LCHOWN=1;
 +  HAVE_LINK=1;
 +  HAVE_LINKAT=1;
 +  HAVE_PIPE=1;
 +  HAVE_PIPE2=1;
 +  HAVE_PREAD=1;
 +  HAVE_PWRITE=1;
 +  HAVE_READLINK=1;
 +  HAVE_READLINKAT=1;
 +  HAVE_SLEEP=1;
 +  HAVE_SYMLINK=1;
 +  HAVE_SYMLINKAT=1;
 +  HAVE_UNLINKAT=1;
 +  HAVE_USLEEP=1;
 +  HAVE_DECL_ENVIRON=1;
 +  HAVE_DECL_FCHDIR=1;
 +  HAVE_DECL_GETDOMAINNAME=1;
 +  HAVE_DECL_GETLOGIN_R=1;
 +  HAVE_DECL_GETPAGESIZE=1;
 +  HAVE_DECL_GETUSERSHELL=1;
 +  HAVE_DECL_TTYNAME_R=1;
 +  HAVE_OS_H=0;
 +  HAVE_SYS_PARAM_H=0;
 +  REPLACE_CHOWN=0;
 +  REPLACE_CLOSE=0;
 +  REPLACE_DUP=0;
 +  REPLACE_DUP2=0;
 +  REPLACE_FCHOWNAT=0;
 +  REPLACE_GETCWD=0;
 +  REPLACE_GETDOMAINNAME=0;
 +  REPLACE_GETLOGIN_R=0;
 +  REPLACE_GETGROUPS=0;
 +  REPLACE_GETPAGESIZE=0;
 +  REPLACE_LCHOWN=0;
 +  REPLACE_LINK=0;
 +  REPLACE_LINKAT=0;
 +  REPLACE_LSEEK=0;
 +  REPLACE_PREAD=0;
 +  REPLACE_PWRITE=0;
 +  REPLACE_READLINK=0;
 +  REPLACE_RMDIR=0;
 +  REPLACE_SLEEP=0;
 +  REPLACE_SYMLINK=0;
 +  REPLACE_TTYNAME_R=0;
 +  REPLACE_UNLINK=0;
 +  REPLACE_UNLINKAT=0;
 +  REPLACE_USLEEP=0;
 +  REPLACE_WRITE=0;
 +  UNISTD_H_HAVE_WINSOCK2_H=0;
 +  UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
 +
 +
 +
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
 +$as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
 +if ${gl_cv_have_include_next+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
 -  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
 -# that cause trouble.  Some versions do not even contain alloca or
 -# contain a buggy version.  If you still want to use their alloca,
 -# use ar to extract alloca.o from them instead of compiling alloca.c.
 +  rm -rf conftestd1a conftestd1b conftestd2
 +     mkdir conftestd1a conftestd1b conftestd2
 +                                                  cat <<EOF > conftestd1a/conftest.h
 +#define DEFINED_IN_CONFTESTD1
 +#include_next <conftest.h>
 +#ifdef DEFINED_IN_CONFTESTD2
 +int foo;
 +#else
 +#error "include_next doesn't work"
 +#endif
 +EOF
 +     cat <<EOF > conftestd1b/conftest.h
 +#define DEFINED_IN_CONFTESTD1
 +#include <stdio.h>
 +#include_next <conftest.h>
 +#ifdef DEFINED_IN_CONFTESTD2
 +int foo;
 +#else
 +#error "include_next doesn't work"
 +#endif
 +EOF
 +     cat <<EOF > conftestd2/conftest.h
 +#ifndef DEFINED_IN_CONFTESTD1
 +#error "include_next test doesn't work"
 +#endif
 +#define DEFINED_IN_CONFTESTD2
 +EOF
 +     gl_save_CPPFLAGS="$CPPFLAGS"
 +     CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
 +     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <conftest.h>
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_have_include_next=yes
 +else
 +  CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
 +        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <conftest.h>
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_have_include_next=buggy
 +else
 +  gl_cv_have_include_next=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  
 -ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +     CPPFLAGS="$gl_save_CPPFLAGS"
 +     rm -rf conftestd1a conftestd1b conftestd2
 +
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5
 +$as_echo "$gl_cv_have_include_next" >&6; }
 +  PRAGMA_SYSTEM_HEADER=
 +  if test $gl_cv_have_include_next = yes; then
 +    INCLUDE_NEXT=include_next
 +    INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
 +    if test -n "$GCC"; then
 +      PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
 +    fi
 +  else
 +    if test $gl_cv_have_include_next = buggy; then
 +      INCLUDE_NEXT=include
 +      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
 +    else
 +      INCLUDE_NEXT=include
 +      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
 +    fi
 +  fi
  
 -$as_echo "#define C_ALLOCA 1" >>confdefs.h
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
 -$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
 -if test "${ac_cv_os_cray+set}" = set; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
 +$as_echo_n "checking whether system header files limit the line length... " >&6; }
 +if ${gl_cv_pragma_columns+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#if defined CRAY && ! defined CRAY2
 -webecray
 -#else
 -wenotbecray
 +
 +#ifdef __TANDEM
 +choke me
  #endif
  
  _ACEOF
  if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "webecray" >/dev/null 2>&1; then :
 -  ac_cv_os_cray=yes
 +  $EGREP "choke me" >/dev/null 2>&1; then :
 +  gl_cv_pragma_columns=yes
  else
 -  ac_cv_os_cray=no
 +  gl_cv_pragma_columns=no
  fi
  rm -f conftest*
  
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
 -$as_echo "$ac_cv_os_cray" >&6; }
 -if test $ac_cv_os_cray = yes; then
 -  for ac_func in _getb67 GETB67 getb67; do
 -    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 -if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
 +$as_echo "$gl_cv_pragma_columns" >&6; }
 +  if test $gl_cv_pragma_columns = yes; then
 +    PRAGMA_COLUMNS="#pragma COLUMNS 10000"
 +  else
 +    PRAGMA_COLUMNS=
 +  fi
  
 -cat >>confdefs.h <<_ACEOF
 -#define CRAY_STACKSEG_END $ac_func
 -_ACEOF
  
 -    break
 -fi
  
 -  done
 -fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
 -$as_echo_n "checking stack direction for C alloca... " >&6; }
 -if test "${ac_cv_c_stack_direction+set}" = set; then :
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +     if test $gl_cv_have_include_next = yes; then
 +       gl_cv_next_getopt_h='<'getopt.h'>'
 +     else
 +       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
 +$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
 +if ${gl_cv_next_getopt_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  if test "$cross_compiling" = yes; then :
 -  ac_cv_c_stack_direction=0
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +             if test $ac_cv_header_getopt_h = yes; then
 +
 +
 +               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -$ac_includes_default
 -int
 -find_stack_direction ()
 -{
 -  static char *addr = 0;
 -  auto char dummy;
 -  if (addr == 0)
 -    {
 -      addr = &dummy;
 -      return find_stack_direction ();
 -    }
 -  else
 -    return (&dummy > addr) ? 1 : -1;
 -}
 +#include <getopt.h>
  
 -int
 -main ()
 -{
 -  return find_stack_direction () < 0;
 -}
  _ACEOF
 -if ac_fn_c_try_run "$LINENO"; then :
 -  ac_cv_c_stack_direction=1
 -else
 -  ac_cv_c_stack_direction=-1
 -fi
 -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 -  conftest.$ac_objext conftest.beam conftest.$ac_ext
 -fi
 +                                                                                                                        case "$host_os" in
 +                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
 +                 *)    gl_absname_cpp="$ac_cpp" ;;
 +               esac
 +                                                            gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
 +                  sed -n '\#/getopt.h#{
 +                    s#.*"\(.*/getopt.h\)".*#\1#
 +                    s#^/[^/]#//&#
 +                    p
 +                    q
 +                  }'`'"'
 +          else
 +               gl_cv_next_getopt_h='<'getopt.h'>'
 +             fi
 +
  
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
 -$as_echo "$ac_cv_c_stack_direction" >&6; }
 -cat >>confdefs.h <<_ACEOF
 -#define STACK_DIRECTION $ac_cv_c_stack_direction
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5
 +$as_echo "$gl_cv_next_getopt_h" >&6; }
 +     fi
 +     NEXT_GETOPT_H=$gl_cv_next_getopt_h
 +
 +     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
 +       gl_next_as_first_directive='<'getopt.h'>'
 +     else
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
 +       gl_next_as_first_directive=$gl_cv_next_getopt_h
 +     fi
 +     NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive
 +
 +
 +
 +
 +  if test $ac_cv_header_getopt_h = yes; then
 +    HAVE_GETOPT_H=1
 +  else
 +    HAVE_GETOPT_H=0
 +  fi
 +
 +
 +  gl_replace_getopt=
 +
 +    if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
 +    for ac_header in getopt.h
 +do :
 +  ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
 +if test "x$ac_cv_header_getopt_h" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_GETOPT_H 1
  _ACEOF
  
 +else
 +  gl_replace_getopt=yes
 +fi
 +
 +done
  
 -fi
 +  fi
  
 +    if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
 +    for ac_func in getopt_long_only
 +do :
 +  ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
 +if test "x$ac_cv_func_getopt_long_only" = xyes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_GETOPT_LONG_ONLY 1
 +_ACEOF
  
 -if test x"$ac_cv_func_alloca_works" != xyes; then
 -   as_fn_error $? "a system implementation of alloca is required " "$LINENO" 5
 +else
 +  gl_replace_getopt=yes
  fi
 +done
  
 -# fmod, logb, and frexp are found in -lm on most systems.
 -# On HPUX 9.01, -lm does not contain logb, so check for sqrt.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqrt in -lm" >&5
 -$as_echo_n "checking for sqrt in -lm... " >&6; }
 -if test "${ac_cv_lib_m_sqrt+set}" = set; then :
 +  fi
 +
 +                    if test -z "$gl_replace_getopt"; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
 +$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
 +if ${gl_cv_func_getopt_posix+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lm  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char sqrt ();
 +                                                                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <unistd.h>
  int
  main ()
  {
 -return sqrt ();
 +int *p = &optreset; return optreset;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_m_sqrt=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_optind_min=1
  else
 -  ac_cv_lib_m_sqrt=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sqrt" >&5
 -$as_echo "$ac_cv_lib_m_sqrt" >&6; }
 -if test "x$ac_cv_lib_m_sqrt" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBM 1
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <getopt.h>
 +int
 +main ()
 +{
 +return !getopt_clip;
 +  ;
 +  return 0;
 +}
  _ACEOF
 -
 -  LIBS="-lm $LIBS"
 -
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_optind_min=1
 +else
 +  gl_optind_min=0
  fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  
 +                gl_save_CPPFLAGS=$CPPFLAGS
 +        CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
 +        if test "$cross_compiling" = yes; then :
 +  case "$host_os" in
 +             mingw*)         gl_cv_func_getopt_posix="guessing no";;
 +             darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
 +             *)              gl_cv_func_getopt_posix="guessing yes";;
 +           esac
  
 -# Check for mail-locking functions in a "mail" library.  Probably this should
 -# have the same check as for liblockfile below.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for maillock in -lmail" >&5
 -$as_echo_n "checking for maillock in -lmail... " >&6; }
 -if test "${ac_cv_lib_mail_maillock+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lmail  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char maillock ();
 +#include <unistd.h>
 +#include <stdlib.h>
 +#include <string.h>
 +
  int
  main ()
  {
 -return maillock ();
 -  ;
 +  {
 +    int argc = 0;
 +    char *argv[10];
 +    int c;
 +
 +    argv[argc++] = "program";
 +    argv[argc++] = "-a";
 +    argv[argc++] = "foo";
 +    argv[argc++] = "bar";
 +    argv[argc] = NULL;
 +    optind = OPTIND_MIN;
 +    opterr = 0;
 +
 +    c = getopt (argc, argv, "ab");
 +    if (!(c == 'a'))
 +      return 1;
 +    c = getopt (argc, argv, "ab");
 +    if (!(c == -1))
 +      return 2;
 +    if (!(optind == 2))
 +      return 3;
 +  }
 +  /* Some internal state exists at this point.  */
 +  {
 +    int argc = 0;
 +    char *argv[10];
 +    int c;
 +
 +    argv[argc++] = "program";
 +    argv[argc++] = "donald";
 +    argv[argc++] = "-p";
 +    argv[argc++] = "billy";
 +    argv[argc++] = "duck";
 +    argv[argc++] = "-a";
 +    argv[argc++] = "bar";
 +    argv[argc] = NULL;
 +    optind = OPTIND_MIN;
 +    opterr = 0;
 +
 +    c = getopt (argc, argv, "+abp:q:");
 +    if (!(c == -1))
 +      return 4;
 +    if (!(strcmp (argv[0], "program") == 0))
 +      return 5;
 +    if (!(strcmp (argv[1], "donald") == 0))
 +      return 6;
 +    if (!(strcmp (argv[2], "-p") == 0))
 +      return 7;
 +    if (!(strcmp (argv[3], "billy") == 0))
 +      return 8;
 +    if (!(strcmp (argv[4], "duck") == 0))
 +      return 9;
 +    if (!(strcmp (argv[5], "-a") == 0))
 +      return 10;
 +    if (!(strcmp (argv[6], "bar") == 0))
 +      return 11;
 +    if (!(optind == 1))
 +      return 12;
 +  }
 +  /* Detect MacOS 10.5, AIX 7.1 bug.  */
 +  {
 +    char *argv[3] = { "program", "-ab", NULL };
 +    optind = OPTIND_MIN;
 +    opterr = 0;
 +    if (getopt (2, argv, "ab:") != 'a')
 +      return 13;
 +    if (getopt (2, argv, "ab:") != '?')
 +      return 14;
 +    if (optopt != 'b')
 +      return 15;
 +    if (optind != 2)
 +      return 16;
 +  }
 +
    return 0;
  }
 +
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_mail_maillock=yes
 +if ac_fn_c_try_run "$LINENO"; then :
 +  gl_cv_func_getopt_posix=yes
  else
 -  ac_cv_lib_mail_maillock=no
 +  gl_cv_func_getopt_posix=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mail_maillock" >&5
 -$as_echo "$ac_cv_lib_mail_maillock" >&6; }
 -if test "x$ac_cv_lib_mail_maillock" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBMAIL 1
 -_ACEOF
  
 -  LIBS="-lmail $LIBS"
 +        CPPFLAGS=$gl_save_CPPFLAGS
  
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5
 +$as_echo "$gl_cv_func_getopt_posix" >&6; }
 +    case "$gl_cv_func_getopt_posix" in
 +      *no) gl_replace_getopt=yes ;;
 +    esac
 +  fi
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for maillock in -llockfile" >&5
 -$as_echo_n "checking for maillock in -llockfile... " >&6; }
 -if test "${ac_cv_lib_lockfile_maillock+set}" = set; then :
 +  if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
 +$as_echo_n "checking for working GNU getopt function... " >&6; }
 +if ${gl_cv_func_getopt_gnu+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-llockfile  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
 +       # optstring is necessary for programs like m4 that have POSIX-mandated
 +       # semantics for supporting options interspersed with files.
 +       # Also, since getopt_long is a GNU extension, we require optind=0.
 +       # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
 +       # so take care to revert to the correct (non-)export state.
 +       gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
 +       case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
 +         xx) gl_had_POSIXLY_CORRECT=exported ;;
 +         x)  gl_had_POSIXLY_CORRECT=yes      ;;
 +         *)  gl_had_POSIXLY_CORRECT=         ;;
 +       esac
 +       POSIXLY_CORRECT=1
 +       export POSIXLY_CORRECT
 +       if test "$cross_compiling" = yes; then :
 +           case $host_os:$ac_cv_have_decl_optreset in
 +           *-gnu*:* | mingw*:*) gl_cv_func_getopt_gnu=no;;
 +           *:yes)               gl_cv_func_getopt_gnu=no;;
 +           *)                   gl_cv_func_getopt_gnu=yes;;
 +         esac
 +
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <getopt.h>
 +                           #include <stddef.h>
 +                           #include <string.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char maillock ();
  int
  main ()
  {
 -return maillock ();
 +
 +             int result = 0;
 +             /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw,
 +                and fails on MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5,
 +                OSF/1 5.1, Solaris 10.  */
 +             {
 +               char *myargv[3];
 +               myargv[0] = "conftest";
 +               myargv[1] = "-+";
 +               myargv[2] = 0;
 +               opterr = 0;
 +               if (getopt (2, myargv, "+a") != '?')
 +                 result |= 1;
 +             }
 +             /* This code succeeds on glibc 2.8, mingw,
 +                and fails on MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11,
 +                IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x.  */
 +             {
 +               char *argv[] = { "program", "-p", "foo", "bar", NULL };
 +
 +               optind = 1;
 +               if (getopt (4, argv, "p::") != 'p')
 +                 result |= 2;
 +               else if (optarg != NULL)
 +                 result |= 4;
 +               else if (getopt (4, argv, "p::") != -1)
 +                 result |= 6;
 +               else if (optind != 2)
 +                 result |= 8;
 +             }
 +             /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0.  */
 +             {
 +               char *argv[] = { "program", "foo", "-p", NULL };
 +               optind = 0;
 +               if (getopt (3, argv, "-p") != 1)
 +                 result |= 16;
 +               else if (getopt (3, argv, "-p") != 'p')
 +                 result |= 32;
 +             }
 +             /* This code fails on glibc 2.11.  */
 +             {
 +               char *argv[] = { "program", "-b", "-a", NULL };
 +               optind = opterr = 0;
 +               if (getopt (3, argv, "+:a:b") != 'b')
 +                 result |= 64;
 +               else if (getopt (3, argv, "+:a:b") != ':')
 +                 result |= 64;
 +             }
 +             return result;
 +
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_lockfile_maillock=yes
 +if ac_fn_c_try_run "$LINENO"; then :
 +  gl_cv_func_getopt_gnu=yes
  else
 -  ac_cv_lib_lockfile_maillock=no
 +  gl_cv_func_getopt_gnu=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lockfile_maillock" >&5
 -$as_echo "$ac_cv_lib_lockfile_maillock" >&6; }
 -if test "x$ac_cv_lib_lockfile_maillock" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBLOCKFILE 1
 -_ACEOF
  
 -  LIBS="-llockfile $LIBS"
 +       case $gl_had_POSIXLY_CORRECT in
 +         exported) ;;
 +         yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
 +         *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
 +       esac
  
  fi
 -
 -# If we have the shared liblockfile, assume we must use it for mail
 -# locking (e.g. Debian).  If we couldn't link against liblockfile
 -# (no liblockfile.a installed), ensure that we don't need to.
 -if test "$ac_cv_lib_lockfile_maillock" = no; then
 -      # Extract the first word of "liblockfile.so", so it can be a program name with args.
 -set dummy liblockfile.so; ac_word=$2
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 -$as_echo_n "checking for $ac_word... " >&6; }
 -if test "${ac_cv_prog_liblockfile+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test -n "$liblockfile"; then
 -  ac_cv_prog_liblockfile="$liblockfile" # Let the user override the test.
 -else
 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 -as_dummy="/usr/lib:/lib:/usr/local/lib:$LD_LIBRARY_PATH"
 -for as_dir in $as_dummy
 -do
 -  IFS=$as_save_IFS
 -  test -z "$as_dir" && as_dir=.
 -    for ac_exec_ext in '' $ac_executable_extensions; do
 -  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
 -    ac_cv_prog_liblockfile="yes"
 -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
 -    break 2
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5
 +$as_echo "$gl_cv_func_getopt_gnu" >&6; }
 +    if test "$gl_cv_func_getopt_gnu" = "no"; then
 +      gl_replace_getopt=yes
 +    fi
    fi
 -done
 -  done
 -IFS=$as_save_IFS
  
 -  test -z "$ac_cv_prog_liblockfile" && ac_cv_prog_liblockfile="no"
 -fi
 -fi
 -liblockfile=$ac_cv_prog_liblockfile
 -if test -n "$liblockfile"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $liblockfile" >&5
 -$as_echo "$liblockfile" >&6; }
 +ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default"
 +if test "x$ac_cv_have_decl_getenv" = xyes; then :
 +  ac_have_decl=1
  else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 -$as_echo "no" >&6; }
 +  ac_have_decl=0
  fi
  
 -
 -  if test $ac_cv_prog_liblockfile = yes; then
 -    as_fn_error $? "Shared liblockfile found but can't link against it.
 -This probably means that movemail could lose mail.
 -There may be a \`development' package to install containing liblockfile." "$LINENO" 5
 -  else :
 -  fi
 -fi
 -for ac_func in touchlock
 -do :
 -  ac_fn_c_check_func "$LINENO" "touchlock" "ac_cv_func_touchlock"
 -if test "x$ac_cv_func_touchlock" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_TOUCHLOCK 1
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_DECL_GETENV $ac_have_decl
  _ACEOF
  
 -fi
 -done
  
 -for ac_header in maillock.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "maillock.h" "ac_cv_header_maillock_h" "$ac_includes_default"
 -if test "x$ac_cv_header_maillock_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_MAILLOCK_H 1
 -_ACEOF
  
 -fi
  
 -done
  
  
 -for ac_func in gethostname getdomainname dup2 \
 -rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
 -random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
 -strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 -utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 -sendto recvfrom getsockopt setsockopt getsockname getpeername \
 -gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
 -memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
 -cfmakeraw cfsetspeed
 -do :
 -  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
 -if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 -_ACEOF
 +  if test -n "$gl_replace_getopt"; then :
 +
 +
 +
 +  GETOPT_H=getopt.h
 +
 +$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 +
 +
 +
 +    GNULIB_UNISTD_H_GETOPT=1
 +
 +
 +
 +
 +
 +
 +
 +
 +  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 +
  
 -fi
 -done
  
  
 -for ac_header in sys/un.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default"
 -if test "x$ac_cv_header_sys_un_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_SYS_UN_H 1
 -_ACEOF
  
 -fi
  
 -done
 +fi
  
  
  
 +  GNULIB_MKTIME=0;
 +  GNULIB_NANOSLEEP=0;
 +  GNULIB_STRPTIME=0;
 +  GNULIB_TIMEGM=0;
 +  GNULIB_TIME_R=0;
 +    HAVE_DECL_LOCALTIME_R=1;
 +  HAVE_NANOSLEEP=1;
 +  HAVE_STRPTIME=1;
 +  HAVE_TIMEGM=1;
 +        REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
 +  REPLACE_MKTIME=GNULIB_PORTCHECK;
 +  REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
 +  REPLACE_TIMEGM=GNULIB_PORTCHECK;
  
  
  
  
  
  
 -
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
 -$as_echo_n "checking for working mktime... " >&6; }
 -if test "${ac_cv_func_working_mktime+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test "$cross_compiling" = yes; then :
 -  ac_cv_func_working_mktime=no
 -else
 +    gl_cv_c_multiarch=no
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -/* Test program from Paul Eggert and Tony Leneis.  */
 -#ifdef TIME_WITH_SYS_TIME
 -# include <sys/time.h>
 -# include <time.h>
 -#else
 -# ifdef HAVE_SYS_TIME_H
 -#  include <sys/time.h>
 -# else
 -#  include <time.h>
 -# endif
 -#endif
 -
 -#include <limits.h>
 -#include <stdlib.h>
 -
 -#ifdef HAVE_UNISTD_H
 -# include <unistd.h>
 -#endif
 -
 -#ifndef HAVE_ALARM
 -# define alarm(X) /* empty */
 -#endif
 -
 -/* Work around redefinition to rpl_putenv by other config tests.  */
 -#undef putenv
 -
 -static time_t time_t_max;
 -static time_t time_t_min;
 -
 -/* Values we'll use to set the TZ environment variable.  */
 -static const char *tz_strings[] = {
 -  (const char *) 0, "TZ=GMT0", "TZ=JST-9",
 -  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
 -};
 -#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
 -
 -/* Return 0 if mktime fails to convert a date in the spring-forward gap.
 -   Based on a problem report from Andreas Jaeger.  */
 -static int
 -spring_forward_gap ()
 -{
 -  /* glibc (up to about 1998-10-07) failed this test. */
 -  struct tm tm;
 -
 -  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
 -     instead of "TZ=America/Vancouver" in order to detect the bug even
 -     on systems that don't support the Olson extension, or don't have the
 -     full zoneinfo tables installed.  */
 -  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
 +#ifndef __APPLE_CC__
 +         not a universal capable compiler
 +        #endif
 +        typedef int dummy;
  
 -  tm.tm_year = 98;
 -  tm.tm_mon = 3;
 -  tm.tm_mday = 5;
 -  tm.tm_hour = 2;
 -  tm.tm_min = 0;
 -  tm.tm_sec = 0;
 -  tm.tm_isdst = -1;
 -  return mktime (&tm) != (time_t) -1;
 -}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
  
 -static int
 -mktime_test1 (time_t now)
 -{
 -  struct tm *lt;
 -  return ! (lt = localtime (&now)) || mktime (lt) == now;
 -}
 +               arch=
 +     prev=
 +     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
 +       if test -n "$prev"; then
 +         case $word in
 +           i?86 | x86_64 | ppc | ppc64)
 +             if test -z "$arch" || test "$arch" = "$word"; then
 +               arch="$word"
 +             else
 +               gl_cv_c_multiarch=yes
 +             fi
 +             ;;
 +         esac
 +         prev=
 +       else
 +         if test "x$word" = "x-arch"; then
 +           prev=arch
 +         fi
 +       fi
 +     done
  
 -static int
 -mktime_test (time_t now)
 -{
 -  return (mktime_test1 (now)
 -        && mktime_test1 ((time_t) (time_t_max - now))
 -        && mktime_test1 ((time_t) (time_t_min + now)));
 -}
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  if test $gl_cv_c_multiarch = yes; then
 +    APPLE_UNIVERSAL_BUILD=1
 +  else
 +    APPLE_UNIVERSAL_BUILD=0
 +  fi
  
 -static int
 -irix_6_4_bug ()
 -{
 -  /* Based on code from Ariel Faigon.  */
 -  struct tm tm;
 -  tm.tm_year = 96;
 -  tm.tm_mon = 3;
 -  tm.tm_mday = 0;
 -  tm.tm_hour = 0;
 -  tm.tm_min = 0;
 -  tm.tm_sec = 0;
 -  tm.tm_isdst = -1;
 -  mktime (&tm);
 -  return tm.tm_mon == 2 && tm.tm_mday == 31;
 -}
  
 -static int
 -bigtime_test (int j)
 -{
 -  struct tm tm;
 -  time_t now;
 -  tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
 -  now = mktime (&tm);
 -  if (now != (time_t) -1)
 -    {
 -      struct tm *lt = localtime (&now);
 -      if (! (lt
 -           && lt->tm_year == tm.tm_year
 -           && lt->tm_mon == tm.tm_mon
 -           && lt->tm_mday == tm.tm_mday
 -           && lt->tm_hour == tm.tm_hour
 -           && lt->tm_min == tm.tm_min
 -           && lt->tm_sec == tm.tm_sec
 -           && lt->tm_yday == tm.tm_yday
 -           && lt->tm_wday == tm.tm_wday
 -           && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
 -                == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
 -      return 0;
 -    }
 -  return 1;
 -}
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 +$as_echo_n "checking for inline... " >&6; }
 +if ${ac_cv_c_inline+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_cv_c_inline=no
 +for ac_kw in inline __inline__ __inline; do
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifndef __cplusplus
 +typedef int foo_t;
 +static $ac_kw foo_t static_foo () {return 0; }
 +$ac_kw foo_t foo () {return 0; }
 +#endif
  
 -static int
 -year_2050_test ()
 -{
 -  /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
 -     ignoring leap seconds.  */
 -  unsigned long int answer = 2527315200UL;
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_inline=$ac_kw
 +fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  test "$ac_cv_c_inline" != no && break
 +done
  
 -  struct tm tm;
 -  time_t t;
 -  tm.tm_year = 2050 - 1900;
 -  tm.tm_mon = 2 - 1;
 -  tm.tm_mday = 1;
 -  tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
 -  tm.tm_isdst = -1;
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
 +$as_echo "$ac_cv_c_inline" >&6; }
  
 -  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
 -     instead of "TZ=America/Vancouver" in order to detect the bug even
 -     on systems that don't support the Olson extension, or don't have the
 -     full zoneinfo tables installed.  */
 -  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
 +case $ac_cv_c_inline in
 +  inline | yes) ;;
 +  *)
 +    case $ac_cv_c_inline in
 +      no) ac_val=;;
 +      *) ac_val=$ac_cv_c_inline;;
 +    esac
 +    cat >>confdefs.h <<_ACEOF
 +#ifndef __cplusplus
 +#define inline $ac_val
 +#endif
 +_ACEOF
 +    ;;
 +esac
  
 -  t = mktime (&tm);
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
 +$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
 +if ${ac_cv_header_stdbool_h+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
  
 -  /* Check that the result is either a failure, or close enough
 -     to the correct answer that we can assume the discrepancy is
 -     due to leap seconds.  */
 -  return (t == (time_t) -1
 -        || (0 < t && answer - 120 <= t && t <= answer + 120));
 -}
 +             #include <stdbool.h>
 +             #ifndef bool
 +              "error: bool is not defined"
 +             #endif
 +             #ifndef false
 +              "error: false is not defined"
 +             #endif
 +             #if false
 +              "error: false is not 0"
 +             #endif
 +             #ifndef true
 +              "error: true is not defined"
 +             #endif
 +             #if true != 1
 +              "error: true is not 1"
 +             #endif
 +             #ifndef __bool_true_false_are_defined
 +              "error: __bool_true_false_are_defined is not defined"
 +             #endif
 +
 +             struct s { _Bool s: 1; _Bool t; } s;
 +
 +             char a[true == 1 ? 1 : -1];
 +             char b[false == 0 ? 1 : -1];
 +             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
 +             char d[(bool) 0.5 == true ? 1 : -1];
 +             /* See body of main program for 'e'.  */
 +             char f[(_Bool) 0.0 == false ? 1 : -1];
 +             char g[true];
 +             char h[sizeof (_Bool)];
 +             char i[sizeof s.t];
 +             enum { j = false, k = true, l = false * true, m = true * 256 };
 +             /* The following fails for
 +                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
 +             _Bool n[m];
 +             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
 +             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
 +             /* Catch a bug in an HP-UX C compiler.  See
 +                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
 +                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
 +              */
 +             _Bool q = true;
 +             _Bool *pq = &q;
  
  int
  main ()
  {
 -  time_t t, delta;
 -  int i, j;
 -
 -  /* This test makes some buggy mktime implementations loop.
 -     Give up after 60 seconds; a mktime slower than that
 -     isn't worth using anyway.  */
 -  alarm (60);
  
 -  for (;;)
 -    {
 -      t = (time_t_max << 1) + 1;
 -      if (t <= time_t_max)
 -      break;
 -      time_t_max = t;
 -    }
 -  time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max;
 -
 -  delta = time_t_max / 997; /* a suitable prime number */
 -  for (i = 0; i < N_STRINGS; i++)
 -    {
 -      if (tz_strings[i])
 -      putenv ((char*) tz_strings[i]);
 -
 -      for (t = 0; t <= time_t_max - delta; t += delta)
 -      if (! mktime_test (t))
 -        return 1;
 -      if (! (mktime_test ((time_t) 1)
 -           && mktime_test ((time_t) (60 * 60))
 -           && mktime_test ((time_t) (60 * 60 * 24))))
 -      return 1;
 +             bool e = &s;
 +             *pq |= q;
 +             *pq |= ! q;
 +             /* Refer to every declared value, to avoid compiler optimizations.  */
 +             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
 +                     + !m + !n + !o + !p + !q + !pq);
  
 -      for (j = 1; ; j <<= 1)
 -      if (! bigtime_test (j))
 -        return 1;
 -      else if (INT_MAX / 2 < j)
 -        break;
 -      if (! bigtime_test (INT_MAX))
 -      return 1;
 -    }
 -  return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
 +  ;
 +  return 0;
  }
  _ACEOF
 -if ac_fn_c_try_run "$LINENO"; then :
 -  ac_cv_func_working_mktime=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_header_stdbool_h=yes
  else
 -  ac_cv_func_working_mktime=no
 -fi
 -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 -  conftest.$ac_objext conftest.beam conftest.$ac_ext
 -fi
 -
 +  ac_cv_header_stdbool_h=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5
 -$as_echo "$ac_cv_func_working_mktime" >&6; }
 -if test $ac_cv_func_working_mktime = no; then
 -  case " $LIBOBJS " in
 -  *" mktime.$ac_objext "* ) ;;
 -  *) LIBOBJS="$LIBOBJS mktime.$ac_objext"
 - ;;
 -esac
 -
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
 +$as_echo "$ac_cv_header_stdbool_h" >&6; }
 +   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
 +if test "x$ac_cv_type__Bool" = xyes; then :
  
 -if test "$ac_cv_func_working_mktime" = no; then
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE__BOOL 1
 +_ACEOF
  
 -$as_echo "#define BROKEN_MKTIME 1" >>confdefs.h
  
  fi
  
 -ac_have_func=no # yes means we've found a way to get the load average.
 -
 -# Make sure getloadavg.c is where it belongs, at configure-time.
 -test -f "$srcdir/$ac_config_libobj_dir/getloadavg.c" ||
 -  as_fn_error $? "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
 -
 -ac_save_LIBS=$LIBS
 +   if test $ac_cv_header_stdbool_h = yes; then
  
 -# Check for getloadavg, but be sure not to touch the cache variable.
 -(ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
 -if test "x$ac_cv_func_getloadavg" = x""yes; then :
 -  exit 0
 -else
 -  exit 1
 -fi
 -) && ac_have_func=yes
 +$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
  
 -# On HPUX9, an unprivileged user can get load averages through this function.
 -for ac_func in pstat_getdynamic
 -do :
 -  ac_fn_c_check_func "$LINENO" "pstat_getdynamic" "ac_cv_func_pstat_getdynamic"
 -if test "x$ac_cv_func_pstat_getdynamic" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_PSTAT_GETDYNAMIC 1
 -_ACEOF
 +   fi
  
 -fi
 -done
 +    REPLACE_NULL=0;
 +  HAVE_WCHAR_T=1;
 +  STDDEF_H='';
  
  
 -# Solaris has libkstat which does not require root.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kstat_open in -lkstat" >&5
 -$as_echo_n "checking for kstat_open in -lkstat... " >&6; }
 -if test "${ac_cv_lib_kstat_kstat_open+set}" = set; then :
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
 +$as_echo_n "checking for wchar_t... " >&6; }
 +if ${gt_cv_c_wchar_t+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lkstat  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char kstat_open ();
 +#include <stddef.h>
 +            wchar_t foo = (wchar_t)'\0';
  int
  main ()
  {
 -return kstat_open ();
 +
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_kstat_kstat_open=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gt_cv_c_wchar_t=yes
  else
 -  ac_cv_lib_kstat_kstat_open=no
 +  gt_cv_c_wchar_t=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kstat_kstat_open" >&5
 -$as_echo "$ac_cv_lib_kstat_kstat_open" >&6; }
 -if test "x$ac_cv_lib_kstat_kstat_open" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBKSTAT 1
 -_ACEOF
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
 +$as_echo "$gt_cv_c_wchar_t" >&6; }
 +  if test $gt_cv_c_wchar_t = yes; then
  
 -  LIBS="-lkstat $LIBS"
 +$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
 +
 +  fi
 +
 +
 + ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
 +"
 +if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
 +
 +$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
  
  fi
  
 -test $ac_cv_lib_kstat_kstat_open = yes && ac_have_func=yes
  
 -# Some systems with -lutil have (and need) -lkvm as well, some do not.
 -# On Solaris, -lkvm requires nlist from -lelf, so check that first
 -# to get the right answer into the cache.
 -# For kstat on solaris, we need libelf to force the definition of SVR4 below.
 -if test $ac_have_func = no; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for elf_begin in -lelf" >&5
 -$as_echo_n "checking for elf_begin in -lelf... " >&6; }
 -if test "${ac_cv_lib_elf_elf_begin+set}" = set; then :
 +
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
 +$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
 +if ${ac_cv_c_restrict+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lelf  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  ac_cv_c_restrict=no
 +   # The order here caters to the fact that C++ does not require restrict.
 +   for ac_kw in __restrict __restrict__ _Restrict restrict; do
 +     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char elf_begin ();
 +typedef int * int_ptr;
 +      int foo (int_ptr $ac_kw ip) {
 +      return ip[0];
 +       }
  int
  main ()
  {
 -return elf_begin ();
 +int s[1];
 +      int * $ac_kw t = s;
 +      t[0] = 0;
 +      return foo(t)
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_elf_elf_begin=yes
 -else
 -  ac_cv_lib_elf_elf_begin=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_elf_elf_begin" >&5
 -$as_echo "$ac_cv_lib_elf_elf_begin" >&6; }
 -if test "x$ac_cv_lib_elf_elf_begin" = x""yes; then :
 -  LIBS="-lelf $LIBS"
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_restrict=$ac_kw
  fi
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +     test "$ac_cv_c_restrict" != no && break
 +   done
  
  fi
 -if test $ac_have_func = no; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kvm_open in -lkvm" >&5
 -$as_echo_n "checking for kvm_open in -lkvm... " >&6; }
 -if test "${ac_cv_lib_kvm_kvm_open+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
 +$as_echo "$ac_cv_c_restrict" >&6; }
 +
 + case $ac_cv_c_restrict in
 +   restrict) ;;
 +   no) $as_echo "#define restrict /**/" >>confdefs.h
 + ;;
 +   *)  cat >>confdefs.h <<_ACEOF
 +#define restrict $ac_cv_c_restrict
 +_ACEOF
 + ;;
 + esac
 +
 +
 +
 +
 +
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
 +$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
 +if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lkvm  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <time.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char kvm_open ();
  int
  main ()
  {
 -return kvm_open ();
 +static struct timespec x; x.tv_sec = x.tv_nsec;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_kvm_kvm_open=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_sys_struct_timespec_in_time_h=yes
  else
 -  ac_cv_lib_kvm_kvm_open=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +  gl_cv_sys_struct_timespec_in_time_h=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_kvm_kvm_open" >&5
 -$as_echo "$ac_cv_lib_kvm_kvm_open" >&6; }
 -if test "x$ac_cv_lib_kvm_kvm_open" = x""yes; then :
 -  LIBS="-lkvm $LIBS"
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5
 +$as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; }
  
 -  # Check for the 4.4BSD definition of getloadavg.
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lutil" >&5
 -$as_echo_n "checking for getloadavg in -lutil... " >&6; }
 -if test "${ac_cv_lib_util_getloadavg+set}" = set; then :
 +  TIME_H_DEFINES_STRUCT_TIMESPEC=0
 +  SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
 +  PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
 +  if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
 +    TIME_H_DEFINES_STRUCT_TIMESPEC=1
 +  else
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
 +$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
 +if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lutil  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <sys/time.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char getloadavg ();
  int
  main ()
  {
 -return getloadavg ();
 +static struct timespec x; x.tv_sec = x.tv_nsec;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_util_getloadavg=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_sys_struct_timespec_in_sys_time_h=yes
  else
 -  ac_cv_lib_util_getloadavg=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_getloadavg" >&5
 -$as_echo "$ac_cv_lib_util_getloadavg" >&6; }
 -if test "x$ac_cv_lib_util_getloadavg" = x""yes; then :
 -  LIBS="-lutil $LIBS" ac_have_func=yes ac_cv_func_getloadavg_setgid=yes
 +  gl_cv_sys_struct_timespec_in_sys_time_h=no
  fi
 -
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -
 -if test $ac_have_func = no; then
 -  # There is a commonly available library for RS/6000 AIX.
 -  # Since it is not a standard part of AIX, it might be installed locally.
 -  ac_getloadavg_LIBS=$LIBS
 -  LIBS="-L/usr/local/lib $LIBS"
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getloadavg in -lgetloadavg" >&5
 -$as_echo_n "checking for getloadavg in -lgetloadavg... " >&6; }
 -if test "${ac_cv_lib_getloadavg_getloadavg+set}" = set; then :
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5
 +$as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
 +    if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
 +      SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
 +$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
 +if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lgetloadavg  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <pthread.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char getloadavg ();
  int
  main ()
  {
 -return getloadavg ();
 +static struct timespec x; x.tv_sec = x.tv_nsec;
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_getloadavg_getloadavg=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_sys_struct_timespec_in_pthread_h=yes
  else
 -  ac_cv_lib_getloadavg_getloadavg=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +  gl_cv_sys_struct_timespec_in_pthread_h=no
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_getloadavg_getloadavg" >&5
 -$as_echo "$ac_cv_lib_getloadavg_getloadavg" >&6; }
 -if test "x$ac_cv_lib_getloadavg_getloadavg" = x""yes; then :
 -  LIBS="-lgetloadavg $LIBS"
 -else
 -  LIBS=$ac_getloadavg_LIBS
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
 +$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
 +      if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
 +        PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
 +      fi
 +    fi
 +  fi
  
 -fi
  
 -# Make sure it is really in the library, if we think we found it,
 -# otherwise set up the replacement function.
 -for ac_func in getloadavg
 -do :
 -  ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
 -if test "x$ac_cv_func_getloadavg" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GETLOADAVG 1
 -_ACEOF
  
 -else
 -  case " $LIBOBJS " in
 -  *" getloadavg.$ac_objext "* ) ;;
 -  *) LIBOBJS="$LIBOBJS getloadavg.$ac_objext"
 - ;;
 -esac
  
  
 -$as_echo "#define C_GETLOADAVG 1" >>confdefs.h
  
 -# Figure out what our getloadavg.c needs.
 -ac_have_func=no
 -ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default"
 -if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then :
 -  ac_have_func=yes
  
 -$as_echo "#define DGUX 1" >>confdefs.h
  
 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dg_sys_info in -ldgc" >&5
 -$as_echo_n "checking for dg_sys_info in -ldgc... " >&6; }
 -if test "${ac_cv_lib_dgc_dg_sys_info+set}" = set; then :
 +
 +
 +
 +
 +
 +
 +
 +     if test $gl_cv_have_include_next = yes; then
 +       gl_cv_next_time_h='<'time.h'>'
 +     else
 +       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
 +$as_echo_n "checking absolute name of <time.h>... " >&6; }
 +if ${gl_cv_next_time_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-ldgc  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <time.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char dg_sys_info ();
 -int
 -main ()
 -{
 -return dg_sys_info ();
 -  ;
 -  return 0;
 -}
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_dgc_dg_sys_info=yes
 -else
 -  ac_cv_lib_dgc_dg_sys_info=no
 +                                                                                                                        case "$host_os" in
 +                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
 +                 *)    gl_absname_cpp="$ac_cpp" ;;
 +               esac
 +                                                            gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
 +                  sed -n '\#/time.h#{
 +                    s#.*"\(.*/time.h\)".*#\1#
 +                    s#^/[^/]#//&#
 +                    p
 +                    q
 +                  }'`'"'
 +
 +
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5
 +$as_echo "$gl_cv_next_time_h" >&6; }
 +     fi
 +     NEXT_TIME_H=$gl_cv_next_time_h
 +
 +     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
 +       gl_next_as_first_directive='<'time.h'>'
 +     else
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
 +       gl_next_as_first_directive=$gl_cv_next_time_h
 +     fi
 +     NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive
 +
 +
 +
 +
 +
 +
 +ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default"
 +if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
 +  ac_have_decl=1
 +else
 +  ac_have_decl=0
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dgc_dg_sys_info" >&5
 -$as_echo "$ac_cv_lib_dgc_dg_sys_info" >&6; }
 -if test "x$ac_cv_lib_dgc_dg_sys_info" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBDGC 1
 +
 +cat >>confdefs.h <<_ACEOF
 +#define HAVE_DECL_LOCALTIME_R $ac_have_decl
  _ACEOF
  
 -  LIBS="-ldgc $LIBS"
  
 -fi
  
 +
 +   if false; then
 +  GL_COND_LIBTOOL_TRUE=
 +  GL_COND_LIBTOOL_FALSE='#'
 +else
 +  GL_COND_LIBTOOL_TRUE='#'
 +  GL_COND_LIBTOOL_FALSE=
  fi
  
 +  gl_cond_libtool=false
 +  gl_libdeps=
 +  gl_ltlibdeps=
 +  gl_m4_base='m4'
  
  
 -ac_fn_c_check_header_mongrel "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
 -if test "x$ac_cv_header_locale_h" = x""yes; then :
  
 -fi
  
  
 -for ac_func in setlocale
 -do :
 -  ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
 -if test "x$ac_cv_func_setlocale" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_SETLOCALE 1
 -_ACEOF
  
 -fi
 -done
  
  
 -# We cannot check for <dwarf.h>, because Solaris 2 does not use dwarf (it
 -# uses stabs), but it is still SVR4.  We cannot check for <elf.h> because
 -# Irix 4.0.5F has the header but not the library.
 -if test $ac_have_func = no && test "$ac_cv_lib_elf_elf_begin" = yes; then
 -  ac_have_func=yes
  
 -$as_echo "#define SVR4 1" >>confdefs.h
 +  gl_source_base='lib'
 +  # Code from module arg-nonnull:
 +  # Code from module c++defs:
 +  # Code from module dtoastr:
 +
 +  # Code from module extensions:
 +  # Code from module getopt-gnu:
 +
 +
 +
 +
 +
 +
 +  # Code from module getopt-posix:
 +
 +
 +
 +
 +
 +  if test -n "$gl_replace_getopt"; then :
 +
 +
 +
 +  GETOPT_H=getopt.h
 +
 +$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 +
 +
 +
 +    GNULIB_UNISTD_H_GETOPT=1
 +
  
 -fi
  
 -if test $ac_have_func = no; then
 -  ac_fn_c_check_header_mongrel "$LINENO" "inq_stats/cpustats.h" "ac_cv_header_inq_stats_cpustats_h" "$ac_includes_default"
 -if test "x$ac_cv_header_inq_stats_cpustats_h" = x""yes; then :
 -  ac_have_func=yes
  
 -$as_echo "#define UMAX 1" >>confdefs.h
  
  
 -$as_echo "#define UMAX4_3 1" >>confdefs.h
  
 -fi
  
 +  gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
  
 -fi
  
 -if test $ac_have_func = no; then
 -  ac_fn_c_check_header_mongrel "$LINENO" "sys/cpustats.h" "ac_cv_header_sys_cpustats_h" "$ac_includes_default"
 -if test "x$ac_cv_header_sys_cpustats_h" = x""yes; then :
 -  ac_have_func=yes; $as_echo "#define UMAX 1" >>confdefs.h
  
 -fi
  
  
 -fi
  
 -if test $ac_have_func = no; then
 -  for ac_header in mach/mach.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "mach/mach.h" "ac_cv_header_mach_mach_h" "$ac_includes_default"
 -if test "x$ac_cv_header_mach_mach_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_MACH_MACH_H 1
 -_ACEOF
  
 -fi
  
 -done
  
 -fi
 +  gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
 +
  
 -for ac_header in nlist.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "nlist.h" "ac_cv_header_nlist_h" "$ac_includes_default"
 -if test "x$ac_cv_header_nlist_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_NLIST_H 1
 -_ACEOF
 - ac_fn_c_check_member "$LINENO" "struct nlist" "n_un.n_name" "ac_cv_member_struct_nlist_n_un_n_name" "#include <nlist.h>
 -"
 -if test "x$ac_cv_member_struct_nlist_n_un_n_name" = x""yes; then :
  
 -cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRUCT_NLIST_N_UN_N_NAME 1
 -_ACEOF
  
  
 -$as_echo "#define NLIST_NAME_UNION 1" >>confdefs.h
  
  fi
  
  
 -fi
 +  # Code from module gettext-h:
  
 -done
  
 -fi
 -done
 +  # Code from module include_next:
 +  # Code from module intprops:
 +  # Code from module mktime:
  
  
 -# Some definitions of getloadavg require that the program be installed setgid.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getloadavg requires setgid" >&5
 -$as_echo_n "checking whether getloadavg requires setgid... " >&6; }
 -if test "${ac_cv_func_getloadavg_setgid+set}" = set; then :
 +
 +
 +
 +if test $APPLE_UNIVERSAL_BUILD = 1; then
 +  # A universal build on Apple MacOS X platforms.
 +  # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
 +  # But we need a configuration result that is valid in both modes.
 +  ac_cv_func_working_mktime=no
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
 +$as_echo_n "checking for working mktime... " >&6; }
 +if ${ac_cv_func_working_mktime+:} false; then :
    $as_echo_n "(cached) " >&6
 +else
 +  if test "$cross_compiling" = yes; then :
 +  ac_cv_func_working_mktime=no
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
 -#ifdef LDAV_PRIVILEGED
 -Yowza Am I SETGID yet
 +/* Test program from Paul Eggert and Tony Leneis.  */
 +#include <limits.h>
 +#include <stdlib.h>
 +#include <time.h>
 +
 +#ifdef HAVE_UNISTD_H
 +# include <unistd.h>
  #endif
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "Yowza Am I SETGID yet" >/dev/null 2>&1; then :
 -  ac_cv_func_getloadavg_setgid=yes
 -else
 -  ac_cv_func_getloadavg_setgid=no
 -fi
 -rm -f conftest*
  
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getloadavg_setgid" >&5
 -$as_echo "$ac_cv_func_getloadavg_setgid" >&6; }
 -if test $ac_cv_func_getloadavg_setgid = yes; then
 -  NEED_SETGID=true
 +#ifndef HAVE_ALARM
 +# define alarm(X) /* empty */
 +#endif
  
 -$as_echo "#define GETLOADAVG_PRIVILEGED 1" >>confdefs.h
 +/* Work around redefinition to rpl_putenv by other config tests.  */
 +#undef putenv
  
 -else
 -  NEED_SETGID=false
 -fi
 +static time_t time_t_max;
 +static time_t time_t_min;
  
 -if test $ac_cv_func_getloadavg_setgid = yes; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking group of /dev/kmem" >&5
 -$as_echo_n "checking group of /dev/kmem... " >&6; }
 -if test "${ac_cv_group_kmem+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -   # On Solaris, /dev/kmem is a symlink.  Get info on the real file.
 -  ac_ls_output=`ls -lgL /dev/kmem 2>/dev/null`
 -  # If we got an error (system does not support symlinks), try without -L.
 -  test -z "$ac_ls_output" && ac_ls_output=`ls -lg /dev/kmem`
 -  ac_cv_group_kmem=`$as_echo "$ac_ls_output" \
 -    | sed -ne 's/[     ][      ]*/ /g;
 -             s/^.[sSrwx-]* *[0-9]* *\([^0-9]*\)  *.*/\1/;
 -             / /s/.* //;p;'`
 +/* Values we'll use to set the TZ environment variable.  */
 +static char *tz_strings[] = {
 +  (char *) 0, "TZ=GMT0", "TZ=JST-9",
 +  "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
 +};
 +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
  
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_group_kmem" >&5
 -$as_echo "$ac_cv_group_kmem" >&6; }
 -  KMEM_GROUP=$ac_cv_group_kmem
 -fi
 -if test "x$ac_save_LIBS" = x; then
 -  GETLOADAVG_LIBS=$LIBS
 -else
 -  GETLOADAVG_LIBS=`$as_echo "$LIBS" | sed "s|$ac_save_LIBS||"`
 -fi
 -LIBS=$ac_save_LIBS
 +/* Return 0 if mktime fails to convert a date in the spring-forward gap.
 +   Based on a problem report from Andreas Jaeger.  */
 +static int
 +spring_forward_gap ()
 +{
 +  /* glibc (up to about 1998-10-07) failed this test. */
 +  struct tm tm;
 +
 +  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
 +     instead of "TZ=America/Vancouver" in order to detect the bug even
 +     on systems that don't support the Olson extension, or don't have the
 +     full zoneinfo tables installed.  */
 +  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
  
 +  tm.tm_year = 98;
 +  tm.tm_mon = 3;
 +  tm.tm_mday = 5;
 +  tm.tm_hour = 2;
 +  tm.tm_min = 0;
 +  tm.tm_sec = 0;
 +  tm.tm_isdst = -1;
 +  return mktime (&tm) != (time_t) -1;
 +}
  
 +static int
 +mktime_test1 (time_t now)
 +{
 +  struct tm *lt;
 +  return ! (lt = localtime (&now)) || mktime (lt) == now;
 +}
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 -$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
 -if test "${ac_cv_sys_largefile_source+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  while :; do
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#include <sys/types.h> /* for off_t */
 -     #include <stdio.h>
 -int
 -main ()
 +static int
 +mktime_test (time_t now)
  {
 -int (*fp) (FILE *, off_t, int) = fseeko;
 -     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
 -  ;
 -  return 0;
 +  return (mktime_test1 (now)
 +          && mktime_test1 ((time_t) (time_t_max - now))
 +          && mktime_test1 ((time_t) (time_t_min + now)));
  }
 -_ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_sys_largefile_source=no; break
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -#define _LARGEFILE_SOURCE 1
 -#include <sys/types.h> /* for off_t */
 -     #include <stdio.h>
 +
 +static int
 +irix_6_4_bug ()
 +{
 +  /* Based on code from Ariel Faigon.  */
 +  struct tm tm;
 +  tm.tm_year = 96;
 +  tm.tm_mon = 3;
 +  tm.tm_mday = 0;
 +  tm.tm_hour = 0;
 +  tm.tm_min = 0;
 +  tm.tm_sec = 0;
 +  tm.tm_isdst = -1;
 +  mktime (&tm);
 +  return tm.tm_mon == 2 && tm.tm_mday == 31;
 +}
 +
 +static int
 +bigtime_test (int j)
 +{
 +  struct tm tm;
 +  time_t now;
 +  tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
 +  now = mktime (&tm);
 +  if (now != (time_t) -1)
 +    {
 +      struct tm *lt = localtime (&now);
 +      if (! (lt
 +             && lt->tm_year == tm.tm_year
 +             && lt->tm_mon == tm.tm_mon
 +             && lt->tm_mday == tm.tm_mday
 +             && lt->tm_hour == tm.tm_hour
 +             && lt->tm_min == tm.tm_min
 +             && lt->tm_sec == tm.tm_sec
 +             && lt->tm_yday == tm.tm_yday
 +             && lt->tm_wday == tm.tm_wday
 +             && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
 +                  == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
 +        return 0;
 +    }
 +  return 1;
 +}
 +
 +static int
 +year_2050_test ()
 +{
 +  /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
 +     ignoring leap seconds.  */
 +  unsigned long int answer = 2527315200UL;
 +
 +  struct tm tm;
 +  time_t t;
 +  tm.tm_year = 2050 - 1900;
 +  tm.tm_mon = 2 - 1;
 +  tm.tm_mday = 1;
 +  tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
 +  tm.tm_isdst = -1;
 +
 +  /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
 +     instead of "TZ=America/Vancouver" in order to detect the bug even
 +     on systems that don't support the Olson extension, or don't have the
 +     full zoneinfo tables installed.  */
 +  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
 +
 +  t = mktime (&tm);
 +
 +  /* Check that the result is either a failure, or close enough
 +     to the correct answer that we can assume the discrepancy is
 +     due to leap seconds.  */
 +  return (t == (time_t) -1
 +          || (0 < t && answer - 120 <= t && t <= answer + 120));
 +}
 +
  int
  main ()
  {
 -int (*fp) (FILE *, off_t, int) = fseeko;
 -     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
 -  ;
 -  return 0;
 +  int result = 0;
 +  time_t t, delta;
 +  int i, j;
 +  int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
 +  int time_t_signed = ! ((time_t) 0 < (time_t) -1);
 +
 +  /* This test makes some buggy mktime implementations loop.
 +     Give up after 60 seconds; a mktime slower than that
 +     isn't worth using anyway.  */
 +  alarm (60);
 +
 +  time_t_max = (! time_t_signed
 +                ? (time_t) -1
 +                : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
 +                   * 2 + 1));
 +  time_t_min = (! time_t_signed
 +                ? (time_t) 0
 +                : time_t_signed_magnitude
 +                ? ~ (time_t) 0
 +                : ~ time_t_max);
 +
 +  delta = time_t_max / 997; /* a suitable prime number */
 +  for (i = 0; i < N_STRINGS; i++)
 +    {
 +      if (tz_strings[i])
 +        putenv (tz_strings[i]);
 +
 +      for (t = 0; t <= time_t_max - delta; t += delta)
 +        if (! mktime_test (t))
 +          result |= 1;
 +      if (! (mktime_test ((time_t) 1)
 +             && mktime_test ((time_t) (60 * 60))
 +             && mktime_test ((time_t) (60 * 60 * 24))))
 +        result |= 2;
 +
 +      for (j = 1; ; j <<= 1)
 +        if (! bigtime_test (j))
 +          result |= 4;
 +        else if (INT_MAX / 2 < j)
 +          break;
 +      if (! bigtime_test (INT_MAX))
 +        result |= 8;
 +    }
 +  if (! irix_6_4_bug ())
 +    result |= 16;
 +  if (! spring_forward_gap ())
 +    result |= 32;
 +  if (! year_2050_test ())
 +    result |= 64;
 +  return result;
  }
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_sys_largefile_source=1; break
 +if ac_fn_c_try_run "$LINENO"; then :
 +  ac_cv_func_working_mktime=yes
 +else
 +  ac_cv_func_working_mktime=no
  fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -  ac_cv_sys_largefile_source=unknown
 -  break
 -done
 +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 +  conftest.$ac_objext conftest.beam conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
 -$as_echo "$ac_cv_sys_largefile_source" >&6; }
 -case $ac_cv_sys_largefile_source in #(
 -  no | unknown) ;;
 -  *)
 -cat >>confdefs.h <<_ACEOF
 -#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
 -_ACEOF
 -;;
 -esac
 -rm -rf conftest*
  
 -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
 -# in glibc 2.1.3, but that breaks too many other things.
 -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
 -if test $ac_cv_sys_largefile_source != unknown; then
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_working_mktime" >&5
 +$as_echo "$ac_cv_func_working_mktime" >&6; }
 +if test $ac_cv_func_working_mktime = no; then
  
 -$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
  
 -fi
  
  
 -# Configure getopt.
 -# getopt.m4 serial 10
  
 -# The getopt module assume you want GNU getopt, with getopt_long etc,
 -# rather than vanilla POSIX getopt.  This means your your code should
 -# always include <getopt.h> for the getopt prototypes.
  
  
  
 +  gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
  
 +fi
  
 +    if test $ac_cv_func_working_mktime = no; then
 +    REPLACE_MKTIME=1
  
  
  
 +  else
 +    REPLACE_MKTIME=0
 +  fi
  
  
  
 -# Prerequisites of lib/getopt*.
  
 +  GNULIB_MKTIME=1
  
  
  
 -  GETOPT_H=
 -  for ac_header in getopt.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
 -if test "x$ac_cv_header_getopt_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GETOPT_H 1
 -_ACEOF
 +  # Code from module multiarch:
  
 -else
 -  GETOPT_H=getopt.h
 -fi
 +  # Code from module stdbool:
  
 -done
  
 -  if test -z "$GETOPT_H"; then
 -    for ac_func in getopt_long_only
 -do :
 -  ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
 -if test "x$ac_cv_func_getopt_long_only" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_GETOPT_LONG_ONLY 1
 -_ACEOF
  
 -else
 -  GETOPT_H=getopt.h
 -fi
 -done
 +  # Define two additional variables used in the Makefile substitution.
  
 +  if test "$ac_cv_header_stdbool_h" = yes; then
 +    STDBOOL_H=''
 +  else
 +    STDBOOL_H='stdbool.h'
    fi
  
 -      if test -z "$GETOPT_H"; then
 -    ac_fn_c_check_decl "$LINENO" "optreset" "ac_cv_have_decl_optreset" "#include <getopt.h>
 -"
 -if test "x$ac_cv_have_decl_optreset" = x""yes; then :
 -  GETOPT_H=getopt.h
 -fi
  
 +  if test "$ac_cv_type__Bool" = yes; then
 +    HAVE__BOOL=1
 +  else
 +    HAVE__BOOL=0
    fi
  
 -      if test -z "$GETOPT_H"; then
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
 -$as_echo_n "checking for working GNU getopt function... " >&6; }
 -if test "${gl_cv_func_gnu_getopt+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  if test "$cross_compiling" = yes; then :
 -                       ac_fn_c_check_decl "$LINENO" "getopt_clip" "ac_cv_have_decl_getopt_clip" "#include <getopt.h>
 -"
 -if test "x$ac_cv_have_decl_getopt_clip" = x""yes; then :
 -  gl_cv_func_gnu_getopt=no
 -else
 -  gl_cv_func_gnu_getopt=yes
 -fi
  
 +  # Code from module stddef:
 +
 +
 +
 +  if test $gt_cv_c_wchar_t = no; then
 +    HAVE_WCHAR_T=0
 +    STDDEF_H=stddef.h
 +  fi
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
 +$as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; }
 +if ${gl_cv_decl_null_works+:} false; then :
 +  $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <getopt.h>
 +#include <stddef.h>
 +      int test[2 * (sizeof NULL == sizeof (void *)) -1];
 +
  int
  main ()
  {
  
 -           char *myargv[3];
 -           myargv[0] = "conftest";
 -           myargv[1] = "-+";
 -           myargv[2] = 0;
 -           return getopt (2, myargv, "+a") != '?';
 -
    ;
    return 0;
  }
  _ACEOF
 -if ac_fn_c_try_run "$LINENO"; then :
 -  gl_cv_func_gnu_getopt=yes
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  gl_cv_decl_null_works=yes
  else
 -  gl_cv_func_gnu_getopt=no
 +  gl_cv_decl_null_works=no
  fi
 -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 -  conftest.$ac_objext conftest.beam conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5
 +$as_echo "$gl_cv_decl_null_works" >&6; }
 +  if test $gl_cv_decl_null_works = no; then
 +    REPLACE_NULL=1
 +    STDDEF_H=stddef.h
 +  fi
 +  if test -n "$STDDEF_H"; then
 +
 +
 +
 +
 +
 +
 +
 +
 +     if test $gl_cv_have_include_next = yes; then
 +       gl_cv_next_stddef_h='<'stddef.h'>'
 +     else
 +       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
 +$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
 +if ${gl_cv_next_stddef_h+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +
 +               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <stddef.h>
 +
 +_ACEOF
 +                                                                                                                        case "$host_os" in
 +                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
 +                 *)    gl_absname_cpp="$ac_cpp" ;;
 +               esac
 +                                                            gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
 +                  sed -n '\#/stddef.h#{
 +                    s#.*"\(.*/stddef.h\)".*#\1#
 +                    s#^/[^/]#//&#
 +                    p
 +                    q
 +                  }'`'"'
 +
  
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gnu_getopt" >&5
 -$as_echo "$gl_cv_func_gnu_getopt" >&6; }
 -    if test "$gl_cv_func_gnu_getopt" = "no"; then
 -      GETOPT_H=getopt.h
 -    fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5
 +$as_echo "$gl_cv_next_stddef_h" >&6; }
 +     fi
 +     NEXT_STDDEF_H=$gl_cv_next_stddef_h
 +
 +     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
 +       gl_next_as_first_directive='<'stddef.h'>'
 +     else
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
 +       gl_next_as_first_directive=$gl_cv_next_stddef_h
 +     fi
 +     NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive
 +
 +
 +
 +
    fi
  
 +  # Code from module strftime:
  
  
 -  if test -n "$GETOPT_H"; then :
  
  
 -  GETOPT_H=getopt.h
  
 -$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
  
  
  
 -  :
 -  GETOPTOBJS='getopt.o getopt1.o'
  
 -fi
  
 +  gl_LIBOBJS="$gl_LIBOBJS strftime.$ac_objext"
  
  
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getpgrp requires zero arguments" >&5
 -$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; }
 -if test "${ac_cv_func_getpgrp_void+set}" = set; then :
 + # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE.
 +
 +
 +
 +
 +
 +
 +
 +$as_echo "#define my_strftime nstrftime" >>confdefs.h
 +
 +
 +
 +  # Code from module time:
 +
 +
 +
 +  # Code from module time_r:
 +
 +
 +
 +
 +
 +
 +
 +  if test $ac_cv_have_decl_localtime_r = no; then
 +    HAVE_DECL_LOCALTIME_R=0
 +  fi
 +
 +
 +  if test $ac_cv_func_localtime_r = yes; then
 +    HAVE_LOCALTIME_R=1
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5
 +$as_echo_n "checking whether localtime_r is compatible with its POSIX signature... " >&6; }
 +if ${gl_cv_time_r_posix+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  # Use it with a single arg.
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -$ac_includes_default
 +#include <time.h>
  int
  main ()
  {
 -getpgrp (0);
 +/* We don't need to append 'restrict's to the argument types,
 +                 even though the POSIX signature has the 'restrict's,
 +                 since C99 says they can't affect type compatibility.  */
 +              struct tm * (*ptr) (time_t const *, struct tm *) = localtime_r;
 +              if (ptr) return 0;
 +              /* Check the return type is a pointer.
 +                 On HP-UX 10 it is 'int'.  */
 +              *localtime_r (0, 0);
    ;
    return 0;
  }
 +
  _ACEOF
  if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_func_getpgrp_void=no
 +  gl_cv_time_r_posix=yes
  else
 -  ac_cv_func_getpgrp_void=yes
 +  gl_cv_time_r_posix=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getpgrp_void" >&5
 -$as_echo "$ac_cv_func_getpgrp_void" >&6; }
 -if test $ac_cv_func_getpgrp_void = yes; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_time_r_posix" >&5
 +$as_echo "$gl_cv_time_r_posix" >&6; }
 +    if test $gl_cv_time_r_posix = yes; then
 +      REPLACE_LOCALTIME_R=0
 +    else
 +      REPLACE_LOCALTIME_R=1
 +    fi
 +  else
 +    HAVE_LOCALTIME_R=0
 +  fi
 +  if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
  
 -$as_echo "#define GETPGRP_VOID 1" >>confdefs.h
  
 -fi
  
  
 -for ac_func in strftime
 -do :
 -  ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
 -if test "x$ac_cv_func_strftime" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_STRFTIME 1
 -_ACEOF
  
 -else
 -  # strftime is in -lintl on SCO UNIX.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
 -$as_echo_n "checking for strftime in -lintl... " >&6; }
 -if test "${ac_cv_lib_intl_strftime+set}" = set; then :
 +
 +
 +
 +  gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext"
 +
 +
 +  :
 +
 +  fi
 +
 +
 +
 +
 +  GNULIB_TIME_R=1
 +
 +
 +
 +  # Code from module unistd:
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +     if test $gl_cv_have_include_next = yes; then
 +       gl_cv_next_unistd_h='<'unistd.h'>'
 +     else
 +       { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
 +$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
 +if ${gl_cv_next_unistd_h+:} false; then :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lintl  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +
 +             if test $ac_cv_header_unistd_h = yes; then
 +
 +
 +               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 +#include <unistd.h>
  
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char strftime ();
 -int
 -main ()
 -{
 -return strftime ();
 -  ;
 -  return 0;
 -}
  _ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_intl_strftime=yes
 -else
 -  ac_cv_lib_intl_strftime=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 +                                                                                                                        case "$host_os" in
 +                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
 +                 *)    gl_absname_cpp="$ac_cpp" ;;
 +               esac
 +                                                            gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
 +                  sed -n '\#/unistd.h#{
 +                    s#.*"\(.*/unistd.h\)".*#\1#
 +                    s#^/[^/]#//&#
 +                    p
 +                    q
 +                  }'`'"'
 +          else
 +               gl_cv_next_unistd_h='<'unistd.h'>'
 +             fi
 +
 +
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
 -$as_echo "$ac_cv_lib_intl_strftime" >&6; }
 -if test "x$ac_cv_lib_intl_strftime" = x""yes; then :
 -  $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5
 +$as_echo "$gl_cv_next_unistd_h" >&6; }
 +     fi
 +     NEXT_UNISTD_H=$gl_cv_next_unistd_h
 +
 +     if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
 +       gl_next_as_first_directive='<'unistd.h'>'
 +     else
 +       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
 +       gl_next_as_first_directive=$gl_cv_next_unistd_h
 +     fi
 +     NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive
 +
 +
 +
 +
 +  if test $ac_cv_header_unistd_h = yes; then
 +    HAVE_UNISTD_H=1
 +  else
 +    HAVE_UNISTD_H=0
 +  fi
 +
 +
 +
 +
 +  # Code from module warn-on-use:
 +  # End of code from modules
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +  gltests_libdeps=
 +  gltests_ltlibdeps=
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +  gl_source_base='tests'
 +  gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
 +
 +  gl_module_indicator_condition=$gltests_WITNESS
 +
 +
 +
 +
 +
 +
  
 -LIBS="-lintl $LIBS"
 -fi
  
 -fi
 -done
 +
 +  LIBGNU_LIBDEPS="$gl_libdeps"
 +
 +  LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
 +
  
  
  # UNIX98 PTYs.
  for ac_func in grantpt
  do :
    ac_fn_c_check_func "$LINENO" "grantpt" "ac_cv_func_grantpt"
 -if test "x$ac_cv_func_grantpt" = x""yes; then :
 +if test "x$ac_cv_func_grantpt" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_GRANTPT 1
  _ACEOF
  for ac_func in getpt
  do :
    ac_fn_c_check_func "$LINENO" "getpt" "ac_cv_func_getpt"
 -if test "x$ac_cv_func_getpt" = x""yes; then :
 +if test "x$ac_cv_func_getpt" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_GETPT 1
  _ACEOF
  # That is because we have not set up to link ncurses in lib-src.
  # It's better to believe a function is not available
  # than to expect to find it in ncurses.
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tparm in -lncurses" >&5
 -$as_echo_n "checking for tparm in -lncurses... " >&6; }
 -if test "${ac_cv_lib_ncurses_tparm+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lncurses  $LIBS"
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -
 -/* Override any GCC internal prototype to avoid an error.
 -   Use char because int might match the return type of a GCC
 -   builtin and then its argument prototype would still apply.  */
 -#ifdef __cplusplus
 -extern "C"
 -#endif
 -char tparm ();
 -int
 -main ()
 -{
 -return tparm ();
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_ncurses_tparm=yes
 -else
 -  ac_cv_lib_ncurses_tparm=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext \
 -    conftest$ac_exeext conftest.$ac_ext
 -LIBS=$ac_check_lib_save_LIBS
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tparm" >&5
 -$as_echo "$ac_cv_lib_ncurses_tparm" >&6; }
 -if test "x$ac_cv_lib_ncurses_tparm" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBNCURSES 1
 -_ACEOF
 -
 -  LIBS="-lncurses $LIBS"
 -
 -fi
 -
 -
 -case "$opsys" in
 -  netbsd)
 -    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tputs" >&5
 +# Also we need tputs and friends to be able to build at all.
 +have_tputs_et_al=true
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tputs" >&5
  $as_echo_n "checking for library containing tputs... " >&6; }
 -if test "${ac_cv_search_tputs+set}" = set; then :
 +if ${ac_cv_search_tputs+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_func_search_save_LIBS=$LIBS
@@@ -15514,11 -11916,11 +15555,11 @@@ for ac_lib in '' ncurses terminfo termc
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext
 -  if test "${ac_cv_search_tputs+set}" = set; then :
 +  if ${ac_cv_search_tputs+:} false; then :
    break
  fi
  done
 -if test "${ac_cv_search_tputs+set}" = set; then :
 +if ${ac_cv_search_tputs+:} false; then :
  
  else
    ac_cv_search_tputs=no
@@@ -15532,128 -11934,18 +15573,128 @@@ ac_res=$ac_cv_search_tput
  if test "$ac_res" != no; then :
    test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
  
 +else
 +  have_tputs_et_al=false
  fi
  
 -    if test $ac_cv_search_tputs = -lterminfo; then
 +if test "$have_tputs_et_al" != true; then
 +  as_fn_error $? "I couldn't find termcap functions (tputs and friends).
 +Maybe some development libraries/packages are missing?  Try installing
 +libncurses-dev(el), libterminfo-dev(el) or similar." "$LINENO" 5
 +fi
 +# Must define this when any termcap library is found.
  
 -$as_echo "#define TERMINFO 1" >>confdefs.h
 +$as_echo "#define HAVE_LIBNCURSES 1" >>confdefs.h
 +
 +## FIXME This was the cpp logic, but I am not sure it is right.
 +## The above test has not necessarily found libncurses.
 +HAVE_LIBNCURSES=yes
 +
 +## Use terminfo instead of termcap?
 +## Note only system files NOT using terminfo are:
 +## freebsd < 40000, ms-w32, msdos, netbsd < 599002500, and
 +## darwin|gnu without ncurses.
 +TERMINFO=no
 +LIBS_TERMCAP=
 +case "$opsys" in
 +  ## cygwin: Fewer environment variables to go wrong, more terminal types.
 +  ## hpux10-20: Use the system provided termcap(3) library.
 +  ## openbsd: David Mazieres <dm@reeducation-labor.lcs.mit.edu> says this
 +  ##  is necessary.  Otherwise Emacs dumps core when run -nw.
 +  aix4-2|cygwin|hpux*|irix6-5|openbsd|sol2*|unixware) TERMINFO=yes ;;
 +
 +  ## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
 +  ##  The ncurses library has been moved out of the System framework in
 +  ##  Mac OS X 10.2.  So if configure detects it, set the command-line
 +  ##  option to use it.
 +  darwin|gnu*)
 +    ## (HAVE_LIBNCURSES was not always true, but is since 2010-03-18.)
 +    if test "x$HAVE_LIBNCURSES" = "xyes"; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lncurses"
 +    fi
 +    ;;
 +
 +  freebsd)
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether FreeBSD is new enough to use terminfo" >&5
 +$as_echo_n "checking whether FreeBSD is new enough to use terminfo... " >&6; }
 +    if ${emacs_cv_freebsd_terminfo+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <osreldate.h>
 +int
 +main ()
 +{
 +#if __FreeBSD_version < 400000
 +fail;
 +#endif
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  emacs_cv_freebsd_terminfo=yes
 +else
 +  emacs_cv_freebsd_terminfo=no
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext conftest.$ac_ext
 +fi
  
 +
 +    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_freebsd_terminfo" >&5
 +$as_echo "$emacs_cv_freebsd_terminfo" >&6; }
 +
 +    if test $emacs_cv_freebsd_terminfo = yes; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lncurses"
 +    else
 +      LIBS_TERMCAP="-ltermcap"
 +    fi
 +    ;;
 +
 +  netbsd)
 +    if test $ac_cv_search_tputs = -lterminfo; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lterminfo"
 +    else
 +      LIBS_TERMCAP="-ltermcap"
      fi
      ;;
 +
  esac
  
 -# Do we have res_init, for detecting changes in /etc/resolv.conf?
 +case "$opsys" in
 +  ## hpux: Make sure we get select from libc rather than from libcurses
 +  ##  because libcurses on HPUX 10.10 has a broken version of select.
 +  ##  We used to use -lc -lcurses, but this may be cleaner.
 +  hpux*) LIBS_TERMCAP="-ltermcap" ;;
 +
 +  openbsd) LIBS_TERMCAP="-lncurses" ;;
 +
 +  ## Must use system termcap, if we use any termcap.  It does special things.
 +  sol2*) test "$TERMINFO" != yes && LIBS_TERMCAP="-ltermcap" ;;
 +esac
 +
 +TERMCAP_OBJ=tparam.o
 +if test $TERMINFO = yes; then
 +
 +$as_echo "#define TERMINFO 1" >>confdefs.h
 +
 +
 +  ## Default used to be -ltermcap.  Add a case above if need something else.
 +  test "x$LIBS_TERMCAP" = "x" && LIBS_TERMCAP="-lcurses"
 +
 +  TERMCAP_OBJ=terminfo.o
 +fi
 +
 +
  
 +
 +# Do we have res_init, for detecting changes in /etc/resolv.conf?
  resolv=no
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
@@@ -15715,20 -12007,19 +15756,20 @@@ $as_echo "#define HAVE_RES_INIT 1" >>co
  fi
  
  # Do we need the Hesiod library to provide the support routines?
 +LIBHESIOD=
  if test "$with_hesiod" != no ; then
 -  # Don't set $LIBS here -- see comments above.
 +  # Don't set $LIBS here -- see comments above.  FIXME which comments?
    ac_fn_c_check_func "$LINENO" "res_send" "ac_cv_func_res_send"
 -if test "x$ac_cv_func_res_send" = x""yes; then :
 +if test "x$ac_cv_func_res_send" = xyes; then :
  
  else
    ac_fn_c_check_func "$LINENO" "__res_send" "ac_cv_func___res_send"
 -if test "x$ac_cv_func___res_send" = x""yes; then :
 +if test "x$ac_cv_func___res_send" = xyes; then :
  
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_send in -lresolv" >&5
  $as_echo_n "checking for res_send in -lresolv... " >&6; }
 -if test "${ac_cv_lib_resolv_res_send+set}" = set; then :
 +if ${ac_cv_lib_resolv_res_send+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -15762,12 -12053,12 +15803,12 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_send" >&5
  $as_echo "$ac_cv_lib_resolv_res_send" >&6; }
 -if test "x$ac_cv_lib_resolv_res_send" = x""yes; then :
 +if test "x$ac_cv_lib_resolv_res_send" = xyes; then :
    resolv=yes
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __res_send in -lresolv" >&5
  $as_echo_n "checking for __res_send in -lresolv... " >&6; }
 -if test "${ac_cv_lib_resolv___res_send+set}" = set; then :
 +if ${ac_cv_lib_resolv___res_send+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -15801,7 -12092,7 +15842,7 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_send" >&5
  $as_echo "$ac_cv_lib_resolv___res_send" >&6; }
 -if test "x$ac_cv_lib_resolv___res_send" = x""yes; then :
 +if test "x$ac_cv_lib_resolv___res_send" = xyes; then :
    resolv=yes
  fi
  
      RESOLVLIB=
    fi
    ac_fn_c_check_func "$LINENO" "hes_getmailhost" "ac_cv_func_hes_getmailhost"
 -if test "x$ac_cv_func_hes_getmailhost" = x""yes; then :
 +if test "x$ac_cv_func_hes_getmailhost" = xyes; then :
  
  else
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for hes_getmailhost in -lhesiod" >&5
  $as_echo_n "checking for hes_getmailhost in -lhesiod... " >&6; }
 -if test "${ac_cv_lib_hesiod_hes_getmailhost+set}" = set; then :
 +if ${ac_cv_lib_hesiod_hes_getmailhost+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -15856,46 -12147,30 +15897,46 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hesiod_hes_getmailhost" >&5
  $as_echo "$ac_cv_lib_hesiod_hes_getmailhost" >&6; }
 -if test "x$ac_cv_lib_hesiod_hes_getmailhost" = x""yes; then :
 -
 -$as_echo "#define HAVE_LIBHESIOD 1" >>confdefs.h
 -
 +if test "x$ac_cv_lib_hesiod_hes_getmailhost" = xyes; then :
 +  hesiod=yes
  else
    :
  fi
  
  fi
  
 +
 +  if test x"$hesiod" = xyes; then
 +
 +$as_echo "#define HAVE_LIBHESIOD 1" >>confdefs.h
 +
 +    LIBHESIOD=-lhesiod
 +  fi
  fi
  
 +
  # Do we need libresolv (due to res_init or Hesiod)?
  if test "$resolv" = yes ; then
  
  $as_echo "#define HAVE_LIBRESOLV 1" >>confdefs.h
  
 +  LIBRESOLV=-lresolv
 +else
 +  LIBRESOLV=
  fi
  
 +
  # These tell us which Kerberos-related libraries to use.
 +COM_ERRLIB=
 +CRYPTOLIB=
 +KRB5LIB=
 +DESLIB=
 +KRB4LIB=
 +
  if test "${with_kerberos}" != no; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for com_err in -lcom_err" >&5
  $as_echo_n "checking for com_err in -lcom_err... " >&6; }
 -if test "${ac_cv_lib_com_err_com_err+set}" = set; then :
 +if ${ac_cv_lib_com_err_com_err+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -15929,26 -12204,22 +15970,26 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_com_err_com_err" >&5
  $as_echo "$ac_cv_lib_com_err_com_err" >&6; }
 -if test "x$ac_cv_lib_com_err_com_err" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBCOM_ERR 1
 -_ACEOF
 +if test "x$ac_cv_lib_com_err_com_err" = xyes; then :
 +  have_com_err=yes
 +else
 +  have_com_err=no
 +fi
  
 -  LIBS="-lcom_err $LIBS"
 +  if test $have_com_err = yes; then
 +    COM_ERRLIB=-lcom_err
 +    LIBS="$COM_ERRLIB $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBCOM_ERR 1" >>confdefs.h
  
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mit_des_cbc_encrypt in -lk5crypto" >&5
 -$as_echo_n "checking for mit_des_cbc_encrypt in -lk5crypto... " >&6; }
 -if test "${ac_cv_lib_k5crypto_mit_des_cbc_encrypt+set}" = set; then :
 +  fi
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mit_des_cbc_encrypt in -lcrypto" >&5
 +$as_echo_n "checking for mit_des_cbc_encrypt in -lcrypto... " >&6; }
 +if ${ac_cv_lib_crypto_mit_des_cbc_encrypt+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lk5crypto  $LIBS"
 +LIBS="-lcrypto  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
@@@ -15968,36 -12239,32 +16009,36 @@@ return mit_des_cbc_encrypt ()
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_k5crypto_mit_des_cbc_encrypt=yes
 +  ac_cv_lib_crypto_mit_des_cbc_encrypt=yes
  else
 -  ac_cv_lib_k5crypto_mit_des_cbc_encrypt=no
 +  ac_cv_lib_crypto_mit_des_cbc_encrypt=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5crypto_mit_des_cbc_encrypt" >&5
 -$as_echo "$ac_cv_lib_k5crypto_mit_des_cbc_encrypt" >&6; }
 -if test "x$ac_cv_lib_k5crypto_mit_des_cbc_encrypt" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBK5CRYPTO 1
 -_ACEOF
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_mit_des_cbc_encrypt" >&5
 +$as_echo "$ac_cv_lib_crypto_mit_des_cbc_encrypt" >&6; }
 +if test "x$ac_cv_lib_crypto_mit_des_cbc_encrypt" = xyes; then :
 +  have_crypto=yes
 +else
 +  have_crypto=no
 +fi
  
 -  LIBS="-lk5crypto $LIBS"
 +  if test $have_crypto = yes; then
 +    CRYPTOLIB=-lcrypto
 +    LIBS="$CRYPTOLIB $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBCRYPTO 1" >>confdefs.h
  
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mit_des_cbc_encrypt in -lcrypto" >&5
 -$as_echo_n "checking for mit_des_cbc_encrypt in -lcrypto... " >&6; }
 -if test "${ac_cv_lib_crypto_mit_des_cbc_encrypt+set}" = set; then :
 +  fi
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mit_des_cbc_encrypt in -lk5crypto" >&5
 +$as_echo_n "checking for mit_des_cbc_encrypt in -lk5crypto... " >&6; }
 +if ${ac_cv_lib_k5crypto_mit_des_cbc_encrypt+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lcrypto  $LIBS"
 +LIBS="-lk5crypto  $LIBS"
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
@@@ -16017,32 -12284,28 +16058,32 @@@ return mit_des_cbc_encrypt ()
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_crypto_mit_des_cbc_encrypt=yes
 +  ac_cv_lib_k5crypto_mit_des_cbc_encrypt=yes
  else
 -  ac_cv_lib_crypto_mit_des_cbc_encrypt=no
 +  ac_cv_lib_k5crypto_mit_des_cbc_encrypt=no
  fi
  rm -f core conftest.err conftest.$ac_objext \
      conftest$ac_exeext conftest.$ac_ext
  LIBS=$ac_check_lib_save_LIBS
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_mit_des_cbc_encrypt" >&5
 -$as_echo "$ac_cv_lib_crypto_mit_des_cbc_encrypt" >&6; }
 -if test "x$ac_cv_lib_crypto_mit_des_cbc_encrypt" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBCRYPTO 1
 -_ACEOF
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_k5crypto_mit_des_cbc_encrypt" >&5
 +$as_echo "$ac_cv_lib_k5crypto_mit_des_cbc_encrypt" >&6; }
 +if test "x$ac_cv_lib_k5crypto_mit_des_cbc_encrypt" = xyes; then :
 +  have_k5crypto=yes
 +else
 +  have_k5crypto=no
 +fi
  
 -  LIBS="-lcrypto $LIBS"
 +  if test $have_k5crypto = yes; then
 +    CRYPTOLIB=-lk5crypto
 +    LIBS="$CRYPTOLIB $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBK5CRYPTO 1" >>confdefs.h
  
 +  fi
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb5_init_context in -lkrb5" >&5
  $as_echo_n "checking for krb5_init_context in -lkrb5... " >&6; }
 -if test "${ac_cv_lib_krb5_krb5_init_context+set}" = set; then :
 +if ${ac_cv_lib_krb5_krb5_init_context+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16076,23 -12339,19 +16117,23 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5_krb5_init_context" >&5
  $as_echo "$ac_cv_lib_krb5_krb5_init_context" >&6; }
 -if test "x$ac_cv_lib_krb5_krb5_init_context" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBKRB5 1
 -_ACEOF
 +if test "x$ac_cv_lib_krb5_krb5_init_context" = xyes; then :
 +  have_krb5=yes
 +else
 +  have_krb5=no
 +fi
  
 -  LIBS="-lkrb5 $LIBS"
 +  if test $have_krb5=yes; then
 +    KRB5LIB=-lkrb5
 +    LIBS="$KRB5LIB $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBKRB5 1" >>confdefs.h
  
 -  if test "${with_kerberos5}" = no; then
 +  fi
 +    if test "${with_kerberos5}" = no; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_cbc_encrypt in -ldes425" >&5
  $as_echo_n "checking for des_cbc_encrypt in -ldes425... " >&6; }
 -if test "${ac_cv_lib_des425_des_cbc_encrypt+set}" = set; then :
 +if ${ac_cv_lib_des425_des_cbc_encrypt+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16126,22 -12385,17 +16167,22 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des425_des_cbc_encrypt" >&5
  $as_echo "$ac_cv_lib_des425_des_cbc_encrypt" >&6; }
 -if test "x$ac_cv_lib_des425_des_cbc_encrypt" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBDES425 1
 -_ACEOF
 +if test "x$ac_cv_lib_des425_des_cbc_encrypt" = xyes; then :
 +  have_des425=yes
 +else
 +  have_des425=no
 +fi
  
 -  LIBS="-ldes425 $LIBS"
 +    if test $have_des425 = yes; then
 +      DESLIB=-ldes425
 +      LIBS="$DESLIB $LIBS"
  
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_cbc_encrypt in -ldes" >&5
 +$as_echo "#define HAVE_LIBDES425 1" >>confdefs.h
 +
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for des_cbc_encrypt in -ldes" >&5
  $as_echo_n "checking for des_cbc_encrypt in -ldes... " >&6; }
 -if test "${ac_cv_lib_des_des_cbc_encrypt+set}" = set; then :
 +if ${ac_cv_lib_des_des_cbc_encrypt+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16175,23 -12429,20 +16216,23 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_des_des_cbc_encrypt" >&5
  $as_echo "$ac_cv_lib_des_des_cbc_encrypt" >&6; }
 -if test "x$ac_cv_lib_des_des_cbc_encrypt" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBDES 1
 -_ACEOF
 -
 -  LIBS="-ldes $LIBS"
 -
 +if test "x$ac_cv_lib_des_des_cbc_encrypt" = xyes; then :
 +  have_des=yes
 +else
 +  have_des=no
  fi
  
 -fi
 +      if test $have_des = yes; then
 +        DESLIB=-ldes
 +        LIBS="$DESLIB $LIBS"
 +
 +$as_echo "#define HAVE_LIBDES 1" >>confdefs.h
  
 +      fi
 +    fi
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_get_cred in -lkrb4" >&5
  $as_echo_n "checking for krb_get_cred in -lkrb4... " >&6; }
 -if test "${ac_cv_lib_krb4_krb_get_cred+set}" = set; then :
 +if ${ac_cv_lib_krb4_krb_get_cred+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16225,22 -12476,17 +16266,22 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb4_krb_get_cred" >&5
  $as_echo "$ac_cv_lib_krb4_krb_get_cred" >&6; }
 -if test "x$ac_cv_lib_krb4_krb_get_cred" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBKRB4 1
 -_ACEOF
 +if test "x$ac_cv_lib_krb4_krb_get_cred" = xyes; then :
 +  have_krb4=yes
 +else
 +  have_krb4=no
 +fi
  
 -  LIBS="-lkrb4 $LIBS"
 +    if test $have_krb4 = yes; then
 +      KRB4LIB=-lkrb4
 +      LIBS="$KRB4LIB $LIBS"
  
 -else
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_get_cred in -lkrb" >&5
 +$as_echo "#define HAVE_LIBKRB4 1" >>confdefs.h
 +
 +    else
 +      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for krb_get_cred in -lkrb" >&5
  $as_echo_n "checking for krb_get_cred in -lkrb... " >&6; }
 -if test "${ac_cv_lib_krb_krb_get_cred+set}" = set; then :
 +if ${ac_cv_lib_krb_krb_get_cred+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16274,33 -12520,30 +16315,33 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb_krb_get_cred" >&5
  $as_echo "$ac_cv_lib_krb_krb_get_cred" >&6; }
 -if test "x$ac_cv_lib_krb_krb_get_cred" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_LIBKRB 1
 -_ACEOF
 -
 -  LIBS="-lkrb $LIBS"
 -
 +if test "x$ac_cv_lib_krb_krb_get_cred" = xyes; then :
 +  have_krb=yes
 +else
 +  have_krb=no
  fi
  
 -fi
 +      if test $have_krb = yes; then
 +        KRB4LIB=-lkrb
 +        LIBS="$KRB4LIB $LIBS"
 +
 +$as_echo "#define HAVE_LIBKRB 1" >>confdefs.h
  
 +      fi
 +    fi
    fi
  
    if test "${with_kerberos5}" != no; then
      for ac_header in krb5.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "krb5.h" "ac_cv_header_krb5_h" "$ac_includes_default"
 -if test "x$ac_cv_header_krb5_h" = x""yes; then :
 +if test "x$ac_cv_header_krb5_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KRB5_H 1
  _ACEOF
   ac_fn_c_check_member "$LINENO" "krb5_error" "text" "ac_cv_member_krb5_error_text" "#include <krb5.h>
  "
 -if test "x$ac_cv_member_krb5_error_text" = x""yes; then :
 +if test "x$ac_cv_member_krb5_error_text" = xyes; then :
  
  cat >>confdefs.h <<_ACEOF
  #define HAVE_KRB5_ERROR_TEXT 1
@@@ -16310,7 -12553,7 +16351,7 @@@ _ACEO
  fi
  ac_fn_c_check_member "$LINENO" "krb5_error" "e_text" "ac_cv_member_krb5_error_e_text" "#include <krb5.h>
  "
 -if test "x$ac_cv_member_krb5_error_e_text" = x""yes; then :
 +if test "x$ac_cv_member_krb5_error_e_text" = xyes; then :
  
  cat >>confdefs.h <<_ACEOF
  #define HAVE_KRB5_ERROR_E_TEXT 1
      for ac_header in des.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "des.h" "ac_cv_header_des_h" "$ac_includes_default"
 -if test "x$ac_cv_header_des_h" = x""yes; then :
 +if test "x$ac_cv_header_des_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_DES_H 1
  _ACEOF
    for ac_header in kerberosIV/des.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "kerberosIV/des.h" "ac_cv_header_kerberosIV_des_h" "$ac_includes_default"
 -if test "x$ac_cv_header_kerberosIV_des_h" = x""yes; then :
 +if test "x$ac_cv_header_kerberosIV_des_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KERBEROSIV_DES_H 1
  _ACEOF
    for ac_header in kerberos/des.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "kerberos/des.h" "ac_cv_header_kerberos_des_h" "$ac_includes_default"
 -if test "x$ac_cv_header_kerberos_des_h" = x""yes; then :
 +if test "x$ac_cv_header_kerberos_des_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KERBEROS_DES_H 1
  _ACEOF
      for ac_header in krb.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "krb.h" "ac_cv_header_krb_h" "$ac_includes_default"
 -if test "x$ac_cv_header_krb_h" = x""yes; then :
 +if test "x$ac_cv_header_krb_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KRB_H 1
  _ACEOF
    for ac_header in kerberosIV/krb.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "kerberosIV/krb.h" "ac_cv_header_kerberosIV_krb_h" "$ac_includes_default"
 -if test "x$ac_cv_header_kerberosIV_krb_h" = x""yes; then :
 +if test "x$ac_cv_header_kerberosIV_krb_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KERBEROSIV_KRB_H 1
  _ACEOF
    for ac_header in kerberos/krb.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "kerberos/krb.h" "ac_cv_header_kerberos_krb_h" "$ac_includes_default"
 -if test "x$ac_cv_header_kerberos_krb_h" = x""yes; then :
 +if test "x$ac_cv_header_kerberos_krb_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_KERBEROS_KRB_H 1
  _ACEOF
    for ac_header in com_err.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "com_err.h" "ac_cv_header_com_err_h" "$ac_includes_default"
 -if test "x$ac_cv_header_com_err_h" = x""yes; then :
 +if test "x$ac_cv_header_com_err_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_COM_ERR_H 1
  _ACEOF
  
  fi
  
 +
 +
 +
 +
 +
 +
  # Solaris requires -lintl if you want strerror (which calls dgettext)
  # to return localized messages.
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dgettext in -lintl" >&5
  $as_echo_n "checking for dgettext in -lintl... " >&6; }
 -if test "${ac_cv_lib_intl_dgettext+set}" = set; then :
 +if ${ac_cv_lib_intl_dgettext+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    ac_check_lib_save_LIBS=$LIBS
@@@ -16459,7 -12696,7 +16500,7 @@@ LIBS=$ac_check_lib_save_LIB
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_dgettext" >&5
  $as_echo "$ac_cv_lib_intl_dgettext" >&6; }
 -if test "x$ac_cv_lib_intl_dgettext" = x""yes; then :
 +if test "x$ac_cv_lib_intl_dgettext" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_LIBINTL 1
  _ACEOF
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime caches TZ" >&5
  $as_echo_n "checking whether localtime caches TZ... " >&6; }
 -if test "${emacs_cv_localtime_cache+set}" = set; then :
 +if ${emacs_cv_localtime_cache+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    if test x$ac_cv_func_tzset = xyes; then
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  #include <time.h>
 -extern char **environ;
 -unset_TZ ()
 -{
 -  char **from, **to;
 -  for (to = from = environ; (*to = *from); from++)
 -    if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
 -      to++;
 -}
  char TZ_GMT0[] = "TZ=GMT0";
  char TZ_PST8[] = "TZ=PST8";
  main()
    if (putenv (TZ_GMT0) != 0)
      exit (1);
    hour_GMT0 = localtime (&now)->tm_hour;
 -  unset_TZ ();
 +  unsetenv("TZ");
    hour_unset = localtime (&now)->tm_hour;
    if (putenv (TZ_PST8) != 0)
      exit (1);
    if (localtime (&now)->tm_hour == hour_GMT0)
      exit (1);
 -  unset_TZ ();
 +  unsetenv("TZ");
    if (localtime (&now)->tm_hour != hour_unset)
      exit (1);
    exit (0);
@@@ -16530,7 -12775,7 +16571,7 @@@ if test "x$HAVE_TIMEVAL" = xyes; the
    for ac_func in gettimeofday
  do :
    ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
 -if test "x$ac_cv_func_gettimeofday" = x""yes; then :
 +if test "x$ac_cv_func_gettimeofday" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_GETTIMEOFDAY 1
  _ACEOF
    if test $ac_cv_func_gettimeofday = yes; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday can accept two arguments" >&5
  $as_echo_n "checking whether gettimeofday can accept two arguments... " >&6; }
 -if test "${emacs_cv_gettimeofday_two_arguments+set}" = set; then :
 +if ${emacs_cv_gettimeofday_two_arguments+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  
  ok_so_far=yes
  ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
 -if test "x$ac_cv_func_socket" = x""yes; then :
 +if test "x$ac_cv_func_socket" = xyes; then :
  
  else
    ok_so_far=no
  
  if test $ok_so_far = yes; then
    ac_fn_c_check_header_mongrel "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
 -if test "x$ac_cv_header_netinet_in_h" = x""yes; then :
 +if test "x$ac_cv_header_netinet_in_h" = xyes; then :
  
  else
    ok_so_far=no
  fi
  if test $ok_so_far = yes; then
    ac_fn_c_check_header_mongrel "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default"
 -if test "x$ac_cv_header_arpa_inet_h" = x""yes; then :
 +if test "x$ac_cv_header_arpa_inet_h" = xyes; then :
  
  else
    ok_so_far=no
@@@ -16617,6 -12862,19 +16658,6 @@@ $as_echo "#define HAVE_INET_SOCKETS 1" 
  
  fi
  
 -for ac_header in sys/ioctl.h
 -do :
 -  ac_fn_c_check_header_mongrel "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
 -if test "x$ac_cv_header_sys_ioctl_h" = x""yes; then :
 -  cat >>confdefs.h <<_ACEOF
 -#define HAVE_SYS_IOCTL_H 1
 -_ACEOF
 -
 -fi
 -
 -done
 -
 -
  if test -f /usr/lpp/X11/bin/smt.exp; then
  
  $as_echo "#define HAVE_AIX_SMT_EXP 1" >>confdefs.h
@@@ -16637,7 -12895,7 +16678,7 @@@ $as_echo "no" >&6; 
  fi
  
  ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
 -if test "x$ac_cv_type_pid_t" = x""yes; then :
 +if test "x$ac_cv_type_pid_t" = xyes; then :
  
  else
  
  for ac_header in vfork.h
  do :
    ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
 -if test "x$ac_cv_header_vfork_h" = x""yes; then :
 +if test "x$ac_cv_header_vfork_h" = xyes; then :
    cat >>confdefs.h <<_ACEOF
  #define HAVE_VFORK_H 1
  _ACEOF
  if test "x$ac_cv_func_fork" = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
  $as_echo_n "checking for working fork... " >&6; }
 -if test "${ac_cv_func_fork_works+set}" = set; then :
 +if ${ac_cv_func_fork_works+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    if test "$cross_compiling" = yes; then :
@@@ -16727,7 -12985,7 +16768,7 @@@ ac_cv_func_vfork_works=$ac_cv_func_vfor
  if test "x$ac_cv_func_vfork" = xyes; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
  $as_echo_n "checking for working vfork... " >&6; }
 -if test "${ac_cv_func_vfork_works+set}" = set; then :
 +if ${ac_cv_func_vfork_works+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    if test "$cross_compiling" = yes; then :
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
  $as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
 -if test "${emacs_cv_langinfo_codeset+set}" = set; then :
 +if ${emacs_cv_langinfo_codeset+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -16895,7 -13153,7 +16936,7 @@@ $as_echo "#define HAVE_LANGINFO_CODESE
  fi
  
  ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
 -if test "x$ac_cv_type_size_t" = x""yes; then :
 +if test "x$ac_cv_type_size_t" = xyes; then :
  
  cat >>confdefs.h <<_ACEOF
  #define HAVE_SIZE_T 1
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
  $as_echo_n "checking for mbstate_t... " >&6; }
 -if test "${ac_cv_type_mbstate_t+set}" = set; then :
 -  $as_echo_n "(cached) " >&6
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -$ac_includes_default
 -#         include <wchar.h>
 -int
 -main ()
 -{
 -mbstate_t x; return sizeof x;
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  ac_cv_type_mbstate_t=yes
 -else
 -  ac_cv_type_mbstate_t=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 -fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
 -$as_echo "$ac_cv_type_mbstate_t" >&6; }
 -   if test $ac_cv_type_mbstate_t = yes; then
 -
 -$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
 -
 -   else
 -
 -$as_echo "#define mbstate_t int" >>confdefs.h
 -
 -   fi
 -
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C restrict keyword" >&5
 -$as_echo_n "checking for C restrict keyword... " >&6; }
 -if test "${emacs_cv_c_restrict+set}" = set; then :
 +if ${ac_cv_type_mbstate_t+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -void fred (int *restrict x);
 -int
 -main ()
 -{
 -
 -  ;
 -  return 0;
 -}
 -_ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_c_restrict=yes
 -else
 -  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -void fred (int *__restrict x);
 +$ac_includes_default
 +#         include <wchar.h>
  int
  main ()
  {
 -
 +mbstate_t x; return sizeof x;
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_compile "$LINENO"; then :
 -  emacs_cv_c_restrict=__restrict
 +  ac_cv_type_mbstate_t=yes
  else
 -  emacs_cv_c_restrict=no
 -fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +  ac_cv_type_mbstate_t=no
  fi
  rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
  fi
 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_c_restrict" >&5
 -$as_echo "$emacs_cv_c_restrict" >&6; }
 -case "$emacs_cv_c_restrict" in
 -  yes) emacs_restrict=restrict;;
 -  no) emacs_restrict="";;
 -  *) emacs_restrict="$emacs_cv_c_restrict";;
 -esac
 -if test "$emacs_restrict" != __restrict; then
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_mbstate_t" >&5
 +$as_echo "$ac_cv_type_mbstate_t" >&6; }
 +   if test $ac_cv_type_mbstate_t = yes; then
  
 -cat >>confdefs.h <<_ACEOF
 -#define __restrict $emacs_restrict
 -_ACEOF
 +$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
  
 -fi
 +   else
 +
 +$as_echo "#define mbstate_t int" >>confdefs.h
 +
 +   fi
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C restricted array declarations" >&5
  $as_echo_n "checking for C restricted array declarations... " >&6; }
 -if test "${emacs_cv_c_restrict_arr+set}" = set; then :
 +if ${emacs_cv_c_restrict_arr+:} false; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -16986,13 -13298,21 +17027,13 @@@ if test "x$GCC" = xyes 
     as_fn_error $? "GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." "$LINENO" 5
  fi
  
 -#### Find out which version of Emacs this is.
 -version=`grep 'defconst[       ]*emacs-version' ${srcdir}/lisp/version.el \
 -       | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
 -if test x"${version}" = x; then
 -  as_fn_error $? "can't find current emacs version in \`${srcdir}/lisp/version.el'." "$LINENO" 5
 -fi
 -if test x"${version}" != x"$PACKAGE_VERSION"; then
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/lisp/version.el'." >&5
 -$as_echo "$as_me: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/lisp/version.el'." >&2;}
 -fi
 +version=$PACKAGE_VERSION
  
  ### Specify what sort of things we'll be editing into Makefile and config.h.
  ### Use configuration here uncanonicalized to avoid exceeding size limits.
  
  
 +## Unused?
  
  
  
  
  
  
 +## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
 +## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
 +## end of LIBX_BASE, but nothing ever set it.
  
  
  
  
 +## Used in lwlib/Makefile.in.
  
 -
 -
 -
 -
 -
 -
 +if test -n "${machfile}"; then
 +  M_FILE="\$(srcdir)/${machfile}"
 +else
 +  M_FILE=
 +fi
 +S_FILE="\$(srcdir)/${opsysfile}"
  
  
  
@@@ -17048,44 -13364,43 +17089,44 @@@ cat >>confdefs.h <<_ACEO
  #define EMACS_CONFIG_OPTIONS "${ac_configure_args}"
  _ACEOF
  
 +if test -n "$machfile"; then
  
  cat >>confdefs.h <<_ACEOF
  #define config_machfile "${machfile}"
  _ACEOF
  
 +fi
  
  cat >>confdefs.h <<_ACEOF
  #define config_opsysfile "${opsysfile}"
  _ACEOF
  
  
 -cat >>confdefs.h <<_ACEOF
 -#define LD_SWITCH_X_SITE ${LD_SWITCH_X_SITE}
 -_ACEOF
 -
 -
 -cat >>confdefs.h <<_ACEOF
 -#define LD_SWITCH_X_SITE_AUX ${LD_SWITCH_X_SITE_AUX}
 -_ACEOF
 -
 +XMENU_OBJ=
 +XOBJ=
 +FONT_OBJ=
 +if test "${HAVE_X_WINDOWS}" = "yes" ; then
  
 -cat >>confdefs.h <<_ACEOF
 -#define C_SWITCH_X_SITE ${C_SWITCH_X_SITE}
 -_ACEOF
 +$as_echo "#define HAVE_X_WINDOWS 1" >>confdefs.h
  
 +  XMENU_OBJ=xmenu.o
 +  XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
 +  FONT_OBJ=xfont.o
 +  if test "$HAVE_XFT" = "yes"; then
 +    FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
 +  elif test "$HAVE_FREETYPE" = "yes"; then
 +    FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
 +  fi
  
 -cat >>confdefs.h <<_ACEOF
 -#define UNEXEC_SRC ${UNEXEC_SRC}
 -_ACEOF
 +fi
  
  
 -if test "${HAVE_X_WINDOWS}" = "yes" ; then
  
 -$as_echo "#define HAVE_X_WINDOWS 1" >>confdefs.h
  
 -fi
 +WIDGET_OBJ=
 +MOTIF_LIBW=
  if test "${USE_X_TOOLKIT}" != "none" ; then
 +  WIDGET_OBJ=widget.o
  
  $as_echo "#define USE_X_TOOLKIT 1" >>confdefs.h
  
@@@ -17097,284 -13412,32 +17138,284 @@@ $as_echo "#define USE_LUCID 1" >>confde
  
  $as_echo "#define USE_MOTIF 1" >>confdefs.h
  
 +    MOTIF_LIBW=-lXm
 +    case "$opsys" in
 +      gnu-linux)
 +        ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
 +        MOTIF_LIBW="$MOTIF_LIBW -lXpm"
 +        ;;
 +
 +      unixware)
 +        ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
 +        ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
 +        MOTIF_LIBW="MOTIF_LIBW -lXimp"
 +        ;;
 +
 +      aix4-2)
 +        ## olson@mcs.anl.gov says -li18n is needed by -lXm.
 +        MOTIF_LIBW="$MOTIF_LIBW -li18n"
 +        ;;
 +    esac
 +    MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
    fi
  fi
 +
 +
 +TOOLKIT_LIBW=
 +case "$USE_X_TOOLKIT" in
 +  MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
 +  LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
 +  none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
 +esac
 +
 +
 +if test "$USE_X_TOOLKIT" = "none"; then
 +  LIBXT_OTHER="\$(LIBXSM)"
 +  OLDXMENU_TARGET="really-oldXMenu"
 +else
 +  LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
 +  OLDXMENU_TARGET="really-lwlib"
 +fi
 +
 +
 +## The X Menu stuff is present in the X10 distribution, but missing
 +## from X11.  If we have X10, just use the installed library;
 +## otherwise, use our own copy.
  if test "${HAVE_X11}" = "yes" ; then
  
  $as_echo "#define HAVE_X11 1" >>confdefs.h
  
 +
 +  if test "$USE_X_TOOLKIT" = "none"; then
 +    OLDXMENU="\${oldXMenudir}/libXMenu11.a"
 +  else
 +    OLDXMENU="\${lwlibdir}/liblw.a"
 +  fi
 +  LIBXMENU="\$(OLDXMENU)"
 +  LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
 +  OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
 +else
 +  ## For a syntactically valid Makefile; not actually used for anything.
 +  ## See comments in src/Makefile.in.
 +  OLDXMENU=nothing
 +  ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
 +  if test "${HAVE_X_WINDOWS}" = "yes"; then
 +    LIBXMENU="-lXMenu"
 +  else
 +    LIBXMENU=
 +  fi
 +  LIBX_OTHER=
 +  OLDXMENU_DEPS=
 +fi
 +
 +if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
 +  OLDXMENU_TARGET=
 +  OLDXMENU=nothing
 +  LIBXMENU=
 +  OLDXMENU_DEPS=
  fi
 +
 +
 +
 +
 +
 +
 +
  if test "${HAVE_MENUS}" = "yes" ; then
  
  $as_echo "#define HAVE_MENUS 1" >>confdefs.h
  
  fi
 +
  if test "${GNU_MALLOC}" = "yes" ; then
  
  $as_echo "#define GNU_MALLOC 1" >>confdefs.h
  
  fi
 +
 +RALLOC_OBJ=
  if test "${REL_ALLOC}" = "yes" ; then
  
  $as_echo "#define REL_ALLOC 1" >>confdefs.h
  
 +
 +  test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
 +fi
 +
 +
 +if test "$opsys" = "cygwin"; then
 +  CYGWIN_OBJ="sheap.o"
 +  ## Cygwin differs because of its unexec().
 +  PRE_ALLOC_OBJ=
 +  POST_ALLOC_OBJ=lastfile.o
 +else
 +  CYGWIN_OBJ=
 +  PRE_ALLOC_OBJ=lastfile.o
 +  POST_ALLOC_OBJ=
 +fi
 +
 +
 +
 +
 +
 +case "$opsys" in
 +  aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
 +
 +  darwin)
 +   ## The -headerpad option tells ld (see man page) to leave room at the
 +   ## end of the header for adding load commands.  Needed for dumping.
 +   ## 0x690 is the total size of 30 segment load commands (at 56
 +   ## each); under Cocoa 31 commands are required.
 +   if test "$HAVE_NS" = "yes"; then
 +     libs_nsgui="-framework AppKit"
 +     headerpad_extra=6C8
 +   else
 +     libs_nsgui=
 +     headerpad_extra=690
 +   fi
 +   LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
 +
 +   ## This is here because src/Makefile.in did some extra fiddling around
 +   ## with LD_SWITCH_SYSTEM.  The cpp logic was:
 +   ##   #ifndef LD_SWITCH_SYSTEM
 +   ##   #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
 +   ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
 +   ## not using gcc, darwin system not on an alpha (ie darwin, since
 +   ## darwin + alpha does not occur).
 +   ## Because this was done in src/Makefile.in, the resulting part of
 +   ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
 +   ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
 +   ## rather than LD_SWITCH_SYSTEM.
 +   test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
 +     LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
 +   ;;
 +
 +  ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
 +  ## When handled by cpp, this was in LD_SWITCH_SYSTEM.  However, at
 +  ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
 +  ## had not yet been defined and was expanded to null.  Hence LD_SWITCH_SYSTEM
 +  ## had different values in configure (in ac_link) and src/Makefile.in.
 +  ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
 +  gnu-linux) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX)" ;;
 +
 +  *) LD_SWITCH_SYSTEM_TEMACS= ;;
 +esac
 +
 +if test "$NS_IMPL_GNUSTEP" = "yes"; then
 +  LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
 +fi
 +
 +
 +
 +
 +LD_FIRSTFLAG=
 +ORDINARY_LINK=
 +case "$opsys" in
 +  ## gnu: GNU needs its own crt0.
 +  aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
 +
 +  ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
 +  ## library search parth, i.e. it won't search /usr/lib for libc and
 +  ## friends.  Using -nostartfiles instead avoids this problem, and
 +  ## will also work on earlier NetBSD releases.
 +  netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;;
 +
 +  ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
 +  ##   MkLinux/LinuxPPC needs this.
 +  ## ibms390x only supports opsys = gnu-linux so it can be added here.
 +  gnu-*)
 +    case "$machine" in
 +      macppc|ibms390x) LD_FIRSTFLAG="-nostdlib" ;;
 +    esac
 +    ;;
 +esac
 +
 +
 +if test "x$ORDINARY_LINK" = "xyes"; then
 +
 +  LD_FIRSTFLAG=""
 +
 +$as_echo "#define ORDINARY_LINK 1" >>confdefs.h
 +
 +
 +## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are:
 +## freebsd, gnu-* not on macppc|ibms390x.
 +elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then
 +
 +  ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
 +  ## places that are difficult to figure out at make time.  Fortunately,
 +  ## these same versions allow you to pass arbitrary flags on to the
 +  ## linker, so there is no reason not to use it as a linker.
 +  ##
 +  ## Well, it is not quite perfect.  The "-nostdlib" keeps GCC from
 +  ## searching for libraries in its internal directories, so we have to
 +  ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
 +  LD_FIRSTFLAG="-nostdlib"
 +fi
 +
 +## FIXME? What setting of EDIT_LDFLAGS should this have?
 +test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic"
 +
 +
 +
 +
 +## FIXME? The logic here is not precisely the same as that above.
 +## There is no check here for a pre-defined LD_FIRSTFLAG.
 +## Should we only be setting LIB_GCC if LD ~ -nostdlib?
 +LIB_GCC=
 +if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
 +
 +  case "$opsys" in
 +    freebsd|netbsd|openbsd) LIB_GCC= ;;
 +
 +    gnu-*)
 +      ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
 +      ## build on ARM EABI under GNU/Linux.  (Bug#5518)
 +      case $host_cpu in
 +      arm*)
 +        LIB_GCC="-lgcc_s"
 +      ;;
 +      *)
 +        ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
 +        ## immediately undefine it again and redefine it to empty.
 +        ## Was the C_SWITCH_X_SITE part really necessary?
 +##      LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
 +        LIB_GCC=
 +      ;;
 +      esac
 +      ;;
 +
 +    ## Ask GCC where to find libgcc.a.
 +    *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
 +  esac
 +fi
 +
 +
 +TOOLTIP_SUPPORT=
 +WINDOW_SUPPORT=
 +## If we're using X11/GNUstep, define some consequences.
 +if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
 +
 +$as_echo "#define HAVE_WINDOW_SYSTEM 1" >>confdefs.h
 +
 +
 +$as_echo "#define HAVE_MOUSE 1" >>confdefs.h
 +
 +  MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
 +  TOOLTIP_SUPPORT="\${lispsource}/mouse.elc"
 +
 +  WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
 +  test "$HAVE_X_WINDOWS" = "yes" && \
 +    WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
 +
  fi
  
  
  
  
 +
 +
 +
  #### Report on what we decided to do.
  #### Report GTK as a toolkit, even if it doesn't use Xt.
  #### It makes printing result more understandable as using GTK sets
@@@ -17383,17 -13446,12 +17424,17 @@@ if test "${HAVE_GTK}" = "yes"; the
    USE_X_TOOLKIT=GTK
  fi
  
 +and_machfile=
 +if test -n "$machfile"; then
 +  and_machfile=" and \`${machfile}'"
 +fi
 +
  echo "
  Configured for \`${canonical}'.
  
    Where should the build process find the source code?    ${srcdir}
    What operating system and machine description files should Emacs use?
 -        \`${opsysfile}' and \`${machfile}'
 +        \`${opsysfile}'${and_machfile}
    What compiler should emacs be built with?               ${CC} ${CFLAGS}
    Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
    Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
@@@ -17416,17 -13474,12 +17457,17 @@@ echo "  Does Emacs use -lXaw3d
  echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
  echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
  echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
 -echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $ac_gif_lib_name"
 +echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
  echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
  echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
 +echo "  Does Emacs use imagemagick?                             ${HAVE_IMAGEMAGICK}"
 +
  echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
  echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
  echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
 +echo "  Does Emacs use -lselinux?                               ${HAVE_LIBSELINUX}"
 +echo "  Does Emacs use -lgnutls?                                ${HAVE_GNUTLS}"
 +echo "  Does Emacs use -lxml2?                                  ${HAVE_LIBXML2}"
  
  echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
  echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
@@@ -17465,7 -13518,35 +17506,7 @@@ test "${prefix}" != NONE &
  test "${exec_prefix}" != NONE &&
    exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`
  
 -# Now get this: Some word that is part of the ${srcdir} directory name
 -# or the ${configuration} value might, just might, happen to be an
 -# identifier like `sun4' or `i386' or something, and be predefined by
 -# the C preprocessor to some helpful value like 1, or maybe the empty
 -# string.  Needless to say consequent macro substitutions are less
 -# than conducive to the makefile finding the correct directory.
 -cpp_undefs="`echo $srcdir $configuration $canonical unix |
 -  sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
 -  -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g'`"
 -
 -## Check if the C preprocessor will convert `..' to `. .'.  If so, set
 -## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
 -## from Makefile.c can correctly provide the arg `-traditional' to the
 -## C preprocessor.
 -
 -cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 -/* end confdefs.h.  */
 -yes..yes
 -_ACEOF
 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 -  $EGREP "yes..yes" >/dev/null 2>&1; then :
 -  CPP_NEED_TRADITIONAL=no
 -else
 -  CPP_NEED_TRADITIONAL=yes
 -fi
 -rm -f conftest*
 -
 -
 -ac_config_files="$ac_config_files Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile.c:src/Makefile.in lwlib/Makefile lisp/Makefile leim/Makefile"
 +ac_config_files="$ac_config_files Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile test/automated/Makefile"
  
  ac_config_commands="$ac_config_commands default"
  
@@@ -17533,21 -13614,10 +17574,21 @@@ $as_echo "$as_me: WARNING: cache variab
       :end' >>confcache
  if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
    if test -w "$cache_file"; then
 -    test "x$cache_file" != "x/dev/null" &&
 +    if test "x$cache_file" != "x/dev/null"; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
  $as_echo "$as_me: updating cache $cache_file" >&6;}
 -    cat confcache >$cache_file
 +      if test ! -f "$cache_file" || test -h "$cache_file"; then
 +      cat confcache >"$cache_file"
 +      else
 +        case $cache_file in #(
 +        */* | ?:*)
 +        mv -f confcache "$cache_file"$$ &&
 +        mv -f "$cache_file"$$ "$cache_file" ;; #(
 +        *)
 +        mv -f confcache "$cache_file" ;;
 +      esac
 +      fi
 +    fi
    else
      { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
  $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@@ -17578,61 -13648,8 +17619,61 @@@ LIBOBJS=$ac_libobj
  LTLIBOBJS=$ac_ltlibobjs
  
  
 + if test -n "$EXEEXT"; then
 +  am__EXEEXT_TRUE=
 +  am__EXEEXT_FALSE='#'
 +else
 +  am__EXEEXT_TRUE='#'
 +  am__EXEEXT_FALSE=
 +fi
 +
 +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
 +  as_fn_error $? "conditional \"AMDEP\" was never defined.
 +Usually this means the macro was only invoked conditionally." "$LINENO" 5
 +fi
 +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
 +  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 +Usually this means the macro was only invoked conditionally." "$LINENO" 5
 +fi
 +
 +if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
 +  as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
 +Usually this means the macro was only invoked conditionally." "$LINENO" 5
 +fi
 +
 +    gl_libobjs=
 +    gl_ltlibobjs=
 +    if test -n "$gl_LIBOBJS"; then
 +      # Remove the extension.
 +      sed_drop_objext='s/\.o$//;s/\.obj$//'
 +      for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
 +        gl_libobjs="$gl_libobjs $i.$ac_objext"
 +        gl_ltlibobjs="$gl_ltlibobjs $i.lo"
 +      done
 +    fi
 +    gl_LIBOBJS=$gl_libobjs
 +
 +    gl_LTLIBOBJS=$gl_ltlibobjs
 +
 +
 +
 +    gltests_libobjs=
 +    gltests_ltlibobjs=
 +    if test -n "$gltests_LIBOBJS"; then
 +      # Remove the extension.
 +      sed_drop_objext='s/\.o$//;s/\.obj$//'
 +      for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do
 +        gltests_libobjs="$gltests_libobjs $i.$ac_objext"
 +        gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
 +      done
 +    fi
 +    gltests_LIBOBJS=$gltests_libobjs
 +
 +    gltests_LTLIBOBJS=$gltests_ltlibobjs
 +
  
 -: ${CONFIG_STATUS=./config.status}
 +
 +: "${CONFIG_STATUS=./config.status}"
  ac_write_fail=0
  ac_clean_files_save=$ac_clean_files
  ac_clean_files="$ac_clean_files $CONFIG_STATUS"
  IFS=" ""      $as_nl"
  
  # Find who we are.  Look in the path if we contain no directory separator.
 +as_myself=
  case $0 in #((
    *[\\/]* ) as_myself=$0 ;;
    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@@ -18040,8 -14056,8 +18081,8 @@@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wr
  # report actual input values of CONFIG_FILES etc. instead of their
  # values after options handling.
  ac_log="
 -This file was extended by emacs $as_me 23.2.92, which was
 -generated by GNU Autoconf 2.67.  Invocation command line was
 +This file was extended by emacs $as_me 24.0.50, which was
 +generated by GNU Autoconf 2.68.  Invocation command line was
  
    CONFIG_FILES    = $CONFIG_FILES
    CONFIG_HEADERS  = $CONFIG_HEADERS
@@@ -18106,8 -14122,8 +18147,8 @@@ _ACEO
  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
  ac_cs_version="\\
 -emacs config.status 23.2.92
 -configured by $0, generated by GNU Autoconf 2.67,
 +emacs config.status 24.0.50
 +configured by $0, generated by GNU Autoconf 2.68,
    with options \\"\$ac_cs_config\\"
  
  Copyright (C) 2010 Free Software Foundation, Inc.
@@@ -18117,8 -14133,6 +18158,8 @@@ gives unlimited permission to copy, dis
  ac_pwd='$ac_pwd'
  srcdir='$srcdir'
  INSTALL='$INSTALL'
 +MKDIR_P='$MKDIR_P'
 +AWK='$AWK'
  test -n "\$AWK" || AWK=awk
  _ACEOF
  
@@@ -18225,8 -14239,7 +18266,8 @@@ cat >>$CONFIG_STATUS <<_ACEOF || ac_wri
  #
  # INIT-COMMANDS
  #
 -GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"
 +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 +GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"
  
  _ACEOF
  
@@@ -18237,20 -14250,17 +18278,20 @@@ for ac_config_target in $ac_config_targ
  do
    case $ac_config_target in
      "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h:src/config.in" ;;
 +    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
      "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 -    "lib-src/Makefile.c") CONFIG_FILES="$CONFIG_FILES lib-src/Makefile.c:lib-src/Makefile.in" ;;
 +    "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
 +    "lib-src/Makefile") CONFIG_FILES="$CONFIG_FILES lib-src/Makefile" ;;
      "oldXMenu/Makefile") CONFIG_FILES="$CONFIG_FILES oldXMenu/Makefile" ;;
      "doc/emacs/Makefile") CONFIG_FILES="$CONFIG_FILES doc/emacs/Makefile" ;;
      "doc/misc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/misc/Makefile" ;;
      "doc/lispintro/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispintro/Makefile" ;;
      "doc/lispref/Makefile") CONFIG_FILES="$CONFIG_FILES doc/lispref/Makefile" ;;
 -    "src/Makefile.c") CONFIG_FILES="$CONFIG_FILES src/Makefile.c:src/Makefile.in" ;;
 +    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
      "lwlib/Makefile") CONFIG_FILES="$CONFIG_FILES lwlib/Makefile" ;;
      "lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;;
      "leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;;
 +    "test/automated/Makefile") CONFIG_FILES="$CONFIG_FILES test/automated/Makefile" ;;
      "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
  
    *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
  # after its creation but before its name has been assigned to `$tmp'.
  $debug ||
  {
 -  tmp=
 +  tmp= ac_tmp=
    trap 'exit_status=$?
 -  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 +  : "${ac_tmp:=$tmp}"
 +  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
  ' 0
    trap 'as_fn_exit 1' 1 2 13 15
  }
  
  {
    tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
 -  test -n "$tmp" && test -d "$tmp"
 +  test -d "$tmp"
  }  ||
  {
    tmp=./conf$$-$RANDOM
    (umask 077 && mkdir "$tmp")
  } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
 +ac_tmp=$tmp
  
  # Set up the scripts for CONFIG_FILES section.
  # No need to generate them if there are no CONFIG_FILES.
  # This happens for instance with `./config.status config.h'.
  if test -n "$CONFIG_FILES"; then
  
 -
 +if $AWK 'BEGIN { getline <"/dev/null" }' </dev/null 2>/dev/null; then
 +  ac_cs_awk_getline=:
 +  ac_cs_awk_pipe_init=
 +  ac_cs_awk_read_file='
 +      while ((getline aline < (F[key])) > 0)
 +      print(aline)
 +      close(F[key])'
 +  ac_cs_awk_pipe_fini=
 +else
 +  ac_cs_awk_getline=false
 +  ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
 +  ac_cs_awk_read_file='
 +      print "|#_!!_#|"
 +      print "cat " F[key] " &&"
 +      '$ac_cs_awk_pipe_init
 +  # The final `:' finishes the AND list.
 +  ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
 +fi
  ac_cr=`echo X | tr X '\015'`
  # On cygwin, bash can eat \r inside `` if the user requested igncr.
  # But we know of no other shell where ac_cr would be empty at this
    ac_cs_awk_cr=$ac_cr
  fi
  
 -echo 'BEGIN {' >"$tmp/subs1.awk" &&
 +echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
  _ACEOF
  
 +# Create commands to substitute file output variables.
 +{
 +  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
 +  echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
 +  echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
 +  echo "_ACAWK" &&
 +  echo "_ACEOF"
 +} >conf$$files.sh &&
 +. ./conf$$files.sh ||
 +  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 +rm -f conf$$files.sh
  
  {
    echo "cat >conf$$subs.awk <<_ACEOF" &&
  rm -f conf$$subs.sh
  
  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
  _ACEOF
  sed -n '
  h
@@@ -18419,10 -14399,10 +18460,10 @@@ t deli
  rm -f conf$$subs.awk
  cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  _ACAWK
 -cat >>"\$tmp/subs1.awk" <<_ACAWK &&
 +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
    for (key in S) S_is_set[key] = 1
    FS = "\a"
 -
 +  \$ac_cs_awk_pipe_init
  }
  {
    line = $ 0
      } else
        len += 1 + keylen
    }
 -
 +  if (nfields == 3 && !substed) {
 +    key = field[2]
 +    if (F[key] != "" && line ~ /^[     ]*@.*@[         ]*$/) {
 +      \$ac_cs_awk_read_file
 +      next
 +    }
 +  }
    print line
  }
 -
 +\$ac_cs_awk_pipe_fini
  _ACAWK
  _ACEOF
  cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@@ -18457,7 -14431,7 +18498,7 @@@ if sed "s/$ac_cr//" < /dev/null > /dev/
    sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
  else
    cat
 -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
 +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
    || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
  _ACEOF
  
@@@ -18491,7 -14465,7 +18532,7 @@@ fi # test -n "$CONFIG_FILES
  # No need to generate them if there are no CONFIG_HEADERS.
  # This happens for instance with `./config.status Makefile'.
  if test -n "$CONFIG_HEADERS"; then
 -cat >"$tmp/defines.awk" <<\_ACAWK ||
 +cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
  BEGIN {
  _ACEOF
  
  # handling of long lines.
  ac_delim='%!_!# '
  for ac_last_try in false false :; do
 -  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
 -  if test -z "$ac_t"; then
 +  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
 +  if test -z "$ac_tt"; then
      break
    elif $ac_last_try; then
      as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
      for ac_f
      do
        case $ac_f in
 -      -) ac_f="$tmp/stdin";;
 +      -) ac_f="$ac_tmp/stdin";;
        *) # Look for the file first in the build tree, then in the source tree
         # (if the path is not absolute).  The absolute path cannot be DOS-style,
         # because $ac_f cannot contain `:'.
@@@ -18659,7 -14633,7 +18700,7 @@@ $as_echo "$as_me: creating $ac_file" >&
      esac
  
      case $ac_tag in
 -    *:-:* | *:-) cat >"$tmp/stdin" \
 +    *:-:* | *:-) cat >"$ac_tmp/stdin" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
      esac
      ;;
@@@ -18734,11 -14708,6 +18775,11 @@@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir
    [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
    *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
    esac
 +  ac_MKDIR_P=$MKDIR_P
 +  case $MKDIR_P in
 +  [\\/$]* | ?:[\\/]* ) ;;
 +  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
 +  esac
  _ACEOF
  
  cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@@ -18793,30 -14762,23 +18834,30 @@@ s&@builddir@&$ac_builddir&;t 
  s&@abs_builddir@&$ac_abs_builddir&;t t
  s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
  s&@INSTALL@&$ac_INSTALL&;t t
 +s&@MKDIR_P@&$ac_MKDIR_P&;t t
  $ac_datarootdir_hack
  "
 -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
 -  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
 +if $ac_cs_awk_getline; then
 +  $AWK -f "$ac_tmp/subs.awk"
 +else
 +  $AWK -f "$ac_tmp/subs.awk" | $SHELL
 +fi \
 +  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  
  test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
 -  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
 -  { ac_out=`sed -n '/^[        ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
 +  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
 +  { ac_out=`sed -n '/^[        ]*datarootdir[  ]*:*=/p' \
 +      "$ac_tmp/out"`; test -z "$ac_out"; } &&
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  which seems to be undefined.  Please make sure it is defined" >&5
  $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
  which seems to be undefined.  Please make sure it is defined" >&2;}
  
 -  rm -f "$tmp/stdin"
 +  rm -f "$ac_tmp/stdin"
    case $ac_file in
 -  -) cat "$tmp/out" && rm -f "$tmp/out";;
 -  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
 +  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
 +  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
    esac \
    || as_fn_error $? "could not create $ac_file" "$LINENO" 5
   ;;
    if test x"$ac_file" != x-; then
      {
        $as_echo "/* $configure_input  */" \
 -      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
 -    } >"$tmp/config.h" \
 +      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
 +    } >"$ac_tmp/config.h" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 -    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
 +    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
  $as_echo "$as_me: $ac_file is unchanged" >&6;}
      else
        rm -f "$ac_file"
 -      mv "$tmp/config.h" "$ac_file" \
 +      mv "$ac_tmp/config.h" "$ac_file" \
        || as_fn_error $? "could not create $ac_file" "$LINENO" 5
      fi
    else
      $as_echo "/* $configure_input  */" \
 -      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
 +      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
        || as_fn_error $? "could not create -" "$LINENO" 5
    fi
 +# Compute "$ac_file"'s index in $config_headers.
 +_am_arg="$ac_file"
 +_am_stamp_count=1
 +for _am_header in $config_headers :; do
 +  case $_am_header in
 +    $_am_arg | $_am_arg:* )
 +      break ;;
 +    * )
 +      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
 +  esac
 +done
 +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
 +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 +       X"$_am_arg" : 'X\(//\)[^/]' \| \
 +       X"$_am_arg" : 'X\(//\)$' \| \
 +       X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
 +$as_echo X"$_am_arg" |
 +    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)[^/].*/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\).*/{
 +          s//\1/
 +          q
 +        }
 +        s/.*/./; q'`/stamp-h$_am_stamp_count
   ;;
  
    :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
@@@ -18886,101 -14814,6 +18927,101 @@@ $as_echo "$as_me: executing $ac_file co
  
  
    case $ac_file$ac_mode in
 +    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
 +  # Autoconf 2.62 quotes --file arguments for eval, but not when files
 +  # are listed without --file.  Let's play safe and only enable the eval
 +  # if we detect the quoting.
 +  case $CONFIG_FILES in
 +  *\'*) eval set x "$CONFIG_FILES" ;;
 +  *)   set x $CONFIG_FILES ;;
 +  esac
 +  shift
 +  for mf
 +  do
 +    # Strip MF so we end up with the name of the file.
 +    mf=`echo "$mf" | sed -e 's/:.*$//'`
 +    # Check whether this is an Automake generated Makefile or not.
 +    # We used to match only the files named `Makefile.in', but
 +    # some people rename them; so instead we look at the file content.
 +    # Grep'ing the first line is not enough: some people post-process
 +    # each Makefile.in and add a new line on top of each file to say so.
 +    # Grep'ing the whole file is not good either: AIX grep has a line
 +    # limit of 2048, but all sed's we know have understand at least 4000.
 +    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
 +      dirpart=`$as_dirname -- "$mf" ||
 +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 +       X"$mf" : 'X\(//\)[^/]' \| \
 +       X"$mf" : 'X\(//\)$' \| \
 +       X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
 +$as_echo X"$mf" |
 +    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)[^/].*/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\).*/{
 +          s//\1/
 +          q
 +        }
 +        s/.*/./; q'`
 +    else
 +      continue
 +    fi
 +    # Extract the definition of DEPDIR, am__include, and am__quote
 +    # from the Makefile without running `make'.
 +    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
 +    test -z "$DEPDIR" && continue
 +    am__include=`sed -n 's/^am__include = //p' < "$mf"`
 +    test -z "am__include" && continue
 +    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
 +    # When using ansi2knr, U may be empty or an underscore; expand it
 +    U=`sed -n 's/^U = //p' < "$mf"`
 +    # Find all dependency output files, they are included files with
 +    # $(DEPDIR) in their names.  We invoke sed twice because it is the
 +    # simplest approach to changing $(DEPDIR) to its actual value in the
 +    # expansion.
 +    for file in `sed -n "
 +      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
 +       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
 +      # Make sure the directory exists.
 +      test -f "$dirpart/$file" && continue
 +      fdir=`$as_dirname -- "$file" ||
 +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 +       X"$file" : 'X\(//\)[^/]' \| \
 +       X"$file" : 'X\(//\)$' \| \
 +       X"$file" : 'X\(/\)' \| . 2>/dev/null ||
 +$as_echo X"$file" |
 +    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)[^/].*/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\/\)$/{
 +          s//\1/
 +          q
 +        }
 +        /^X\(\/\).*/{
 +          s//\1/
 +          q
 +        }
 +        s/.*/./; q'`
 +      as_dir=$dirpart/$fdir; as_fn_mkdir_p
 +      # echo "creating $dirpart/$file"
 +      echo '# dummy' > "$dirpart/$file"
 +    done
 +  done
 +}
 + ;;
      "default":C)
  
  ### Make the necessary directories, if they don't exist.
@@@ -18988,9 -14821,52 +19029,9 @@@ for dir in etc lisp ; d
    test -d ${dir} || mkdir ${dir}
  done
  
 -# Build src/Makefile from ${srcdir}/src/Makefile.c
 -# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
 -# This must be done after src/config.h is built, since we rely on that file.
 -
  echo creating src/epaths.h
  ${MAKE-make} epaths-force
  
 -# As of 2000-11-19, newest development versions of GNU cpp preprocess
 -# `..' to `. .'  unless invoked with -traditional
 -
 -if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
 -  CPPFLAGS="$CPPFLAGS -traditional"
 -fi
 -
 -echo creating lib-src/Makefile
 -( cd lib-src
 -  rm -f junk.c junk1.c junk2.c
 -  sed -e '/start of cpp stuff/q' \
 -      < Makefile.c > junk1.c
 -  sed -e '1,/start of cpp stuff/d'\
 -      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 -      < Makefile.c > junk.c
 -  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 -      sed -e 's/^ /   /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
 -  cat junk1.c junk2.c > Makefile.new
 -  rm -f junk.c junk1.c junk2.c
 -  chmod 444 Makefile.new
 -  mv -f Makefile.new Makefile
 -)
 -
 -echo creating src/Makefile
 -( cd src
 -  rm -f junk.c junk1.c junk2.c
 -  sed -e '/start of cpp stuff/q' \
 -      < Makefile.c > junk1.c
 -  sed -e '1,/start of cpp stuff/d'\
 -      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 -      < Makefile.c > junk.c
 -  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 -      sed -e 's/^ /   /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
 -  cat junk1.c junk2.c > Makefile.new
 -  rm -f junk.c junk1.c junk2.c
 -  chmod 444 Makefile.new
 -  mv -f Makefile.new Makefile
 -)
 -
  if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
    echo creating src/.gdbinit
    echo source $srcdir/src/.gdbinit > src/.gdbinit
@@@ -19035,3 -14911,4 +19076,3 @@@ if test -n "$ac_unrecognized_opts" && t
  $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
  fi
  
 -
diff --combined configure.in
index 315840e01462aeb26b45a684d5365d5302226130,dce2a6271c458b25b0197afee38617fe0b8f1c22..58e445b98a64d7460ed01e0ad9ff91f71a36895f
@@@ -2,9 -2,9 +2,9 @@@ dnl  Autoconf script for GNU Emac
  dnl To rebuild the `configure' script from this, execute the command
  dnl   autoconf
  dnl in the directory containing this script.
 +dnl If you changed any AC_DEFINES, also run autoheader.
  dnl
 -dnl  Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003,
 -dnl    2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +dnl Copyright (C) 1994-1996, 1999-2011  Free Software Foundation, Inc.
  dnl
  dnl  This file is part of GNU Emacs.
  dnl
@@@ -21,20 -21,15 +21,20 @@@ dn
  dnl  You should have received a copy of the GNU General Public License
  dnl  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
  
 -AC_PREREQ(2.62)
 -AC_INIT(emacs, 23.2.92)
 +AC_PREREQ(2.65)
 +AC_INIT(emacs, 24.0.50)
  AC_CONFIG_HEADER(src/config.h:src/config.in)
  AC_CONFIG_SRCDIR(src/lisp.h)
 +AM_INIT_AUTOMAKE
  
  dnl Support for --program-prefix, --program-suffix and
  dnl --program-transform-name options
  AC_ARG_PROGRAM
  
 +dnl It is important that variables on the RHS not be expanded here,
 +dnl hence the single quotes.  This is per the GNU coding standards, see
 +dnl (autoconf) Installation Directory Variables
 +dnl See also epaths.h below.
  lispdir='${datadir}/emacs/${version}/lisp'
  locallisppath='${datadir}/emacs/${version}/site-lisp:'\
  '${datadir}/emacs/site-lisp'
@@@ -44,6 -39,8 +44,6 @@@ archlibdir='${libexecdir}/emacs/${versi
  docdir='${datadir}/emacs/${version}/etc'
  gamedir='${localstatedir}/games/emacs'
  
 -gameuser=games
 -
  dnl OPTION_DEFAULT_OFF(NAME, HELP-STRING)
  dnl Create a new --with option that defaults to being disabled.
  dnl NAME is the base name of the option.  The shell variable with_NAME
@@@ -94,26 -91,10 +94,26 @@@ if test "${with_kerberos5}" != no; the
  fi
  
  OPTION_DEFAULT_OFF([hesiod],[support Hesiod to get the POP server host])
 +dnl FIXME hesiod support may not be present, so it seems like an error
 +dnl to define, or at least use, this unconditionally.
  if test "$with_hesiod" != no; then
    AC_DEFINE(HESIOD, 1, [Define to support using a Hesiod database to find the POP server.])
  fi
  
 +OPTION_DEFAULT_OFF([mmdf],[support MMDF mailboxes])
 +if test "$with_mmdf" != no; then
 +   AC_DEFINE(MAIL_USE_MMDF, 1, [Define to support MMDF mailboxes in movemail.])
 +fi
 +
 +OPTION_DEFAULT_OFF([mail-unlink],[unlink, rather than empty, mail spool after reading])
 +if test "$with_mail_unlink" != no; then
 +   AC_DEFINE(MAIL_UNLINK_SPOOL, 1, [Define to unlink, rather than empty, mail spool after reading.])
 +fi
 +
 +AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
 +    [string giving default POP mail host])],
 +    AC_DEFINE_UNQUOTED(MAILHOST, ["$withval"], [String giving fallback POP mail host.]))
 +
  OPTION_DEFAULT_ON([sound],[don't compile with sound support])
  
  OPTION_DEFAULT_ON([sync-input],[process async input synchronously])
@@@ -126,7 -107,7 +126,7 @@@ dnl This should be the last --with opti
  dnl added later on when we find the path of X, and it's best to
  dnl keep them together visually.
  AC_ARG_WITH([x-toolkit],[AS_HELP_STRING([--with-x-toolkit=KIT],
 - [use an X toolkit (KIT one of: yes, lucid, athena, motif, gtk, no)])],
 + [use an X toolkit (KIT one of: yes or gtk, gtk3, lucid or athena, motif, no)])],
  [       case "${withval}" in
            y | ye | yes )      val=gtk ;;
            n | no )            val=no  ;;
            a | at | ath | athe | athen | athena )      val=athena ;;
            m | mo | mot | moti | motif )       val=motif ;;
            g | gt | gtk  )     val=gtk ;;
 +          gtk3  )     val=gtk3 ;;
            * )
  AC_MSG_ERROR([`--with-x-toolkit=$withval' is invalid;
 -this option's value should be `yes', `no', `lucid', `athena', `motif' or `gtk'.
 -`yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
 +this option's value should be `yes', `no', `lucid', `athena', `motif', `gtk' or
 +`gtk3'.  `yes' and `gtk' are synonyms. `athena' and `lucid' are synonyms.])
            ;;
          esac
          with_x_toolkit=$val
@@@ -152,8 -132,6 +152,8 @@@ OPTION_DEFAULT_ON([tiff],[don't compil
  OPTION_DEFAULT_ON([gif],[don't compile with GIF image support])
  OPTION_DEFAULT_ON([png],[don't compile with PNG image support])
  OPTION_DEFAULT_ON([rsvg],[don't compile with SVG image support])
 +OPTION_DEFAULT_ON([xml2],[don't compile with XML parsing support])
 +OPTION_DEFAULT_ON([imagemagick],[don't compile with ImageMagick image support])
  
  OPTION_DEFAULT_ON([xft],[don't use XFT for anti aliased fonts])
  OPTION_DEFAULT_ON([libotf],[don't use libotf for OpenType font support])
@@@ -167,23 -145,20 +167,23 @@@ OPTION_DEFAULT_OFF([ns],[use nextstep (
  OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux console])
  OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
  OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
 +OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
 +OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
  
  ## For the times when you want to build Emacs but don't have
  ## a suitable makeinfo, and can live without the manuals.
  dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
  OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
  
 -dnl Can remove these in Emacs 24.
 -AC_ARG_WITH([gtk],,
 -  [AC_MSG_ERROR([--with-gtk has been removed.  Use --with-x-toolkit to
 -specify a toolkit.])],,)
 -
 -AC_ARG_WITH([gcc],,
 -  [AC_MSG_ERROR([--with-gcc has been removed.  Set the `CC' environment
 -variable to specify a compiler.])],,)
 +## This is an option because I do not know if all info/man support
 +## compressed files, nor how to test if they do so.
 +OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
 +if test $with_compress_info = yes; then
 +   GZIP_INFO=yes
 +else
 +   GZIP_INFO=
 +fi
 +AC_SUBST(GZIP_INFO)
  
  AC_ARG_WITH([pkg-config-prog],dnl
  [AS_HELP_STRING([--with-pkg-config-prog=PATH],
  CRT_DIR=
  AC_ARG_WITH([crt-dir],dnl
  [AS_HELP_STRING([--with-crt-dir=DIR],[directory containing crtn.o etc.
 -This option is only used on x86-64 and s390x GNU/Linux architectures.])])
 +The default is /usr/lib, or /usr/lib64 on some platforms.])])
  CRT_DIR="${with_crt_dir}"
  
 +AC_ARG_WITH(gameuser,dnl
 +[AS_HELP_STRING([--with-gameuser=USER],[user for shared game score files])])
 +test "X${with_gameuser}" != X && test "${with_gameuser}" != yes \
 +  && gameuser="${with_gameuser}"
 +test "X$gameuser" = X && gameuser=games
 +
  AC_ARG_WITH([gnustep-conf],dnl
  [AS_HELP_STRING([--with-gnustep-conf=PATH],[path to GNUstep.conf; default $GNUSTEP_CONFIG_FILE, or /etc/GNUstep/GNUstep.conf])])
  test "X${with_gnustep_conf}" != X && test "${with_gnustep_conf}" != yes && \
@@@ -311,16 -280,6 +311,16 @@@ if test x$ac_gc_check_cons_list != x ; 
  [Define this to check for errors in cons list.])
  fi
  
 +AC_ARG_ENABLE(use-lisp-union-type,
 +[AS_HELP_STRING([--enable-use-lisp-union-type],
 +                [use a union for the Lisp_Object data type.
 +              This is only useful for development for catching certain types of bugs.])],
 +if test "${enableval}" != "no"; then
 +   AC_DEFINE(USE_LISP_UNION_TYPE, 1,
 +   [Define this to use a lisp union for the Lisp_Object data type.])
 +fi)
 +
 +
  AC_ARG_ENABLE(profiling,
  [AS_HELP_STRING([--enable-profiling],
                [build emacs with profiling support.
  [ac_enable_profiling="${enableval}"],[])
  if test x$ac_enable_profiling != x ; then
     PROFILING_CFLAGS="-DPROFILING=1 -pg"
 -   PROFILING_LDFLAGS="-pg"
  else
     PROFILING_CFLAGS=
 -   PROFILING_LDFLAGS=
  fi
 +AC_SUBST(PROFILING_CFLAGS)
  
  AC_ARG_ENABLE(autodepend,
  [AS_HELP_STRING([--enable-autodepend],
@@@ -399,7 -359,7 +399,7 @@@ dnl quotation begin
  ### the appropriate operating system and machine description files.
  
  ### You would hope that you could choose an m/*.h file pretty much
 -### based on the machine portion of the configuration name, and an s-
 +### based on the machine portion of the configuration name, and an s/*.h
  ### file based on the operating system portion.  However, it turns out
  ### that each m/*.h file is pretty manufacturer-specific - for
  ### example mips.h is MIPS
  ### /etc/MACHINES doesn't say anything about version numbers, be
  ### prepared to handle anything reasonably.  If version numbers
  ### matter, be sure /etc/MACHINES says something about it.
 -###
 -### Eric Raymond says we should accept strings like "sysvr4" to mean
 -### "System V Release 4"; he writes, "The old convention encouraged
 -### confusion between `system' and `release' levels'."
  
  machine='' opsys='' unported=no
  case "${canonical}" in
  
 +  ## GNU/Linux ports
 +  *-*-linux-gnu*)
 +    opsys=gnu-linux
 +    case ${canonical} in
 +      alpha*) machine=alpha ;;
 +      s390-*) machine=ibms390 ;;
 +      s390x-*)        machine=ibms390x ;;
 +      powerpc*)       machine=macppc ;;
 +      sparc*) machine=sparc ;;
 +      ia64*)  machine=ia64 ;;
 +      m68k*)  machine=m68k ;;
 +      x86_64*)        machine=amdx86-64 ;;
 +    esac
 +  ;;
 +
    ## FreeBSD ports
    *-*-freebsd* )
      opsys=freebsd
      case "${canonical}" in
 -      alpha*-*-freebsd*)      machine=alpha ;;
 -      arm*-*-freebsd*)          machine=arm ;;
 -      ia64-*-freebsd*)                machine=ia64 ;;
 -      sparc-*-freebsd*)         machine=sparc ;;
 -      sparc64-*-freebsd*)     machine=sparc ;;
 -      powerpc-*-freebsd*)     machine=macppc ;;
 -      i[3456]86-*-freebsd*)   machine=intel386 ;;
 -      amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
 +      alpha*)           machine=alpha ;;
 +      amd64-*|x86_64-*) machine=amdx86-64 ;;
 +      ia64-*)           machine=ia64 ;;
 +      i[3456]86-*)      machine=intel386 ;;
 +      powerpc-*)        machine=macppc ;;
 +      sparc-*)          machine=sparc ;;
 +      sparc64-*)        machine=sparc ;;
      esac
    ;;
  
    *-*-kfreebsd*gnu* )
      opsys=gnu-kfreebsd
      case "${canonical}" in
 -      alpha*-*-kfreebsd*)     machine=alpha ;;
 -      ia64-*-kfreebsd*)               machine=ia64 ;;
 -      sparc-*-kfreebsd*)      machine=sparc ;;
 -      sparc64-*-kfreebsd*)    machine=sparc ;;
 -      powerpc-*-kfreebsd*)    machine=macppc ;;
 -      i[3456]86-*-kfreebsd*)  machine=intel386 ;;
 -      amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
 +      alpha*)           machine=alpha ;;
 +      amd64-*|x86_64-*) machine=amdx86-64 ;;
 +      ia64-*)           machine=ia64 ;;
 +      i[3456]86-*)      machine=intel386 ;;
 +      powerpc-*)        machine=macppc ;;
 +      sparc-*)          machine=sparc ;;
 +      sparc64-*)        machine=sparc ;;
      esac
    ;;
  
    ## NetBSD ports
    *-*-netbsd* )
      opsys=netbsd
 -    if test -f /usr/lib/crti.o; then]
 -dnl The close and open brackets here are because this section is quoted --
 -dnl see the `changequote' comment above.
 -      AC_DEFINE(HAVE_CRTIN, [], [Define to 1 if you have /usr/lib/crti.o.])
 -[   fi
 -
      case "${canonical}" in
 -      alpha*-*-netbsd*)       machine=alpha ;;
 -      i[3456]86-*-netbsd*) machine=intel386 ;;
 -      mips-*-netbsd*) machine=mips ;;
 -      mipsel-*-netbsd*)       machine=mips ;;
 -      mipseb-*-netbsd*)       machine=mips ;;
 -      powerpc-*-netbsd*) machine=macppc ;;
 -      sparc*-*-netbsd*)       machine=sparc ;;
 -      vax-*-netbsd*)  machine=vax ;;
 -      arm-*-netbsd*)  machine=arm ;;
 -      x86_64-*-netbsd*)       machine=amdx86-64 ;;
 -      hppa-*-netbsd*) machine=hp800 ;;
 -      m68k-*-netbsd*) machine=m68k ;;
 +      alpha*)      machine=alpha ;;
 +      x86_64-*)    machine=amdx86-64 ;;
 +      i[3456]86-*) machine=intel386 ;;
 +      m68k-*)      machine=m68k ;;
 +      powerpc-*)   machine=macppc ;;
 +      sparc*-)     machine=sparc ;;
 +      vax-*)       machine=vax ;;
      esac
    ;;
  
    *-*-openbsd* )
      opsys=openbsd
      case "${canonical}" in
 -      alpha*-*-openbsd*)      machine=alpha ;;
 -      arm-*-openbsd*)          machine=arm ;;
 -      i386-*-openbsd*)         machine=intel386 ;;
 -      powerpc-*-openbsd*)      machine=macppc ;;
 -      sparc*-*-openbsd*)       machine=sparc ;;
 -      vax-*-openbsd*)          machine=vax ;;
 -      x86_64-*-openbsd*)       machine=amdx86-64 ;;
 -      hppa-*-openbsd*)         machine=hp800 ;;
 -    esac
 -  ;;
 -
 -  ## LynxOS ports
 -  *-*-lynxos* )
 -    opsys=lynxos
 -    case "${canonical}" in
 -      i[3456]86-*-lynxos*) machine=intel386 ;;
 -      powerpc-*-lynxos*) machine=powerpc ;;
 +      alpha*)    machine=alpha ;;
 +      x86_64-*)  machine=amdx86-64 ;;
 +      i386-*)    machine=intel386 ;;
 +      powerpc-*) machine=macppc ;;
 +      sparc*)    machine=sparc ;;
 +      vax-*)     machine=vax ;;
      esac
    ;;
  
 -  alpha*-*-linux-gnu* )
 -    machine=alpha opsys=gnu-linux
 -  ;;
 -
 -  arm*-*-linux-gnu* )
 -    machine=arm opsys=gnu-linux
 -  ;;
 -
    ## Apple Darwin / Mac OS X
    *-apple-darwin* )
      case "${canonical}" in
  
    ## HP 9000 series 700 and 800, running HP/UX
    hppa*-hp-hpux10.2* )
 -    machine=hp800 opsys=hpux10-20
 +    opsys=hpux10-20
    ;;
    hppa*-hp-hpux1[1-9]* )
 -    machine=hp800 opsys=hpux11
 +    opsys=hpux11
      CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS"
    ;;
  
    ia64*-hp-hpux1[1-9]* )
      machine=hp800 opsys=hpux11
 +    ## FIXME.  Peter O'Gorman reports that dumping using unexelf.o doesn't
 +    ## work either: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6811
 +    CANNOT_DUMP=yes
    ;;
  
    hppa*-*-linux-gnu* )
    ;;
  
    ## IBM machines
 -  s390-*-linux-gnu* )
 -    machine=ibms390 opsys=gnu-linux
 -  ;;
 -  s390x-*-linux-gnu* )
 -    machine=ibms390x opsys=gnu-linux
 -  ;;
 -  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
 +  rs6000-ibm-aix4.[23]* )
      machine=ibmrs6000 opsys=aix4-2
    ;;
 -  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
 +  powerpc-ibm-aix4.[23]*  )
      machine=ibmrs6000 opsys=aix4-2
    ;;
 -  rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
 +  rs6000-ibm-aix[56]* )
      machine=ibmrs6000 opsys=aix4-2
    ;;
 -  rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
 +  powerpc-ibm-aix[56]*  )
      machine=ibmrs6000 opsys=aix4-2
    ;;
  
 -  ## Macintosh PowerPC
 -  powerpc*-*-linux-gnu* )
 -    machine=macppc opsys=gnu-linux
 -  ;;
 -
    ## Silicon Graphics machines
    ## Iris 4D
    mips-sgi-irix6.5 )
    ;;
  
    ## Suns
 -  sparc-*-linux-gnu* | sparc64-*-linux-gnu* )
 -    machine=sparc opsys=gnu-linux
 -  ;;
 -
    *-sun-solaris* \
      | i[3456]86-*-solaris2* | i[3456]86-*-sunos5* \
 -    | x86_64-*-solaris2*    | x86_64-*-sunos5*    \
 -    | powerpc*-*-solaris2*  | rs6000-*-solaris2*)
 +    | x86_64-*-solaris2*    | x86_64-*-sunos5*)
      case "${canonical}" in
        i[3456]86-*-* )     machine=intel386 ;;
        amd64-*-*|x86_64-*-*)   machine=amdx86-64 ;;
 -      powerpc* | rs6000* )  machine=ibmrs6000 ;;
        sparc* )                machine=sparc ;;
        * )             unported=yes ;;
      esac
      case "${canonical}" in
 -      *-sunos5.3* | *-solaris2.3* )
 -              opsys=sol2-3
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              ;;
 -      *-sunos5.4* | *-solaris2.4* )
 -              opsys=sol2-4
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              RANLIB="ar -ts"
 -              ;;
 -      *-sunos5.5* | *-solaris2.5* )
 -              opsys=sol2-5
 -              NON_GNU_CPP=/usr/ccs/lib/cpp
 -              RANLIB="ar -ts"
 -              ;;
        *-sunos5.6* | *-solaris2.6* )
                opsys=sol2-6
                NON_GNU_CPP=/usr/ccs/lib/cpp
      esac
    ;;
  
 -  ## IA-64
 -  ia64*-*-linux* )
 -    machine=ia64 opsys=gnu-linux
 -  ;;
 -
 -  ## Intel 386 machines where we don't care about the manufacturer
 +  ## Intel 386 machines where we don't care about the manufacturer.
    i[3456]86-*-* )
      machine=intel386
      case "${canonical}" in
        *-darwin* )               opsys=darwin
                                  CPP="${CC-cc} -E -no-cpp-precomp"
                                ;;
 -      *-linux-gnu* )          opsys=gnu-linux ;;
        *-sysv4.2uw* )          opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
        *-sysv5uw* )            opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
        *-sysv5OpenUNIX* )      opsys=unixware; NON_GNU_CPP=/lib/cpp ;;
      esac
    ;;
  
 -  ## m68k Linux-based GNU system
 -  m68k-*-linux-gnu* )
 -    machine=m68k opsys=gnu-linux
 -  ;;
 -
 -  ## Mips Linux-based GNU system
 -  mips-*-linux-gnu* | mipsel-*-linux-gnu* \
 -    | mips64-*-linux-gnu* | mips64el-*-linux-gnu* )
 -    machine=mips opsys=gnu-linux
 -  ;;
 -
 -  ## AMD x86-64 Linux-based GNU system
 -  x86_64-*-linux-gnu* )
 -    machine=amdx86-64 opsys=gnu-linux
 -  ;;
 -
 -  ## Tensilica Xtensa Linux-based GNU system
 -  xtensa*-*-linux-gnu* )
 -    machine=xtensa opsys=gnu-linux
 -    ;;
 -
 -  ## SuperH Linux-based GNU system
 -  sh[34]*-*-linux-gnu* )
 -    machine=sh3 opsys=gnu-linux
 -  ;;
 -
    * )
      unported=yes
    ;;
@@@ -618,6 -658,22 +618,6 @@@ esa
  if test x"${opsys}" = x; then
    case "${canonical}" in
      *-gnu* )                          opsys=gnu ;;
 -    *-sysv4.2uw* )                    opsys=unixware ;;
 -    *-sysv5uw* )                      opsys=unixware ;;
 -    *-sysv5OpenUNIX* )                        opsys=unixware ;;
 -    *-sysv4.1* | *-sysvr4.1* )
 -      NON_GNU_CPP=/usr/lib/cpp
 -      opsys=usg5-4 ;;
 -    *-sysv4.[2-9]* | *-sysvr4.[2-9]* )
 -      if [ x$NON_GNU_CPP = x ]; then
 -        if [ -f /usr/ccs/lib/cpp ]; then
 -          NON_GNU_CPP=/usr/ccs/lib/cpp
 -        else
 -          NON_GNU_CPP=/lib/cpp
 -        fi
 -      fi
 -      opsys=usg5-4-2 ;;
 -    *-sysv4* | *-sysvr4* )            opsys=usg5-4 ;;
      * )
        unported=yes
      ;;
@@@ -632,11 -688,7 +632,11 @@@ if test $unported = yes; the
  Check `etc/MACHINES' for recognized configuration names.])
  fi
  
 -machfile="m/${machine}.h"
 +if test -n "$machine"; then
 +  machfile="m/${machine}.h"
 +else
 +  machfile=
 +fi
  opsysfile="s/${opsys}.h"
  
  
@@@ -648,10 -700,6 +648,10 @@@ SPECIFIED_CFLAGS="$CFLAGS
  
  dnl Sets GCC=yes if using gcc.
  AC_PROG_CC
 +AM_PROG_CC_C_O
 +
 +# Initialize gnulib right after verifying that the C compiler works.
 +gl_EARLY
  
  # On Suns, sometimes $CPP names a directory.
  if test -n "$CPP" && test -d "$CPP"; then
@@@ -693,12 -741,19 +693,12 @@@ the
    CC="$NON_GNU_CC"
  fi
  
 -if test x$GCC = xyes && test "x$GCC_TEST_OPTIONS" != x
 -then
 -  CC="$CC $GCC_TEST_OPTIONS"
 -fi
 -
 -if test x$GCC = x && test "x$NON_GCC_TEST_OPTIONS" != x
 -then
 -  CC="$CC $NON_GCC_TEST_OPTIONS"
 +if test x$GCC = xyes; then
 +  test "x$GCC_TEST_OPTIONS" != x && CC="$CC $GCC_TEST_OPTIONS"
 +else
 +  test "x$NON_GCC_TEST_OPTIONS" != x && CC="$CC $NON_GCC_TEST_OPTIONS"
  fi
  
 -dnl checks for Unix variants
 -AC_USE_SYSTEM_EXTENSIONS
 -
  ### Use -Wno-pointer-sign if the compiler supports it
  AC_MSG_CHECKING([whether gcc understands -Wno-pointer-sign])
  SAVE_CFLAGS="$CFLAGS"
@@@ -725,58 -780,15 +725,58 @@@ CFLAGS="$SAVE_CFLAGS
  unset has_option
  unset SAVE_CFLAGS
  
 +### Use -Wold-style-definition if the compiler supports it
 +# This can be removed when conversion to standard C is finished.
 +AC_MSG_CHECKING([whether gcc understands -Wold-style-definition])
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wold-style-definition"
 +AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wold-style-definition $C_WARNINGS_SWITCH"
 +fi
 +AC_MSG_RESULT($has_option)
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +### Use -Wimplicit-function-declaration if the compiler supports it
 +AC_MSG_CHECKING([whether gcc understands -Wimplicit-function-declaration])
 +SAVE_CFLAGS="$CFLAGS"
 +CFLAGS="$CFLAGS -Wimplicit-function-declaration"
 +AC_TRY_COMPILE([], [], has_option=yes, has_option=no,)
 +if test $has_option = yes; then
 +   C_WARNINGS_SWITCH="-Wimplicit-function-declaration $C_WARNINGS_SWITCH"
 +fi
 +AC_MSG_RESULT($has_option)
 +CFLAGS="$SAVE_CFLAGS"
 +unset has_option
 +unset SAVE_CFLAGS
 +
 +AC_SUBST(C_WARNINGS_SWITCH)
 +
 +
  #### Some other nice autoconf tests.
  
  dnl checks for programs
 -AC_PROG_LN_S
  AC_PROG_CPP
  AC_PROG_INSTALL
  if test "x$RANLIB" = x; then
    AC_PROG_RANLIB
  fi
 +
 +## Although we're running on an amd64 kernel, we're actually compiling for
 +## the x86 architecture.  The user should probably have provided an
 +## explicit --build to `configure', but if everything else than the kernel
 +## is running in i386 mode, we can help them out.
 +if test "$machine" = "amdx86-64"; then
 +  AC_CHECK_DECL([i386])
 +  if test "$ac_cv_have_decl_i386" = "yes"; then
 +    canonical=`echo "$canonical" | sed -e 's/^amd64/i386/' -e 's/^x86_64/i386/'`
 +    machine=intel386
 +    machfile="m/${machine}.h"
 +  fi
 +fi
 +
  AC_PATH_PROG(INSTALL_INFO, install-info)
  AC_PATH_PROG(INSTALL_INFO, install-info,, /usr/sbin)
  AC_PATH_PROG(INSTALL_INFO, install-info,:, /sbin)
  ## should test for it as it does for any other build requirement.
  ## We use the presence of $srcdir/info/emacs to distinguish a release,
  ## with pre-built manuals, from a Bazaar checkout.
 +HAVE_MAKEINFO=yes
 +
  if test "$MAKEINFO" = "no"; then
 +  MAKEINFO=makeinfo
    if test "x${with_makeinfo}" = "xno"; then
 -    MAKEINFO=off
 -  elif ! test -e $srcdir/info/emacs; then
 +    HAVE_MAKEINFO=no
 +  elif test ! -e $srcdir/info/emacs; then
      AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
  source tree does not seem to have pre-built manuals in the `info' directory.
  Either install a suitable version of makeinfo, or re-run configure
  with the `--without-makeinfo' option to build without the manuals.] )
    fi
  fi
 +AC_SUBST(HAVE_MAKEINFO)
  
  dnl Add our options to ac_link now, after it is set up.
  
 -if test x$GCC = xyes && test "x$GCC_LINK_TEST_OPTIONS" != x
 -then
 -  ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
 -fi
 -
 -if test x$GCC = x && test "x$NON_GCC_LINK_TEST_OPTIONS" != x
 -then
 -  ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
 +if test x$GCC = xyes; then
 +  test "x$GCC_LINK_TEST_OPTIONS" != x && \
 +    ac_link="$ac_link $GCC_LINK_TEST_OPTIONS"
 +else
 +  test "x$NON_GCC_LINK_TEST_OPTIONS" != x && \
 +    ac_link="$ac_link $NON_GCC_LINK_TEST_OPTIONS"
  fi
  
  dnl We need -znocombreloc if we're using a relatively recent GNU ld.
@@@ -834,170 -844,160 +834,170 @@@ dnl Treat GCC specially since it just g
  dnl if not built to support GNU ld.
  
  late_LDFLAGS=$LDFLAGS
 -if test "$GCC" = yes; then
 +if test x$GCC = xyes; then
    LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
  else
    LDFLAGS="$LDFLAGS -znocombreloc"
  fi
  
  AC_MSG_CHECKING([for -znocombreloc])
 -AC_LINK_IFELSE([main(){return 0;}],
 +AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
    [AC_MSG_RESULT(yes)],
    LDFLAGS=$late_LDFLAGS
    [AC_MSG_RESULT(no)])
  
 -#### Extract some information from the operating system and machine files.
 -
 -AC_CHECKING([the machine- and system-dependent files to find out
 - - which libraries the lib-src programs will want, and
 - - whether the GNU malloc routines are usable])
 -
 -### First figure out CFLAGS (which we use for running the compiler here)
 -### and REAL_CFLAGS (which we use for real compilation).
 -### The two are the same except on a few systems, where they are made
 -### different to work around various lossages.  For example,
 -### GCC 2.5 on GNU/Linux needs them to be different because it treats -g
 -### as implying static linking.
  
 -### If the CFLAGS env var is specified, we use that value
 -### instead of the default.
 +# The value of CPP is a quoted variable reference, so we need to do this
 +# to get its actual value...
 +CPP=`eval "echo $CPP"`
  
 -### It's not important that this name contain the PID; you can't run
 -### two configures in the same directory and have anything work
 -### anyway.
 -tempcname="conftest.c"
  
 -echo '
 -#include "'${srcdir}'/src/'${opsysfile}'"
 -#include "'${srcdir}'/src/'${machfile}'"
 -#ifndef LIBS_MACHINE
 -#define LIBS_MACHINE
 -#endif
 -#ifndef LIBS_SYSTEM
 -#define LIBS_SYSTEM
 -#endif
 -#ifndef C_SWITCH_SYSTEM
 -#define C_SWITCH_SYSTEM
 -#endif
 -#ifndef C_SWITCH_MACHINE
 -#define C_SWITCH_MACHINE
 -#endif
 -configure___ libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
 -configure___ c_switch_system=C_SWITCH_SYSTEM
 -configure___ c_switch_machine=C_SWITCH_MACHINE
 -
 -#ifndef LIB_X11_LIB
 -#define LIB_X11_LIB -lX11
 -#endif
 +dnl The function dump-emacs will not be defined and temacs will do
 +dnl (load "loadup") automatically unless told otherwise.
 +test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
 +case "$opsys" in
 +  your-opsys-here) CANNOT_DUMP=yes ;;
 +esac
  
 -#ifndef LIBX11_SYSTEM
 -#define LIBX11_SYSTEM
 -#endif
 -configure___ LIBX=LIB_X11_LIB LIBX11_SYSTEM
 +test "$CANNOT_DUMP" = "yes" && \
 +  AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.])
  
 -#ifdef UNEXEC
 -configure___ unexec=UNEXEC
 -#else
 -configure___ unexec=unexec.o
 -#endif
 +AC_SUBST(CANNOT_DUMP)
  
 -#ifdef SYSTEM_MALLOC
 -configure___ system_malloc=yes
 -#else
 -configure___ system_malloc=no
 -#endif
  
 -#ifdef USE_MMAP_FOR_BUFFERS
 -configure___ use_mmap_for_buffers=yes
 -#else
 -configure___ use_mmap_for_buffers=no
 -#endif
 +UNEXEC_OBJ=unexelf.o
 +case "$opsys" in
 +  # MSDOS uses unexcoff.o
 +  # MSWindows uses unexw32.o
 +  aix4-2)
 +   UNEXEC_OBJ=unexaix.o
 +   ;;
 +  cygwin)
 +   UNEXEC_OBJ=unexcw.o
 +   ;;
 +  darwin)
 +   UNEXEC_OBJ=unexmacosx.o
 +   ;;
 +  hpux10-20 | hpux11)
 +   UNEXEC_OBJ=unexhp9k800.o
 +   ;;
 +  sol2-10)
 +   # Use the Solaris dldump() function, called from unexsol.c, to dump
 +   # emacs, instead of the generic ELF dump code found in unexelf.c.
 +   # The resulting binary has a complete symbol table, and is better
 +   # for debugging and other observability tools (debuggers, pstack, etc).
 +   #
 +   # If you encounter a problem using dldump(), please consider sending
 +   # a message to the OpenSolaris tools-linking mailing list:
 +   #      http://mail.opensolaris.org/mailman/listinfo/tools-linking
 +   #
 +   # It is likely that dldump() works with older Solaris too, but this has
 +   # not been tested, so for now this change is for Solaris 10 or newer.
 +   UNEXEC_OBJ=unexsol.o
 +   ;;
 +esac
  
 -#ifndef C_DEBUG_SWITCH
 -#define C_DEBUG_SWITCH -g
 -#endif
 +LD_SWITCH_SYSTEM=
 +case "$opsys" in
 +  freebsd)
 +   ## Let `ld' find image libs and similar things in /usr/local/lib.
 +   ## The system compiler, GCC, has apparently been modified to not
 +   ## look there, contrary to what a stock GCC would do.
 +   LD_SWITCH_SYSTEM=-L/usr/local/lib
 +   ;;
  
 -#ifndef C_OPTIMIZE_SWITCH
 -#ifdef __GNUC__
 -#define C_OPTIMIZE_SWITCH -O2
 -#else
 -#define C_OPTIMIZE_SWITCH -O
 -#endif
 -#endif
 +  gnu-linux)
 +   ## cpp test was "ifdef __mips__", but presumably this is equivalent...
 +   case $host_cpu in mips*) LD_SWITCH_SYSTEM="-G 0";; esac
 +   ;;
  
 -#ifndef C_WARNINGS_SWITCH
 -#define C_WARNINGS_SWITCH ${C_WARNINGS_SWITCH}
 -#endif
 +  netbsd)
 +   LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
 +   ;;
  
 -#ifndef LD_SWITCH_MACHINE
 -#define LD_SWITCH_MACHINE
 -#endif
 +  openbsd)
 +   ## Han Boetes <han@mijncomputer.nl> says this is necessary,
 +   ## otherwise Emacs dumps core on elf systems.
 +   LD_SWITCH_SYSTEM="-Z"
 +   ;;
 +esac
 +AC_SUBST(LD_SWITCH_SYSTEM)
 +
 +ac_link="$ac_link $LD_SWITCH_SYSTEM"
 +
 +## This setting of LD_SWITCH_SYSTEM references LD_SWITCH_X_SITE_AUX,
 +## which has not been defined yet.  When this was handled with cpp,
 +## it was expanded to null when configure sourced the s/*.h file.
 +## Thus LD_SWITCH_SYSTEM had different values in configure and the Makefiles.
 +## FIXME it would be cleaner to put this in LD_SWITCH_SYSTEM_TEMACS
 +## (or somesuch), but because it is supposed to go at the _front_
 +## of LD_SWITCH_SYSTEM, we cannot do that in exactly the same way.
 +## Compare with the gnu-linux case below, which added to the end
 +## of LD_SWITCH_SYSTEM, and so can instead go at the front of
 +## LD_SWITCH_SYSTEM_TEMACS.
 +case "$opsys" in
 +  netbsd|openbsd)
 +   ## _AUX_RPATH is like _AUX, but uses -rpath instead of -R.
 +   LD_SWITCH_SYSTEM="\$(LD_SWITCH_X_SITE_AUX_RPATH) $LD_SWITCH_SYSTEM" ;;
 +esac
  
 -#ifndef LD_SWITCH_SYSTEM
 -#define LD_SWITCH_SYSTEM
 -#endif
  
 -#ifndef LD_SWITCH_X_SITE_AUX
 -#define LD_SWITCH_X_SITE_AUX
 -#endif
 +C_SWITCH_MACHINE=
 +if test "$machine" = "alpha"; then
 +  AC_CHECK_DECL([__ELF__])
 +  if test "$ac_cv_have_decl___ELF__" = "yes"; then
 +    ## With ELF, make sure that all common symbols get allocated to in the
 +    ## data section.  Otherwise, the dump of temacs may miss variables in
 +    ## the shared library that have been initialized.  For example, with
 +    ## GNU libc, __malloc_initialized would normally be resolved to the
 +    ## shared library's .bss section, which is fatal.
 +    if test "x$GCC" = "xyes"; then
 +      C_SWITCH_MACHINE="-fno-common"
 +    else
 +      AC_MSG_ERROR([What gives?  Fix me if DEC Unix supports ELF now.])
 +    fi
 +  else
 +    UNEXEC_OBJ=unexalpha.o
 +  fi
 +fi
 +AC_SUBST(C_SWITCH_MACHINE)
  
 -configure___ ld_switch_system=LD_SWITCH_SYSTEM
 -configure___ ld_switch_machine=LD_SWITCH_MACHINE
 +AC_SUBST(UNEXEC_OBJ)
  
 -#ifdef THIS_IS_CONFIGURE
 +C_SWITCH_SYSTEM=
 +## Some programs in src produce warnings saying certain subprograms
 +## are too complex and need a MAXMEM value greater than 2000 for
 +## additional optimization.  --nils@exp-math.uni-essen.de
 +test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
 +  C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
 +## gnu-linux might need -D_BSD_SOURCE on old libc5 systems.
 +## It is redundant in glibc2, since we define _GNU_SOURCE.
 +AC_SUBST(C_SWITCH_SYSTEM)
  
 -/* Get the CFLAGS for tests in configure.  */
 -#ifdef __GNUC__
 -configure___ CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH '${SPECIFIED_CFLAGS}'
 -#else
 -configure___ CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 -#endif
  
 -#else /* not THIS_IS_CONFIGURE */
 +LIBS_SYSTEM=
 +case "$opsys" in
 +  ## IBM's X11R5 uses -lIM and -liconv in AIX 3.2.2.
 +  aix4-2) LIBS_SYSTEM="-lrts -lIM -liconv" ;;
  
 -/* Get the CFLAGS for real compilation.  */
 -#ifdef __GNUC__
 -configure___ REAL_CFLAGS=C_DEBUG_SWITCH C_OPTIMIZE_SWITCH C_WARNINGS_SWITCH ${PROFILING_CFLAGS} '${SPECIFIED_CFLAGS}'
 -#else
 -configure___ REAL_CFLAGS=C_DEBUG_SWITCH '${SPECIFIED_CFLAGS}'
 -#endif
 +  freebsd) LIBS_SYSTEM="-lutil" ;;
  
 -#endif /* not THIS_IS_CONFIGURE */
 -' > ${tempcname}
 +  hpux*) LIBS_SYSTEM="-l:libdld.sl" ;;
  
 -LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
 +  sol2*) LIBS_SYSTEM="-lsocket -lnsl -lkstat" ;;
  
 -# The value of CPP is a quoted variable reference, so we need to do this
 -# to get its actual value...
 -CPP=`eval "echo $CPP"`
 -[eval `${CPP} -Isrc ${tempcname} \
 -       | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 -if test "x$SPECIFIED_CFLAGS" = x; then
 -  eval `${CPP} -Isrc -DTHIS_IS_CONFIGURE ${tempcname} \
 -       | sed -n -e 's/^configure___ \([^=]*=\)\(.*\)$/\1"\2"/p'`
 -else
 -  REAL_CFLAGS="$CFLAGS"
 -fi]
 -rm ${tempcname}
 +  ## Motif needs -lgen.
 +  unixware) LIBS_SYSTEM="-lsocket -lnsl -lelf -lgen" ;;
 +esac
 +AC_SUBST(LIBS_SYSTEM)
  
 -ac_link="$ac_link $ld_switch_machine $ld_switch_system"
  
  ### Make sure subsequent tests use flags consistent with the build flags.
  
  if test x"${OVERRIDE_CPPFLAGS}" != x; then
    CPPFLAGS="${OVERRIDE_CPPFLAGS}"
  else
 -  CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
 +  CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
  fi
  
  dnl For AC_FUNC_GETLOADAVG, at least:
@@@ -1006,84 -1006,30 +1006,84 @@@ AC_CONFIG_LIBOBJ_DIR(src
  dnl Do this early because it can frob feature test macros for Unix-98 &c.
  AC_SYS_LARGEFILE
  
 -## Note: at present CRT_DIR is only used for amdx86-64 and ibms390x.
 -## Other machine types hard-code the location in src/[ms]/*.h.
 -case "${canonical}" in
 -  x86_64-*-linux-gnu* | s390x-*-linux-gnu* )
 -   ## On x86-64 and s390x GNU/Linux distributions, the standard library
 -   ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
 -   ## For anything else (eg /usr/lib32), it is up the user to specify
 -   ## the location (bug#5655).
 -   ## Test for crtn.o, not just the directory, because sometimes the
 -   ## directory exists but does not have the relevant files (bug#1287).
 -   ## If user specified a crt-dir, use that unconditionally.
 -   if test "X$CRT_DIR" = "X"; then
 -     CRT_DIR=/usr/lib
 -     test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
 -   fi
  
 -   test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
 -     AC_MSG_ERROR([crt*.o not found.  Use --with-crt-dir to specify the location.])
 -   ;;
 -esac
 -test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
 +## If user specified a crt-dir, use that unconditionally.
 +if test "X$CRT_DIR" = "X"; then
 +
 +  case "$canonical" in
 +    x86_64-*-linux-gnu* | s390x-*-linux-gnu*)
 +    ## On x86-64 and s390x GNU/Linux distributions, the standard library
 +    ## can be in a variety of places.  We only try /usr/lib64 and /usr/lib.
 +    ## For anything else (eg /usr/lib32), it is up the user to specify
 +    ## the location (bug#5655).
 +    ## Test for crtn.o, not just the directory, because sometimes the
 +    ## directory exists but does not have the relevant files (bug#1287).
 +    ## FIXME better to test for binary compatibility somehow.
 +    test -e /usr/lib64/crtn.o && CRT_DIR=/usr/lib64
 +    ;;
 +
 +    powerpc64-*-linux-gnu* | sparc64-*-linux-gnu*) CRT_DIR=/usr/lib64 ;;
 +  esac
 +
 +  case "$opsys" in
 +    hpux10-20) CRT_DIR=/lib ;;
 +  esac
 +
 +  ## Default is /usr/lib.
 +  test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
 +
 +else
 +
 +  ## Some platforms don't use any of these files, so it is not
 +  ## appropriate to put this test outside the if block.
 +  test -e $CRT_DIR/crtn.o || test -e $CRT_DIR/crt0.o || \
 +    AC_MSG_ERROR([crt*.o not found in specified location.])
 +
 +fi
 +
  AC_SUBST(CRT_DIR)
  
 -dnl This function defintion taken from Gnome 2.0
 +LIB_MATH=-lm
 +LIB_STANDARD=
 +START_FILES=
 +
 +case $opsys in
 +  cygwin )
 +    LIB_MATH=
 +    START_FILES='pre-crt0.o'
 +    ;;
 +  darwin )
 +    ## Adding -lm confuses the dynamic linker, so omit it.
 +    LIB_MATH=
 +    START_FILES='pre-crt0.o'
 +    ;;
 +  freebsd )
 +    LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
 +    ;;
 +  gnu-linux | gnu-kfreebsd )
 +    LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtn.o'
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt1.o $(CRT_DIR)/crti.o'
 +    ;;
 +  hpux10-20 | hpux11 )
 +    LIB_STANDARD=-lc
 +    START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o'
 +    ;;
 +  netbsd | openbsd )
 +    if test -f $CRT_DIR/crti.o; then
 +      LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o $(CRT_DIR)/crtn.o'
 +        START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crti.o $(CRT_DIR)/crtbegin.o'
 +    else
 +      LIB_STANDARD='-lgcc -lc -lgcc $(CRT_DIR)/crtend.o'
 +      START_FILES='pre-crt0.o $(CRT_DIR)/crt0.o $(CRT_DIR)/crtbegin.o'
 +    fi
 +    ;;
 +esac
 +
 +AC_SUBST(LIB_MATH)
 +AC_SUBST(START_FILES)
 +
 +dnl This function definition taken from Gnome 2.0
  dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
  dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
  dnl also defines GSTUFF_PKG_ERRORS on error
@@@ -1139,8 -1085,7 +1139,8 @@@ AC_DEFUN([PKG_CHECK_MODULES], 
  
  if test "${with_sound}" != "no"; then
    # Sound support for GNU/Linux and the free BSDs.
 -  AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h)
 +  AC_CHECK_HEADERS(machine/soundcard.h sys/soundcard.h soundcard.h,
 +    have_sound_header=yes)
    # Emulation library used on NetBSD.
    AC_CHECK_LIB(ossaudio, _oss_ioctl, LIBSOUND=-lossaudio, LIBSOUND=)
    AC_SUBST(LIBSOUND)
      CFLAGS_SOUND="$CFLAGS_SOUND $ALSA_CFLAGS"
      AC_DEFINE(HAVE_ALSA, 1, [Define to 1 if ALSA is available.])
    fi
 +
 +  dnl Define HAVE_SOUND if we have sound support.  We know it works and
 +  dnl compiles only on the specified platforms.  For others, it
 +  dnl probably doesn't make sense to try.
 +  if test x$have_sound_header = xyes || test $HAVE_ALSA = yes; then
 +     case "$opsys" in
 +       dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
 +       gnu-linux|freebsd|netbsd)
 +         AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
 +         ;;
 +     esac
 +  fi
 +
    AC_SUBST(CFLAGS_SOUND)
  fi
  
  dnl checks for header files
 -AC_CHECK_HEADERS(sys/select.h sys/timeb.h sys/time.h unistd.h utime.h \
 -  linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.h \
 -  termcap.h stdio_ext.h fcntl.h strings.h coff.h pty.h sys/mman.h \
 -  sys/param.h sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
 -  sys/utsname.h pwd.h utmp.h)
 +AC_CHECK_HEADERS(sys/select.h sys/time.h unistd.h utime.h \
 +  linux/version.h sys/systeminfo.h limits.h \
 +  stdio_ext.h fcntl.h coff.h pty.h sys/mman.h \
 +  sys/vlimit.h sys/resource.h locale.h sys/_mbstate_t.h \
 +  sys/utsname.h pwd.h utmp.h dirent.h util.h)
  
  AC_MSG_CHECKING(if personality LINUX32 can be set)
  AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
@@@ -1329,28 -1261,15 +1329,28 @@@ AH_TEMPLATE(POINTER_TYPE
            [Define as `void' if your compiler accepts `void *'; otherwise
             define as `char'.])dnl
  
 +dnl Check for endianess
 +AC_C_BIGENDIAN
  
 -
 -dnl This could be used for targets which can have both byte sexes.
 -dnl We could presumably replace the hardwired WORDS_BIG_ENDIAN generally.
 -dnl AC_C_BIGENDIAN
 +AC_CACHE_CHECK([for  __attribute__ ((__aligned__ (expr)))],
 +  [emacs_cv_attribute_aligned],
 +  [AC_COMPILE_IFELSE(
 +     [AC_LANG_PROGRAM(
 +      [[char __attribute__ ((__aligned__ (1 << 3))) c;]],
 +      [[]])],
 +     [emacs_cv_attribute_aligned=yes],
 +     [emacs_cv_attribute_aligned=no])])
 +if test $emacs_cv_attribute_aligned = yes; then
 +  AC_DEFINE([HAVE_ATTRIBUTE_ALIGNED], 1,
 +    [Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works.])
 +fi
  
  dnl check for Make feature
  AC_PROG_MAKE_SET
  
 +DEPFLAGS=
 +MKDEPDIR=":"
 +deps_frag=deps.mk
  dnl check for GNU Make if we have GCC and autodepend is on.
  if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
     AC_MSG_CHECKING([whether we are using GNU Make])
        AC_MSG_RESULT([$ac_enable_autodepend])
     fi
     if test $ac_enable_autodepend = yes; then
 -      AC_DEFINE(AUTO_DEPEND, 1, [Generate dependencies with gcc.])
 +      DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d'
 +      ## In parallel builds, another make might create depdir between
 +      ## the first test and mkdir, so stick another test on the end.
 +      ## Or use mkinstalldirs?  mkdir -p is not portable.
 +      MKDEPDIR='test -d ${DEPDIR} || mkdir ${DEPDIR} || test -d ${DEPDIR}'
 +      deps_frag=autodeps.mk
     fi
  fi
 +deps_frag=$srcdir/src/$deps_frag
 +AC_SUBST(MKDEPDIR)
 +AC_SUBST(DEPFLAGS)
 +AC_SUBST_FILE(deps_frag)
 +
  
  dnl checks for operating system services
  AC_SYS_LONG_FILE_NAMES
  ## Workaround for bug in autoconf <= 2.62.
  ## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
  ## No need to do anything special for these standard directories.
 -## This is an experiment, take it out if it causes problems.
  if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
  
     x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
  
  fi
  
 +LD_SWITCH_X_SITE_AUX=
 +LD_SWITCH_X_SITE_AUX_RPATH=
  if test "${x_libraries}" != NONE; then
    if test -n "${x_libraries}"; then
      LD_SWITCH_X_SITE=-L`echo ${x_libraries} | sed -e "s/:/ -L/g"`
      LD_SWITCH_X_SITE_AUX=-R`echo ${x_libraries} | sed -e "s/:/ -R/g"`
 +    LD_SWITCH_X_SITE_AUX_RPATH=`echo ${LD_SWITCH_X_SITE_AUX} | sed -e 's/-R/-Wl,-rpath,/'`
    fi
    x_default_search_path=""
    x_search_path=${x_libraries}
@@@ -1437,9 -1344,6 +1437,9 @@@ ${x_library}/X11/%T/%N%S
      fi
    done
  fi
 +AC_SUBST(LD_SWITCH_X_SITE_AUX)
 +AC_SUBST(LD_SWITCH_X_SITE_AUX_RPATH)
 +
  if test "${x_includes}" != NONE && test -n "${x_includes}"; then
    C_SWITCH_X_SITE=-I`echo ${x_includes} | sed -e "s/:/ -I/g"`
  fi
@@@ -1469,39 -1373,27 +1469,39 @@@ tmp_CPPFLAGS="$CPPFLAGS
  tmp_CFLAGS="$CFLAGS"
  CPPFLAGS="$CPPFLAGS -x objective-c"
  CFLAGS="$CFLAGS -x objective-c"
 +TEMACS_LDFLAGS2="\${LDFLAGS}"
 +dnl I don't think it's especially important, but src/Makefile.in
 +dnl (now the only user of ns_appdir) used to go to the trouble of adding a
 +dnl trailing "/" to it, so now we do it here.
  if test "${with_ns}" != no; then
    if test "${opsys}" = darwin; then
       NS_IMPL_COCOA=yes
       ns_appdir=`pwd`/nextstep/Emacs.app
 -     ns_appbindir=`pwd`/nextstep/Emacs.app/Contents/MacOS
 -     ns_appresdir=`pwd`/nextstep/Emacs.app/Contents/Resources
 +     ns_appbindir=${ns_appdir}/Contents/MacOS/
 +     ns_appresdir=${ns_appdir}/Contents/Resources
       ns_appsrc=${srcdir}/nextstep/Cocoa/Emacs.base
    elif test -f $GNUSTEP_CONFIG_FILE; then
       NS_IMPL_GNUSTEP=yes
       ns_appdir=`pwd`/nextstep/Emacs.app
 -     ns_appbindir=`pwd`/nextstep/Emacs.app
 -     ns_appresdir=`pwd`/nextstep/Emacs.app/Resources
 +     ns_appbindir=${ns_appdir}/
 +     ns_appresdir=${ns_appdir}/Resources
       ns_appsrc=${srcdir}/nextstep/GNUstep/Emacs.base
 -     dnl FIXME sourcing this 3 times in subshells seems inefficient.
 -     GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
 +     dnl FIXME sourcing this several times in subshells seems inefficient.
       GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
       GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
 -     CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     REAL_CFLAGS="$REAL_CFLAGS -I${GNUSTEP_SYSTEM_HEADERS}"
 -     LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES}"
 +     dnl I seemed to need these as well with GNUstep-startup 0.25.
 +     GNUSTEP_LOCAL_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_HEADERS)"
 +     GNUSTEP_LOCAL_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_LOCAL_LIBRARIES)"
 +     test "x${GNUSTEP_LOCAL_HEADERS}" != "x" && \
 +       GNUSTEP_LOCAL_HEADERS="-I${GNUSTEP_LOCAL_HEADERS}"
 +     test "x${GNUSTEP_LOCAL_LIBRARIES}" != "x" && \
 +       GNUSTEP_LOCAL_LIBRARIES="-L${GNUSTEP_LOCAL_LIBRARIES}"
 +     CPPFLAGS="$CPPFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
 +     CFLAGS="$CFLAGS -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
 +     LDFLAGS="$LDFLAGS -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES}"
 +     LIB_STANDARD=
 +     START_FILES=
 +     TEMACS_LDFLAGS2=
    fi
    AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
                  [AC_MSG_ERROR([`--with-ns' was specified, but the include
      NS_HAVE_NSINTEGER=no
    fi
  fi
 +AC_SUBST(TEMACS_LDFLAGS2)
 +
 +ns_frag=/dev/null
 +NS_OBJ=
 +NS_SUPPORT=
  if test "${HAVE_NS}" = yes; then
    window_system=nextstep
    with_xft=no
    if test "${EN_NS_SELF_CONTAINED}" = yes; then
       prefix=${ns_appresdir}
    fi
 +  ns_frag=$srcdir/src/ns.mk
 +  NS_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o fontset.o fringe.o image.o"
 +  NS_SUPPORT="\${lispsource}/emacs-lisp/easymenu.elc \${lispsource}/term/ns-win.elc"
  fi
  CFLAGS="$tmp_CFLAGS"
  CPPFLAGS="$tmp_CPPFLAGS"
 +AC_SUBST(NS_OBJ)
 +AC_SUBST(NS_SUPPORT)
 +AC_SUBST(LIB_STANDARD)
 +AC_SUBST_FILE(ns_frag)
  
  case "${window_system}" in
    x11 )
  dnl Dont set this for GTK.  A lot of tests below assumes Xt when
  dnl USE_X_TOOLKIT is set.
              USE_X_TOOLKIT=none ;;
 +      gtk3 ) with_gtk3=yes
 +             USE_X_TOOLKIT=none ;;
        no ) USE_X_TOOLKIT=none ;;
  dnl If user did not say whether to use a toolkit, make this decision later:
  dnl use the toolkit if we have gtk, or X11R5 or newer.
@@@ -1602,29 -1480,11 +1602,29 @@@ AC_CACHE_CHECK(whether __after_morecore
  if test $emacs_cv_var___after_morecore_hook = no; then
    doug_lea_malloc=no
  fi
 +
 +
 +dnl See comments in aix4-2.h about maybe using system malloc there.
 +system_malloc=no
 +case "$opsys" in
 +  ## darwin ld insists on the use of malloc routines in the System framework.
 +  darwin|sol2-10) system_malloc=yes ;;
 +esac
 +
  if test "${system_malloc}" = "yes"; then
 +  AC_DEFINE(SYSTEM_MALLOC, 1, [Define to use system malloc.])
    GNU_MALLOC=no
    GNU_MALLOC_reason="
      (The GNU allocators don't work with this system configuration.)"
 +  GMALLOC_OBJ=
 +  VMLIMIT_OBJ=
 +else
 +  test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
 +  VMLIMIT_OBJ=vm-limit.o
  fi
 +AC_SUBST(GMALLOC_OBJ)
 +AC_SUBST(VMLIMIT_OBJ)
 +
  if test "$doug_lea_malloc" = "yes" ; then
    if test "$GNU_MALLOC" = yes ; then
      GNU_MALLOC_reason="
    fi
    AC_DEFINE(DOUG_LEA_MALLOC, 1,
            [Define to 1 if you are using the GNU C Library.])
 +
 +  ## Use mmap directly for allocating larger buffers.
 +  ## FIXME this comes from src/s/{gnu,gnu-linux}.h:
 +  ## #ifdef DOUG_LEA_MALLOC; #undef REL_ALLOC; #endif
 +  ## Does the AC_FUNC_MMAP test below make this check unecessary?
 +  case "$opsys" in
 +    gnu*) REL_ALLOC=no ;;
 +  esac
  fi
  
  if test x"${REL_ALLOC}" = x; then
    REL_ALLOC=${GNU_MALLOC}
  fi
  
 -dnl For now, need to use an explicit `#define USE_MMAP_FOR_BUFFERS 1'
 -dnl the system configuration file (s/*.h) to turn the use of mmap
 -dnl in the relocating allocator on.
 +use_mmap_for_buffers=no
 +case "$opsys" in
 +  freebsd|irix6-5) use_mmap_for_buffers=yes ;;
 +esac
  
  AC_FUNC_MMAP
  if test $use_mmap_for_buffers = yes; then
 +  AC_DEFINE(USE_MMAP_FOR_BUFFERS, 1, [Define to use mmap to allocate buffer text.])
    REL_ALLOC=no
  fi
  
 -LIBS="$libsrc_libs $LIBS"
 +LIBS="$LIBS_SYSTEM $LIBS"
  
  dnl If found, this defines HAVE_LIBDNET, which m/pmax.h checks,
  dnl and also adds -ldnet to LIBS, which Autoconf uses for checks.
@@@ -1671,18 -1521,6 +1671,18 @@@ AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SI
  
  AC_CHECK_LIB(pthreads, cma_open)
  
 +## Note: when using cpp in s/aix4.2.h, this definition depended on
 +## HAVE_LIBPTHREADS.  That was not defined earlier in configure when
 +## the system file was sourced.  Hence the value of LIBS_SYSTEM
 +## added to LIBS in configure would never contain the pthreads part,
 +## but the value used in Makefiles might.  FIXME?
 +##
 +## -lpthreads seems to be necessary for Xlib in X11R6, and should
 +## be harmless on older versions of X where it happens to exist.
 +test "$opsys" = "aix4-2" && \
 +  test $ac_cv_lib_pthreads_cma_open = yes && \
 +  LIBS_SYSTEM="$LIBS_SYSTEM -lpthreads"
 +
  dnl Check for need for bigtoc support on IBM AIX
  
  case ${host_os} in
  # used for the tests that follow.  We set them back to REAL_CFLAGS and
  # REAL_CPPFLAGS later on.
  
 +REAL_CFLAGS="$CFLAGS"
  REAL_CPPFLAGS="$CPPFLAGS"
  
  if test "${HAVE_X11}" = "yes"; then
    DEFS="$C_SWITCH_X_SITE $DEFS"
    LDFLAGS="$LDFLAGS $LD_SWITCH_X_SITE"
 -  LIBS="$LIBX $LIBS"
 +  LIBS="-lX11 $LIBS"
    CFLAGS="$C_SWITCH_X_SITE $CFLAGS"
    CPPFLAGS="$C_SWITCH_X_SITE $CPPFLAGS"
  
@@@ -1785,15 -1622,6 +1785,15 @@@ fail
      AC_MSG_RESULT(6 or newer)
      AC_DEFINE(HAVE_X11R6, 1,
              [Define to 1 if you have the X11R6 or newer version of Xlib.])
 +    AC_DEFINE(HAVE_X_I18N, 1, [Define if you have usable i18n support.])
 +    ## inoue@ainet.or.jp says Solaris has a bug related to X11R6-style
 +    ## XIM support.
 +    case "$opsys" in
 +      sol2-*) : ;;
 +      *) AC_DEFINE(HAVE_X11R6_XIM, 1,
 +           [Define if you have usable X11R6-style XIM support.])
 +         ;;
 +    esac
    else
      AC_MSG_RESULT(before 6)
    fi
@@@ -1807,11 -1635,12 +1807,11 @@@ if test "${HAVE_X11}" = "yes" || test "
      RSVG_REQUIRED=2.11.0
      RSVG_MODULE="librsvg-2.0 >= $RSVG_REQUIRED"
  
 -    PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, :, :)
 +    PKG_CHECK_MODULES(RSVG, $RSVG_MODULE, HAVE_RSVG=yes, :)
      AC_SUBST(RSVG_CFLAGS)
      AC_SUBST(RSVG_LIBS)
  
 -    if test ".${RSVG_CFLAGS}" != "."; then
 -      HAVE_RSVG=yes
 +    if test $HAVE_RSVG = yes; then
        AC_DEFINE(HAVE_RSVG, 1, [Define to 1 if using librsvg.])
        CFLAGS="$CFLAGS $RSVG_CFLAGS"
        LIBS="$RSVG_LIBS $LIBS"
    fi
  fi
  
 +HAVE_IMAGEMAGICK=no
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_imagemagick}" != "no"; then
 +    IMAGEMAGICK_MODULE="Wand"
 +    PKG_CHECK_MODULES(IMAGEMAGICK, $IMAGEMAGICK_MODULE, HAVE_IMAGEMAGICK=yes, :)
 +    AC_SUBST(IMAGEMAGICK_CFLAGS)
 +    AC_SUBST(IMAGEMAGICK_LIBS)
 +
 +    if test $HAVE_IMAGEMAGICK = yes; then
 +      AC_DEFINE(HAVE_IMAGEMAGICK, 1, [Define to 1 if using imagemagick.])
 +      CFLAGS="$CFLAGS $IMAGEMAGICK_CFLAGS"
 +      LIBS="$IMAGEMAGICK_LIBS $LIBS"
 +      AC_CHECK_FUNCS(MagickExportImagePixels)
 +    fi
 +  fi
 +fi
 +
  
  HAVE_GTK=no
 +if test "${with_gtk3}" = "yes"; then
 +  GLIB_REQUIRED=2.6
 +  GTK_REQUIRED=2.90
 +  GTK_MODULES="gtk+-3.0 >= $GTK_REQUIRED glib-2.0 >= $GLIB_REQUIRED"
 +
 +  dnl Checks for libraries.
 +  PKG_CHECK_MODULES(GTK, $GTK_MODULES, pkg_check_gtk=yes, pkg_check_gtk=no)
 +  if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
 +     AC_MSG_ERROR($GTK_PKG_ERRORS)
 +  fi
 +fi
 +
 +if test "$pkg_check_gtk" != "yes"; then
 +  HAVE_GTK=no
  if test "${with_gtk}" = "yes" || test "$USE_X_TOOLKIT" = "maybe"; then
    GLIB_REQUIRED=2.6
    GTK_REQUIRED=2.6
       AC_MSG_ERROR($GTK_PKG_ERRORS)
    fi
  fi
 +fi
  
 -
 +GTK_OBJ=
  if test x"$pkg_check_gtk" = xyes; then
  
    AC_SUBST(GTK_CFLAGS)
    else
      HAVE_GTK=yes
      AC_DEFINE(USE_GTK, 1, [Define to 1 if using GTK.])
 +    GTK_OBJ=gtkutil.o
      USE_X_TOOLKIT=none
      if $PKG_CONFIG --atleast-version=2.10 gtk+-2.0; then
        :
    fi
  
  fi
 +AC_SUBST(GTK_OBJ)
  
  
  if test "${HAVE_GTK}" = "yes"; then
      with_toolkit_scroll_bars=yes
    fi
  
 -  dnl  Check if we can use multiple displays with this GTK version.
 -  dnl  If gdk_display_open exists, assume all others are there also.
 -  HAVE_GTK_MULTIDISPLAY=no
 -  AC_CHECK_FUNCS(gdk_display_open, HAVE_GTK_MULTIDISPLAY=yes)
 -  if test "${HAVE_GTK_MULTIDISPLAY}" = "yes"; then
 -    AC_DEFINE(HAVE_GTK_MULTIDISPLAY, 1,
 -              [Define to 1 if GTK can handle more than one display.])
 -  fi
 -
    dnl  Check if we have the old file selection dialog declared and
    dnl  in the link library.  In 2.x it may be in the library,
    dnl  but not declared if deprecated featured has been selected out.
                     HAVE_GTK_FILE_SELECTION=no, [AC_INCLUDES_DEFAULT
  #include <gtk/gtk.h>])
    if test "$HAVE_GTK_FILE_SELECTION" = yes; then
 -    AC_CHECK_FUNCS(gtk_file_selection_new, HAVE_GTK_FILE_SELECTION=yes,
 -                   HAVE_GTK_FILE_SELECTION=no)
 -  fi
 -
 -  dnl  Check if we have the new file chooser dialog
 -  HAVE_GTK_FILE_CHOOSER=no
 -  AC_CHECK_DECL(GTK_TYPE_FILE_CHOOSER, HAVE_GTK_FILE_CHOOSER=yes,
 -                HAVE_GTK_FILE_CHOOSER=no, [AC_INCLUDES_DEFAULT
 -#include <gtk/gtk.h>])
 -  if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 -    AC_CHECK_FUNCS(gtk_file_chooser_dialog_new, HAVE_GTK_FILE_CHOOSER=yes,
 -                   HAVE_GTK_FILE_CHOOSER=no)
 -  fi
 -
 -  if test "$HAVE_GTK_FILE_SELECTION" = yes \
 -     && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
 -    AC_DEFINE(HAVE_GTK_FILE_BOTH, 1,
 -              [Define to 1 if GTK has both file selection and chooser dialog.])
 +    AC_CHECK_FUNCS(gtk_file_selection_new)
    fi
  
    dnl Check if pthreads are available.  Emacs only needs this when using
    dnl gtk_file_chooser under Gnome.
 -  if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
      HAVE_GTK_AND_PTHREAD=no
      AC_CHECK_HEADERS(pthread.h)
      if test "$ac_cv_header_pthread_h"; then
        AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
                 [Define to 1 if you have GTK and pthread (-lpthread).])
      fi
 -  fi
 +
 +  dnl Check for functions introduced in 2.14 and later.
 +  AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \
 +                 gtk_dialog_get_action_area gtk_widget_get_sensitive \
 +                 gtk_widget_get_mapped gtk_adjustment_get_page_size \
 +                 gtk_orientable_set_orientation)
 +
  fi
  
  dnl D-Bus has been tested under GNU/Linux only.  Must be adapted for
  dnl other platforms.  Support for higher D-Bus versions than 1.0 is
  dnl also not configured.
  HAVE_DBUS=no
 +DBUS_OBJ=
  if test "${with_dbus}" = "yes"; then
     PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0, HAVE_DBUS=yes, HAVE_DBUS=no)
     if test "$HAVE_DBUS" = yes; then
       LIBS="$LIBS $DBUS_LIBS"
       AC_DEFINE(HAVE_DBUS, 1, [Define to 1 if using D-Bus.])
       AC_CHECK_FUNCS([dbus_watch_get_unix_fd])
 +     DBUS_OBJ=dbusbind.o
     fi
  fi
 +AC_SUBST(DBUS_OBJ)
  
  dnl GConf has been tested under GNU/Linux only.
  dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
@@@ -1972,32 -1785,9 +1972,32 @@@ if test "${HAVE_X11}" = "yes" && test "
     fi
  fi
  
 +dnl SELinux is available for GNU/Linux only.
 +HAVE_LIBSELINUX=no
 +LIBSELINUX_LIBS=
 +if test "${with_selinux}" = "yes"; then
 +   AC_CHECK_LIB([selinux], [lgetfilecon], HAVE_LIBSELINUX=yes, HAVE_LIBSELINUX=no)
 +   if test "$HAVE_LIBSELINUX" = yes; then
 +      AC_DEFINE(HAVE_LIBSELINUX, 1, [Define to 1 if using SELinux.])
 +      LIBSELINUX_LIBS=-lselinux
 +   fi
 +fi
 +AC_SUBST(LIBSELINUX_LIBS)
 +
 +HAVE_GNUTLS=no
 +if test "${with_gnutls}" = "yes" ; then
 +  PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.2.4], HAVE_GNUTLS=yes, HAVE_GNUTLS=no)
 +  if test "${HAVE_GNUTLS}" = "yes"; then
 +    AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
 +  fi
 +fi
 +AC_SUBST(LIBGNUTLS_LIBS)
 +AC_SUBST(LIBGNUTLS_CFLAGS)
 +
  dnl Do not put whitespace before the #include statements below.
  dnl Older compilers (eg sunos4 cc) choke on it.
  HAVE_XAW3D=no
 +LUCID_LIBW=
  if test x"${USE_X_TOOLKIT}" = xmaybe || test x"${USE_X_TOOLKIT}" = xLUCID; then
    if test "$with_xaw3d" != no; then
      AC_MSG_CHECKING(for xaw3d)
  #include <X11/Intrinsic.h>
  #include <X11/Xaw3d/Simple.h>],
        [],
-       emacs_cv_xaw3d=yes,
+       [AC_CHECK_LIB(Xaw3d, XawScrollbarSetThumb,
+                     emacs_cv_xaw3d=yes, emacs_cv_xaw3d=no)],
        emacs_cv_xaw3d=no)])
    else
      emacs_cv_xaw3d=no
      AC_MSG_RESULT([yes; using Lucid toolkit])
      USE_X_TOOLKIT=LUCID
      HAVE_XAW3D=yes
 +    LUCID_LIBW=-lXaw3d
      AC_DEFINE(HAVE_XAW3D, 1,
                [Define to 1 if you have the Xaw3d library (-lXaw3d).])
    else
      if test $emacs_cv_xaw = yes; then
        AC_MSG_RESULT([yes; using Lucid toolkit])
        USE_X_TOOLKIT=LUCID
 +      LUCID_LIBW=-lXaw
      elif test x"${USE_X_TOOLKIT}" = xLUCID; then
        AC_MSG_ERROR([Lucid toolkit requires X11/Xaw include files])
      else
  
  X_TOOLKIT_TYPE=$USE_X_TOOLKIT
  
 +LIBXTR6=
  if test "${USE_X_TOOLKIT}" != "none"; then
    AC_MSG_CHECKING(X11 toolkit version)
    AC_CACHE_VAL(emacs_cv_x11_toolkit_version_6,
@@@ -2057,11 -1845,6 +2058,11 @@@ fail
      AC_MSG_RESULT(6 or newer)
      AC_DEFINE(HAVE_X11XTR6, 1,
              [Define to 1 if you have the X11R6 or newer version of Xt.])
 +    LIBXTR6="-lSM -lICE"
 +    case "$opsys" in
 +      ## Use libw.a along with X11R6 Xt.
 +      unixware) LIBXTR6="$LIBXTR6 -lw" ;;
 +    esac
    else
      AC_MSG_RESULT(before 6)
    fi
@@@ -2077,18 -1860,6 +2078,18 @@@ dnl tranle@intellicorp.com says libXmu.
    AC_CHECK_LIB(Xmu, XmuConvertStandardSelection)
    test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
  fi
 +AC_SUBST(LIBXTR6)
 +
 +dnl FIXME the logic here seems weird, but this is what cpp was doing.
 +dnl Why not just test for libxmu in the normal way?
 +LIBXMU=-lXmu
 +case $opsys in
 +  ## These systems don't supply Xmu.
 +  hpux* | aix4-2 )
 +    test "X$ac_cv_lib_Xmu_XmuConvertStandardSelection" != "Xyes" && LIBXMU=
 +    ;;
 +esac
 +AC_SUBST(LIBXMU)
  
  # On Irix 6.5, at least, we need XShapeQueryExtension from -lXext for Xaw3D.
  if test "${HAVE_X11}" = "yes"; then
    fi
  fi
  
 +LIBXP=
  if test "${USE_X_TOOLKIT}" = "MOTIF"; then
    AC_CACHE_CHECK(for Motif version 2.1, emacs_cv_motif_version_2_1,
    [AC_TRY_COMPILE([#include <Xm/Xm.h>],
@@@ -2107,8 -1877,16 +2108,8 @@@ int x = 5
  Motif version prior to 2.1.
  #endif],
      emacs_cv_motif_version_2_1=yes, emacs_cv_motif_version_2_1=no)])
 -  HAVE_MOTIF_2_1=$emacs_cv_motif_version_2_1
    if test $emacs_cv_motif_version_2_1 = yes; then
 -    HAVE_LIBXP=no
 -    AC_DEFINE(HAVE_MOTIF_2_1, 1,
 -            [Define to 1 if you have Motif 2.1 or newer.])
 -    AC_CHECK_LIB(Xp, XpCreateContext, HAVE_LIBXP=yes)
 -    if test ${HAVE_LIBXP} = yes; then
 -      AC_DEFINE(HAVE_LIBXP, 1,
 -              [Define to 1 if you have the Xp library (-lXp).])
 -    fi
 +    AC_CHECK_LIB(Xp, XpCreateContext, LIBXP=-lXp)
    else
      AC_CACHE_CHECK(for LessTif where some systems put it, emacs_cv_lesstif,
      # We put this in CFLAGS temporarily to precede other -I options
@@@ -2261,9 -2039,17 +2262,9 @@@ if test "${HAVE_X11}" = "yes"; the
         HAVE_XFT=no
      fi
  
 -
 -    HAVE_FREETYPE=no
      ## We used to allow building with FreeType and without Xft.
      ## However, the ftx font backend driver is not in good shape.
 -    if test "${HAVE_XFT}" = "yes"; then
 -      dnl As we use Xft, we anyway use freetype.
 -      dnl There's no need for additional CFLAGS and LIBS.
 -      HAVE_FREETYPE=yes
 -      FONTCONFIG_CFLAGS=
 -      FONTCONFIG_LIBS=
 -    fi
 +    HAVE_FREETYPE=$HAVE_XFT
  
      HAVE_LIBOTF=no
      if test "${HAVE_FREETYPE}" = "yes"; then
@@@ -2302,7 -2088,6 +2303,7 @@@ els
      HAVE_LIBOTF=no
      HAVE_M17N_FLT=no
  fi
 +
  ### End of font-backend (under X11) section.
  
  AC_SUBST(FREETYPE_CFLAGS)
@@@ -2316,7 -2101,6 +2317,7 @@@ AC_SUBST(M17N_FLT_LIBS
  
  ### Use -lXpm if available, unless `--with-xpm=no'.
  HAVE_XPM=no
 +LIBXPM=
  if test "${HAVE_X11}" = "yes"; then
    if test "${with_xpm}" != "no"; then
      AC_CHECK_HEADER(X11/xpm.h,
@@@ -2340,14 -2124,11 +2341,14 @@@ no_return_alloc_pixel
  
    if test "${HAVE_XPM}" = "yes"; then
      AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm libary (-lXpm).])
 +    LIBXPM=-lXpm
    fi
  fi
 +AC_SUBST(LIBXPM)
  
  ### Use -ljpeg if available, unless `--with-jpeg=no'.
  HAVE_JPEG=no
 +LIBJPEG=
  if test "${HAVE_X11}" = "yes"; then
    if test "${with_jpeg}" != "no"; then
      dnl Checking for jpeglib.h can lose because of a redefinition of
          [AC_MSG_WARN([libjpeg found, but not version 6b or later])
          HAVE_JPEG=no])
    fi
 +  if test "${HAVE_JPEG}" = "yes"; then
 +    LIBJPEG=-ljpeg
 +  fi
  fi
 +AC_SUBST(LIBJPEG)
  
  ### Use -lpng if available, unless `--with-png=no'.
  HAVE_PNG=no
 +LIBPNG=
  if test "${HAVE_X11}" = "yes"; then
    if test "${with_png}" != "no"; then
      # Debian unstable as of July 2003 has multiple libpngs, and puts png.h
  
    if test "${HAVE_PNG}" = "yes"; then
      AC_DEFINE(HAVE_PNG, 1, [Define to 1 if you have the png library (-lpng).])
 +    LIBPNG="-lpng -lz -lm"
    fi
  fi
 +AC_SUBST(LIBPNG)
  
  ### Use -ltiff if available, unless `--with-tiff=no'.
  HAVE_TIFF=no
 +LIBTIFF=
  if test "${HAVE_X11}" = "yes"; then
    if test "${with_tiff}" != "no"; then
      AC_CHECK_HEADER(tiffio.h,
  
    if test "${HAVE_TIFF}" = "yes"; then
      AC_DEFINE(HAVE_TIFF, 1, [Define to 1 if you have the tiff library (-ltiff).])
 +    dnl FIXME -lz -lm, as per libpng?
 +    LIBTIFF=-ltiff
    fi
  fi
 +AC_SUBST(LIBTIFF)
  
  ### Use -lgif or -lungif if available, unless `--with-gif=no'.
  HAVE_GIF=no
 +LIBGIF=
  if test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no"; then
    AC_CHECK_HEADER(gif_lib.h,
  # EGifPutExtensionLast only exists from version libungif-4.1.0b1.
  # Earlier versions can crash Emacs.
 -    [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, try_libungif=yes)])
 +    [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
  
    if test "$HAVE_GIF" = yes; then
 -      ac_gif_lib_name="-lgif"
 -  fi
 -
 +    LIBGIF=-lgif
 +  elif test "$HAVE_GIF" = maybe; then
  # If gif_lib.h but no libgif, try libungif.
 -  if test x"$try_libungif" = xyes; then
 -    AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes)
 -
 -    if test "$HAVE_GIF" = yes; then
 -      AC_DEFINE(LIBGIF, -lungif, [Compiler option to link with the gif library (if not -lgif).])
 -      ac_gif_lib_name="-lungif"
 -    fi
 +    AC_CHECK_LIB(ungif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=no)
 +    test "$HAVE_GIF" = yes && LIBGIF=-lungif
    fi
  
    if test "${HAVE_GIF}" = "yes"; then
 -    AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif library (default -lgif; otherwise specify with LIBGIF).])
 +    AC_DEFINE(HAVE_GIF, 1, [Define to 1 if you have a gif (or ungif) library.])
    fi
  fi
 +AC_SUBST(LIBGIF)
  
  dnl Check for required libraries.
  if test "${HAVE_X11}" = "yes"; then
  
  ### Use -lgpm if available, unless `--with-gpm=no'.
  HAVE_GPM=no
 +LIBGPM=
 +MOUSE_SUPPORT=
  if test "${with_gpm}" != "no"; then
    AC_CHECK_HEADER(gpm.h,
      [AC_CHECK_LIB(gpm, Gpm_Open, HAVE_GPM=yes)])
 -fi
  
 -if test "${HAVE_GPM}" = "yes"; then
 -  AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
 +  if test "${HAVE_GPM}" = "yes"; then
 +    AC_DEFINE(HAVE_GPM, 1, [Define to 1 if you have the gpm library (-lgpm).])
 +    LIBGPM=-lgpm
 +    ## May be reset below.
 +    MOUSE_SUPPORT="\$(GPM_MOUSE_SUPPORT)"
 +  fi
  fi
 +AC_SUBST(LIBGPM)
  
  dnl Check for malloc/malloc.h on darwin
  AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
  
 +C_SWITCH_X_SYSTEM=
  ### Use NeXTstep API to implement GUI.
  if test "${HAVE_NS}" = "yes"; then
    AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
    fi
    if test "${NS_IMPL_GNUSTEP}" = "yes"; then
      AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
 +    # See also .m.o rule in Makefile.in */
 +    # FIXME: are all these flags really needed?  Document here why.  */
 +    C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing"
      GNU_OBJC_CFLAGS="-fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
    fi
    if test "${NS_HAVE_NSINTEGER}" = "yes"; then
  
  ### Use session management (-lSM -lICE) if available
  HAVE_X_SM=no
 +LIBXSM=
  if test "${HAVE_X11}" = "yes"; then
    AC_CHECK_HEADER(X11/SM/SMlib.h,
      [AC_CHECK_LIB(SM, SmcOpenConnection, HAVE_X_SM=yes, , -lICE)])
  
    if test "${HAVE_X_SM}" = "yes"; then
      AC_DEFINE(HAVE_X_SM, 1, [Define to 1 if you have the SM library (-lSM).])
 +    LIBXSM="-lSM -lICE"
      case "$LIBS" in
        *-lSM*) ;;
 -      *)      LIBS="-lSM -lICE $LIBS" ;;
 +      *)      LIBS="$LIBXSM $LIBS" ;;
      esac
    fi
  fi
 +AC_SUBST(LIBXSM)
 +
 +### Use libxml (-lxml2) if available
 +if test "${with_xml2}" != "no"; then
 +  ### I'm not sure what the version number should be, so I just guessed.
 +  PKG_CHECK_MODULES(LIBXML2, libxml-2.0 > 2.6.17, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
 +  if test "${HAVE_LIBXML2}" = "yes"; then
 +    LIBS="$LIBXML2_LIBS $LIBS"
 +    AC_CHECK_LIB(xml2, htmlReadMemory, HAVE_LIBXML2=yes, HAVE_LIBXML2=no)
 +    if test "${HAVE_LIBXML2}" = "yes"; then
 +      AC_DEFINE(HAVE_LIBXML2, 1, [Define to 1 if you have the libxml library (-lxml2).])
 +    else
 +      LIBXML2_LIBS=""
 +      LIBXML2_CFLAGS=""
 +    fi
 +  fi
 +fi
 +AC_SUBST(LIBXML2_LIBS)
 +AC_SUBST(LIBXML2_CFLAGS)
  
  # If netdb.h doesn't declare h_errno, we must declare it by hand.
  AC_CACHE_CHECK(whether netdb declares h_errno,
@@@ -2566,24 -2309,13 +2567,24 @@@ AC_CHECK_LIB(m, sqrt
  
  # Check for mail-locking functions in a "mail" library.  Probably this should
  # have the same check as for liblockfile below.
 -AC_CHECK_LIB(mail, maillock)
 +AC_CHECK_LIB(mail, maillock, have_mail=yes, have_mail=no)
 +if test $have_mail = yes; then
 +  LIBS_MAIL=-lmail
 +  LIBS="$LIBS_MAIL $LIBS"
 +  AC_DEFINE(HAVE_LIBMAIL, 1, [Define to 1 if you have the `mail' library (-lmail).])
 +else
 +  LIBS_MAIL=
 +fi
  dnl Debian, at least:
 -AC_CHECK_LIB(lockfile, maillock)
 +AC_CHECK_LIB(lockfile, maillock, have_lockfile=yes, have_lockfile=no)
 +if test $have_lockfile = yes; then
 +   LIBS_MAIL=-llockfile
 +   LIBS="$LIBS_MAIL $LIBS"
 +   AC_DEFINE(HAVE_LIBLOCKFILE, 1, [Define to 1 if you have the `lockfile' library (-llockfile).])
 +else
  # If we have the shared liblockfile, assume we must use it for mail
  # locking (e.g. Debian).  If we couldn't link against liblockfile
  # (no liblockfile.a installed), ensure that we don't need to.
 -if test "$ac_cv_lib_lockfile_maillock" = no; then
    dnl This works for files generally, not just executables.
    dnl Should we look elsewhere for it?  Maybe examine /etc/ld.so.conf?
    AC_CHECK_PROG(liblockfile, liblockfile.so, yes, no,
      AC_MSG_ERROR([Shared liblockfile found but can't link against it.
  This probably means that movemail could lose mail.
  There may be a `development' package to install containing liblockfile.])
 -  else :
    fi
  fi
  AC_CHECK_FUNCS(touchlock)
  AC_CHECK_HEADERS(maillock.h)
 +AC_SUBST(LIBS_MAIL)
 +
 +## Define MAIL_USE_FLOCK (or LOCKF) if the mailer uses flock (or lockf) to
 +## interlock access to the mail spool.  The alternative is a lock file named
 +## /usr/spool/mail/$USER.lock.
 +mail_lock=no
 +case "$opsys" in
 +  aix4-2) mail_lock="lockf" ;;
 +
 +  gnu|freebsd|netbsd|openbsd|darwin|irix6-5) mail_lock="flock" ;;
 +
 +  ## On GNU/Linux systems, both methods are used by various mail programs.
 +  ## I assume most people are using newer mailers that have heard of flock.
 +  ## Change this if you need to.
 +  ## Debian contains a patch which says: ``On Debian/GNU/Linux systems,
 +  ## configure gets the right answers, and that means *NOT* using flock.
 +  ## Using flock is guaranteed to be the wrong thing. See Debian Policy
 +  ## for details.'' and then uses `#ifdef DEBIAN'.  Unfortunately the
 +  ## Debian maintainer hasn't provided a clean fix for Emacs.
 +  ## movemail.c will use `maillock' when MAILDIR, HAVE_LIBMAIL and
 +  ## HAVE_MAILLOCK_H are defined, so the following appears to be the
 +  ## correct logic.  -- fx
 +  ## We must check for HAVE_LIBLOCKFILE too, as movemail does.
 +  ## liblockfile is a Free Software replacement for libmail, used on
 +  ## Debian systems and elsewhere. -rfr.
 +  gnu-*)
 +    mail_lock="flock"
 +    if test $have_mail = yes || test $have_lockfile = yes; then
 +      test $ac_cv_header_maillock_h = yes && mail_lock=no
 +    fi
 +    ;;
 +esac
 +
 +BLESSMAIL_TARGET=
 +case "$mail_lock" in
 +  flock) AC_DEFINE(MAIL_USE_FLOCK, 1, [Define if the mailer uses flock to interlock the mail spool.]) ;;
 +
 +  lockf) AC_DEFINE(MAIL_USE_LOCKF, 1, [Define if the mailer uses lockf to interlock the mail spool.]) ;;
 +
 +  *) BLESSMAIL_TARGET="need-blessmail" ;;
 +esac
 +AC_SUBST(BLESSMAIL_TARGET)
 +
  
  AC_CHECK_FUNCS(gethostname getdomainname dup2 \
  rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
 -random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime setsid \
 -strerror fpathconf select mktime euidaccess getpagesize tzset setlocale \
 +random lrand48 logb frexp fmod rint cbrt ftime setsid \
 +strerror fpathconf select euidaccess getpagesize tzset setlocale \
  utimes getrlimit setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 -__fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 +__fpending mblen mbrlen mbsinit strsignal setitimer ualarm strchr strrchr \
  sendto recvfrom getsockopt setsockopt getsockname getpeername \
 -gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
 +gai_strerror mkstemp getline getdelim mremap memmove fsync sync \
  memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign \
 -cfmakeraw cfsetspeed)
 -
 -AC_CHECK_HEADERS(sys/un.h)
 +cfmakeraw cfsetspeed isnan copysign __executable_start)
  
 -AC_FUNC_MKTIME
 -if test "$ac_cv_func_working_mktime" = no; then
 -  AC_DEFINE(BROKEN_MKTIME, 1, [Define to 1 if the mktime function is broken.])
 +dnl Cannot use AC_CHECK_FUNCS
 +AC_CACHE_CHECK([for __builtin_unwind_init],
 +             emacs_cv_func___builtin_unwind_init,
 +[AC_LINK_IFELSE([AC_LANG_PROGRAM([], [__builtin_unwind_init ();])],
 +              emacs_cv_func___builtin_unwind_init=yes,
 +              emacs_cv_func___builtin_unwind_init=no)])
 +if test $emacs_cv_func___builtin_unwind_init = yes; then
 +  AC_DEFINE(HAVE___BUILTIN_UNWIND_INIT, 1,
 +          [Define to 1 if you have the `__builtin_unwind_init' function.])
  fi
  
 +AC_CHECK_HEADERS(sys/un.h)
 +
  AC_FUNC_GETLOADAVG
  
  AC_FUNC_FSEEKO
  
 -# Configure getopt.
 -m4_include([m4/getopt.m4])
 -gl_GETOPT_IFELSE([
 -  gl_GETOPT_SUBSTITUTE_HEADER
 -  gl_PREREQ_GETOPT
 -  GETOPTOBJS='getopt.o getopt1.o'
 -])
 -AC_SUBST(GETOPTOBJS)
 -
  AC_FUNC_GETPGRP
  
 -AC_FUNC_STRFTIME
 +# Configure gnulib.
 +gl_ASSERT_NO_GNULIB_POSIXCHECK
 +gl_ASSERT_NO_GNULIB_TESTS
 +gl_INIT
  
  # UNIX98 PTYs.
  AC_CHECK_FUNCS(grantpt)
@@@ -2685,102 -2375,19 +2686,102 @@@ AC_CHECK_FUNCS(getpt
  # That is because we have not set up to link ncurses in lib-src.
  # It's better to believe a function is not available
  # than to expect to find it in ncurses.
 -AC_CHECK_LIB(ncurses, tparm)
 -
 +# Also we need tputs and friends to be able to build at all.
 +have_tputs_et_al=true
 +AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap], , have_tputs_et_al=false)
 +if test "$have_tputs_et_al" != true; then
 +  AC_MSG_ERROR([I couldn't find termcap functions (tputs and friends).
 +Maybe some development libraries/packages are missing?  Try installing
 +libncurses-dev(el), libterminfo-dev(el) or similar.])
 +fi
 +# Must define this when any termcap library is found.
 +AC_DEFINE(HAVE_LIBNCURSES, 1,
 +          [Define to 1 if you have the `ncurses' library (-lncurses).])
 +## FIXME This was the cpp logic, but I am not sure it is right.
 +## The above test has not necessarily found libncurses.
 +HAVE_LIBNCURSES=yes
 +
 +## Use terminfo instead of termcap?
 +## Note only system files NOT using terminfo are:
 +## freebsd < 40000, ms-w32, msdos, netbsd < 599002500, and
 +## darwin|gnu without ncurses.
 +TERMINFO=no
 +LIBS_TERMCAP=
  case "$opsys" in
 +  ## cygwin: Fewer environment variables to go wrong, more terminal types.
 +  ## hpux10-20: Use the system provided termcap(3) library.
 +  ## openbsd: David Mazieres <dm@reeducation-labor.lcs.mit.edu> says this
 +  ##  is necessary.  Otherwise Emacs dumps core when run -nw.
 +  aix4-2|cygwin|hpux*|irix6-5|openbsd|sol2*|unixware) TERMINFO=yes ;;
 +
 +  ## darwin: Prevents crashes when running Emacs in Terminal.app under 10.2.
 +  ##  The ncurses library has been moved out of the System framework in
 +  ##  Mac OS X 10.2.  So if configure detects it, set the command-line
 +  ##  option to use it.
 +  darwin|gnu*)
 +    ## (HAVE_LIBNCURSES was not always true, but is since 2010-03-18.)
 +    if test "x$HAVE_LIBNCURSES" = "xyes"; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lncurses"
 +    fi
 +    ;;
 +
 +  freebsd)
 +    AC_MSG_CHECKING([whether FreeBSD is new enough to use terminfo])
 +    AC_CACHE_VAL(emacs_cv_freebsd_terminfo,
 +    [AC_TRY_LINK([#include <osreldate.h>],
 +[#if __FreeBSD_version < 400000
 +fail;
 +#endif
 +], emacs_cv_freebsd_terminfo=yes, emacs_cv_freebsd_terminfo=no)])
 +
 +    AC_MSG_RESULT($emacs_cv_freebsd_terminfo)
 +
 +    if test $emacs_cv_freebsd_terminfo = yes; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lncurses"
 +    else
 +      LIBS_TERMCAP="-ltermcap"
 +    fi
 +    ;;
 +
    netbsd)
 -    AC_SEARCH_LIBS(tputs, [ncurses terminfo termcap])
      if test $ac_cv_search_tputs = -lterminfo; then
 -      AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lterminfo"
 +    else
 +      LIBS_TERMCAP="-ltermcap"
      fi
      ;;
 +
  esac
  
 -# Do we have res_init, for detecting changes in /etc/resolv.conf?
 +case "$opsys" in
 +  ## hpux: Make sure we get select from libc rather than from libcurses
 +  ##  because libcurses on HPUX 10.10 has a broken version of select.
 +  ##  We used to use -lc -lcurses, but this may be cleaner.
 +  hpux*) LIBS_TERMCAP="-ltermcap" ;;
 +
 +  openbsd) LIBS_TERMCAP="-lncurses" ;;
 +
 +  ## Must use system termcap, if we use any termcap.  It does special things.
 +  sol2*) test "$TERMINFO" != yes && LIBS_TERMCAP="-ltermcap" ;;
 +esac
 +
 +TERMCAP_OBJ=tparam.o
 +if test $TERMINFO = yes; then
 +  AC_DEFINE(TERMINFO, 1, [Define to 1 if you use terminfo instead of termcap.])
 +
 +  ## Default used to be -ltermcap.  Add a case above if need something else.
 +  test "x$LIBS_TERMCAP" = "x" && LIBS_TERMCAP="-lcurses"
 +
 +  TERMCAP_OBJ=terminfo.o
 +fi
 +AC_SUBST(LIBS_TERMCAP)
 +AC_SUBST(TERMCAP_OBJ)
  
 +
 +# Do we have res_init, for detecting changes in /etc/resolv.conf?
  resolv=no
  AC_TRY_LINK([#include <netinet/in.h>
  #include <arpa/nameser.h>
@@@ -2808,9 -2415,8 +2809,9 @@@ if test "$have_res_init" = yes; the
  fi
  
  # Do we need the Hesiod library to provide the support routines?
 +LIBHESIOD=
  if test "$with_hesiod" != no ; then
 -  # Don't set $LIBS here -- see comments above.
 +  # Don't set $LIBS here -- see comments above.  FIXME which comments?
    AC_CHECK_FUNC(res_send, , [AC_CHECK_FUNC(__res_send, ,
       [AC_CHECK_LIB(resolv, res_send, resolv=yes,
                  [AC_CHECK_LIB(resolv, __res_send, resolv=yes)])])])
      RESOLVLIB=
    fi
    AC_CHECK_FUNC(hes_getmailhost, , [AC_CHECK_LIB(hesiod, hes_getmailhost,
 -      [AC_DEFINE(HAVE_LIBHESIOD, 1,
 -                [Define to 1 if you have the hesiod library (-lhesiod).])],
 -      :, $RESOLVLIB)])
 +      hesiod=yes, :, $RESOLVLIB)])
 +
 +  if test x"$hesiod" = xyes; then
 +    AC_DEFINE(HAVE_LIBHESIOD, 1,
 +              [Define to 1 if you have the hesiod library (-lhesiod).])
 +    LIBHESIOD=-lhesiod
 +  fi
  fi
 +AC_SUBST(LIBHESIOD)
  
  # Do we need libresolv (due to res_init or Hesiod)?
  if test "$resolv" = yes ; then
    AC_DEFINE(HAVE_LIBRESOLV, 1,
              [Define to 1 if you have the resolv library (-lresolv).])
 +  LIBRESOLV=-lresolv
 +else
 +  LIBRESOLV=
  fi
 +AC_SUBST(LIBRESOLV)
  
  # These tell us which Kerberos-related libraries to use.
 +COM_ERRLIB=
 +CRYPTOLIB=
 +KRB5LIB=
 +DESLIB=
 +KRB4LIB=
 +
  if test "${with_kerberos}" != no; then
 -  AC_CHECK_LIB(com_err, com_err)
 -  AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt)
 -  AC_CHECK_LIB(crypto, mit_des_cbc_encrypt)
 -  AC_CHECK_LIB(krb5, krb5_init_context)
 +  AC_CHECK_LIB(com_err, com_err, have_com_err=yes, have_com_err=no)
 +  if test $have_com_err = yes; then
 +    COM_ERRLIB=-lcom_err
 +    LIBS="$COM_ERRLIB $LIBS"
 +    AC_DEFINE(HAVE_LIBCOM_ERR, 1, [Define to 1 if you have the `com_err' library (-lcom_err).])
 +  fi
 +  AC_CHECK_LIB(crypto, mit_des_cbc_encrypt, have_crypto=yes, have_crypto=no)
 +  if test $have_crypto = yes; then
 +    CRYPTOLIB=-lcrypto
 +    LIBS="$CRYPTOLIB $LIBS"
 +    AC_DEFINE(HAVE_LIBCRYPTO, 1, [Define to 1 if you have the `crypto' library (-lcrypto).])
 +  fi
 +  AC_CHECK_LIB(k5crypto, mit_des_cbc_encrypt, have_k5crypto=yes, have_k5crypto=no)
 +  if test $have_k5crypto = yes; then
 +    CRYPTOLIB=-lk5crypto
 +    LIBS="$CRYPTOLIB $LIBS"
 +    AC_DEFINE(HAVE_LIBK5CRYPTO, 1, [Define to 1 if you have the `k5crypto' library (-lk5crypto).])
 +  fi
 +  AC_CHECK_LIB(krb5, krb5_init_context, have_krb5=yes, have_krb5=no)
 +  if test $have_krb5=yes; then
 +    KRB5LIB=-lkrb5
 +    LIBS="$KRB5LIB $LIBS"
 +    AC_DEFINE(HAVE_LIBKRB5, 1, [Define to 1 if you have the `krb5' library (-lkrb5).])
 +  fi
 +  dnl FIXME Simplify.  Does not match 22 logic, thanks to default_off?
    if test "${with_kerberos5}" = no; then
 -    AC_CHECK_LIB(des425, des_cbc_encrypt,,
 -               [AC_CHECK_LIB(des, des_cbc_encrypt)])
 -    AC_CHECK_LIB(krb4, krb_get_cred,,
 -               [AC_CHECK_LIB(krb, krb_get_cred)])
 +    AC_CHECK_LIB(des425, des_cbc_encrypt, have_des425=yes, have_des425=no )
 +    if test $have_des425 = yes; then
 +      DESLIB=-ldes425
 +      LIBS="$DESLIB $LIBS"
 +      AC_DEFINE(HAVE_LIBDES425, 1, [Define to 1 if you have the `des425' library (-ldes425).])
 +    else
 +      AC_CHECK_LIB(des, des_cbc_encrypt, have_des=yes, have_des=no)
 +      if test $have_des = yes; then
 +        DESLIB=-ldes
 +        LIBS="$DESLIB $LIBS"
 +        AC_DEFINE(HAVE_LIBDES, 1, [Define to 1 if you have the `des' library (-ldes).])
 +      fi
 +    fi
 +    AC_CHECK_LIB(krb4, krb_get_cred, have_krb4=yes, have_krb4=no)
 +    if test $have_krb4 = yes; then
 +      KRB4LIB=-lkrb4
 +      LIBS="$KRB4LIB $LIBS"
 +      AC_DEFINE(HAVE_LIBKRB4, 1, [Define to 1 if you have the `krb4' library (-lkrb4).])
 +    else
 +      AC_CHECK_LIB(krb, krb_get_cred, have_krb=yes, have_krb=no)
 +      if test $have_krb = yes; then
 +        KRB4LIB=-lkrb
 +        LIBS="$KRB4LIB $LIBS"
 +        AC_DEFINE(HAVE_LIBKRB, 1, [Define to 1 if you have the `krb' library (-lkrb).])
 +      fi
 +    fi
    fi
  
    if test "${with_kerberos5}" != no; then
    AC_CHECK_HEADERS(com_err.h)
  fi
  
 +AC_SUBST(COM_ERRLIB)
 +AC_SUBST(CRYPTOLIB)
 +AC_SUBST(KRB5LIB)
 +AC_SUBST(DESLIB)
 +AC_SUBST(KRB4LIB)
 +
  # Solaris requires -lintl if you want strerror (which calls dgettext)
  # to return localized messages.
  AC_CHECK_LIB(intl, dgettext)
@@@ -2931,6 -2473,14 +2932,6 @@@ AC_MSG_CHECKING(whether localtime cache
  AC_CACHE_VAL(emacs_cv_localtime_cache,
  [if test x$ac_cv_func_tzset = xyes; then
  AC_TRY_RUN([#include <time.h>
 -extern char **environ;
 -unset_TZ ()
 -{
 -  char **from, **to;
 -  for (to = from = environ; (*to = *from); from++)
 -    if (! (to[0][0] == 'T' && to[0][1] == 'Z' && to[0][2] == '='))
 -      to++;
 -}
  char TZ_GMT0[] = "TZ=GMT0";
  char TZ_PST8[] = "TZ=PST8";
  main()
    if (putenv (TZ_GMT0) != 0)
      exit (1);
    hour_GMT0 = localtime (&now)->tm_hour;
 -  unset_TZ ();
 +  unsetenv("TZ");
    hour_unset = localtime (&now)->tm_hour;
    if (putenv (TZ_PST8) != 0)
      exit (1);
    if (localtime (&now)->tm_hour == hour_GMT0)
      exit (1);
 -  unset_TZ ();
 +  unsetenv("TZ");
    if (localtime (&now)->tm_hour != hour_unset)
      exit (1);
    exit (0);
@@@ -3005,6 -2555,8 +3006,6 @@@ dnl Fixme: Not used.  Should this be HA
            [Define to 1 if you have inet sockets.])
  fi
  
 -AC_CHECK_HEADERS(sys/ioctl.h)
 -
  if test -f /usr/lpp/X11/bin/smt.exp; then
    AC_DEFINE(HAVE_AIX_SMT_EXP, 1,
            [Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists.])
@@@ -3036,6 -2588,24 +3037,6 @@@ AC_CHECK_TYPES(size_t
  
  AC_TYPE_MBSTATE_T
  
 -dnl Restrict could probably be used effectively other than in regex.c.
 -AC_CACHE_CHECK([for C restrict keyword], emacs_cv_c_restrict,
 -  [AC_TRY_COMPILE([void fred (int *restrict x);], [],
 -                  emacs_cv_c_restrict=yes,
 -                  [AC_TRY_COMPILE([void fred (int *__restrict x);], [],
 -                                  emacs_cv_c_restrict=__restrict,
 -                                emacs_cv_c_restrict=no)])])
 -case "$emacs_cv_c_restrict" in
 -  yes) emacs_restrict=restrict;;
 -  no) emacs_restrict="";;
 -  *) emacs_restrict="$emacs_cv_c_restrict";;
 -esac
 -if test "$emacs_restrict" != __restrict; then
 -  AC_DEFINE_UNQUOTED(__restrict, $emacs_restrict,
 -    [Define to compiler's equivalent of C99 restrict keyword.
 -     Don't define if equivalent is `__restrict'.])
 -fi
 -
  AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
    [AC_TRY_COMPILE([void fred (int x[__restrict]);], [],
                    emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
@@@ -3070,13 -2640,20 +3071,13 @@@ if test "x$GCC" = xyes 
     AC_MSG_ERROR([GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'.])
  fi
  
 -#### Find out which version of Emacs this is.
 -[version=`grep 'defconst[      ]*emacs-version' ${srcdir}/lisp/version.el \
 -       | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
 -if test x"${version}" = x; then
 -  AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
 -fi
 -if test x"${version}" != x"$PACKAGE_VERSION"; then
 -  AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/lisp/version.el'.])
 -fi
 +version=$PACKAGE_VERSION
  
  ### Specify what sort of things we'll be editing into Makefile and config.h.
  ### Use configuration here uncanonicalized to avoid exceeding size limits.
  AC_SUBST(version)
  AC_SUBST(configuration)
 +## Unused?
  AC_SUBST(canonical)
  AC_SUBST(srcdir)
  AC_SUBST(prefix)
@@@ -3097,346 -2674,90 +3098,346 @@@ AC_SUBST(docdir
  AC_SUBST(bitmapdir)
  AC_SUBST(gamedir)
  AC_SUBST(gameuser)
 -AC_SUBST(c_switch_system)
 -AC_SUBST(c_switch_machine)
 +## FIXME? Nothing uses @LD_SWITCH_X_SITE@.
 +## src/Makefile.in did add LD_SWITCH_X_SITE (as a cpp define) to the
 +## end of LIBX_BASE, but nothing ever set it.
  AC_SUBST(LD_SWITCH_X_SITE)
 -AC_SUBST(LD_SWITCH_X_SITE_AUX)
  AC_SUBST(C_SWITCH_X_SITE)
 +AC_SUBST(C_SWITCH_X_SYSTEM)
  AC_SUBST(CFLAGS)
 +## Used in lwlib/Makefile.in.
  AC_SUBST(X_TOOLKIT_TYPE)
 -AC_SUBST(machfile)
 -AC_SUBST(opsysfile)
 +if test -n "${machfile}"; then
 +  M_FILE="\$(srcdir)/${machfile}"
 +else
 +  M_FILE=
 +fi
 +S_FILE="\$(srcdir)/${opsysfile}"
 +AC_SUBST(M_FILE)
 +AC_SUBST(S_FILE)
  AC_SUBST(GETLOADAVG_LIBS)
  AC_SUBST(ns_appdir)
  AC_SUBST(ns_appbindir)
  AC_SUBST(ns_appresdir)
  AC_SUBST(ns_appsrc)
 -AC_SUBST(GNUSTEP_MAKEFILES)
 -AC_SUBST(GNUSTEP_SYSTEM_HEADERS)
 -AC_SUBST(GNUSTEP_SYSTEM_LIBRARIES)
  AC_SUBST(GNU_OBJC_CFLAGS)
 -AC_SUBST(LIB_SRC_EXTRA_INSTALLABLES)
  AC_SUBST(OTHER_FILES)
  
  AC_DEFINE_UNQUOTED(EMACS_CONFIGURATION,  "${canonical}",
                   [Define to the canonical Emacs configuration name.])
  AC_DEFINE_UNQUOTED(EMACS_CONFIG_OPTIONS, "${ac_configure_args}",
                   [Define to the options passed to configure.])
 -AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
 -                 [Define to the used machine dependent file.])
 +if test -n "$machfile"; then
 +  AC_DEFINE_UNQUOTED(config_machfile,  "${machfile}",
 +                   [Define to the used machine dependent file.])
 +fi
  AC_DEFINE_UNQUOTED(config_opsysfile, "${opsysfile}",
                   [Define to the used os dependent file.])
 -AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE, ${LD_SWITCH_X_SITE},
 -[Define LD_SWITCH_X_SITE to contain any special flags your loader
 - may need to deal with X Windows.  For instance, if you've defined
 - HAVE_X_WINDOWS above and your X libraries aren't in a place that
 - your loader can find on its own, you might want to add "-L/..." or
 - something similar.])
 -AC_DEFINE_UNQUOTED(LD_SWITCH_X_SITE_AUX, ${LD_SWITCH_X_SITE_AUX},
 -                 [Define LD_SWITCH_X_SITE_AUX with an -R option
 -                  in case it's needed (for Solaris, for example).])
 -AC_DEFINE_UNQUOTED(C_SWITCH_X_SITE,  ${C_SWITCH_X_SITE},
 -[Define C_SWITCH_X_SITE to contain any special flags your compiler
 - may need to deal with X Windows.  For instance, if you've defined
 - HAVE_X_WINDOWS above and your X include files aren't in a place
 - that your compiler can find on its own, you might want to add
 - "-I/..." or something similar.])
 -AC_DEFINE_UNQUOTED(UNEXEC_SRC,       ${UNEXEC_SRC},
 -                 [Define to the unexec source file name.])
  
 +XMENU_OBJ=
 +XOBJ=
 +FONT_OBJ=
  if test "${HAVE_X_WINDOWS}" = "yes" ; then
    AC_DEFINE(HAVE_X_WINDOWS, 1,
            [Define to 1 if you want to use the X window system.])
 +  XMENU_OBJ=xmenu.o
 +  XOBJ="xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o xsettings.o xgselect.o"
 +  FONT_OBJ=xfont.o
 +  if test "$HAVE_XFT" = "yes"; then
 +    FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
 +  elif test "$HAVE_FREETYPE" = "yes"; then
 +    FONT_OBJ="$FONT_OBJ ftfont.o ftxfont.o"
 +  fi
 +  AC_SUBST(FONT_OBJ)
  fi
 +AC_SUBST(XMENU_OBJ)
 +AC_SUBST(XOBJ)
 +AC_SUBST(FONT_OBJ)
 +
 +WIDGET_OBJ=
 +MOTIF_LIBW=
  if test "${USE_X_TOOLKIT}" != "none" ; then
 +  WIDGET_OBJ=widget.o
    AC_DEFINE(USE_X_TOOLKIT, 1, [Define to 1 if using an X toolkit.])
    if test "${USE_X_TOOLKIT}" = "LUCID"; then
      AC_DEFINE(USE_LUCID, 1, [Define to 1 if using the Lucid X toolkit.])
    elif test "${USE_X_TOOLKIT}" = "MOTIF"; then
      AC_DEFINE(USE_MOTIF, 1, [Define to 1 if using the Motif X toolkit.])
 +    MOTIF_LIBW=-lXm
 +    case "$opsys" in
 +      gnu-linux)
 +        ## Paul Abrahams <abrahams at equinox.shaysnet.com> says this is needed.
 +        MOTIF_LIBW="$MOTIF_LIBW -lXpm"
 +        ;;
 +
 +      unixware)
 +        ## Richard Anthony Ryan <ryanr at ellingtn.ftc.nrcs.usda.gov>
 +        ## says -lXimp is needed in UNIX_SV ... 4.2 1.1.2.
 +        MOTIF_LIBW="MOTIF_LIBW -lXimp"
 +        ;;
 +
 +      aix4-2)
 +        ## olson@mcs.anl.gov says -li18n is needed by -lXm.
 +        MOTIF_LIBW="$MOTIF_LIBW -li18n"
 +        ;;
 +    esac
 +    MOTIF_LIBW="$MOTIF_LIBW $LIBXP"
    fi
  fi
 +AC_SUBST(WIDGET_OBJ)
 +
 +TOOLKIT_LIBW=
 +case "$USE_X_TOOLKIT" in
 +  MOTIF) TOOLKIT_LIBW="$MOTIF_LIBW" ;;
 +  LUCID) TOOLKIT_LIBW="$LUCID_LIBW" ;;
 +  none) test "x$HAVE_GTK" = "xyes" && TOOLKIT_LIBW="$GTK_LIBS" ;;
 +esac
 +AC_SUBST(TOOLKIT_LIBW)
 +
 +if test "$USE_X_TOOLKIT" = "none"; then
 +  LIBXT_OTHER="\$(LIBXSM)"
 +  OLDXMENU_TARGET="really-oldXMenu"
 +else
 +  LIBXT_OTHER="\$(LIBXMU) -lXt \$(LIBXTR6) -lXext"
 +  OLDXMENU_TARGET="really-lwlib"
 +fi
 +AC_SUBST(LIBXT_OTHER)
 +
 +## The X Menu stuff is present in the X10 distribution, but missing
 +## from X11.  If we have X10, just use the installed library;
 +## otherwise, use our own copy.
  if test "${HAVE_X11}" = "yes" ; then
    AC_DEFINE(HAVE_X11, 1,
            [Define to 1 if you want to use version 11 of X windows.
             Otherwise, Emacs expects to use version 10.])
 +
 +  if test "$USE_X_TOOLKIT" = "none"; then
 +    OLDXMENU="\${oldXMenudir}/libXMenu11.a"
 +  else
 +    OLDXMENU="\${lwlibdir}/liblw.a"
 +  fi
 +  LIBXMENU="\$(OLDXMENU)"
 +  LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
 +  OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
 +else
 +  ## For a syntactically valid Makefile; not actually used for anything.
 +  ## See comments in src/Makefile.in.
 +  OLDXMENU=nothing
 +  ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
 +  if test "${HAVE_X_WINDOWS}" = "yes"; then
 +    LIBXMENU="-lXMenu"
 +  else
 +    LIBXMENU=
 +  fi
 +  LIBX_OTHER=
 +  OLDXMENU_DEPS=
 +fi
 +
 +if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
 +  OLDXMENU_TARGET=
 +  OLDXMENU=nothing
 +  LIBXMENU=
 +  OLDXMENU_DEPS=
  fi
 +
 +AC_SUBST(OLDXMENU_TARGET)
 +AC_SUBST(OLDXMENU)
 +AC_SUBST(LIBXMENU)
 +AC_SUBST(LIBX_OTHER)
 +AC_SUBST(OLDXMENU_DEPS)
 +
  if test "${HAVE_MENUS}" = "yes" ; then
    AC_DEFINE(HAVE_MENUS, 1,
            [Define to 1 if you have mouse menus.
             (This is automatic if you use X, but the option to specify it remains.)
             It is also defined with other window systems that support xmenu.c.])
  fi
 +
  if test "${GNU_MALLOC}" = "yes" ; then
    AC_DEFINE(GNU_MALLOC, 1,
            [Define to 1 if you want to use the GNU memory allocator.])
  fi
 +
 +RALLOC_OBJ=
  if test "${REL_ALLOC}" = "yes" ; then
    AC_DEFINE(REL_ALLOC, 1,
            [Define REL_ALLOC if you want to use the relocating allocator for
             buffer space.])
 +
 +  test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
 +fi
 +AC_SUBST(RALLOC_OBJ)
 +
 +if test "$opsys" = "cygwin"; then
 +  CYGWIN_OBJ="sheap.o"
 +  ## Cygwin differs because of its unexec().
 +  PRE_ALLOC_OBJ=
 +  POST_ALLOC_OBJ=lastfile.o
 +else
 +  CYGWIN_OBJ=
 +  PRE_ALLOC_OBJ=lastfile.o
 +  POST_ALLOC_OBJ=
 +fi
 +AC_SUBST(CYGWIN_OBJ)
 +AC_SUBST(PRE_ALLOC_OBJ)
 +AC_SUBST(POST_ALLOC_OBJ)
 +
 +
 +case "$opsys" in
 +  aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
 +
 +  darwin)
 +   ## The -headerpad option tells ld (see man page) to leave room at the
 +   ## end of the header for adding load commands.  Needed for dumping.
 +   ## 0x690 is the total size of 30 segment load commands (at 56
 +   ## each); under Cocoa 31 commands are required.
 +   if test "$HAVE_NS" = "yes"; then
 +     libs_nsgui="-framework AppKit"
 +     headerpad_extra=6C8
 +   else
 +     libs_nsgui=
 +     headerpad_extra=690
 +   fi
 +   LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
 +
 +   ## This is here because src/Makefile.in did some extra fiddling around
 +   ## with LD_SWITCH_SYSTEM.  The cpp logic was:
 +   ##   #ifndef LD_SWITCH_SYSTEM
 +   ##   #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
 +   ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
 +   ## not using gcc, darwin system not on an alpha (ie darwin, since
 +   ## darwin + alpha does not occur).
 +   ## Because this was done in src/Makefile.in, the resulting part of
 +   ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
 +   ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
 +   ## rather than LD_SWITCH_SYSTEM.
 +   test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
 +     LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
 +   ;;
 +
 +  ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
 +  ## When handled by cpp, this was in LD_SWITCH_SYSTEM.  However, at
 +  ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
 +  ## had not yet been defined and was expanded to null.  Hence LD_SWITCH_SYSTEM
 +  ## had different values in configure (in ac_link) and src/Makefile.in.
 +  ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
 +  gnu-linux) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX)" ;;
 +
 +  *) LD_SWITCH_SYSTEM_TEMACS= ;;
 +esac
 +
 +if test "$NS_IMPL_GNUSTEP" = "yes"; then
 +  LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
 +fi
 +
 +AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
 +
 +
 +LD_FIRSTFLAG=
 +ORDINARY_LINK=
 +case "$opsys" in
 +  ## gnu: GNU needs its own crt0.
 +  aix4-2|cygwin|darwin|gnu|hpux*|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
 +
 +  ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
 +  ## library search parth, i.e. it won't search /usr/lib for libc and
 +  ## friends.  Using -nostartfiles instead avoids this problem, and
 +  ## will also work on earlier NetBSD releases.
 +  netbsd|openbsd) LD_FIRSTFLAG="-nostartfiles" ;;
 +
 +  ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
 +  ##   MkLinux/LinuxPPC needs this.
 +  ## ibms390x only supports opsys = gnu-linux so it can be added here.
 +  gnu-*)
 +    case "$machine" in
 +      macppc|ibms390x) LD_FIRSTFLAG="-nostdlib" ;;
 +    esac
 +    ;;
 +esac
 +
 +
 +if test "x$ORDINARY_LINK" = "xyes"; then
 +
 +  LD_FIRSTFLAG=""
 +  AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
 +
 +## The system files defining neither ORDINARY_LINK nor LD_FIRSTFLAG are:
 +## freebsd, gnu-* not on macppc|ibms390x.
 +elif test "x$GCC" = "xyes" && test "x$LD_FIRSTFLAG" = "x"; then
 +
 +  ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
 +  ## places that are difficult to figure out at make time.  Fortunately,
 +  ## these same versions allow you to pass arbitrary flags on to the
 +  ## linker, so there is no reason not to use it as a linker.
 +  ##
 +  ## Well, it is not quite perfect.  The "-nostdlib" keeps GCC from
 +  ## searching for libraries in its internal directories, so we have to
 +  ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
 +  LD_FIRSTFLAG="-nostdlib"
 +fi
 +
 +## FIXME? What setting of EDIT_LDFLAGS should this have?
 +test "$NS_IMPL_GNUSTEP" = "yes" && LD_FIRSTFLAG="-rdynamic"
 +
 +AC_SUBST(LD_FIRSTFLAG)
 +
 +
 +## FIXME? The logic here is not precisely the same as that above.
 +## There is no check here for a pre-defined LD_FIRSTFLAG.
 +## Should we only be setting LIB_GCC if LD ~ -nostdlib?
 +LIB_GCC=
 +if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
 +
 +  case "$opsys" in
 +    freebsd|netbsd|openbsd) LIB_GCC= ;;
 +
 +    gnu-*)
 +      ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
 +      ## build on ARM EABI under GNU/Linux.  (Bug#5518)
 +      case $host_cpu in
 +      arm*)
 +        LIB_GCC="-lgcc_s"
 +      ;;
 +      *)
 +        ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
 +        ## immediately undefine it again and redefine it to empty.
 +        ## Was the C_SWITCH_X_SITE part really necessary?
 +##      LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
 +        LIB_GCC=
 +      ;;
 +      esac
 +      ;;
 +
 +    ## Ask GCC where to find libgcc.a.
 +    *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
 +  esac
 +fi                              dnl if $GCC
 +AC_SUBST(LIB_GCC)
 +
 +
 +TOOLTIP_SUPPORT=
 +WINDOW_SUPPORT=
 +## If we're using X11/GNUstep, define some consequences.
 +if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
 +  AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
 +  AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
 +  MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
 +  TOOLTIP_SUPPORT="\${lispsource}/mouse.elc"
 +
 +  WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
 +  test "$HAVE_X_WINDOWS" = "yes" && \
 +    WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
 +
  fi
 +AC_SUBST(MOUSE_SUPPORT)
 +AC_SUBST(TOOLTIP_SUPPORT)
 +AC_SUBST(WINDOW_SUPPORT)
  
  
  AH_TOP([/* GNU Emacs site configuration template file.
 -   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
 -     2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +
 +Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2011
 +  Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -3462,16 -2783,41 +3463,16 @@@ along with GNU Emacs.  If not, see <htt
  ])dnl
  
  AH_BOTTOM([
 -/* If we're using X11/Carbon/GNUstep, define some consequences.  */
 -#if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
 -#define HAVE_WINDOW_SYSTEM
 -#define HAVE_MOUSE
 -#endif
 -
  /* Define AMPERSAND_FULL_NAME if you use the convention
     that & in the full name stands for the login id.  */
  /* Turned on June 1996 supposing nobody will mind it.  */
  #define AMPERSAND_FULL_NAME
  
 -/* Define HAVE_SOUND if we have sound support.  We know it works
 -   and compiles only on the specified platforms.   For others,
 -   it probably doesn't make sense to try.  */
 -
 -#if defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
 -#ifdef HAVE_MACHINE_SOUNDCARD_H
 -#define HAVE_SOUND 1
 -#endif
 -#ifdef HAVE_SYS_SOUNDCARD_H
 -#define HAVE_SOUND 1
 -#endif
 -#ifdef HAVE_SOUNDCARD_H
 -#define HAVE_SOUND 1
 -#endif
 -#ifdef HAVE_ALSA
 -#define HAVE_SOUND 1
 -#endif
 -#endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
 -
 -/* If using GNU, then support inline function declarations. */
 +/* If using GNU, then support inline function declarations.  */
  /* Don't try to switch on inline handling as detected by AC_C_INLINE
     generally, because even if non-gcc compilers accept `inline', they
     may reject `extern inline'.  */
 -#if defined (__GNUC__) && defined (OPTIMIZE)
 +#if defined (__GNUC__)
  #define INLINE __inline__
  #else
  #define INLINE
  
  /* Include the os and machine dependent files.  */
  #include config_opsysfile
 -#include config_machfile
 -
 -/* Set up some defines, C and LD flags for NeXTstep interface on GNUstep.
 -  (There is probably a better place to do this, but right now the Cocoa
 -   side does this in s/darwin.h and we cannot
 -   parallel this exactly since GNUstep is multi-OS. */
 -#ifdef HAVE_NS
 -# ifdef NS_IMPL_GNUSTEP
 -/* See also .m.o rule in Makefile.in */
 -/* FIXME: are all these flags really needed?  Document here why.  */
 -#  define C_SWITCH_X_SYSTEM -D_REENTRANT -fPIC -fno-strict-aliasing
 +#ifdef config_machfile
 +# include config_machfile
 +#endif
 +
  /* GNUstep needs a bit more pure memory.  Of the existing knobs,
 -SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.  */
 +   SYSTEM_PURESIZE_EXTRA seems like the least likely to cause problems.
 +  (There is probably a better place to do this, but right now the
 +   Cocoa side does this in s/darwin.h and we cannot parallel this
 +   exactly since GNUstep is multi-OS.  */
 +#if defined HAVE_NS && defined NS_IMPL_GNUSTEP
  #  define SYSTEM_PURESIZE_EXTRA 30000
 -# endif /* NS_IMPL_GNUSTEP */
 -#endif /* HAVE_NS */
 +#endif
  
  /* SIGTYPE is the macro we actually use.  */
  #ifndef SIGTYPE
  #endif
  #endif
  
 -/* Avoid link-time collision with system mktime if we will use our own.  */
 -#if ! HAVE_MKTIME || BROKEN_MKTIME
 -#define mktime emacs_mktime
 -#endif
 -
 -#define my_strftime nstrftime /* for strftime.c */
 -
 -/* The rest of the code currently tests the CPP symbol BSTRING.
 -   Override any claims made by the system-description files.
 -   Note that on some SCO version it is possible to have bcopy and not bcmp.  */
 -#undef BSTRING
 -#if defined (HAVE_BCOPY) && defined (HAVE_BCMP)
 -#define BSTRING
 -#endif
 -
 -/* Some of the files of Emacs which are intended for use with other
 -   programs assume that if you have a config.h file, you must declare
 -   the type of getenv.
 -
 -   This declaration shouldn't appear when alloca.s or Makefile.in
 -   includes config.h.  */
 -#ifndef NOT_C_CODE
 -extern char *getenv ();
 -#endif
 -
  /* These default definitions are good for almost all machines.
     The exceptions override them in m/MACHINE.h.  */
  
  #endif
  #endif
  
 -/* Define if the compiler supports function prototypes.  It may do so
 -   but not define __STDC__ (e.g. DEC C by default) or may define it as
 -   zero.  */
 +/* Define if the compiler supports function prototypes.  It may do so but
 +   not define __STDC__ (e.g. DEC C by default) or may define it as zero.  */
  #undef PROTOTYPES
 -/* For mktime.c:  */
 -#ifndef __P
 -# if defined PROTOTYPES
 -#  define __P(args) args
 -# else
 -#  define __P(args) ()
 -# endif  /* GCC.  */
 -#endif /* __P */
 -
 -/* Don't include "string.h" or <stdlib.h> in non-C code.  */
 -#ifndef NOT_C_CODE
 -#ifdef HAVE_STRING_H
 -#include "string.h"
 -#endif
 -#ifdef HAVE_STRINGS_H
 -#include "strings.h"  /* May be needed for bcopy & al. */
 -#endif
 -#ifdef HAVE_STDLIB_H
 +
 +#include <string.h>
  #include <stdlib.h>
 -#endif
 +
  #ifdef HAVE_ALLOCA_H
  # include <alloca.h>
  #elif defined __GNUC__
@@@ -3564,17 -2956,23 +3565,17 @@@ extern "C
  # endif
  void *alloca (size_t);
  #endif
 +
  #ifndef HAVE_SIZE_T
  typedef unsigned size_t;
  #endif
 -#endif /* NOT_C_CODE */
  
 -/* Define HAVE_X_I18N if we have usable i18n support.  */
 -
 -#ifdef HAVE_X11R6
 -#define HAVE_X_I18N
 -#elif !defined X11R5_INHIBIT_I18N
 -#define HAVE_X_I18N
 +#ifndef HAVE_STRCHR
 +#define strchr(a, b) index (a, b)
  #endif
  
 -/* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support.  */
 -
 -#if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
 -#define HAVE_X11R6_XIM
 +#ifndef HAVE_STRRCHR
 +#define strrchr(a, b) rindex (a, b)
  #endif
  
  #if defined __GNUC__ && (__GNUC__ > 2 \
  #define NO_RETURN     /* nothing */
  #endif
  
 +#if __GNUC__ >= 3  /* On GCC 3.0 we might get a warning.  */
 +#define NO_INLINE __attribute__((noinline))
 +#else
 +#define NO_INLINE
 +#endif
 +
 +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
 +#define EXTERNALLY_VISIBLE __attribute__((externally_visible))
 +#else
 +#define EXTERNALLY_VISIBLE
 +#endif
 +
 +/* Some versions of GNU/Linux define noinline in their headers.  */
 +#ifdef noinline
 +#undef noinline
 +#endif
 +
  /* These won't be used automatically yet.  We also need to know, at least,
     that the stack is continuous.  */
  #ifdef __GNUC__
  #  ifndef GC_SETJMP_WORKS
 -  /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
 -     see NON_SAVING_SETJMP in the target descriptions.  */
 -  /* Exceptions (see NON_SAVING_SETJMP in target description) are
 -     SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
 -     Fixme: Deal with SVR3.  */
 +  /* GC_SETJMP_WORKS is nearly always appropriate for GCC.  */
  #    define GC_SETJMP_WORKS 1
  #  endif
  #  ifndef GC_LISP_OBJECT_ALIGNMENT
  #  endif
  #endif
  
 -#ifndef HAVE_BCOPY
 -#define bcopy(a,b,s) memcpy (b,a,s)
 -#endif
 -#ifndef HAVE_BZERO
 -#define bzero(a,s) memset (a,0,s)
 -#endif
 -#ifndef HAVE_BCMP
 -#define BCMP memcmp
 -#endif
 -
  #endif /* EMACS_CONFIG_H */
  
  /*
@@@ -3630,17 -3025,12 +3631,17 @@@ if test "${HAVE_GTK}" = "yes"; the
    USE_X_TOOLKIT=GTK
  fi
  
 +and_machfile=
 +if test -n "$machfile"; then
 +  and_machfile=" and \`${machfile}'"
 +fi
 +
  echo "
  Configured for \`${canonical}'.
  
    Where should the build process find the source code?    ${srcdir}
    What operating system and machine description files should Emacs use?
 -        \`${opsysfile}' and \`${machfile}'
 +        \`${opsysfile}'${and_machfile}
    What compiler should emacs be built with?               ${CC} ${CFLAGS}
    Should Emacs use the GNU version of malloc?             ${GNU_MALLOC}${GNU_MALLOC_reason}
    Should Emacs use a relocating allocator for buffers?    ${REL_ALLOC}
@@@ -3663,17 -3053,12 +3664,17 @@@ echo "  Does Emacs use -lXaw3d
  echo "  Does Emacs use -lXpm?                                   ${HAVE_XPM}"
  echo "  Does Emacs use -ljpeg?                                  ${HAVE_JPEG}"
  echo "  Does Emacs use -ltiff?                                  ${HAVE_TIFF}"
 -echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $ac_gif_lib_name"
 +echo "  Does Emacs use a gif library?                           ${HAVE_GIF} $LIBGIF"
  echo "  Does Emacs use -lpng?                                   ${HAVE_PNG}"
  echo "  Does Emacs use -lrsvg-2?                                ${HAVE_RSVG}"
 +echo "  Does Emacs use imagemagick?                             ${HAVE_IMAGEMAGICK}"
 +
  echo "  Does Emacs use -lgpm?                                   ${HAVE_GPM}"
  echo "  Does Emacs use -ldbus?                                  ${HAVE_DBUS}"
  echo "  Does Emacs use -lgconf?                                 ${HAVE_GCONF}"
 +echo "  Does Emacs use -lselinux?                               ${HAVE_LIBSELINUX}"
 +echo "  Does Emacs use -lgnutls?                                ${HAVE_GNUTLS}"
 +echo "  Does Emacs use -lxml2?                                  ${HAVE_LIBXML2}"
  
  echo "  Does Emacs use -lfreetype?                              ${HAVE_FREETYPE}"
  echo "  Does Emacs use -lm17n-flt?                              ${HAVE_M17N_FLT}"
  test "${exec_prefix}" != NONE &&
    exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
  
 -# Now get this: Some word that is part of the ${srcdir} directory name
 -# or the ${configuration} value might, just might, happen to be an
 -# identifier like `sun4' or `i386' or something, and be predefined by
 -# the C preprocessor to some helpful value like 1, or maybe the empty
 -# string.  Needless to say consequent macro substitutions are less
 -# than conducive to the makefile finding the correct directory.
 -[cpp_undefs="`echo $srcdir $configuration $canonical unix |
 -  sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/  *$//' \
 -  -e 's/  */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
 -
 -## Check if the C preprocessor will convert `..' to `. .'.  If so, set
 -## CPP_NEED_TRADITIONAL to `yes' so that the code to generate Makefile
 -## from Makefile.c can correctly provide the arg `-traditional' to the
 -## C preprocessor.
 -
 -AC_EGREP_CPP(yes..yes,
 -      [yes..yes],
 -      CPP_NEED_TRADITIONAL=no,
 -      CPP_NEED_TRADITIONAL=yes)
 -
 -AC_OUTPUT(Makefile lib-src/Makefile.c:lib-src/Makefile.in oldXMenu/Makefile \
 +dnl You might wonder (I did) why epaths.h is generated by running make,
 +dnl rather than just letting configure generate it from epaths.in.
 +dnl One reason is that the various paths are not fully expanded (see above);
 +dnl eg gamedir=${prefix}/var/games/emacs.
 +dnl Secondly, the GNU Coding standards require that one should be able
 +dnl to run `make prefix=/some/where/else' and override the values set
 +dnl by configure.  This also explains the `move-if-change' test and
 +dnl the use of force in the `epaths-force' rule in Makefile.in.
 +AC_OUTPUT(Makefile lib/Makefile lib-src/Makefile oldXMenu/Makefile \
        doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
 -      doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
 -      lwlib/Makefile lisp/Makefile leim/Makefile, [
 +      doc/lispref/Makefile src/Makefile \
 +      lwlib/Makefile lisp/Makefile leim/Makefile test/automated/Makefile, [
  
  ### Make the necessary directories, if they don't exist.
  for dir in etc lisp ; do
    test -d ${dir} || mkdir ${dir}
  done
  
 -# Build src/Makefile from ${srcdir}/src/Makefile.c
 -# and lib-src/Makefile from ${srcdir}/lib-src/Makefile.c
 -# This must be done after src/config.h is built, since we rely on that file.
 -
  echo creating src/epaths.h
  ${MAKE-make} epaths-force
  
 -# As of 2000-11-19, newest development versions of GNU cpp preprocess
 -# `..' to `. .'  unless invoked with -traditional
 -
 -if test "x$GCC" = xyes && test "x$CPP_NEED_TRADITIONAL" = xyes; then
 -  CPPFLAGS="$CPPFLAGS -traditional"
 -fi
 -
 -echo creating lib-src/Makefile
 -( cd lib-src
 -  rm -f junk.c junk1.c junk2.c
 -  sed -e '/start of cpp stuff/q' \
 -      < Makefile.c > junk1.c
 -  sed -e '1,/start of cpp stuff/d'\
 -      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 -      < Makefile.c > junk.c
 -  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 -      sed -e 's/^ /   /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
 -  cat junk1.c junk2.c > Makefile.new
 -  rm -f junk.c junk1.c junk2.c
 -  chmod 444 Makefile.new
 -  mv -f Makefile.new Makefile
 -)
 -
 -echo creating src/Makefile
 -( cd src
 -  rm -f junk.c junk1.c junk2.c
 -  sed -e '/start of cpp stuff/q' \
 -      < Makefile.c > junk1.c
 -  sed -e '1,/start of cpp stuff/d'\
 -      -e 's,/\*\*/#\(.*\)$,/* \1 */,' \
 -      < Makefile.c > junk.c
 -  $CPP -P $cpp_undefs -I. -I$srcdir/src $CPPFLAGS junk.c | \
 -      sed -e 's/^ /   /' -e '/^#/d' -e '/^[   \f]*$/d' > junk2.c
 -  cat junk1.c junk2.c > Makefile.new
 -  rm -f junk.c junk1.c junk2.c
 -  chmod 444 Makefile.new
 -  mv -f Makefile.new Makefile
 -)
 -
  if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
    echo creating src/.gdbinit
    echo source $srcdir/src/.gdbinit > src/.gdbinit
  fi
  
 -], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
 -
 -m4_if(dnl     Do not change this comment
 -   arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
 -)dnl
 +], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
diff --combined doc/emacs/ChangeLog
index c5b31d701391b914ccb14d7162635835bd917c4d,f3c6afc3fa55f95a65c3660bb57e3d80b0fda015..961fa9fb491e26dcc48f8bf47adc1f0dd3a145da
@@@ -1,23 -1,11 +1,31 @@@
 -2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * search.texi (Regexps): Copyedits.  Mention character classes
+       (Bug#7809).
+       * files.texi (File Aliases): Restore explanatory text from Eli
+       Zaretskii, accidentally removed in 2011-01-08 commit.
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Remove options, leave only program name.
 +      (MAKEINFO_OPTS): New variable.
 +      (ENVADD, $(infodir)/emacs): Use $(MAKEINFO_OPTS).
 +      (emacs.html): New target.
 +      (clean): Remove emacs.html.
 +
 +2011-01-23  Werner Lemberg  <wl@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Now controlled by `configure'.
 +      (MAKEINFO_OPTS): New variable.  Use it where appropriate.
 +      (ENVADD): Updated.
 +
 +2011-01-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi, emacs.texi (Acknowledgments): Update for ERT addition.
 +
 +      * ack.texi (Acknowledgments): Remove mention of replaced prolog.el.
 +
  2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
  
        * building.texi (Compilation): Improve instructions for running two
        * files.texi (Backup Names): Document the new location of the
        last-resort backup file.
  
 -2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 -
        * files.texi (File Aliases): Move directory-abbrev-alist doc from Lisp
        manual.  Explain why directory-abbrev-alist elements should be anchored
        (Bug#7777).
  
 -2011-01-07  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
        * msdog.texi (Windows Startup): Correct inaccurate description of
        differences between emacsclient.exe and emacsclientw.exe.
  
 -2010-12-30  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * rmail.texi (Rmail Display): Edit for grammar and conciseness.
  
 -2010-12-27  Kenichi Handa  <handa@m17n.org>
 +2011-01-02  Kenichi Handa  <handa@m17n.org>
  
        * rmail.texi (Rmail Display): Describe new features of Rmail in Info.
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Cut and Paste): Modify the section's name and text:
        don't mix "cut/paste" with "kill/yank".
  
        * trouble.texi (Checklist): Mention debug-on-quit.  (Bug#7667)
  
 -2010-12-18  Glenn Morris  <rgm@gnu.org>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
        * maintaining.texi: Move inclusion of emerge after EDE, so that it
        matches its position in the menu.  (Bug#7674)
  
 -2010-12-14  Glenn Morris  <rgm@gnu.org>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
        * trouble.texi (Checklist): Mention not replying via news either.
  
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * misc.texi (Document View): Update DocView section with newly
 +      supported document formats.
 +
 +2010-12-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * killing.texi: Resection the Info version to conform to the
 +      printed manual, to avoid making sections on Accumulating Text, CUA
 +      and Rectangles into full chapters.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * custom.texi (Init Syntax): Add index entries for "character syntax".
        (Bug#7576)
  
 -2010-12-11  Karel Klíč  <kklic@redhat.com>
 +2010-12-13  Karel Klíč  <kklic@redhat.com>
  
        * text.texi (HTML Mode): Small fixes.  (Bug#7607)
  
 -2010-12-10  Glenn Morris  <rgm@gnu.org>
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
  
        * trouble.texi (Checklist): Fix typo in newsgroup name.
  
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * search.texi (Word Search): Note that the lazy highlight always
        matches to whole words (Bug#7470).
  
 -2010-12-04  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Optional Mode Line): Make the description of
        load-average more accurate.
        (Windows Startup): New node.  Move the stuff about the current
        directory from "Windows HOME".
  
 -2010-11-23  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +2010-11-27  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
  
        * maintaining.texi (VC With A Locking VCS, VC Directory Commands):
        * vc1-xtra.texi (Customizing VC, General VC Options): Small fixes.
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * maintaining.texi (Version Control Systems): Fix repeated sentence.
        Suggested by Štěpán Němec.
  
 -2010-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * maintaining.texi (Version Control): Say "commit", not "check in".
        (Version Control Systems): Simplify descriptions.
  
        * emacs.texi (Top): Update node listing.
  
 -2010-11-06  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * rmail.texi (Rmail Coding): Characters with no fonts are not
 +      necessarily displayed as empty boxes.
 +
 +      * mule.texi (Language Environments, Fontsets): Characters with no
 +      fonts are not necessarily displayed as empty boxes.
 +
 +      * display.texi (Text Display): Document display of glyphless
 +      characters.
 +
 +2010-11-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * basic.texi (Position Info): Add M-x count-words-region.
 +
 +2010-11-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * msdog.texi (ls in Lisp): Update for ls-lisp changes.
 +
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
  
        * msdog.texi (Windows HOME): Add information regarding startup
        directory when invoking Emacs from a desktop shortcut.  (bug#7300)
  
 +2010-10-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Add explicit -I$srcdir.
 +
 +      * Makefile.in (.texi.dvi): Remove unnecessary suffix rule.
 +      (DVIPS): New variable.
 +      (.PHONY): Add html, ps.
 +      (html, emacs.html, ps, emacs.ps, emacs-xtra.ps): New targets.
 +      (clean): Delete html, ps files.
 +
 +2010-10-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (EMACSSOURCES): Add emacsver.texi.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (VPATH): Remove.
 +      (infodir): Make it absolute.
 +      (mkinfodir, $(infodir)/emacs, infoclean): No need to cd $srcdir.
 +
 +      * Makefile.in (dist): Anchor regexps.
 +
 +      * Makefile.in (EMACSSOURCES): Put emacs.texi first.
 +      ($(infodir)/emacs, emacs.dvi, emacs.pdf, emacs-xtra.dvi)
 +      (emacs-xtra.pdf): Use $<.
 +
 +      * Makefile.in (infoclean): Remove harmless, long-standing error.
 +
 +      * Makefile.in ($(infodir)): Delete rule.
 +      (mkinfodir): New.
 +      ($(infodir)/emacs): Use $mkinfodir instead of infodir.
 +
 +      * Makefile.in (distclean): Do not delete emacsver.texi.
 +      (dist): Remove reference to emacsver.texi.in.
 +      * emacsver.texi: New file, replacing emacsver.texi.in.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacsver.texi.in: New file.
 +      * emacs.texi: Set EMACSVER by including emacsver.texi.
 +      * Makefile.in (distclean): Delete emacsver.texi.
 +      (dist): Copy emacsver.texi.
 +      (EMACSSOURCES): Add emacsver.texi.
 +
 +      * ack.texi (Acknowledgments): No more b2m.c.
 +
 +      * Makefile.in (.PHONY): Declare info, dvi, pdf, dist.
 +      (emacs): Remove rule.
 +      (dist): No need to deal with the emacs rule any more.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (version): New, set by configure.
 +      (clean): Delete dist tar file.
 +      (dist): Use version in tar name.
 +
 +2010-10-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (EMACS_XTRA): Add the main source file.
 +      (emacs-xtra.dvi, emacs-xtra.pdf): Remove explicit emacs-xtra.texi.
 +      (mostlyclean): No core files, reorder other files.
 +      (clean): Delete specific dvi and pdf files.
 +      (infoclean, dist): New rules.
 +      (maintainer-clean): Use infoclean.
 +      ($(infodir)): Add parallel build workaround.
 +
 +2010-10-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (SHELL): Set it.
 +      (INFO_TARGETS, DVI_TARGETS): Remove variables.
 +      (info, dvi): Replace above variables with their expansions.
 +      (info): Move mkdir from here...
 +      ($(infodir)/emacs): ... to here (for parallel builds).
 +      (pdf): New target.
 +      ($(infodir)/emacs): Pass -o option to makeinfo.
 +      (.PHONY): Declare clean rules.
 +      (maintainer-clean): Delete dvi and pdf files.
 +      Guard against cd failures.  Use a more restrictive delete.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * misc.texi (Shell Mode): Remove reference to old function name.
 +
 +2010-09-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * maintaining.texi (VC Mode Line): Mention all the possible VC status
 +      indicator characters.
 +
 +2010-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (top_srcdir): Remove unused variable.
 +
  2010-09-14  Glenn Morris  <rgm@gnu.org>
  
        * cal-xtra.texi (Fancy Diary Display): Emphasize that sort should be
        * calendar.texi (Appointments): Also updated when a diary include file
        is saved.
  
 -2010-09-12  Glenn Morris  <rgm@gnu.org>
 +2010-09-14  Glenn Morris  <rgm@gnu.org>
  
        * trouble.texi (Bugs): Update the section intro.
        (Known Problems): New section.
        (Sending Patches): Bug fixes are best as responses to existing bugs.
        * emacs.texi (Known Problems): Add menu entry for new section.
  
 -2010-09-04  Chong Yidong  <cyd@stupidchicken.com>
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * xresources.texi: Untabify.
 +
 +2010-09-06  Chong Yidong  <cyd@stupidchicken.com>
  
        * dired.texi (Dired Enter): Minor doc fix (Bug#6982).
  
 -2010-09-02  Glenn Morris  <rgm@gnu.org>
 +2010-09-06  Glenn Morris  <rgm@gnu.org>
  
        * misc.texi (Saving Emacs Sessions): Mention desktop-path.  (Bug#6948)
  
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Cut/Paste Other App): Remove vut-buffer text.
 +
  2010-08-21  Glenn Morris  <rgm@gnu.org>
  
        * misc.texi (Amusements): Mention bubbles and animate.
  
 +2010-07-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Visiting): Add more index entries for
 +      large-file-warning-threshold.
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Tool Bars): Add doc for tool-bar-position.
 +
  2010-06-23  Glenn Morris  <rgm@gnu.org>
  
        * abbrevs.texi, basic.texi, buffers.texi, building.texi, calendar.texi:
  
        * basic.texi (Inserting Text): Fix typo.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
  
 -      * Version 23.2 released.
 +      * ack.texi (Acknowledgments):
 +      * emacs.texi (Acknowledgments): Update for notifications.el.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-31  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * dired.texi (Operating on Files): Mention encryption commands
 +      (Bug#6315).
 +
 +2010-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * basic.texi (Moving Point): Update due to renaming of commands bound
 +      to arrows.  Document bidi-aware behavior of C-<right> and C-<left>.
 +
 +2010-05-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Fringes): Document reversal of fringe arrows for R2L
 +      paragraphs.
 +      (Line Truncation): Fix wording for bidi display.
 +
 +      * basic.texi (Moving Point): Document bidi-aware behavior of the arrow
 +      keys.
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * building.texi (GDB Graphical Interface): Remove misleading comparison
        to an IDE (Bug#6128).
  
 -2010-05-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +2010-05-08  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
        * programs.texi (Man Page):
        * misc.texi (Invoking emacsclient):
        * mini.texi (Repetition):
        * mark.texi (Setting Mark): Fix typos.
  
 -2010-04-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * misc.texi (Printing): Document htmlfontify-buffer.
  
 -2010-04-21  Glenn Morris  <rgm@gnu.org>
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
  
        * calendar.texi (Displaying the Diary, Format of Diary File):
        Fix external cross-references for TeX format output.
  
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cmdargs.texi (Initial Options): Mention --chdir.
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Tool Bars): Add tool-bar-style.
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi, emacs.texi (Acknowledgments): Add SELinux support.
 +
  2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
  
        * programs.texi (Semantic): New node.
  
        * misc.texi (Gnus): Use the `C-h i' keybinding for info.
  
 -2010-04-16  Glenn Morris  <rgm@gnu.org>
 +2010-04-18  Glenn Morris  <rgm@gnu.org>
  
        * emacs.texi (Acknowledgments): Remove duplicate.
  
        * maintaining.texi (VC Directory Commands): Mention stashes and shelves.
  
 -2010-04-15  Glenn Morris  <rgm@gnu.org>
 +2010-04-18  Glenn Morris  <rgm@gnu.org>
  
        * dired.texi (Misc Dired Features): Mention VC diff and log.
        * maintaining.texi (Old Revisions, VC Change Log):
        * custom.texi (Specifying File Variables, Directory Variables):
        Document new commands for manipulating local variable lists.
  
 -2010-04-09  Glenn Morris  <rgm@gnu.org>
 +2010-04-18  Glenn Morris  <rgm@gnu.org>
  
        * trouble.texi (Contributing): Add cindex entry.
        Mention etc/CONTRIBUTE.
  
 -2010-04-06  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
  
        * mark.texi (Persistent Mark): Copyedits.  Replace undo example with
        query-replace (Bug#5774).
  
 +2010-04-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi, emacs.texi (Acknowledgments): Update for Org changes.
 +
 +2010-04-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (Lucid Resources): Mention faceName for dialogs.
 +
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (Lucid Resources): Mention faceName to set Xft fonts.
 +
  2010-03-30  Eli Zaretskii  <eliz@gnu.org>
  
        * mule.texi (Input Methods): Mention "C-x 8 RET" and add a
        * basic.texi (Inserting Text): Add an index entry for "C-x 8 RET".
        Mention completion provided by `ucs-insert'.
  
 -2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-30  Chong Yidong  <cyd@stupidchicken.com>
  
        * sending.texi (Sending Mail): Note variables that may need
        customizing.
        (Mail Sending): Expand discussion of send-mail-function.
  
 -2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-30  Chong Yidong  <cyd@stupidchicken.com>
  
        Document Message mode as the default mail mode.
  
  
        * emacs.texi (Top): Fix xrefs.
  
 -2010-03-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-30  Chong Yidong  <cyd@stupidchicken.com>
  
        * maintaining.texi (VC With A Merging VCS): C-x v v now creates a
        repository if there is none.
        * misc.texi (Navigation): Document doc-view-continuous.
        (Shell Ring): Document new M-r binding.  M-s is no longer bound.
  
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Other Repeating Search): Remove line that `occur'
 +      can not handle multiline matches.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mule.texi (International): Mention support of bidirectional editing.
 +      (Bidirectional Editing): New section.
 +
 +2010-03-28  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * emacs.texi (Top): Update node names to those in building.texi.
 +
 +2010-03-27  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      doc/emacs/building.texi: Describe restored GDB/MI fuctionality removed by 2009-12-29T07:15:34Z!nickrob@snap.net.nz.
 +      doc/emacs/emacs.texi: Update node names for building.texi.
 +
  2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * ack.texi (Acknowledgments):
        * xresources.texi (Table of Resources):
        * mule.texi (Defining Fontsets, Charsets): Update xrefs.
  
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
  
        * custom.texi (Init Examples): Add xref to Locals.
  
  2009-06-23  Miles Bader  <miles@gnu.org>
  
 -      * display.texi (Scrolling): Document `recenter-redisplay'
 +      * display.texi (Scrolling): Document `recenter-redisplay'.
        (Temporary Face Changes): Document `text-scale-set'.
  
  2009-06-21  Chong Yidong  <cyd@stupidchicken.com>
        (Fortran Columns): Mention font-locking.
        (Fortran Abbrev): Word syntax not relevant with new-style abbrev.
  
 -2008-08-23  Johan Bockgard  <bojohan@muon>
 +2008-08-23  Johan Bockgård  <bojohan@muon>
  
        * basic.texi (Moving Point): Fix <prior>/<next> confusion.
  
  2005-03-05  Juri Linkov  <juri@jurta.org>
  
        * cmdargs.texi (Emacs Invocation): Add cindex
 -      "invocation (command line arguments)"
 +      "invocation (command line arguments)".
        (Misc X): Add -nbc, --no-blinking-cursor.
  
  2005-03-04  Ulf Jasper  <ulf.jasper@web.de>
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; fill-column: 79
  ;; End:
  
 -  Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
 -    2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -    Free Software Foundation, Inc.
 +  Copyright (C) 1993-1999, 2001-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
diff --combined doc/emacs/files.texi
index 0ebf59a9f37d16f049453b3504c33dfd0a462ee0,b5e3bff6791a59d9b72ead56deeb72179f1d4675..40bd065610c1610dfd47b6b2a7bc6c6c88ec3379
@@@ -1,5 -1,6 +1,5 @@@
  @c This is part of the Emacs manual.
 -@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
 -@c   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011
  @c   Free Software Foundation, Inc.
  @c See file emacs.texi for copying conditions.
  @node Files, Buffers, Keyboard Macros, Top
@@@ -201,8 -202,6 +201,8 @@@ since you visited or saved it last.  I
  to reread it.
  
  @vindex large-file-warning-threshold
 +@cindex file, warning when size is large
 +@cindex size of file, warning when visiting
  @cindex maximum buffer size exceeded, error message
    If you try to visit a file larger than
  @code{large-file-warning-threshold} (the default is 10000000, which is
@@@ -1183,26 -1182,23 +1183,23 @@@ implies the effect of @code{find-file-e
  @cindex directory name abbreviation
  @vindex directory-abbrev-alist
    Sometimes, a directory is ordinarily accessed through a symbolic
- link, and you may want Emacs to preferentially display its ``linked''
- name instead of its truename.  To do this, customize the variable
- @code{directory-abbrev-alist}.  Each element in this list should have
- the form @code{(@var{from} . @var{to})}, which says to replace
- @var{from} with @var{to} when it appears in a directory name.  For
- this feature to work properly, @var{from} and @var{to} should point to
- the same file.  The @var{from} string is actually a regular expression
- (@pxref{Regexps}); it should always start with @samp{\`}, to avoid
- matching to an incorrect part of the original directory name.  The
- @var{to} string should be an ordinary absolute directory name.  Do not
- use @samp{~} to stand for a home directory in the @var{to} string;
- Emacs performs these substitutions separately.
-   Here's an example, from a system on which file system
- @file{/home/fsf} and so on are normally accessed through symbolic
- links named @file{/fsf} and so on.
+ link, and you may want Emacs to preferentially show its ``linked''
+ name.  To do this, customize @code{directory-abbrev-alist}.  Each
+ element in this list should have the form @code{(@var{from}
+ . @var{to})}, which means to replace @var{from} with @var{to} whenever
+ @var{from} appears in a directory name.  The @var{from} string is a
+ regular expression (@pxref{Regexps}).  It is matched against directory
+ names anchored at the first character, and should start with @samp{\`}
+ (to support directory names with embedded newlines, which would defeat
+ @samp{^}).  The @var{to} string should be an ordinary absolute
+ directory name pointing to the same directory.  Do not use @samp{~} to
+ stand for a home directory in the @var{to} string; Emacs performs
+ these substitutions separately.  Here's an example, from a system on
+ which @file{/home/fsf} is normally accessed through a symbolic link
+ named @file{/fsf}:
  
  @example
- (("\\`/home/fsf" . "/fsf")
-  ("\\`/home/gd" . "/gd"))
+ (("\\`/home/fsf" . "/fsf"))
  @end example
  
  @node Directories
@@@ -1997,3 -1993,7 +1994,3 @@@ menu, where each existing fileset is re
  Control} to describe sets of files to be treated as a group for
  purposes of version control operations.  Those filesets are unnamed
  and do not persist across Emacs sessions.
 -
 -@ignore
 -   arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
 -@end ignore
diff --combined doc/emacs/search.texi
index 99fde1d7a0418bd12b657880b2241b39653ce821,e2ecb4a2385914117fa67435ee31420e4514ff25..df0579ab9ea0131bb12b525371c3cf3e133f165e
@@@ -1,5 -1,6 +1,5 @@@
  @c This is part of the Emacs manual.
 -@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
 -@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
  @c   Free Software Foundation, Inc.
  @c See file emacs.texi for copying conditions.
  @node Search, Fixit, Display, Top
@@@ -545,21 -546,20 +545,20 @@@ Search}
  @cindex syntax of regexps
  
    This manual describes regular expression features that users
- typically want to use.  There are additional features that are
- mainly used in Lisp programs; see @ref{Regular Expressions,,,
elisp, The Emacs Lisp Reference Manual}.
+ typically use.  @xref{Regular Expressions,,, elisp, The Emacs Lisp
+ Reference Manual}, for additional features used mainly in Lisp
programs.
  
    Regular expressions have a syntax in which a few characters are
  special constructs and the rest are @dfn{ordinary}.  An ordinary
- character is a simple regular expression which matches that same
- character and nothing else.  The special characters are @samp{$},
- @samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, and
- @samp{\}.  The character @samp{]} is special if it ends a character
- alternative (see later).  The character @samp{-} is special inside a
- character alternative.  Any other character appearing in a regular
- expression is ordinary, unless a @samp{\} precedes it.  (When you use
- regular expressions in a Lisp program, each @samp{\} must be doubled,
- see the example near the end of this section.)
+ character matches that same character and nothing else.  The special
+ characters are @samp{$^.*+?[\}.  The character @samp{]} is special if
+ it ends a character alternative (see later).  The character @samp{-}
+ is special inside a character alternative.  Any other character
+ appearing in a regular expression is ordinary, unless a @samp{\}
+ precedes it.  (When you use regular expressions in a Lisp program,
+ each @samp{\} must be doubled, see the example near the end of this
+ section.)
  
    For example, @samp{f} is not a special character, so it is ordinary, and
  therefore @samp{f} is a regular expression that matches the string
@@@ -569,28 -569,27 +568,27 @@@ only @samp{o}.  (When case distinction
  also match @samp{F} and @samp{O}, but we consider this a generalization
  of ``the same string,'' rather than an exception.)
  
-   Any two regular expressions @var{a} and @var{b} can be concatenated.  The
- result is a regular expression which matches a string if @var{a} matches
- some amount of the beginning of that string and @var{b} matches the rest of
- the string.@refill
-   As a simple example, we can concatenate the regular expressions @samp{f}
- and @samp{o} to get the regular expression @samp{fo}, which matches only
- the string @samp{fo}.  Still trivial.  To do something nontrivial, you
- need to use one of the special characters.  Here is a list of them.
+   Any two regular expressions @var{a} and @var{b} can be concatenated.
+ The result is a regular expression which matches a string if @var{a}
+ matches some amount of the beginning of that string and @var{b}
+ matches the rest of the string.  For example, concatenating the
+ regular expressions @samp{f} and @samp{o} gives the regular expression
+ @samp{fo}, which matches only the string @samp{fo}.  Still trivial.
+ To do something nontrivial, you need to use one of the special
+ characters.  Here is a list of them.
  
  @table @asis
  @item @kbd{.}@: @r{(Period)}
- is a special character that matches any single character except a newline.
- Using concatenation, we can make regular expressions like @samp{a.b}, which
matches any three-character string that begins with @samp{a} and ends with
- @samp{b}.@refill
+ is a special character that matches any single character except a
+ newline.  For example, the regular expressions @samp{a.b} matches any
+ three-character string that begins with @samp{a} and ends with
+ @samp{b}.
  
  @item @kbd{*}
  is not a construct by itself; it is a postfix operator that means to
- match the preceding regular expression repetitively as many times as
- possible.  Thus, @samp{o*} matches any number of @samp{o}s (including no
@samp{o}s).
+ match the preceding regular expression repetitively any number of
+ times, as many times as possible.  Thus, @samp{o*} matches any number
of @samp{o}s, including no @samp{o}s.
  
  @samp{*} always applies to the @emph{smallest} possible preceding
  expression.  Thus, @samp{fo*} has a repeating @samp{o}, not a repeating
@@@ -609,22 -608,21 +607,21 @@@ With this choice, the rest of the regex
  
  @item @kbd{+}
  is a postfix operator, similar to @samp{*} except that it must match
- the preceding expression at least once.  So, for example, @samp{ca+r}
- matches the strings @samp{car} and @samp{caaaar} but not the string
@samp{cr}, whereas @samp{ca*r} matches all three strings.
+ the preceding expression at least once.  Thus, @samp{ca+r} matches the
+ strings @samp{car} and @samp{caaaar} but not the string @samp{cr},
+ whereas @samp{ca*r} matches all three strings.
  
  @item @kbd{?}
- is a postfix operator, similar to @samp{*} except that it can match the
- preceding expression either once or not at all.  For example,
@samp{ca?r} matches @samp{car} or @samp{cr}; nothing else.
+ is a postfix operator, similar to @samp{*} except that it can match
+ the preceding expression either once or not at all.  Thus, @samp{ca?r}
matches @samp{car} or @samp{cr}, and nothing else.
  
  @item @kbd{*?}, @kbd{+?}, @kbd{??}
  @cindex non-greedy regexp matching
- are non-greedy variants of the operators above.  The normal operators
- @samp{*}, @samp{+}, @samp{?} are @dfn{greedy} in that they match as
- much as they can, as long as the overall regexp can still match.  With
- a following @samp{?}, they are non-greedy: they will match as little
- as possible.
+ are non-@dfn{greedy} variants of the operators above.  The normal
+ operators @samp{*}, @samp{+}, @samp{?} match as much as they can, as
+ long as the overall regexp can still match.  With a following
+ @samp{?}, they will match as little as possible.
  
  Thus, both @samp{ab*} and @samp{ab*?} can match the string @samp{a}
  and the string @samp{abbbb}; but if you try to match them both against
@@@ -640,29 -638,30 +637,30 @@@ a newline, it matches the whole string
  starting at the first @samp{a}, it does.
  
  @item @kbd{\@{@var{n}\@}}
- is a postfix operator that specifies repetition @var{n} times---that
- is, the preceding regular expression must match exactly @var{n} times
- in a row.  For example, @samp{x\@{4\@}} matches the string @samp{xxxx}
and nothing else.
+ is a postfix operator specifying @var{n} repetitions---that is, the
+ preceding regular expression must match exactly @var{n} times in a
+ row.  For example, @samp{x\@{4\@}} matches the string @samp{xxxx} and
+ nothing else.
  
  @item @kbd{\@{@var{n},@var{m}\@}}
- is a postfix operator that specifies repetition between @var{n} and
- @var{m} times---that is, the preceding regular expression must match
at least @var{n} times, but no more than @var{m} times.  If @var{m} is
+ is a postfix operator specifying between @var{n} and @var{m}
+ repetitions---that is, the preceding regular expression must match at
+ least @var{n} times, but no more than @var{m} times.  If @var{m} is
  omitted, then there is no upper limit, but the preceding regular
  expression must match at least @var{n} times.@* @samp{\@{0,1\@}} is
  equivalent to @samp{?}. @* @samp{\@{0,\@}} is equivalent to
  @samp{*}. @* @samp{\@{1,\@}} is equivalent to @samp{+}.
  
  @item @kbd{[ @dots{} ]}
- is a @dfn{character set}, which begins with @samp{[} and is terminated
- by @samp{]}.  In the simplest case, the characters between the two
- brackets are what this set can match.
+ is a @dfn{character set}, beginning with @samp{[} and terminated by
+ @samp{]}.
  
- Thus, @samp{[ad]} matches either one @samp{a} or one @samp{d}, and
- @samp{[ad]*} matches any string composed of just @samp{a}s and @samp{d}s
- (including the empty string), from which it follows that @samp{c[ad]*r}
- matches @samp{cr}, @samp{car}, @samp{cdr}, @samp{caddaar}, etc.
+ In the simplest case, the characters between the two brackets are what
+ this set can match.  Thus, @samp{[ad]} matches either one @samp{a} or
+ one @samp{d}, and @samp{[ad]*} matches any string composed of just
+ @samp{a}s and @samp{d}s (including the empty string).  It follows that
+ @samp{c[ad]*r} matches @samp{cr}, @samp{car}, @samp{cdr},
+ @samp{caddaar}, etc.
  
  You can also include character ranges in a character set, by writing the
  starting and ending characters with a @samp{-} between them.  Thus,
@@@ -671,9 -670,12 +669,12 @@@ intermixed freely with individual chara
  which matches any lower-case @acronym{ASCII} letter or @samp{$}, @samp{%} or
  period.
  
- Note that the usual regexp special characters are not special inside a
- character set.  A completely different set of special characters exists
- inside character sets: @samp{]}, @samp{-} and @samp{^}.
+ You can also include certain special @dfn{character classes} in a
+ character set.  A @samp{[:} and balancing @samp{:]} enclose a
+ character class inside a character alternative.  For instance,
+ @samp{[[:alnum:]]} matches any letter or digit.  @xref{Char Classes,,,
+ elisp, The Emacs Lisp Reference Manual}, for a list of character
+ classes.
  
  To include a @samp{]} in a character set, you must make it the first
  character.  For example, @samp{[]a]} matches @samp{]} or @samp{a}.  To
@@@ -1313,7 -1315,8 +1314,7 @@@ Prompt for a regexp, and display a lis
  buffer that contains a match for it.  To limit the search to part of
  the buffer, narrow to that part (@pxref{Narrowing}).  A numeric
  argument @var{n} specifies that @var{n} lines of context are to be
 -displayed before and after each matching line.  Currently,
 -@code{occur} can not correctly handle multiline matches.
 +displayed before and after each matching line.
  
  @kindex RET @r{(Occur mode)}
  @kindex o @r{(Occur mode)}
@@@ -1377,3 -1380,7 +1378,3 @@@ it never deletes lines that are only pa
  
  If a match is split across lines, this command keeps all those lines.
  @end table
 -
 -@ignore
 -   arch-tag: fd9d8e77-66af-491c-b212-d80999613e3e
 -@end ignore
diff --combined doc/lispref/ChangeLog
index be8803d4cb24158e3a6381c35434529d90ad8628,c651c5cab89dcec4b2691939e60b69cb6a867992..063ea78c09a2a6fad88cbf23cc8342e3c0d09065
@@@ -1,66 -1,54 +1,77 @@@
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
+ 2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
+       * vol1.texi (Top):
+       * vol2.texi (Top):
+       * elisp.texi (Top):
+       * display.texi (Display Property): Shorten the menu description of
+       the "Other Display Specs" node (Bug#7816).
+       * keymaps.texi (Defining Menus): Add "menu item" and "extended
+       menu item" concept index entries (Bug#7805).
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (texinfodir): New variable.
 +      (usermanualdir): Remove as redundant with $(emacsdir).
 +      (MAKEINFO): Remove options, leave only program name.
 +      (MAKEINFO_OPTS): New variable.
 +      (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS).
 +
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
              Richard Kim  <emacs18@gmail.com>
  
        * loading.texi (Library Search): Document list-load-path-shadows
        (Bug#7757).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
        * searching.texi (Regexp Special): Remove outdated discussion of
        character sets (Bug#7780).
  
 -2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
 -
        * frames.texi (Pop-Up Menus): Document where menu title comes
        from (Bug#7684).
  
 -2011-01-22  Glenn Morris  <rgm@gnu.org>
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
  
        * display.texi (Making Buttons): Mention limitation of text buttons.
  
 -2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-23  Werner Lemberg  <wl@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Now controlled by `configure'.
 +      (MAKEINFO_OPTS): New variable.  Use it where appropriate.
 +      (ENVADD): New variable to control texi2dvi and texi2pdf.
 +
 +2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
  
        * files.texi (Directory Names): Move directory-abbrev-alist doc to
        Emacs manual.
  
 -2011-01-07  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
        * files.texi (Directory Names): Explain why FROM in
        directory-abbrev-alist should begin with \`.  (Bug#7777)
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * loading.texi (Hooks for Loading): Adjust doc of eval-after-load.
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * modes.texi (Emulating Mode Line): Fix last change.
  
 -2010-12-18  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * modes.texi (Emulating Mode Line): Update documentation of
        format-mode-line according to changes that fixed bug #7587.
  
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Derived Modes): Mention prog-mode.
 +
 +      * keymaps.texi (Simple Menu Items, Extended Menu Items): Remove mention
 +      of the key-binding-data cache since we don't use it any more.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * processes.texi (Shell Arguments):
        * strings.texi (Creating Strings): Don't mention "shell commands";
        * processes.texi (Shell Arguments): Fix documentation of
        `split-string-and-unquote'.  Add indexing.  (Bug#7563)
  
 -2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * modes.texi (Auto-Indentation): New section to document SMIE.
        (Major Mode Conventions):
        * text.texi (Mode-Specific Indent): Refer to it.
  
 -2010-12-04  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Other Display Specs): Document left-fringe and
        right-fringe display specs.
  
 -2010-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * backups.texi (Making Backups):
        * modes.texi (Example Major Modes): Use recommended coding style.
        (Major Mode Basics, Derived Modes): Encourge more strongly use of
        define-derived-mode.  Mention completion-at-point-functions.
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * nonascii.texi (Converting Representations):
        Document byte-to-string.
  
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * buffers.texi (Modification Time):
 +      verify-visited-file-modtime now defaults to the current buffer.
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nonascii.texi (Converting Representations): Document byte-to-string.
 +
        * strings.texi (Creating Strings): Don't mention semi-obsolete
        function char-to-string.
        (String Conversion): Shorten discussion of semi-obsolete function
        * functions.texi (Mapping Functions): Use string instead of
        char-to-string in examples.
  
 -2010-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * text.texi (Kill Functions, Kill Functions)
        (Low-Level Kill Ring, Low-Level Kill Ring): Remove obsolete
        * variables.texi (Defining Variables): Change "pi" example to
        "float-pi".
  
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Click Events): Document the values of X, Y and
 +      COL, ROW in the event's position, when the click is on the header
 +      or mode line, on the fringes, or in the margins.
 +
 +2010-11-17  Eli Zaretskii  <eliz@gnu.org>
  
        * customize.texi (Composite Types): Lower-case index entry.
  
        * loading.texi (How Programs Do Loading):
        Document load-file-name.  (Bug#7346)
  
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +2010-11-17  Glenn Morris  <rgm@gnu.org>
  
        * text.texi (Kill Functions, Low-Level Kill Ring): Small fixes.
  
 -2010-10-27  Glenn Morris  <rgm@gnu.org>
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Usual Display): Characters with no fonts are not
 +      necessarily displayed as empty boxes.
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * maps.texi (Standard Keymaps): Update File menu description.
  
 -2010-10-22  Eli Zaretskii  <eliz@gnu.org>
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (elisp.dvi, elisp.pdf): Also include $emacsdir.
 +
 +2010-10-24  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Window Systems): Deprecate use of window-system as
        a predicate.
  
 -2010-09-05  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * help.texi (Documentation Basics): Remove mentions of digest-doc and
 +      sorted-doc.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * os.texi (Dynamic Libraries): New node, with slightly modified
 +      text deleted from "Image Formats".
 +      (System Interface): Add @menu entry for "Dynamic Libraries".
 +
 +      * display.texi (Image Formats): Remove description of
 +      image-library-alist.  (Renamed in 2010-10-13T14:50:06Z!lekktu@gmail.com.)
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * book-spine.texinfo: Rename to book-spine.texi.
 +
 +2010-10-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Add explicit -I$srcdir.
 +
 +      * Makefile.in (DVIPS): New variable.
 +      (.PHONY): Add html, ps.
 +      (html, elisp.html, ps, elisp.ps): New targets.
 +      (clean): Delete html, ps files.
 +      ($(infodir)/elisp): Remove unnecessary includes.
 +
 +2010-10-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (emacsdir): New variable.
 +      (srcs): Add emacsver.texi.
 +      ($(infodir)/elisp, elisp.dvi): Add -I$(emacsdir).
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (VPATH): Remove.
 +      (infodir): Make it absolute.
 +      (mkinfodir, $(infodir)/elisp, infoclean): No need to cd $srcdir.
 +
 +      * Makefile.in (dist): Anchor regexps.
 +
 +      * Makefile.in (srcs): Put elisp.texi first.
 +      ($(infodir)/elisp, elisp.dvi, elisp.pdf): Use $<.
 +
 +      * Makefile.in (infoclean): Remove harmless, long-standing error.
 +
 +      * Makefile.in ($(infodir)): Delete rule.
 +      (mkinfodir): New.
 +      ($(infodir)/elisp): Use $mkinfodir instead of infodir.
 +
 +      * Makefile.in (dist): Remove reference to emacsver.texi.in.
 +      Also copy emacsver.texi, and edit $emacsdir.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (emacsdir): New variable.
 +      (MAKEINFO): Add -I $emacsdir.
 +      (dist): Copy emacsver.texi.
 +      (srcs): Add emacsver.texi.
 +
 +      * book-spine.texinfo, elisp.texi, vol2.texi, vol1.texi:
 +      Set EMACSVER by including emacsver.texi.
 +
 +      * Makefile.in (.PHONY): Declare info, dvi, pdf, dist.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (version): New, set by configure.
 +      (clean): Delete dist tar file.
 +      (dist): Use version in tar name.
 +
 +2010-10-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Rearrange to more closely resemble doc/emacs/Makefile.
 +      (INSTALL_INFO): Remove unused variable.
 +      (mostlyclean, infoclean, dist): New rules.
 +      (clean): Delete dvi and pdf files.
 +      (maintainer-clean): Remove elisp.oaux, use infoclean.
 +      ($(infodir)): Add parallel build workaround.
 +
 +2010-10-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (dvi, pdf, $(infodir)): New targets.
 +      ($(infodir)/elisp): Ensure target directory exists.  Use $@.
 +      Fix -I typo.
 +      (clean): No 'make.out' or 'core' files.
 +      (.PHONY): Declare clean rules.
 +      (maintainer-clean): Delete pdf file.  Guard against cd failures.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (File Name Components): Remove ignored section about
 +      deleted variable directory-sep-char.
 +
 +2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): New defopt
 +      remote-file-name-inhibit-cache.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi (Killing Emacs): Hook now runs in batch mode.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * text.texi (Special Properties): Clarify when modification-hooks run.
 +
 +2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.texi (Syntax Flags): Document new `c' flag.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * display.texi (ImageMagick Images): General cleanup.
 +
 +2010-09-06  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
  
        * files.texi (Directory Names): Use \` rather than ^.
  
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * text.texi (Low-Level Kill Ring):
 +      * frames.texi (Window System Selections): Remove cut buffer
 +      documentation.
 +
 +2010-08-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Fringe Size/Pos): Add a cross-reference to "Layout
 +      Parameters", where the default fringe width is described.
 +
 +      * frames.texi (Window Frame Parameters, Basic Parameters)
 +      (Position Parameters, Layout Parameters, Management Parameters)
 +      (Cursor Parameters, Font and Color Parameters): Add indexing for
 +      frame parameters.  (Bug#6929)
 +
 +2010-08-25  Tom Tromey  <tromey@redhat.com>
 +
 +      * vol2.texi (Top): Update.
 +      * vol1.texi (Top): Update.
 +      * tips.texi (Library Headers): Mention Package-Version and
 +      Package-Requires.
 +      * package.texi: New file.
 +      * os.texi (System Interface): Update pointers.
 +      * elisp.texi (Top): Link to new nodes.  Include package.texi.
 +      * anti.texi (Antinews): Update pointers.
 +
 +2010-08-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * processes.texi (Filter Functions): Fix last change.
 +
 +2010-08-24  Markus Triska  <triska@gmx.at>
 +
 +      * processes.texi (Filter Functions): Use `buffer-live-p' instead
 +      of `buffer-name' in the main text as well as in the example
 +      (Bug#3098).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nonascii.texi (Text Representations):
 +      * loading.texi (Loading Non-ASCII):
 +      * compile.texi (Byte Compilation): Don't mention obsolete
 +      --unibyte command-line argument.
 +
  2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * modes.texi (Defining Minor Modes): Doc fix (Bug#6880).
  
 -2010-08-19  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * objects.texi (Bool-Vector Type): Minor definition tweak (Bug#6878).
  
 -2010-08-02  Christoph  <cschol2112@googlemail.com>
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Misc Events): Add cross-references to where
 +      POSITION of a mouse event is described in detail.
 +
 +2010-08-08  Christoph  <cschol2112@googlemail.com>
  
        * control.texi (Handling Errors) <error-message-string>: Fix arg name.
  
 -2010-07-29  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * modes.texi (Defining Minor Modes): Use C-backspace, not C-delete.
        Suggested by Štěpán Němec <stepnem@gmail.com>.
  
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * minibuf.texi (High-Level Completion): Document args of
        `read-buffer-function' (bug#5625).
  
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Layout Parameters): Add doc for tool-bar-position.
 +
 +2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * processes.texi (Process Information): Explain process property
 +      `remote-tty'.
 +
  2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
  
        * modes.texi (Defining Minor Modes): Use C-delete in examples,
        instead of "\C-\^?" (bug#6334).
  
 -2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
 -
        * text.texi (Special Properties): Fix typo.
  
 +2010-07-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Writing Emacs Primitives): Adapt to ANSI C
 +      calling sequences, which are now the standard.
 +
  2010-06-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * text.texi (Undo): Clarify command loop behavior (Bug#2433).
  
  2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * errors.texi (Standard Errors): Remove unnecessary markup
 -      (Bug#6461).
 +      * errors.texi (Standard Errors): Remove unnecessary markup (Bug#6461).
  
  2010-06-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * minibuf.texi (Basic Completion): Document completion-boundaries.
        (Programmed Completion): Document the new fourth method for boundaries.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * Version 23.2 released.
 +      * display.texi (Image Cache): Update documentation about image caching.
  
 -2010-05-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +2010-05-08  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
        * windows.texi (Textual Scrolling):
        * tips.texi (Coding Conventions):
        * loading.texi (Where Defined):
        * edebug.texi (Instrumenting): Fix typos.
  
 -2010-04-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * keymaps.texi (Menu Bar): Document :advertised-binding property.
  
  
        * elisp.texi (Top): Update node description.
  
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Character Properties):
 +      Document unicode-category-table.  Add an index entry for Unicode
 +      general category.
 +
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * locals.texi (Standard Buffer-Local Variables):
 +      Remove @ignore'd reference to `direction-reversed'.
 +
  2010-04-14  Juri Linkov  <juri@jurta.org>
  
        Fix @deffn without category.
  
        * frames.texi (Cursor Parameters): Fix typo.  (Bug#5760)
  
 -2010-03-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * processes.texi (Network Processes): Document seqpacket type.
  
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * os.texi (System Environment): Do not mention lynxos.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
  
        * objects.texi (Integer Type): Take note of the read syntax
  2005-02-05  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Color Names): Add pointer to the X docs about RGB
 -      color specifications.  Improve indexing
 +      color specifications.  Improve indexing.
        (Text Terminal Colors): Replace the description of RGB values by
        an xref to "Color Names".
  
        * minibuf.texi (Reading File Names): read-file-name has new
        arg PREDICATE.  New function read-directory-name.
  
 -      * macros.texi (Defining Macros): Give definition of `declare'
 +      * macros.texi (Defining Macros): Give definition of `declare'.
        (Indenting Macros): New node.
  
        * frames.texi (Parameter Access): Add modify-all-frames-parameters.
        * numbers.texi (Integer Basics): Add most-positive-fixnum,
        most-negative-fixnum.
  
 -      * compile.texi (Byte Compilation): Explain no-byte-compile
 +      * compile.texi (Byte Compilation): Explain no-byte-compile.
        (Compiler Errors): New node.
  
        * os.texi (User Identification): user-uid, user-real-uid
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 -      2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 1998-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
diff --combined doc/lispref/display.texi
index 9bc80a77742c4fd3cf7e65ba87f2e00f96f69314,8a8844015469ceaa48c01e9861d43925ad564ea9..80a035aa346cb8851557e2fdcc5e599867e75d73
@@@ -1,6 -1,8 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -@c   Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/display
  @node Display, System Interface, Processes, Top
@@@ -3212,9 -3214,7 +3212,9 @@@ width from the window's frame
    The values of these variables take effect when you display the
  buffer in a window.  If you change them while the buffer is visible,
  you can call @code{set-window-buffer} to display it once again in the
 -same window, to make the changes take effect.
 +same window, to make the changes take effect.  A buffer that does not
 +specify values for these variables will use the default values
 +specified for the frame; see @ref{Layout Parameters}.
  
  @defun set-window-fringes window left &optional right outside-margins
  This function sets the fringe widths of window @var{window}.
@@@ -3657,9 -3657,8 +3657,8 @@@ display specifications and what they me
  * Replacing Specs::      Display specs that replace the text.
  * Specified Space::      Displaying one space with a specified width.
  * Pixel Specification::  Specifying space width or height in pixels.
- * Other Display Specs::  Displaying an image; magnifying text; moving it
-                           up or down on the page; adjusting the width
-                           of spaces within text.
+ * Other Display Specs::     Displaying an image; adjusting the height,
+                               spacing, and other properties of text.
  * Display Margins::     Displaying text or images to the side of the main text.
  @end menu
  
@@@ -4046,7 -4045,6 +4045,7 @@@ displayed (@pxref{Display Feature Testi
  * GIF Images::          Special features for GIF format.
  * TIFF Images::         Special features for TIFF format.
  * PostScript Images::   Special features for PostScript format.
 +* ImageMagick Images::  Special features available through ImageMagick.
  * Other Image Types::   Various other formats are supported.
  * Defining Images::     Convenient ways to define an image for later use.
  * Showing Images::      Convenient ways to display an image once it is defined.
  
    Emacs can display a number of different image formats; some of them
  are supported only if particular support libraries are installed on
 -your machine.  In some environments, Emacs can load image
 -libraries on demand; if so, the variable @code{image-library-alist}
 -can be used to modify the set of known names for these dynamic
 -libraries (though it is not possible to add new image formats).
 +your machine.  In some environments, Emacs can load support libraries
 +on demand; if so, the variable @code{dynamic-library-alist}
 +(@pxref{Dynamic Libraries}) can be used to modify the set of known
 +names for these dynamic libraries (though it is not possible to add
 +new image formats).  Note that image types @code{pbm} and @code{xbm}
 +do not depend on external libraries and are always available in Emacs.
  
    The supported image formats include XBM, XPM (this requires the
  libraries @code{libXpm} version 3.4k and @code{libz}), GIF (requiring
@@@ -4089,6 -4085,24 +4088,6 @@@ To know which image types are really av
  @code{image-type-available-p}.
  @end defvar
  
 -@defvar image-library-alist
 -This in an alist of image types vs external libraries needed to
 -display them.
 -
 -Each element is a list @code{(@var{image-type} @var{library}...)},
 -where the car is a supported image format from @code{image-types}, and
 -the rest are strings giving alternate filenames for the corresponding
 -external libraries to load.
 -
 -Emacs tries to load the libraries in the order they appear on the
 -list; if none is loaded, the running session of Emacs won't support
 -the image type.  @code{pbm} and @code{xbm} don't need to be listed;
 -they're always supported.
 -
 -This variable is ignored if the image libraries are statically linked
 -into Emacs.
 -@end defvar
 -
  @defun image-type-available-p type
  This function returns non-@code{nil} if image type @var{type} is
  available, i.e., if images of this type can be loaded and displayed in
@@@ -4455,60 -4469,6 +4454,60 @@@ specifying the bounding box of the Post
  @end example
  @end table
  
 +@node ImageMagick Images
 +@subsection ImageMagick Images
 +@cindex ImageMagick images
 +@cindex images, support for more formats
 +
 +  If you build Emacs with ImageMagick (@url{http://www.imagemagick.org})
 +support, you can use the ImageMagick library to load many image formats.
 +
 +@findex imagemagick-types
 +The function @code{imagemagick-types} returns a list of image file
 +extensions that your installation of ImageMagick supports.  To enable
 +support, you must call the function @code{imagemagick-register-types}.
 +
 +@vindex imagemagick-types-inhibit
 +The variable @code{imagemagick-types-inhibit} specifies a list of
 +image types that you do @emph{not} want ImageMagick to handle.  There
 +may be overlap between image loaders in your Emacs installation, and
 +you may prefer to use a different one for a given image type (which
 +@c FIXME how is this priority determined?
 +loader will be used in practice depends on the priority of the loaders).
 +@c FIXME why are these uppercase when image-types is lower-case?
 +@c FIXME what are the possibe options?  Are these actually file extensions?
 +For example, if you never want to use the ImageMagick loader to use
 +JPEG files, add @code{JPG} to this list.
 +
 +@vindex imagemagick-render-type
 +You can set the variable @code{imagemagick-render-type} to choose
 +between screen render methods for the ImageMagick loader.  The options
 +are: @code{0}, a conservative method which works with older
 +@c FIXME details of this "newer method"?
 +@c Presumably it is faster but may be less "robust"?
 +ImageMagick versions (it is a bit slow, but robust); and @code{1},
 +a newer ImageMagick method.
 +
 +Images loaded with ImageMagick support a few new display specifications:
 +
 +@table @code
 +@item :width, :height
 +The @code{:width} and @code{:height} keywords are used for scaling the
 +image.  If only one of them is specified, the other one will be
 +calculated so as to preserve the aspect ratio.  If both are specified,
 +aspect ratio may not be preserved.
 +
 +@item :rotation
 +Specifies a rotation angle in degrees.
 +
 +@item :index
 +Specifies which image to view inside an image bundle file format, such
 +as TIFF or DJVM.  You can use the @code{image-metadata} function to
 +retrieve the total number of images in an image bundle (this is
 +similar to how GIF files work).
 +@end table
 +
 +
  @node Other Image Types
  @subsection Other Image Types
  @cindex PBM
@@@ -4776,35 -4736,29 +4775,35 @@@ cache, it can always be displayed, eve
  efficiently.  When Emacs displays an image, it searches the image
  cache for an existing image specification @code{equal} to the desired
  specification.  If a match is found, the image is displayed from the
 -cache; otherwise, Emacs loads the image normally.
 -
 -  Occasionally, you may need to tell Emacs to refresh the images
 -associated with a given image specification.  For example, suppose you
 -display an image using a specification that contains a @code{:file}
 -property.  The image is automatically cached, and subsequent displays
 -of that image, with the same image specification, will use the image
 -cache.  If the image file changes in the meantime, Emacs would be
 -displaying the old version of the image.  In such a situation, you can
 -``refresh'' the image by calling @code{image-refresh}.
 -
 -  In Emacs' current implementation, each graphical terminal possesses
 -an image cache, which is shared by all the frames on that terminal
 +cache.  Otherwise, Emacs loads the image normally.
 +
 +@defun image-flush spec &optional frame
 +This function removes the image with specification @var{spec} from the
 +image cache of frame @var{frame}.  Image specifications are compared
 +using @code{equal}.  If @var{frame} is @code{nil}, it defaults to the
 +selected frame.  If @var{frame} is @code{t}, the image is flushed on
 +all existing frames.
 +
 +In Emacs' current implementation, each graphical terminal possesses an
 +image cache, which is shared by all the frames on that terminal
  (@pxref{Multiple Terminals}).  Thus, refreshing an image in one frame
  also refreshes it in all other frames on the same terminal.
 -
 -@defun image-refresh spec &optional frame
 -This function refreshes any images with image specifications
 -@code{equal} to @var{spec} on frame @var{frame}.  If @var{frame} is
 -@code{nil}, it defaults to the selected frame.  If @var{frame} is
 -@code{t}, the refresh is applied to all existing frames.
  @end defun
  
 +  One use for @code{image-flush} is to tell Emacs about a change in an
 +image file.  If an image specification contains a @code{:file}
 +property, the image is cached based on the file's contents when the
 +image is first displayed.  Even if the file subsequently changes,
 +Emacs continues displaying the old version of the image.  Calling
 +@code{image-flush} flushes the image from the cache, forcing Emacs to
 +re-read the file the next time it needs to display that image.
 +
 +  Another use for @code{image-flush} is for memory conservation.  If
 +your Lisp program creates a large number of temporary images over a
 +period much shorter than @code{image-cache-eviction-delay} (see
 +below), you can opt to flush unused images yourself, instead of
 +waiting for Emacs to do it automatically.
 +
  @defun clear-image-cache &optional filter
  This function clears an image cache, removing all the images stored in
  it.  If @var{filter} is omitted or @code{nil}, it clears the cache for
@@@ -4820,12 -4774,9 +4819,12 @@@ period of time, Emacs removes it from t
  associated memory.
  
  @defvar image-cache-eviction-delay
 -This variable specifies the number of seconds an image can remain in the
 -cache without being displayed.  When an image is not displayed for this
 -length of time, Emacs removes it from the image cache.
 +This variable specifies the number of seconds an image can remain in
 +the cache without being displayed.  When an image is not displayed for
 +this length of time, Emacs removes it from the image cache.
 +
 +Under some circumstances, if the number of images in the cache grows
 +too large, the actual eviction delay may be shorter than this.
  
  If the value is @code{nil}, Emacs does not remove images from the cache
  except when you explicitly clear it.  This mode can be useful for
@@@ -5585,9 -5536,9 +5584,9 @@@ digit characters representing the chara
  table can specify a glyph to use instead of @samp{\}.)
  
  @item
 -Multibyte character codes above 256 are displayed as themselves, or as a
 -question mark or empty box if the terminal cannot display that
 -character.
 +Multibyte character codes above 256 are displayed as themselves, or as
 +a question mark or a hex code or an empty box if the terminal cannot
 +display that character.
  @end itemize
  
    The usual display conventions apply even when there is a display
diff --combined doc/lispref/elisp.texi
index 0214bb9d10c3960c491debc951aff4191466b93d,44161924188d077217eaf4a0a471acfdc6e16a7a..ad7931d45b45edd11967a37a221263623a6d7520
@@@ -8,7 -8,7 +8,7 @@@
  @c Please remember to update the edition number in README as well.
  @c And also the copies in vol1.texi and vol2.texi.
  @set VERSION  3.0
 -@set EMACSVER 23.2.92
 +@include emacsver.texi
  @set DATE July 2009
  
  @c in general, keep the following line commented out, unless doing a
@@@ -44,7 -44,8 +44,7 @@@
  This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
  corresponding to Emacs version @value{EMACSVER}.
  
 -Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
 -1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software
 +Copyright @copyright{} 1990-1996, 1998-2011  Free Software
  Foundation, Inc.
  
  @quotation
@@@ -158,8 -159,6 +158,8 @@@ Cover art by Etienne Suvasa
  * System Interface::        Getting the user id, system type, environment
                                variables, and other such things.
  
 +* Packaging::               Preparing Lisp code for distribution.
 +
  Appendices
  
  * Antinews::                Info for users downgrading to Emacs 22.
@@@ -1330,9 -1329,8 +1330,8 @@@ The @code{display} Propert
  * Replacing Specs::         Display specs that replace the text.
  * Specified Space::         Displaying one space with a specified width.
  * Pixel Specification::     Specifying space width or height in pixels.
- * Other Display Specs::     Displaying an image; magnifying text; moving it
-                               up or down on the page; adjusting the width
-                               of spaces within text.
+ * Other Display Specs::     Displaying an image; adjusting the height,
+                               spacing, and other properties of text.
  * Display Margins::         Displaying text or images to the side of
                                the main text.
  
@@@ -1395,12 -1393,6 +1394,12 @@@ Operating System Interfac
  * Session Management::      Saving and restoring state with
                                X Session Management.
  
 +Preparing Lisp code for distribution
 +
 +* Packaging Basics::        The basic concepts of Emacs Lisp packages.
 +* Simple Packages::         How to package a single .el file.
 +* Multi-file Packages::     How to package multiple files.
 +
  Starting Up Emacs
  
  * Startup Summary::         Sequence of actions Emacs performs at startup.
@@@ -1497,8 -1489,6 +1496,8 @@@ Object Internal
  @include display.texi
  @include os.texi
  
 +@include package.texi
 +
  @c MOVE to Emacs Manual:  include misc-modes.texi
  
  @c appendices
  
  \f
  These words prevent "local variables" above from confusing Emacs.
 -
 -@ignore
 -   arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34
 -@end ignore
diff --combined doc/lispref/keymaps.texi
index a9a30abd1edd5b61fe29f568101b1dff818504c4,1763f3936c94d9191210b94c82383243d2cdc82a..4a2964b9b6c55ccd1e586e68994df90f1a5c77e4
@@@ -1,6 -1,8 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -@c   Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1994, 1998-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/keymaps
  @node Keymaps, Modes, Command Loop, Top
@@@ -1972,6 -1974,7 +1972,7 @@@ feature
  @cindex defining menus
  @cindex menu prompt string
  @cindex prompt string (of menu)
+ @cindex menu item
  
  A keymap acts as a menu if it has an @dfn{overall prompt string},
  which is a string that appears as an element of the keymap.
@@@ -2070,9 -2073,25 +2071,10 @@@ look at a menu.  This is because the X 
  of menus in advance.  To force recalculation of the menu bar, call
  @code{force-mode-line-update} (@pxref{Mode Line Format}).
  
 -  You've probably noticed that menu items show the equivalent keyboard key
 -sequence (if any) to invoke the same command.  To save time on
 -recalculation, menu display caches this information in a sublist in the
 -binding, like this:
 -
 -@c This line is not too long--rms.
 -@example
 -(@var{item-string} @r{[}@var{help}@r{]} (@var{key-binding-data}) . @var{real-binding})
 -@end example
 -
 -@noindent
 -Don't put these sublists in the menu item yourself; menu display
 -calculates them automatically.  Don't mention keyboard equivalents in
 -the item strings themselves, since that is redundant.
 -
  @node Extended Menu Items
  @subsubsection Extended Menu Items
  @kindex menu-item
+ @cindex extended menu item
  
    An extended-format menu item is a more flexible and also cleaner
  alternative to the simple format.  You define an event type with a
@@@ -2102,6 -2121,14 +2104,6 @@@ string.  Thus, the string need not be 
  @var{item-property-list}, has the form of a property list which contains
  other information.
  
 -  When an equivalent keyboard key binding is cached, the extended menu
 -item binding looks like this:
 -
 -@example
 -(menu-item @var{item-name} @var{real-binding} (@var{key-binding-data})
 -    . @var{item-property-list})
 -@end example
 -
    Here is a table of the properties that are supported:
  
  @table @code
@@@ -2794,3 -2821,7 +2796,3 @@@ menu of Shell mode, after the item @cod
    [work] '("Work" . work-command) 'break)
  @end example
  @end defun
 -
 -@ignore
 -   arch-tag: cfb87287-9364-4e46-9e93-6c2f7f6ae794
 -@end ignore
diff --combined doc/lispref/vol1.texi
index 93e6cc31ec21ce9f2e05b1bb23a12f3c49da6011,425e09fdc2173f96815d1b6e129d5e47557a6d31..ad8ff0819caf3ab3517f36f17c8e3e7e0a783752
@@@ -1,7 -1,8 +1,7 @@@
  \input texinfo  @c -*-texinfo-*-
  @c This file is used for printing the GNU Emacs Lisp Reference Manual
  @c in two volumes.  It is a modified version of elisp.texi.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c %**start of header
  @setfilename elisp
@@@ -26,7 -27,7 +26,7 @@@
  @c Version of the manual and of Emacs.
  @c Please remember to update the edition number in README as well.
  @set VERSION  3.0
 -@set EMACSVER 23.2.92
 +@include emacsver.texi
  @set DATE July 2009
  
  @dircategory Emacs
@@@ -179,8 -180,6 +179,8 @@@ Reference Manual, corresponding to GNU 
  * System Interface::        Getting the user id, system type, environment
                                variables, and other such things.
  
 +* Packaging::               Preparing Lisp code for distribution.
 +
  Appendices
  
  * Antinews::                Info for users downgrading to Emacs 22.
@@@ -1351,9 -1350,8 +1351,8 @@@ The @code{display} Propert
  * Replacing Specs::         Display specs that replace the text.
  * Specified Space::         Displaying one space with a specified width.
  * Pixel Specification::     Specifying space width or height in pixels.
- * Other Display Specs::     Displaying an image; magnifying text; moving it
-                               up or down on the page; adjusting the width
-                               of spaces within text.
+ * Other Display Specs::     Displaying an image; adjusting the height,
+                               spacing, and other properties of text.
  * Display Margins::         Displaying text or images to the side of
                                the main text.
  
@@@ -1416,12 -1414,6 +1415,12 @@@ Operating System Interfac
  * Session Management::      Saving and restoring state with
                                X Session Management.
  
 +Preparing Lisp code for distribution
 +
 +* Packaging Basics::        The basic concepts of Emacs Lisp packages.
 +* Simple Packages::         How to package a single .el file.
 +* Multi-file Packages::     How to package multiple files.
 +
  Starting Up Emacs
  
  * Startup Summary::         Sequence of actions Emacs performs at startup.
@@@ -1549,3 -1541,7 +1548,3 @@@ Object Internal
  
  \f
  These words prevent "local variables" above from confusing Emacs.
 -
 -@ignore
 -   arch-tag: 9594760d-8801-4d1b-aeb9-f3b3166b5be2
 -@end ignore
diff --combined doc/lispref/vol2.texi
index 6833e5219f346e91dc4ba6e7c1b2f104f4e85354,7d2f260c7727156800df421e292ba9f462f766e4..7832b3a86140627d6e47199c42c05011f1b23bc9
@@@ -1,7 -1,8 +1,7 @@@
  \input texinfo  @c -*-texinfo-*-
  @c This file is used for printing the GNU Emacs Lisp Reference Manual
  @c in two volumes.  It is a modified version of elisp.texi.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c %**start of header
  @setfilename elisp
@@@ -26,7 -27,7 +26,7 @@@
  @c Version of the manual and of Emacs.
  @c Please remember to update the edition number in README as well.
  @set VERSION  3.0
 -@set EMACSVER 23.2.92
 +@include emacsver.texi
  @set DATE July 2009
  
  @dircategory Emacs
@@@ -178,8 -179,6 +178,8 @@@ Reference Manual, corresponding to GNU 
  * System Interface::        Getting the user id, system type, environment
                                variables, and other such things.
  
 +* Packaging::               Preparing Lisp code for distribution.
 +
  Appendices
  
  * Antinews::                Info for users downgrading to Emacs 22.
@@@ -1350,9 -1349,8 +1350,8 @@@ The @code{display} Propert
  * Replacing Specs::         Display specs that replace the text.
  * Specified Space::         Displaying one space with a specified width.
  * Pixel Specification::     Specifying space width or height in pixels.
- * Other Display Specs::     Displaying an image; magnifying text; moving it
-                               up or down on the page; adjusting the width
-                               of spaces within text.
+ * Other Display Specs::     Displaying an image; adjusting the height,
+                               spacing, and other properties of text.
  * Display Margins::         Displaying text or images to the side of
                                the main text.
  
@@@ -1415,12 -1413,6 +1414,12 @@@ Operating System Interfac
  * Session Management::      Saving and restoring state with
                                X Session Management.
  
 +Preparing Lisp code for distribution
 +
 +* Packaging Basics::        The basic concepts of Emacs Lisp packages.
 +* Simple Packages::         How to package a single .el file.
 +* Multi-file Packages::     How to package multiple files.
 +
  Starting Up Emacs
  
  * Startup Summary::         Sequence of actions Emacs performs at startup.
@@@ -1548,3 -1540,7 +1547,3 @@@ Object Internal
  
  \f
  These words prevent "local variables" above from confusing Emacs.
 -
 -@ignore
 -   arch-tag: dfdbecf8-fec2-49c1-8427-3e8ac8b0b849
 -@end ignore
diff --combined lisp/ChangeLog
index 00460741961abf4978c7d2a2c2e8dcdd7477f93f,ead0456a7b1e56d8a9eadd07143f4e0a04bfb54b..b2e5e98016e46ccb7effd9b03e4a200700a5a35e
 -2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 -
 -      * net/rcirc.el: Clean log filenames (Bug#7933).
 -      (rcirc-log-write): Use convert-standard-filename.
 -      (rcirc-log-filename-function): Documentation updates.
 -
+ 2011-01-31  Alan Mackenzie  <acm@muc.de>
+       * progmodes/cc-cmds.el (c-forward-over-illiterals): Continue
+       parsing if we encounter a naked # (Bug#7595).
+       (c-beginning-of-statement): Avoid loop in locating the beginning
+       of a macro.
+ 2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * files.el (copy-directory): Fix arguments to recursive call.
 -2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * files.el (copy-directory): If destination is an existing
+       directory, copy into a subdirectory there.
 -2011-01-29  Andreas Schwab  <schwab@linux-m68k.org>
++2011-01-31  Andreas Schwab  <schwab@linux-m68k.org>
+       * emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
+       files.
 -2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * image-dired.el (image-dired-mouse-display-image): No-op if no
+       file is found (Bug#7817).
+       * mouse.el (mouse-menu-non-singleton): Doc fix (Bug#7801).
 -2011-01-28  Kenichi Handa  <handa@m17n.org>
++2011-01-31  Kenichi Handa  <handa@m17n.org>
+       * international/quail.el (quail-keyboard-layout-alist): Remove
+       superfluous SPC for "pc105-uk" (bug#7927).
 -2011-01-27  Glenn Morris  <rgm@gnu.org>
++2011-01-31  Glenn Morris  <rgm@gnu.org>
+       * msb.el (msb-menu-bar-update-buffers): Update for changed
+       argument handling of menu-bar-select-frame.  (Bug#7902)
 -2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
+       to the recursion depth (Bug#7722).
 -2011-01-26  Roy Liu  <carsomyr@gmail.com>  (tiny change)
++2011-01-31  Roy Liu  <carsomyr@gmail.com>  (tiny change)
+       * term/ns-win.el (ns-find-file): Expand ns-input-file with
+       command-line-default-directory (Bug#7872).
 +2011-01-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation--flush-directory-cache):
 +      New function, extracted from compilation--remove-properties.
 +      (compilation--remove-properties, compilation--parse-region): Use it.
 +      (compilation--previous-directory): Handle one more case.
 +      (compilation-enable-debug-messages): Remove.
 +      (compilation-parse-errors, compilation--flush-parse): Just remove the
 +      left over debug messages.
 +
 +2011-01-31  Sam Steingold  <sds@gnu.org>
 +
 +      * progmodes/compile.el (compilation-enable-debug-messages):
 +      Add a variable to make the parsing messages introduced in
 +      2011-01-28T22:12:05Z!monnier@iro.umontreal.ca optional.
 +      (compilation-parse-errors, compilation--flush-parse): Use it.
 +
 +2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el: New customizable nick completion format.
 +      (rcirc-nick-completion-format): New defcustom.
 +      (rcirc-complete): Use it.
 +
 +2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el: Clean log filenames (Bug#7933).
 +      (rcirc-log-write): Use convert-standard-filename.
 +      (rcirc-log-filename-function): Documentation updates.
 +
 +2011-01-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * mail/emacsbug.el (report-emacs-bug-insert-to-mailer):
 +      Check report-emacs-bug-can-use-osx-open and use that if t.
 +      (report-emacs-bug-can-use-osx-open): New function.
 +      (report-emacs-bug): Rename can-xdg-email to can-insert-mail.
 +      Check report-emacs-bug-can-use-osx-open also for can-insert-mail.
 +
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-dispatcher.el (vc-set-async-update): New function for
 +      updating Dired or VC-dir buffers after async command completes.
 +
 +      * vc/vc-bzr.el (vc-bzr-async-command): Return the process buffer.
 +      (vc-bzr-pull, vc-bzr-merge-branch): Use vc-set-async-update.
 +
 +      * vc/vc-git.el (vc-git-merge-branch): Add FETCH_HEAD to branch
 +      completions if it exists.  Use vc-set-async-update.
 +      (vc-git-pull): Use vc-set-async-update.
 +
 +      * vc/vc-hg.el (vc-hg-pull): Fix default-contents arg to
 +      read-shell-command.  Use vc-set-async-update.
 +      (vc-hg-merge-branch): Use vc-set-async-update.
 +
 +2011-01-29  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED):
 +      Don't presume KEYEXPIRED and KEYREVOKED to be a fatal error status
 +      (Bug#7931).
 +
 +2011-01-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el: Avoid an N² behavior in grep.
 +      (compilation--previous-directory): New fun.
 +      (compilation--previous-directory-cache): New var.
 +      (compilation--remove-properties): Flush it.
 +      (compilation-directory-properties, compilation-error-properties):
 +      Use the new fun to speed up looking for the current directory.
 +
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-hg.el (vc-hg-history): New var.
 +      (vc-hg-pull): Perform default pull if called via Lisp by vc-pull.
 +      (vc-hg-merge-branch): New function.
 +
 +      * vc/vc.el (vc-pull): Make vc-update an alias for this, instead of
 +      the other way around.
 +
 +      * vc/vc-git.el (vc-git-branches, vc-git-pull)
 +      (vc-git-merge-branch): New functions.
 +      (vc-git-history): New var.
 +
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-dispatcher.el (vc-do-async-command): New function.
 +
 +      * vc/vc-bzr.el (vc-bzr-async-command): Convert into a wrapper for
 +      vc-do-async-command.
 +
 +      * vc/vc-bzr.el (vc-bzr-pull, vc-bzr-merge-branch):
 +      Callers changed.
 +
 +2011-01-28  Leo  <sdl.web@gmail.com>
 +
 +      * emacs-lisp/advice.el (ad-make-advised-docstring): Don't apply
 +      highlighting to the "this function is advised" message.
 +
 +      * help-mode.el (help-mode-finish): Apply highlighting here, to
 +      avoid clobbering by substitute-command-keys (Bug#6304).
 +
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * woman.el (woman0-roff-buffer): Process roff escape sequences
 +      occurring prior to the first request (Bug#7843).
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el: Don't use font-lock any more.
 +      (compilation-error-regexp-alist-alist): Change handling of makepp
 +      so it preserves the warning/error distinction on subsequent files.
 +      Simplify various rules.
 +      (compilation-directory-properties): Use font-lock-face.
 +      Add a compilation-message property.
 +      (compilation-internal-error-properties): Use font-lock-face.
 +      Don't set the compilation-debug property here.
 +      (compilation--put-prop, compilation--remove-properties)
 +      (compilation--parse-region, compilation--ensure-parse)
 +      (compilation--ensure-parse): New functions.
 +      (compilation-parse-errors): New function, largely inspired of
 +      compilation-mode-font-lock-keywords.  Set compilation-debug here.
 +      (compilation--parsed): New var.
 +      (compilation--flush-parse): Use compilation--ensure-parse.
 +      (compilation-start): Don't call font-lock.
 +      (compilation-turn-on-font-lock): Remove.
 +      (compilation-setup): Don't set font-lock-extra-managed-props not change
 +      other font-lock settings, other than keywords.
 +      Don't activate font-lock-mode.
 +      Set change-major-mode-hook and before-change-functions.
 +      (compilation--unsetup): Remove properties and hooks.
 +      (compilation-next-single-property-change): New function.
 +      (compilation-next-error): Use it to parse when needed.
 +      (compile-goto-error): Parse buffer as needed.
 +      (compilation--compat-error-properties): Don't need a dummy `face'
 +      property any more.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el: Use accessors for clarity and fix omake hack.
 +      (compilation-process-setup-function): Fix docstring's false promises.
 +      (compilation-error-regexp-alist-alist): Catch omake's continuous
 +      recompilation message and avoid reuse of old markers.
 +      (compilation-parse-errors-function): Declare obsolete.
 +      (compilation-buffer-modtime): Remove.
 +      (compilation--make-cdrloc, compilation--loc->col)
 +      (compilation--loc->line, compilation--loc->file-struct)
 +      (compilation--loc->marker, compilation--loc->visited)
 +      (compilation--make-file-struct, compilation--file-struct->file-spec)
 +      (compilation--file-struct->formats)
 +      (compilation--file-struct->loc-tree): New macros.  Use them.
 +      (compilation--message): New defstruct.  Use them.
 +      (compilation-next-error-function): Don't mess with timestamps to try
 +      and guess when to reparse.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el: Get rid of compilation-parse-errors-function
 +      (tex-old-error-file-name): New function,
 +      extracted from tex-compilation-parse-errors.
 +      (tex-compilation-parse-errors): Remove.
 +      (tex-error-regexp-alist): New var.
 +      (tex-shell): Use it to avoid compilation-parse-errors-function.
 +
 +      * progmodes/grep.el (grep-regexp-alist): Tighten regexp.
 +      (grep-mode-font-lock-keywords): Remove regexp that seems like
 +      a left-over from before we used compile.el.
 +      (grep-mode-font-lock-keywords): Call syntax-ppss-flush-cache when
 +      modifying the buffer within with-silent-modifications.
 +
 +      * progmodes/compile.el: Cleanup text-properties namespace by using
 +      `compilation-message' instead of `message', `compilation-directory'
 +      instead of `directory', and `compilation-debug' instead of `debug'.
 +      (compilation-last-buffer, compilation-parsing-end)
 +      (compilation-error-list, compilation-old-error-list): Move to the
 +      compatibility part of the code.
 +      (compilation-error-properties): If `file' is a function, let it return
 +      a file name.
 +      (compilation-mode-font-lock-keywords): Be more conservative with the
 +      omake "^ *" pattern prefix, to try and minimize the risk of
 +      pathologically slow regexp matching.
 +      (compilation-start): Use inhibit-read-only.
 +      (compilation--unsetup): New function.
 +      (compilation-shell-minor-mode, compilation-minor-mode): Use it.
 +      (compilation-filter): Minor tweaks.
 +      (compilation-next-error-function): Try and avoid abusing variables.
 +      (compilation--flush-file-structure): New fun.
 +      (compilation-fake-loc): Use it to improve behavior when file is reused.
 +      (debug-ignored-errors): Add "Moved past last ...".
 +      (compilation--compat-error-properties)
 +      (compilation--compat-parse-errors): Rename by doubling the "-".
 +
 +      Port features from the previous prolog.el to the new one.
 +      * progmodes/prolog.el (prolog-system): Add GNU and ECLiPSe options.
 +      (prolog-program-name, prolog-program-switches, prolog-consult-string)
 +      (prolog-compile-string, prolog-prompt-regexp): Get rid of the <foo>-i
 +      variable and use a function to compute the value dynamically.
 +      (prolog-prompt-regexp): Add regexp for GNU Prolog.
 +      (prolog-continued-prompt-regexp): Remove, unused.
 +      (prolog-find-value-by-system): Try and use the value of prolog-system
 +      in the *prolog* buffer if it helps.
 +      (prolog-mode-keybindings-common): Bind C-c C-z unconditionally...
 +      (prolog-zip-on): ..and check prolog-system and version here instead.
 +      (prolog-inferior-self-insert-command): New command.
 +      (prolog-inferior-mode-map): Use it.
 +      (prolog-inferior-error-regexp-alist): New var.
 +      (prolog-inferior-mode): Use it, with compilation-shell-minor-mode.
 +      (prolog-input-filter): Use derived-mode-p.
 +      (prolog-inferior-guess-flavor): New function.
 +      (prolog-ensure-process): Use it.  Use make-comint-in-buffer rather than
 +      make-comint to avoid running comint-mode twice.
 +      (prolog-inferior-buffer): New fun.
 +      (prolog-old-process-region, prolog-old-process-file):
 +      Don't call prolog-bsts here...
 +      (prolog-build-prolog-command): ...do it here instead.
 +      (prolog-old-process-region, prolog-old-process-file):
 +      Use compilation-fake-loc and compilation-forget-errors.
 +      (prolog-consult-compile-region): Use bolp.
 +
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image-mode.el (image-display-size): Doc fix (Bug#7820).
 +
 +2011-01-27  Sam Steingold  <sds@gnu.org>
 +
 +      * midnight.el (clean-buffer-list-kill-never-buffer-names):
 +      Remove "*server*" which is never created by emacs server.
 +
 +2011-01-27  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * vc/vc-bzr.el (vc-bzr-diff): Don't pass --diff-options unless
 +      there are some diff switches.
 +
 +2011-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-function):
 +      Copy change made to ruby-font-lock-syntactic-keywords.
 +
 +      * htmlfontify.el: Make it obey the font-lock-face text property.
 +      Miscellaneous cleanup such as:
 +      - Don't hide expressions after a closing paren.
 +      - Move initial setq into let.
 +      - Hoist common parts out of ifs.
 +      (hfy-p-to-face, hfy-p-to-face-lennart): Remove.
 +      (hfy-face-at): Use get-text-property instead.
 +      (hfy-prop-invisible-p): Use invisible-p if available.
 +      (htmlfontify-manual): Use \\[...].
 +      (hfy-html-quote-regex): Use [...].
 +      (hfy-combined-face-spec): Simplify.
 +      (hfy-compile-face-map): Don't presume point-min==1.
 +      (hfy-css-name, hfy-buffer, htmlfontify-buffer): Use \' rather than $ to
 +      match end of string.
 +      (hfy-text-p): η-reduce.
 +      (hfy-tags-for-file): Receive cache-hash directly.
 +      (hfy-mark-tag-names): Adjust call.
 +
 +2011-01-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * msb.el (msb-after-load-hooks): Make it an obsolete alias.
 +      (msb-after-load-hook): Remove eval-after-load wackiness.
 +
 +2011-01-25  Sam Steingold  <sds@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-diff): Use `diff-command' instead of the
 +      literal "diff" (important for windows-nt).
 +
  2011-01-25  Glenn Morris  <rgm@gnu.org>
  
 -      * comint.el (comint-mode): Doc fix.  (Bug#7897)
 +      * emacs-lisp/copyright.el (copyright-at-end-flag)
 +      (copyright-names-regexp): Add safety properties.
 +      (copyright-year-ranges): New option.
 +      (copyright-find-end): New function, split from copyright-update-year.
 +      (copyright-update-year): Use copyright-find-end.
 +      (copyright-fix-years): Optionally, convert years to ranges.
 +      Handle years continued over comment lines.
 +      Do not mess with the fill-prefix.
 +      Do not call copyright-update.
 +      (copyright-update-directory): Optionally, fix years rather than update.
 +      Skip directories.  Find files with only safe local vars.
  
 -2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * files.el (file-name-non-special): Only change buffer-file-name after
        insert-file-contents if it's `visit'ing the file (bug#7854).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
        * dired.el (dired-revert): Doc fix (Bug#7758).
  
 -2011-01-23  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 +      * simple.el (line-move-visual): Doc fix (Bug#7594).
 +
 +2011-01-25  Nobuyoshi Nakada  <nobu@ruby-lang.org>
  
        * progmodes/ruby-mode.el (ruby-here-doc-beg-match): Fix for
        here-doc which ends with an underscore.
        (ruby-font-lock-syntactic-keywords): Highlight regexp after open
        bracket.
  
 -2011-01-22  Keitaro Miyazaki  <keitaro.miyazaki@gmail.com>  (tiny change)
 +2011-01-25  Keitaro Miyazaki  <keitaro.miyazaki@gmail.com>  (tiny change)
  
        * emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
        the correct buffer (Bug#7650).
  
 -2011-01-22  Glenn Morris  <rgm@gnu.org>
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * comint.el (comint-mode): Doc fix.  (Bug#7897)
  
        * simple.el (do-auto-fill): Give it a doc string.
  
        * button.el (make-text-button): Doc fix.  (See bug#7881)
  
 +2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):
 +      Don't move backward, so as not to fall in an inf-loop (bug#7736).
 +
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-function): (bug#7735)
 +      Handle ?" and friends differently (e.g. don't use backrefs).
 +
 +2011-01-24  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-default-power-reference-level)
 +      (calc-default-field-reference-level): New variables.
 +      * calc/calc-units.el (math-standard-units):  Add dB and Np.
 +      (math-logunits): New variable.
 +      (math-extract-logunits, math-logcombine, calcFunc-luplus)
 +      (calcFunc-luminus, calc-luplus, calc-luminus, math-logunit-level)
 +      (calcFunc-fieldlevel, calcFunc-powerlevel, calc-level):
 +      New functions.
 +      (math-find-base-units-rec): Add entry for ln(10).
 +      * calc/calc-help.el (calc-u-prefix-help): Add logarithmic help.
 +      (calc-ul-prefix-help): New function.
 +      * calc/calc-ext.el (calc-init-extensions): Autoload new units
 +      functions. Add keybindings for new units functions.
 +
 +2011-01-22  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 +
 +      * net/rcirc.el (rcirc-kill-buffer-hook): Flush logs when killing
 +      rcirc buffers.  (Bug#4940)
 +
 +2011-01-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/copyright.el (copyright-find-copyright): New function,
 +      split out from copyright-update-year.
 +      (copyright-update): Don't mess with the GPL version if we don't own the
 +      copyright.  Update license regexp, and remove no longer needed
 +      Esperanto stuff.
 +      (copyright-fix-years): Use copyright-find-copyright.
 +
  2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * simple.el (line-move-visual): Doc fix (Bug#7594).
 +      * vc/diff.el (diff-sentinel): Doc fix (Bug#7682).
 +
 +2011-01-22  Jari Aalto  <jari.aalto@cante.net>
 +
 +      * play/landmark.el: Change `lm-' prefix to `landmark-' (Bug#7672).
 +      (lm): Rename to landmark.
 +      (lm-test-run): Rename to landmark-test-run.
 +
 +2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * emacs-lisp/re-builder.el (reb-mode-map): Fix logic error in
        "Case sensitive" menu item.
  
 -2011-01-21  Roland McGrath  <roland@frob.com>
 +2011-01-22  Roland McGrath  <roland@frob.com>
  
        * comint.el (comint-replace-by-expanded-history-before-point): Fix
        expansion of !$ and !!:N syntax to pick the indicated word (bug#7883).
  
 -2011-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * progmodes/js.el (js--regexp-literal): Count backslashes (bug#7882).
  
 -2011-01-21  Jari Aalto  <jari.aalto@cante.net>
 +2011-01-22  Jari Aalto  <jari.aalto@cante.net>
  
        * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
        Assume foo(bar) is a manpage reference rather than some unquoted
        symbol (bug#7705).
  
 -2011-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * subr.el (shell-quote-argument): Properly quote \n (bug#7687).
        Suggested by Flo <sensorflo@gmail.com>.
  
 -2011-01-21  Glenn Morris  <rgm@gnu.org>
 +2011-01-22  Glenn Morris  <rgm@gnu.org>
  
        * progmodes/compile.el (compilation-error-regexp-alist):
        Fix custom type.  (Bug#7812)
  
 -2011-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el (allout-prefixed-keybindings): Bind (prefixed) '#' to
 +      allout-number-siblings, in keeping with what obtained due to
 +      (now-defunct) allout-keybindings-list.  Ditch repeat binding to
 +      (prefixed) ?i.
 +      (allout-before-change-handler): Better expose spots affected by
 +      undo.
 +
 +2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * man.el (Man-highlight-references0): Use make-button (Bug#7881).
 +
 +2011-01-22  Phil Hagelberg  <phil@evri.com>
 +
 +      * pcmpl-unix.el (pcmpl-ssh-config-file): New option.
 +      (pcmpl-ssh-known-hosts): Rename from pcmpl-ssh-hosts.
 +      (pcmpl-ssh-config-hosts): New function.
 +      (pcmpl-ssh-hosts): Use pcmpl-ssh-config-hosts in addition to
 +      pcmpl-ssh-known-hosts.
 +
 +2011-01-21  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-undo.el (calc-undo): Autoload it.
 +      * calc/calc-ext.el (calc-init-extensions): Remove keybindings
 +      and autoload for `calc-undo'.
 +      * calc/calc.el (calc-mode-map): Add keybindings for `calc-undo'.
 +      * calc/calc-prog.el:
 +      * calc/calc-graph.el:
 +      * calc/calc-map.el: Change `arglist' to `math-arglist' throughout.
 +
 +2011-01-21  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * calc/calc-ext.el (calc-init-extensions): Map all `undo'
 +      keybindings to `calc-undo'.
 +
 +2011-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Don't mess with *temp*.
 +      * obsolete/spell.el: Move from textmodes/spell.el.
 +      (spell-string):
 +      * term.el (term-read-input-ring):
 +      * startup.el (display-startup-echo-area-message):
 +      * progmodes/antlr-mode.el (antlr-directory-dependencies):
 +      * comint.el (comint-read-input-ring): Use with-temp-buffer.
 +      * international/mule.el (ctext-pre-write-conversion): Don't hardcode
 +      point-min==1.
 +
 +2011-01-20  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el: (allout-institute-keymap): Use fset instead of
 +      reapplying defalias.
 +
 +      (allout-hotspot-key-handler): Check for non-control-modified
 +      bindings for hotspot characters if there are no control-modified
 +      versions.
 +
 +      * allout.el: Summary - migrate to defining allout mode using
 +      define-minor-mode instead of defun.  Significantly clean-up
 +      internal keymap provisions, refactoring and, in the process,
 +      removing a lot of accumulated cruft.
 +
 +      allout-mode-map is now a keymap by virtue of being a defalias to
 +      allout-mode-map-value, which contains the actual keymap structure.
 +
 +      (allout-mode): Use define-minor-mode rather than defun.
 +      Remove now-unnecessary minor-mode setup activities from the body.
 +      Specify :keymap as allout-mode-map so the minor-mode-map-alist
 +      entry will be '(allout-mode . allout-mode-map) - see
 +      allout-mode-map-value, below.  Adjust docstring to track changes.
 +      (allout-minor-mode): Remove this defalias, now that we're using
 +      define-minor-mode.
 +      (allout-mode-map): Set value to be 'allout-mode-map.  The actual
 +      keymap is allout-mode-map-value, via defalias.
 +      (allout-mode-map-value): The variable holding the actual mode
 +      keymap structure, by virtue of defalias from allout-mode-map.
 +      (allout-compose-and-institute-keymap): Rename from
 +      allout-bind-keys, and including the binding-composition
 +      functionality of the former produce-allout-mode-map and
 +      allout-setup-mode-map.
 +      (allout-institute-keymap): Take over the "setup" part of the former
 +      allout-setup-mode-map.  Reassign allout-mode-map-value value and
 +      update the defalias.
 +      (allout-command-prefix) (allout-prefixed-keybindings)
 +      (allout-unprefixed-keybindings):
 +      Use allout-compose-and-institute-keymap to process the bindings.
 +      (allout-unprefixed-keybindings): Remove extraneous '?' question
 +      marks.
 +      (allout-prefixed-keybindings): Elide binding to (prefixed) \C-h -
 +      user can customize if they want to use that binding.
 +      Bind allout-copy-topic-as-kill to (prefixed) \M-k.
 +      Bind allout-up-current-level to (prefixed) \C-u.  (I think i mistakenly
 +      elided that, previously, instead of the one for \C-h.)
 +      (allout-hotspot-key-handler): Remove attempt to resolve the key
 +      through the literal key-string lookup on allout-keybindings-list.
 +      That probably hasn't worked for a Long Time, and removal of
 +      allout-keybindings-list further simplifies the keybindings
 +      situation.
 +      (allout-pre-command-business): Use allout-mode-map-value instead
 +      of allout-mode-map.
 +      (allout-preempt-trailing-ctrl-h): Remove.  The user can customize
 +      the bindings if they want to use a keybinding having a trailing
 +      \C-h.  No deprecation needed since this feature was never in a
 +      release.
 +      (allout-keybindings-list): Remove.  It's not been useful for a
 +      while.  (See allout-hotspot-key-handler changes, above.)
 +      (produce-allout-mode-map): Remove.  Consolidate into
 +      allout-compose-and-institute-keymap.
 +      (allout-mode-map-adjustments): Remove.  No longer necessary with
 +      removal of allout-preempt-trailing-ctrl-h.
 +      (allout-setup-mode-map): Remove.  Consolidate into
 +      allout-compose-and-institute-keymap and allout-institute-keymap.
 +
 +2011-01-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status): Tweak previous change.
 +
 +      * simple.el (read-expression-history): Remove, it's in minibuf.c.
 +
 +2011-01-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (y-or-n-p): Revert 2011-01-07 change, removing ARGS.
 +
 +      * files.el (find-alternate-file, basic-save-buffer)
 +      (basic-save-buffer-2, revert-buffer, recover-file)
 +      (kill-buffer-ask, abort-if-file-too-large)
 +      (set-visited-file-name, write-file, backup-buffer)
 +      (basic-save-buffer, save-some-buffers):
 +      * dired-aux.el (dired-compress-file): Callers changed.
 +
 +2011-01-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status, vc-svn-parse-status):
 +      Also check the property status.  (Bug#7861)
 +
 +2011-01-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-debug-message): Extend function exclude
 +      list.  Use `regexp-opt'.
 +
 +2011-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb
 +      highlighting doesn't spill over subsequent lines.
  
        * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the
        keymap expression.  Improve docstring.
  
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Don't auto-indent for indent-to-left-margin, it's too often
 +      counter-productive.
 +
 +2011-01-16  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * strokes.el (strokes-read-stroke): Re-fill strokes buffer with
 +      spaces if the frame was resized, so that the full visible buffer
 +      serves as canvas for strokes.
 +
 +2011-01-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * info-xref.el (info-xref-docstrings): Replace cl function.
 +      Also skip directories.
 +
 +2011-01-16  Kevin Ryde  <user42@zip.com.au>
 +
 +      * info-xref.el: Version 3.
 +      (info-xref-check, info-xref-check-all): Move commentary details
 +      into docstrings for better visibility.
 +      Use compilation-mode for the results buffer.
 +      (info-xref-output, info-xref-output-error, info-xref-with-output)
 +      (info-xref-filename, info-xref-in-progress):
 +      New internals for this.
 +      (info-xref-check-list, info-xref-check-buffer)
 +      (info-xref-check-all-custom): Use those.
 +      (info-xref-output-buffer): Rename from info-xref-results-buffer.
 +      (info-xref-output-heading): Rename from info-xref-filename-heading.
 +      (info-xref-good, info-xref-bad, info-xref-xfile-alist)
 +      (info-xref-filename-heading): Move to output managing section.
 +      (info-xref-docstrings): New command checking "Info node `(foo)Bar'"
 +      (info-xref-lock-file-p, info-xref-with-file): New helpers for it.
 +      (info-xref-subfile-p): Move to generic section with those two.
 +      (info-xref-check-node): New function split from
 +      info-xref-check-buffer, shared by info-xref-docstrings.
 +      (info-xref-goto-node-p): Move to a checking section with that func.
 +      (info-xref-unavail): New counter.
 +      (info-xref-check-node): Use it.
 +      (info-xref-with-output): Show count of unavailables at end of output.
 +      (info-xref-all-info-files): Exclude ".*" dotfiles.  Ignore broken
 +      symlinks.  Exclude .texi files.  Exclude Emacs backup files.
 +      (info-xref-check-all-custom): Fix quietening viper-mode and
 +      gnus-registry-install -- use setq not let so as not to unbind
 +      after load.
 +
 +2011-01-16  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-abort): Don't quit if search has
 +      an incomplete regexp (isearch-error is non-nil).  (Bug#7534)
 +
  2011-01-15  Mark Diekhans  <markd@soe.ucsc.edu>
  
        * files.el (backup-buffer): Make last-resort backup file in
        * subr.el (locate-user-emacs-file): If .emacs.d does not exist,
        make it with permission 700.
  
 -2011-01-14  Kenichi Handa  <handa@m17n.org>
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-insert-header):
        Set rmail-mime-coding-system to a cons whose car is the last coding
        (rmail-show-mime): If only a header part was decoded, find the
        coding system while ignoring mm-charset-override-alist.
  
 -2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
  
        * subr.el (event-start, event-end): Doc fix (Bug#7826).
  
 -2011-01-12  Kenichi Handa  <handa@m17n.org>
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-next-item)
        (rmail-mime-previous-item): Delete them.
        (rmail-mime): Handle the case that the current buffer is not rmail
        buffer (e.g. in summary buffer).
  
 -2011-01-05  Kenichi Handa  <handa@m17n.org>
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-next-item)
        (rmail-mime-previous-item): Skip the body of a non-multipart
        entity if a tagline is shown.
  
 -2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * tmm.el (tmm-get-keymap): Skip bindings without labels (bug#7721).
        (tmm-prompt): Simplify.
        * whitespace.el (global-whitespace-newline-mode): Fix call (bug#7810)
        to minor mode which used nil accidentally to mean "turn off".
  
 -2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-15  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * net/tramp.el (tramp-find-inline-compress)
 +      * net/tramp-sh.el (tramp-find-inline-compress)
        (tramp-get-inline-coding): Quote command after pipe symbol for
        local calls under W32.  (Bug#6784)
  
 -2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-15  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-default-method): Initialize with pscp/plink
        only when running under W32.
  
 -2011-01-09  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
        * progmodes/grep.el (grep-compute-defaults): Quote the program
        file name after the pipe symbol in Grep templates.  (Bug#6784)
        * jka-compr.el (jka-compr-partial-uncompress): Likewise.
  
 -2011-01-08  Lennart Borgman  <lennart.borgman@gmail.com>
 +2011-01-15  Lennart Borgman  <lennart.borgman@gmail.com>
  
        * buff-menu.el (Buffer-menu-buffer-list): New var.
        (Buffer-menu-revert-function, list-buffers-noselect): Use it, so a
        restricted buffer list is not lost on revert (Bug#7749).
  
 -2011-01-08  Eric Hanchrow  <eric.hanchrow@gmail.com>
 +2011-01-15  Eric Hanchrow  <eric.hanchrow@gmail.com>
  
        * net/ldap.el (ldap-search-internal): Discard stderr output.
  
 -2011-01-07  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
        * files.el (directory-abbrev-alist): Doc fix.  (Bug#7777)
  
 -2011-01-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-bzr.el (vc-bzr-annotate-command, vc-bzr-annotate-time):
 -      Author names can have spaces (bug#7792).
 +      * vc-bzr.el (vc-bzr-annotate-time): Tweak previous change.
  
 -2011-01-04  Kenichi Handa  <handa@m17n.org>
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-insert-bulk): Display an unknown
        part as a plain text.
        (rmail-mime-process-multipart): Set the default content-type to
        nil for unknown multipart subtypes (bug#7651).
  
 -2011-01-03  Brent Goodrick  <bgoodr@gmail.com>  (tiny change)
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * hexl.el (hexl-mode-old-*): Remove.
 +      (hexl-mode--old-var-vals): New var to replace them.
 +      (hexl-mode--minor-mode-p, hexl-mode--setq-local): New funs.
 +      (hexl-mode, hexl-follow-line, hexl-activate-ruler):
 +      Use them to set local vars (bug#7846).
 +      (hexl-mode-exit): Use hexl-mode--old-var-vals to restore state.
 +      (hexl-backward-short, hexl-backward-word, hexl-scroll-down)
 +      (hexl-scroll-up, hexl-end-of-1k-page, hexl-end-of-512b-page): Simplify.
 +
 +      * vc/smerge-mode.el: Resolve comment conflicts more aggressively.
 +      (smerge-resolve--normalize-re): New var.
 +      (smerge-resolve--extract-comment, smerge-resolve--normalize): New funs.
 +      (smerge-resolve): Use them.
 +      * newcomment.el (comment-only-p): New function.
 +      (comment-or-uncomment-region): Use it.
 +
 +2011-01-14  Brent Goodrick  <bgoodr@gmail.com>  (tiny change)
  
        * abbrev.el (prepare-abbrev-list-buffer): If listing local abbrev
        table, get the value before switching to the output buffer.  (Bug#7733)
  
 -2011-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * progmodes/python.el (python-mode): Don't impose font-lock (bug#3628).
  
 -2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * emulation/cua-base.el (cua--init-keymaps):
 +      Remap exchange-point-and-mark in cua-global-keymap.
 +
 +2011-01-14  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * progmodes/sh-script.el (sh-other-keywords): Add ZSH's foreach
 +      loop keyword.
 +
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/easymenu.el: Add :enable (bug#7754), and obey :label.
 +      Require CL.
 +      (easy-menu-create-menu, easy-menu-convert-item-1):
 +      Use :label rather than nil for labels.  Use `case'.
 +      Add :enable as alias for :active.
 +      (easy-menu-binding): Obey :label.
 +
 +2011-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use run-mode-hooks for major mode hooks (bug#513).
 +      * textmodes/reftex-toc.el (reftex-toc-mode-map):
 +      Rename from reftex-toc-map.
 +      (reftex-toc-mode): Use define-derived-mode.
 +      * textmodes/reftex-sel.el (reftex-select-shared-map): New map.
 +      (reftex-select-label-mode-map, reftex-select-bib-mode-map):
 +      Rename from reftex-select-(label|bib)-map.  Move init into declaration.
 +      (reftex-select-label-mode, reftex-select-bib-mode):
 +      Use define-derived-mode.
 +      * textmodes/reftex-index.el (reftex-index-phrases-mode-map)
 +      (reftex-index-mode-map): Rename from reftex-index(-phrases)-map.
 +      Move init into delcaration.
 +      (reftex-index-mode, reftex-index-phrases-mode):
 +      Use define-derived-mode.
 +      * speedbar.el (speedbar-mode-syntax-table): Renaqme from
 +      speedbar-syntax-table.  Move init into declaration.
 +      (speedbar-mode-map): Rename from speedbar-key-map.
 +      Move init into declaration.
 +      (speedbar-file-key-map): Move init into declaration.
 +      (speedbar-mode): Use define-derived-mode.
 +      * recentf.el (recentf-mode): Don't run hook (or message) redundantly.
 +      * net/rcirc.el (rcirc-mode): Use run-mode-hooks.
 +      * emacs-lisp/chart.el (chart-mode-map): Rename from chart-map.
 +      (chart-face-list): Move initialization into declaration.
 +      (chart-mode): Use define-derived-mode.
 +      * calculator.el (calculator-mode-map): Move init into declaration.
 +      (calculator-mode): Use define-derived-mode.
 +
 +      * mail/mail-utils.el (mail-strip-quoted-names): Make the regexp code
 +      work for nested comments.
 +
 +      * progmodes/prolog.el: Use syntax-propertize.  Further code cleanup.
 +      (prolog-use-prolog-tokenizer-flag): Change default when
 +      syntax-propertize can be used.
 +      (prolog-syntax-propertize-function): New var.
 +      (prolog-mode-variables): Move make-local-variable into `set'.
 +      Don't make comment-column local since we don't set it.
 +      Set comment-add (as it was in previous prolog.el).  Use dolist.
 +      Set syntax-propertize-function.
 +      (prolog-mode, prolog-inferior-mode):
 +      Call prolog(-inferior)-menu directly, not through the mode-hook.
 +      (prolog-buffer-module, prolog-indent-level)
 +      (prolog-paren-is-the-first-on-line-p, prolog-paren-balance)
 +      (prolog-comment-limits, prolog-goto-comment-column):
 +      Use line-(end|beginning)-position.
 +      (prolog-build-prolog-command): Tighten up regexp.
 +      (prolog-consult-compile): Move make-local-variable into `set'.
 +      (prolog-consult-compile-filter, prolog-goto-next-paren)
 +      (prolog-help-on-predicate, prolog-clause-info)
 +      (prolog-mark-predicate): Don't let+setq.
 +      (prolog-indent-line): Use indent-line-to.
 +      Only call prolog-goto-comment-column if necessary.
 +      (prolog-indent-level): Use bobp.
 +      (prolog-first-pos-on-line): Remove, not used any more.
 +      (prolog-in-string-or-comment): Use syntax-ppss if available.
 +      (prolog-help-on-predicate): Use read-string.
 +      (prolog-goto-predicate-info): Simplify.
 +      (prolog-read-predicate): Use `default' rather than `initial'.
 +      (prolog-temporary-file): Use make-temp-file to close a security hole.
 +      (prolog-toggle-sicstus-sd): New command.
 +      (prolog-electric-underscore, prolog-variables-to-anonymous):
 +      Use dynamic-scoping as it was meant.
 +      (prolog-menu): Move menu definitions to top-level.
 +      Use a toggle-button for Sicstus's source debugger.
 +      Change "Code" to the more usual "Prolog", and hence change "Prolog"
 +      to "System".
 +      (prolog-inferior-menu): Reuse prolog-menu's help menu.
 +      Move other menu definition to top-level.
 +
 +2011-01-13  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * doc-view.el (doc-view-open-text): Use meaningful text buffer
 +      name.  Keep original document's directory as default-directory
 +      (bug#6446).
 +      (doc-view-initiate-display): Fall back to normal mode when
 +      doc-view-mode cannot be enabled, also when extracting the document
 +      text into a separate buffer (bug#6446).
 +
 +      * simple.el (shell-command): Don't error out if shell command
 +      buffer contains text with non-nil read-only property when erasing
 +      the buffer.
 +
 +2011-01-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * ido.el (ido-may-cache-directory): Move "too-big" check later.
 +      (ido-next-match, ido-prev-match): Fix stray reordering of matching
 +      items when cycling through the matches.
 +
 +2011-01-13  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * dired-x.el (dired-omit-verbose): New defcustom that allows
 +      disabling the omit messages.
 +      (dired-omit-expunge): Use it.
 +
 +2011-01-13  Christian Ohler  <ohler@gnu.org>
 +
 +      * emacs-lisp/ert.el, emacs-lisp/ert-x.el: New files.
  
 -      * files.el (file-local-variables-alist):
 -      Make permanent-local (bug#7767).
 +2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2011-01-02  Glenn Morris  <rgm@gnu.org>
 +      * font-lock.el (font-lock-verbose): Default to nil.
  
 -      * version.el (emacs-copyright): Set short copyright year to 2011.
 +2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2011-01-02  Mark Lillibridge  <mark.lillibridge@hp.com>  (tiny change)
 +      * simple.el (sendmail-user-agent-compose): Move to sendmail.el.
 +      (compose-mail): New arg RETURN-ACTION.
 +      (compose-mail-other-window, compose-mail-other-frame): Likewise.
  
 -      * mail/mail-utils.el (mail-strip-quoted-names): Avoid clobbering
 -      an existing temp buffer.  (Bug#7746)
 +      * mail/sendmail.el (mail-return-action): New var.
 +      (mail-mode): Make it buffer-local.
 +      (mail-bury): Obey it.  Move special Rmail window handling to
 +      rmail-mail-return.
 +      (mail, mail-setup): New arg RETURN-ACTION.
 +      (sendmail-user-agent-compose): Move from simple.el.
  
 -2011-01-02  Glenn Morris  <rgm@gnu.org>
 +      * mail/rmail.el (rmail-mail-return): New function.
 +      (rmail-start-mail): Pass it to compose-mail.
  
 -      * mail/mail-utils.el (mail-mbox-from): Handle From: headers with
 -      multiple addresses.  (Bug#7760)
 +2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-12-31  Michael Albinus  <michael.albinus@gmx.de>
 +      * menu-bar.el (menu-bar-custom-menu): Tweak Mule and Customize
 +      menus.  Add menu item for customize-themes.
 +
 +      * cus-theme.el (customize-themes):
 +      * emacs-lisp/package.el (package--list-packages):
 +      Use switch-to-buffer.
 +
 +2011-01-11  Johan Bockgård  <bojohan@gnu.org>
 +
 +      * emacs-lisp/unsafep.el (unsafep): Handle backquoted forms.
 +
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/prolog.el: Fix up coding convention and such.
 +      (prolog-indent-width): Use the same default as in
 +      previous prolog.el rather than tab-width which depends on which buffer
 +      is current when the file is loaded.
 +      (prolog-electric-newline-flag): Only enable if electric-indent-mode
 +      is not available.
 +      (prolog-emacs): Remove.  Use (featurep 'xemacs) instead.
 +      (prolog-known-systems): Remove.
 +      (prolog-mode-syntax-table, prolog-inferior-mode-map):
 +      Move initialization into declaration.
 +      (prolog-mode-map): Move initialization into declaration.
 +      Remove system-specific mode-map vars, since they referred to the same
 +      keymap anyway.
 +      (prolog-mode-variables): Obey the user's preference w.r.t
 +      adaptive-fill-mode.  Prefer symbol-value to `eval'.
 +      (prolog-mode-keybindings-edit): Add compatibility bindings.
 +      (prolog-mode): Use define-derived-mode.  Don't handle mercury here.
 +      (mercury-mode-map): New var.
 +      (mercury-mode, prolog-inferior-mode): Use define-derived-mode.
 +      (prolog-ensure-process, prolog-process-insert-string)
 +      (prolog-consult-compile): Use with-current-buffer.
 +      (prolog-guess-fill-prefix): Simplify data flow.
 +      (prolog-replace-in-string): New function to use instead of
 +      replace-in-string.
 +      (prolog-enable-sicstus-sd): Don't abuse `eval'.
 +      (prolog-uncomment-region): Use `uncomment-region' when available.
 +      (prolog-electric-colon, prolog-electric-dash): Use `eolp'.
 +      (prolog-int-to-char, prolog-char-to-int): New functions to use instead
 +      of int-to-char and char-to-int.
 +      (prolog-mode-hook, prolog-inferior-mode-hook): Don't force font-lock.
 +
 +2011-01-11  Stefan Bruda  <stefan@bruda.ca>
 +
 +      * progmodes/prolog.el: Replace by a whole new file.
 +
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (eval-after-load): Fix timing for features (bug#7769).
 +      (declare-function, undefined, insert-for-yank)
 +      (replace-regexp-in-string): Follow checkdoc's recommendations.
 +
 +2011-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * calendar/diary-lib.el (diary-mode): Refresh *Calendar* after
 +      refreshing the diary buffer.
 +
 +2011-01-10  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el: Add 2011 to the file copyright.
 +      (allout-encrypt-string): Prevent encryption from adding an extra
 +      newline at the end of the topic body.
 +      (allout-version): Increment to 2.3.
 +
 +2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el (dbus-unregister-service): Complete doc.
 +      Fix call of dbus-error signal.
 +      (dbus-register-property): Use `dont-register' keyword.
 +
 +2011-01-10  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * net/dbus.el (dbus-unregister-service): Translate returned
 +      integer into a symbol.
 +      (dbus-register-property): Use `dbus-register-service' to do the
 +      name registration.
 +
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/idlw-help.el (idlwave-help-link): Inherit from link face.
 +      Suggested by Joakim Verona.
 +
 +      * comint.el (comint-highlight-prompt): Inherit minibuffer-prompt.
 +
 +      * wid-edit.el (visibility): Replace :on-image and :off-image
 +      widget properties with :on-glyph and :off-glyph, for consistency
 +      with the `visibility' widget.
 +      (widget-toggle-value-create, widget-visibility-value-create):
 +      Merge into a single function `widget-toggle-value-create'.
 +
 +      * cus-edit.el (custom-variable-value-create, custom-visibility)
 +      (custom-face-edit-value-create, custom-face-value-create):
 +      Replace :on-image and :off-image widget properties with :on-glyph and
 +      :off-glyph, for consistency with the `visibility' widget.
 +
 +2011-01-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * net/ldap.el (ldap-search-internal): Don't use eval.
 +
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (read-char-choice): Use read-key.
 +
 +      * custom.el (custom-safe-themes): Rename from
 +      custom-safe-theme-files.  Add :risky tag.
 +      (load-theme, custom-theme-load-confirm): Save sha1 hashes to
 +      custom-safe-themes, not filenames.  Suggested by Stefan Monnier.
 +
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tool-bar.el (tool-bar-setup): Remove Help button.  Remove label
 +      from Search and add a label to Undo.
 +
 +      * vc/vc-dir.el (vc-dir-tool-bar-map): Rearrange, removing
 +      inappropriate buttons and adding :vert-only tags.
 +
 +      * progmodes/compile.el (compilation-mode-tool-bar-map): Adjust to
 +      removal of Help tool-bar button.  Remove Undo button for space.
 +
 +      * info.el (info-tool-bar-map): Add :vert-only tags.
 +
 +2011-01-08  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * doc-view.el (doc-view-mode-p): Check for png or imagemagick
 +      image backend support.  Either of them is fine.
 +
 +2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (y-or-n-p): Doc fix.
 +
 +      * custom.el (custom-safe-theme-files): New defcustom.
 +      (custom-theme-load-confirm): New function.
 +      (load-theme): Load theme using `load', confirming with
 +      custom-theme-load-confirm if necessary.
 +
 +      * subr.el (read-char-choice): New function, factored out from
 +      dired-query and hack-local-variables-confirm.
 +
 +      * dired-aux.el (dired-query):
 +      * files.el (hack-local-variables-confirm): Use it.
 +
 +      * dired-aux.el (dired-compress-file):
 +      * files.el (abort-if-file-too-large, find-alternate-file)
 +      (set-visited-file-name, write-file, backup-buffer)
 +      (basic-save-buffer, basic-save-buffer-2, save-some-buffers)
 +      (delete-directory, revert-buffer, recover-file, kill-buffer-ask):
 +      Use new format string args for y-or-n-p and yes-or-no-p.
 +
 +2011-01-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist)
 +      [gcc-include]: Tighten file name match, add match for column
 +      number.  (Bug#7806)
 +      [gnu]: Remove unused group.
 +
 +2011-01-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * makefile.w32-in (EMACSOPT): Add --no-site-lisp.
 +
 +      * makefile.w32-in (EMACSOPT): -batch implies --no-init-file.
 +
 +2011-01-07  Sam Steingold  <sds@gnu.org>
 +
 +      * w32-fns.el (w32-shell-name): Use `shell-file-name' instead of
 +      the `explicit-shell-file-name' because that is the
 +      non-interactive shell.
 +
 +2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (y-or-n-p): Accept format string args.
 +
 +2011-01-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (EMACSOPT): Add --no-site-lisp.
 +
 +2011-01-06  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el (allout-back-to-current-heading): Ensure return to
 +      the visible containing topic, rather than a collapsed one.
 +      (allout-view-change-hook): Remove hook that was deprecated long ago.
 +      (allout-exposure-change-hook): Remove documentation remarks
 +      concerning removed allout-view-change-hook.
 +      (allout-flag-region): Remove invocation of and documentation
 +      remarks concerning allout-view-change-hook.
 +
 +2011-01-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-bzr.el (vc-bzr-annotate-command, vc-bzr-annotate-time)
 +      (vc-bzr-annotate-extract-revision-at-line):
 +      Handle authors with embedded spaces.  (Bug#7792)
 +
 +2011-01-05  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * doc-view.el (doc-view-image-width): New variable.
 +      (doc-view-enlarge, doc-view-insert-image): Prefer imagemagick
 +      backend for PNG images, and do dynamic rescaling instead of
 +      reconverting the whole doc.
 +
 +2011-01-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/rx.el (rx-repeat): Replace CL function.
 +
 +2011-01-04  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * net/tramp.el (tramp-methods): Add recursive options to "scpc",
 -      "scpx", "pscp" and "psftp".
 +      * allout.el: Reconcile with changes in line movement behavior for
 +      long text lines that cross more than a single physical window
 +      line, ie when truncate-lines is nil.
 +      (allout-next-visible-heading): Provide for change in line-move
 +      behavior on long lines when truncate-lines is nil.  In that case,
 +      line-move can wind up on the same textual line when it moves to
 +      the next window line, and moving to the bullet position after the
 +      move yields zero advancement.  Add logic to detect and compensate
 +      for the lack of progress.
 +      (allout-current-topic-collapsed-p): move-end-of-line respect for
 +      field boundaries is different when operating with body lines
 +      shorter than window width versus ones greater than window width,
 +      which can yield false negatives in this function.  Avoid
 +      difference by applying move-end-of-line while field-text-motion is
 +      inhibited.
  
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
  
 -      * term/w32-win.el (image-library-alist): Set up correctly for
 +      * textmodes/rst.el (rst-compile-toolsets):
 +      Add pdf and s5 to option alist.
 +
 +2011-01-04  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * net/dbus.el (dbus-register-property): Add optional parameter
 +      dont-register-service.  Updated docstring accordingly.
 +
 +2011-01-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * textmodes/rst.el (rst-compile-pdf-preview)
 +      (rst-compile-slides-preview): Remove extra line.
 +
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/rst.el (rst-compile-toolsets): Make it a defcustom.
 +      Add `pdf' and `s5' entries.  Use `prog.py' if found, otherwise
 +      default to `prog' without a .py extension.
 +      (rst-compile-pdf-preview, rst-compile-slides-preview):
 +      Use program names from rst-compile-toolsets, rather than hard-coding.
 +      (rst-portable-mark-active-p): Fix presumed typo.
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term/w32-win.el (dynamic-library-alist): Set up correctly for
        libpng versions both before and after 1.4.0.  (Bug#7716)
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * time.el (display-time-mode): Mention display-time-interval in
        the doc string.  (Bug#7713)
  
 -      * simple.el (select-active-regions): Doc fix.  (Bug#7702)
 -
 -2010-12-24  Kenichi Handa  <handa@m17n.org>
 +2011-01-02  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-parse): Perform parsing in
        condition-case and return an error message string if something
        (rmail-show-mime): Adjust for the above change.  Insert the
        header by rmail-mime-insert-header.
  
 -2010-12-24  Kenichi Handa  <handa@m17n.org>
 +2011-01-02  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el: New key bindings for rmail-mime-next-item,
        rmail-mime-previous-item, and rmail-mime-toggle-hidden.
        * mail/rmail.el (rmail-show-message-1): If rmail-enable-mime is
        non-nil, handle the header in rmail-show-mime-function.
  
 -2010-12-20  Leo  <sdl.web@gmail.com>
 +2011-01-02  Leo  <sdl.web@gmail.com>
  
 -      * help-fns.el (describe-variable): Fix 2010-12-17 change.
 +      * help-fns.el (describe-variable): Fix previous change.
  
 -2010-12-20  Juri Linkov  <juri@jurta.org>
 +2011-01-02  Juri Linkov  <juri@jurta.org>
  
        * isearch.el (isearch-lazy-highlight-error): New variable.
        (isearch-lazy-highlight-new-loop): Compare `isearch-error' and
        `isearch-lazy-highlight-error'.  Set `isearch-lazy-highlight-error'
        to the current value of `isearch-error' (Bug#7468).
  
 -2010-12-17  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * help-fns.el (describe-variable): Don't emit trailing whitespace
        (Bug#7511).
  
 -2010-12-17  Leo  <sdl.web@gmail.com>
 -
 -      * eshell/em-hist.el (eshell-previous-matching-input): Signal error
 -      if point is not behind eshell-last-output-end (Bug#7585).
 -
 -2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * textmodes/rst.el (rst-compile-pdf-preview)
        (rst-compile-slides-preview): Use make-temp-file (Bug#7646).
  
 -2010-12-15  Kevin Gallagher  <Kevin.Gallagher@boeing.com>
 +2011-01-02  Kevin Gallagher  <Kevin.Gallagher@boeing.com>
  
        * emulation/edt-mapper.el: Override mapping of function keys so
        that the later call to read-key-sequence works.
  
 -2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * mail/smtpmail.el (smtpmail-send-it): Write queued mail body with
        Unix EOLs.  (Bug#7589)
  
 -2010-12-12  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Leo  <sdl.web@gmail.com>
  
 -      * subr.el (posn-col-row): Evaluate header-line-format in the
 -      context of the POSITION window's buffer.
 +      * eshell/em-hist.el (eshell-previous-matching-input): Signal error
 +      if point is not behind eshell-last-output-end (Bug#7585).
  
 -2010-12-11  Glenn Morris  <rgm@gnu.org>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * subr.el (member-ignore-case, run-mode-hooks, insert-for-yank-1)
 -      (with-silent-modifications): Doc fixes.
 +      * files.el (file-local-variables-alist):
 +      Make permanent-local (bug#7767).
  
 -2010-12-10  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
 -      * net/tramp.el (tramp-action-password, tramp-process-actions):
 -      Revert patch from 2010-12-08.  Use `save-restriction'.
 +      * version.el (emacs-copyright): Set short copyright year to 2011.
  
 -2010-12-09  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Mark Lillibridge  <mark.lillibridge@hp.com>  (tiny change)
  
 -      * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p):
 -      New functions.
 -      (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>: Use
 -      them instead of `nil' and `>', respectively.  (Bug#1077)
 +      * mail/mail-utils.el (mail-strip-quoted-names): Avoid clobbering
 +      an existing temp buffer.  (Bug#7746)
  
 -2010-12-09  Stephen Berman  <stephen.berman@gmx.net>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
 -      * calendar/diary-lib.el (diary-list-sexp-entries):
 -      Handle case of no newline at end of file.  (Bug#7536)
 +      * mail/mail-utils.el (mail-mbox-from): Handle From: headers with
 +      multiple addresses.  (Bug#7760)
  
 -2010-12-09  Glenn Morris  <rgm@gnu.org>
 +2011-01-01  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * mail/smtpmail.el (smtpmail-send-it): Revert previous change.
 +      * allout.el (allout-auto-fill): Do not infinitely recurse - use
 +      do-auto-fill if everything points back to allout-auto-fill.
 +      (allout-mode-deactivate-hook): Declare obsolete, in favor of
 +      standard-formed minor-mode deactivate hook, allout-mode-off-hook.
  
 -2010-12-08  Michael Albinus  <michael.albinus@gmx.de>
 +2010-12-31  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * net/tramp.el (tramp-handle-start-file-process):
 -      Protect buffer-modified value.  (Bug#7557)
 -      (tramp-action-password): Delete region, do not narrow.
 -      (tramp-process-actions): Do not widen.
 +      * net/tramp-sh.el (tramp-methods): Add recursive options to "scpc"
 +      and "scpx".
  
 -2010-12-08   Jan Moringen  <jmoringe@techfak.uni-bielefeld.de>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * log-edit.el (log-edit-changelog-entries):
 -      Regexp quote filename.  (Bug#7505)
 +      * doc-view.el (doc-view-set-doc-type): New function refactored
 +      from doc-view-mode.
 +      (doc-view-fallback-mode): New function.
 +      (doc-view-mode): Use it.
 +      (doc-view-mode-maybe): New function that checks if doc-view-mode
 +      can be used and falls back to the next best mode otherwise.
  
 -2010-12-08  Tom Breton  <tehom@panix.com>
 +      * files.el (auto-mode-alist): Use doc-view-mode-maybe for PDF,
 +      DVI, OpenDocument, and MS Office files.
  
 -      * cus-edit.el (custom-save-all):
 -      Bind print-length and print-level to nil.  (Bug#7581)
 +2010-12-30  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-12-08  Glenn Morris  <rgm@gnu.org>
 +      * emacs-lisp/rx.el (rx-syntax): Fix typo.
  
 -      * mouse.el (mouse-menu-major-mode-map, mouse-menu-bar-map):
 -      Run hooks to update menu contents.  (Bug#7586)
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * mail/smtpmail.el (smtpmail-send-it): Avoid colons in the queued
 -      file names, for the sake of MS Windows.  (Bug#7588)
 +      * doc-view.el (doc-view-toggle-display): Perform rassq-delete-all
 +      on a copy of auto-mode-alist, because that deletes with side
 +      effects.
  
 -2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * diff-mode.el (diff-refine-hunk): Make it work when the hunk contains
 -      empty lines without a leading space.
 +      * doc-view.el (doc-view-mode, doc-view-toggle-display):
 +      Use normal-mode without doc-view-mode bindings in auto-mode-alist as
 +      fallback instead of hard coding fundamental mode.
  
 -2010-12-06  Leo  <sdl.web@gmail.com>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * dired-aux.el (dired-do-redisplay): Postpone dired-after-readin-hook
 -      while mapping over marks (Bug#6810).
 +      * doc-view.el (doc-view-doc->txt): Handle OpenDocument (or MS
 +      Office) files also for searching.
  
 -2010-12-06  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * image-dired.el (image-dired-db-file)
 -      (image-dired-temp-image-file, image-dired-gallery-dir)
 +      * doc-view.el: Implement viewing of OpenDocument (and Microsoft
 +      Office) files.  Not yet enabled via auto-mode-list.
 +      (doc-view-unoconv-program): New custom variable.
 +      (doc-view-mode-p): Handle new odf document type.
 +      (doc-view-odf->pdf): New conversion function.
 +      (doc-view-convert-current-doc): Call it for odf files.
 +      (doc-view-mode): Recognize newly supported file extensions.
 +
 +2010-12-30  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-default-method-alist)
 +      (tramp-default-user-alist)
 +      (tramp-local-host-regexp, tramp-prefix-domain-format)
 +      (tramp-prefix-domain-regexp): Set tramp-autoload cookie.
 +
 +      * net/tramp-ftp.el:
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el:
 +      * net/tramp-imap.el:
 +      * net/tramp-sh.el:
 +      * net/tramp-smb.el: Add tramp-autoload cookie for initialisation
 +      code of `tramp-default-method-alist' and `tramp-default-user-alist'.
 +
 +2010-12-29  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * saveplace.el (save-place-alist-to-file): Save list sorted and
 +      pretty-printed, so that it is mergeable by line-based text merging,
 +      as suggested by Iain Dalton <iain.dalton {_AT_} gmail.com>.
 +
 +2010-12-28  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el (allout-v18/19-file-var-hack): Obsolete, remove.
 +      (allout-mode): Argument "toggle" => "force".
 +      Refine the docstring.
 +      Remove special provisions for reactivation, besides the 'force'
 +      argument.
 +      Consolidate layout provisions coce directly into the activation
 +      condition branch, now that we've removed those provisions.
 +      (allout-unload-function): Explicitly activate the mode before
 +      deactivating, if it's initially deactivated.
 +      (allout-set-buffer-multibyte): Properly prevent byte-compiler
 +      warnings for version of function used only where
 +      set-buffer-multibyte is unavailable.
 +
 +2010-12-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tool-bar.el (tool-bar-setup): Remove :enable conditions, which
 +      are handled by the menu-bar entries.  As before, don't use
 +      :visibile to avoid changing the tool-bar.
 +
 +2010-12-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/secrets.el (secrets-delete-alias): New defun.
 +
 +2010-12-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-default-user-alist): Do not add "ssh" based
 +      methods, otherwise ~/.ssh/config would be ignored.
 +
 +2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/rx.el: Make it a superset of sregex.
 +      (rx-constituents): Add `any => "."', mark `repeat' as taking any number
 +      of args, add `regex' alias.
 +      (rx-info): Add arg to distinguish head and standalone forms.
 +      (rx-check, rx-form): Pass the corresponding arg.
 +      (rx-**): Simplify.
 +      (rx-repeat): Make it work for any number of args.
 +      (rx-syntax): Make it accept syntax chars as is.
 +      * obsolete/sregex.el: Move from emacs-lisp/.
 +      * emacs-lisp/re-builder.el: Remove sregex support.
 +      * emacs-lisp/edebug.el (sregexq, rx): Remove redundant defs.
 +
 +2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary): On MS-Windows, try the (emulated)
 +      PRIMARY first, then the clipboard.  (Bug#7699)
 +
 +2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of
 +      print-number-table.
 +
 +2010-12-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * help-fns.el (find-lisp-object-file-name): Locate .emacs from
 +      .emacs.elc (Bug#7530).
 +
 +      * wid-edit.el (widget-image-find): Remove bogus :ascent spec from
 +      image spec (Bug#7480).
 +
 +2010-12-21  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * obsolete/pgg-parse.el, obsolete/pgg-pgp5.el, obsolete/pgg-pgp.el,
 +      * obsolete/pgg-gpg.el, obsolete/pgg-def.el, obsolete/pgg.el:
 +      Move from lisp/.
 +
 +2010-12-20  Leo  <sdl.web@gmail.com>
 +
 +      * dnd.el (dnd-get-local-file-name): Unhex of file name shall
 +      always be performed (Bug#7680).
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * menu-bar.el (menu-bar-kill-ring-save): Make obsolete.
 +      (menu-bar-edit-menu): Bind "Copy" to kill-ring-save.  Don't use
 +      mouse-region-match.
 +
 +      * color.el: Move from gnus/.
 +
 +      * vc/diff.el (diff-better-file-name): Function deleted.
 +      abbreviating file names causes problems with shell-quote-argument.
 +      (diff-no-select): Just use expand-file-name.
 +
 +      * tool-bar.el (tool-bar--image-expression): New function.
 +      (tool-bar-local-item, tool-bar--image-exp): Use it.
 +      (tool-bar-setup): Initialize tool-bar-separator-image-expression.
 +      Use :enable instead of :visible to avoid changing the tool-bar
 +      configuration unnecessarily.
 +
 +      * info.el (info-tool-bar-map): Add separators.
 +
 +2010-12-17  Ken Brown  <kbrown@cornell.edu>
 +
 +      * loadup.el: Use version numbers in Cygwin build.
 +
 +2010-12-17  Ryan Twitchell  <metatheorem@gmail.com>  (tiny change)
 +
 +      * ido.el (ido-file-internal): Ask for confirmation before
 +      overwriting an existing file (Bug#1238).
 +
 +2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tool-bar.el (tool-bar-setup): Add separators.
 +
 +      * menu-bar.el (featurep): Use menu-bar-separator.
 +
 +2010-12-16  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      Migrate allout encryption provisions from pgg to epg.
 +
 +      * allout.el (allout-toggle-current-subtree-encryption)
 +      (allout-toggle-subtree-encryption): Adjust docstrings to reflect
 +      defaulting policy and other changes.  Change fetch-pass to keymode-cue,
 +      for simpler universal argument interpretation.
 +      (allout-toggle-subtree-encryption):  Adjust docstring to describe
 +      changed encryption provisions.  Change fetch-pass to keymode-cue, for
 +      simpler universal argument interpretation.  Remove provisions for
 +      handling key type and identity - they'll all be within
 +      allout-encrypt-string or epg/epg or even contained all the way in gpg.
 +      (allout-encrypt-string): Include keymode-cue, for optionally prompting
 +      for keypair recipients (universal argument > 1) and, in addition,
 +      associating the specified recipients with the outline (universal
 +      argument > 4) using a file local variable setting for
 +      'epa-file-encrypt-to'.
 +      Require epa, for recipients handling.
 +      Change how regexp filtering elements are named.
 +      Describe the problem with caching of incorrect symmetric-decryption
 +      keys.
 +      Use the epa-passphrase-callback-function, in case the user is using
 +      GnuPG v1.
 +      Support saving of the selected keypair recipients when invoked with a
 +      keymode-cue > 4.
 +      Remove obsolete arguments 'fetch-pass', 'target-cache-id', 'retried'.
 +      Require 'epa.
 +      Establish epg-context with armoring and default epg-protocol.
 +      Remove all passphrase cache, verification, and hinting code.
 +      (allout-passphrase-verifier-handling, allout-passphrase-hint-handling):
 +      No longer used, delete.
 +      (allout-mode): Adjust docstring to describe changed encryption
 +      provisions.  Describe the problem with caching of incorrect
 +      symmetric-decryption keys.
 +      (allout-obtain-passphrase, allout-epg-passphrase-callback-function)
 +      (allout-make-passphrase-state, allout-passphrase-state-passphrase)
 +      (allout-encrypted-key-info, allout-update-passphrase-mnemonic-aids)
 +      (allout-get-encryption-passphrase-verifier, allout-verify-passphrase):
 +      Obsolete, remove.
 +
 +2010-12-16  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-select-keys): Accept 'silent to inhibit
 +      key selection prompt; make 'silent as default (Bug#7487).
 +
 +2010-12-16  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/eshell.el (eshell-directory-name):
 +      Use locate-user-emacs-file (Bug#7578).
 +
 +2010-12-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * loadup.el (symbol-file-load-history-loaded): Remove; unused.
 +
 +2010-12-15  Jari Aalto  <jari.aalto@cante.net>
 +            Scott Evans <gse@antisleep.com>
 +
 +      * rect.el (rectange--default-line-number-format)
 +      (rectangle-number-line-callback): New functions.
 +      (rectangle-number-lines): New command, bound to C-x r N (Bug#4382).
 +
 +2010-12-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * rect.el (operate-on-rectangle-lines, string-rectangle-string):
 +      Delete unused variables.
 +      (move-to-column-force): Remove function obsolete since 21.2.
 +
 +2010-12-14  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-temp-buffer-file-name): Make it permanent-local.
 +      (tramp-handle-insert-file-contents): Do not set permanent-local
 +      property.
 +
 +      * net/tramp-cache.el (tramp-persistency-file-name):
 +      Use `locate-user-emacs-file' if fboundp.
 +
 +      * net/tramp-sh.el (tramp-methods): Add "ksu".
 +      (tramp-default-user-alist): Add "ksu".  Use `regexp-opt' for
 +      method list.
 +
 +2010-12-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/js.el: Doc't require font-lock, etags, or easymenu.
 +      (find-tag-marker-ring): Declare.
 +      (js-find-symbol): Require etags.
 +
 +      * mail/sendmail.el: Don't require rmail or mailalias when compiling.
 +      Require mail-utils.
 +      (mail-alias-file): Don't autoload.  Doc fix.
 +      (mail-bury-selects-summary, mail-send-nonascii): Don't autoload.
 +      (mail-mailer-swallows-blank-line): Default to nil.  Doc fix.
 +      Mark as obsolete, and risky.
 +      (mail-setup): Simplify.
 +
 +      * mail/mailalias.el (build-mail-aliases): Make it interactive.
 +      * mail/sendmail.el (build-mail-aliases): Update autoload.
 +
 +      * dired.el (dired-trivial-filenames, dired-chown-program)
 +      (dired-auto-revert-buffer): Remove autoload cookies.
 +      * mail/sendmail.el (mail-recover-1): Require 'dired.
 +
 +      * dired.el (dired-subdir-switches, dired-chown-program)
 +      (dired-use-ls-dired, dired-chmod-program, dired-touch-program):
 +      Make into defcustoms.
 +      (dired-chown-program): Simplify initialization.
 +
 +      * mail/mail-utils.el: No need to require lisp-mode, it's in loadup.
 +
 +2010-12-13  Romain Francoise  <romain@orebokech.com>
 +
 +      * net/gnutls.el (gnutls-negotiate): Fix setting of default trustfiles.
 +
 +2010-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/netrc.el (netrc-point-at-eol): Remove the unused
 +      netrc-point-at-old and netrc-bound-and-true-p bindings.
 +      (netrc-parse): Cache the netrc contents.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * subr.el (posn-col-row): Evaluate header-line-format in the
 +      context of the POSITION window's buffer.
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (member-ignore-case, run-mode-hooks, insert-for-yank-1)
 +      (with-silent-modifications): Doc fixes.
 +
 +2010-12-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-action-password, tramp-process-actions):
 +      Revert previous from.  Use `save-restriction'.
 +
 +2010-12-13  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * calendar/diary-lib.el (diary-list-sexp-entries):
 +      Handle case of no newline at end of file.  (Bug#7536)
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/smtpmail.el (smtpmail-send-it): Revert previous change.
 +
 +2010-12-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-action-password): Delete region, do not narrow.
 +      (tramp-process-actions): Do not widen.
 +
 +      * net/tramp-sh.el (tramp-sh-handle-start-file-process):
 +      Protect buffer-modified value.  (Bug#7557)
 +
 +2010-12-13   Jan Moringen  <jmoringe@techfak.uni-bielefeld.de>
 +
 +      * log-edit.el (log-edit-changelog-entries):
 +      Regexp quote filename.  (Bug#7505)
 +
 +2010-12-13  Tom Breton  <tehom@panix.com>
 +
 +      * cus-edit.el (custom-save-all):
 +      Bind print-length and print-level to nil.  (Bug#7581)
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * mouse.el (mouse-menu-major-mode-map, mouse-menu-bar-map):
 +      Run hooks to update menu contents.  (Bug#7586)
 +
 +      * mail/smtpmail.el (smtpmail-send-it): Avoid colons in the queued
 +      file names, for the sake of MS Windows.  (Bug#7588)
 +
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * diff-mode.el (diff-refine-hunk): Make it work when the hunk contains
 +      empty lines without a leading space.
 +
 +2010-12-13  Leo  <sdl.web@gmail.com>
 +
 +      * dired-aux.el (dired-do-redisplay): Postpone dired-after-readin-hook
 +      while mapping over marks (Bug#6810).
 +
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image-dired.el (image-dired-db-file)
 +      (image-dired-temp-image-file, image-dired-gallery-dir)
        (image-dired-temp-rotate-image-file): Set default values relative
        to image-dired-dir (Bug#7518).
  
 -2010-12-06  Lawrence Mitchell  <wence@gmx.li>
 +2010-12-13  Lawrence Mitchell  <wence@gmx.li>
  
        * format.el (format-decode-run-method): Pass args FROM and TO, not
        point-min and point-max, to shell-command-on-region (Bug#7488).
  
 -2010-12-06  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
  
        * frame.el (blink-cursor-mode): Make default t for ns.
  
 -2010-12-05  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +2010-12-13  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
  
        * vc-dir.el (vc-dir-query-replace-regexp): Doc fix (Bug#7501).
  
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * comint.el (comint-dynamic-list-input-ring)
        (comint-dynamic-complete-filename)
        * subr.el (posn-x-y, posn-object-x-y, posn-object-width-height):
        Doc fix (Bug#7471).
  
 -2010-12-04  Martin Rudalics  <rudalics@gmx.at>
 +2010-12-13  Martin Rudalics  <rudalics@gmx.at>
  
        * dired.el (dired-pop-to-buffer): Bind pop-up-frames to nil
        (Bug#7533).
  
 -2010-12-04  W. Martin Borgert <debacle@debian.org>  (tiny change)
 +2010-12-13  W. Martin Borgert <debacle@debian.org>  (tiny change)
  
        * files.el (auto-mode-alist): Handle .dbk (DocBook) with xml-mode.
        (Bug#7491).
  
 -2010-12-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * simple.el (transient-mark-mode): Doc fix (Bug#7465).
 -
 -2010-12-04  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * files.el (file-relative-name): Handle UNC file names on
        DOS/Windows.  (Bug#4674)
  
 -2010-12-03  Daiki Ueno  <ueno@unixuser.org>
 +2010-12-13  Daiki Ueno  <ueno@unixuser.org>
  
        * epg.el (epg-digest-algorithm-alist): Replace "RMD160" with
        "RIPEMD160" (Bug#7490).  Reported by Daniel Kahn Gillmor.
        (epg-context-set-passphrase-callback): Mention that the callback
        is not called when used with GnuPG 2.x.
  
 -2010-12-02  Glenn Morris  <rgm@gnu.org>
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
  
        * ps-print.el (ps-line-lengths-internal, ps-nb-pages):
        Ensure ps-footer-font-size-internal is initialized.
        Call ps-get-page-dimensions before trying to use ps-font-for-text.
  
 -2010-12-01  Kenichi Handa  <handa@m17n.org>
 +2010-12-13  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-parse): Call rmail-mime-process
        within condition-case.
        (rmail-search-mime-message-function): Set to
        rmail-search-mime-message.
  
 -2010-12-01  Leo  <sdl.web@gmail.com>
 +2010-12-13  Leo  <sdl.web@gmail.com>
  
        * ido.el (ido-common-initialization): New function.  (bug#3274)
        (ido-mode): Use it.
        (ido-completing-read): Call it.
  
 +2010-12-12  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-name-from-full-record): Rename back to
 +      this original name from `bookmark-name-from-record' reverting part
 +      of 2010-12-08T08:09:27Z!kfogel@red-bean.com / kfogel@red-bean.com-20101208080927-5j9jqnb2xvcw4ogm.
 +      As Drew Adams pointed out, there was no reason to cause churn for
 +      third-party callers.
 +
 +2010-12-12  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-forward-type): Before scanning a
 +      template arglist, check that the current language supports this.
 +
 +2010-12-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-bzr.el (vc-bzr-state-heuristic): Also check that the executable
 +      state of the file matches.  (Bug#7544)
 +      (vc-bzr-register, vc-bzr-checkin)
 +      (vc-bzr-annotate-extract-revision-at-line): Doc fixes.
 +      (vc-directory-exclusion-list): Remove unnecessary eval-after-load.
 +
 +      * textmodes/sgml-mode.el (sgml-xml-guess): Add .xhtml extension.
 +
 +2010-12-11  Karel Klíč  <kklic@redhat.com>
 +
 +      * files.el (auto-mode-alist): Use html-mode for *.xhtml.  (Bug#7606)
 +
 +2010-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Derive from prog-mode, use derived-mode-p, and fix up various
 +      minor style issues in lisp/progmodes.
 +
 +      * progmodes/vhdl-mode.el (vhdl-mode):
 +      * progmodes/verilog-mode.el (verilog-mode):
 +      * progmodes/vera-mode.el (vera-mode):
 +      * progmodes/sql.el (sql-mode):
 +      * progmodes/scheme.el (scheme-mode):
 +      * progmodes/perl-mode.el (perl-mode):
 +      * progmodes/octave-inf.el (inferior-octave-mode):
 +      * progmodes/autoconf.el (autoconf-mode):
 +      * progmodes/m4-mode.el (m4-mode):
 +      * progmodes/inf-lisp.el (inferior-lisp-mode):
 +      * progmodes/idlwave.el (idlwave-mode):
 +      * progmodes/icon.el (icon-mode):
 +      * progmodes/idlw-help.el (idlwave-help-mode):
 +      * progmodes/dcl-mode.el (dcl-mode):
 +      * progmodes/idlw-shell.el (idlwave-shell-mode):
 +      * progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
 +      (ebrowse-member-mode, ebrowse-electric-position-mode):
 +      Use define-derived-mode.
 +
 +      * progmodes/xscheme.el (exit-scheme-interaction-mode)
 +      (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
 +      (xscheme-debugger-mode-p, xscheme-send-string-1):
 +      * progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
 +      (tcl-load-file, tcl-restart-with-file):
 +      * progmodes/ps-mode.el (ps-run-running):
 +      * progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
 +      * progmodes/js.el (js--get-all-known-symbols):
 +      * progmodes/inf-lisp.el (inferior-lisp-proc):
 +      * progmodes/idlwave.el (idlwave-beginning-of-statement)
 +      (idlwave-template, idlwave-update-buffer-routine-info)
 +      (idlwave-update-current-buffer-info)
 +      (idlwave-get-routine-info-from-buffers, idlwave-choose)
 +      (idlwave-scan-class-info, idlwave-fix-keywords)
 +      (idlwave-list-buffer-load-path-shadows):
 +      * progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
 +      (idlwave-toolbar-remove):
 +      * progmodes/idlw-shell.el (idlwave-shell-save-and-action)
 +      (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
 +      (idlwave-shell-menu-def):
 +      * progmodes/idlw-complete-structtag.el
 +      (idlwave-prepare-structure-tag-completion):
 +      * progmodes/gud.el (gud-set-buffer):
 +      * progmodes/f90.el (f90-backslash-not-special):
 +      * progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
 +
 +      * progmodes/xscheme.el (xscheme-start)
 +      (local-set-scheme-interaction-buffer, scheme-interaction-mode):
 +      * progmodes/which-func.el (which-function):
 +      * progmodes/vhdl-mode.el (vhdl-set-style):
 +      * progmodes/verilog-mode.el (verilog-set-compile-command)
 +      (verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
 +      (verilog-set-define, verilog-auto-reeval-locals):
 +      * progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
 +      * progmodes/simula.el (simula-mode):
 +      * progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
 +      * progmodes/python.el (python-check, python-mode):
 +      * progmodes/prolog.el (prolog-mode-variables):
 +      * progmodes/gud.el (gud-tooltip-activate-mouse-motions):
 +      * progmodes/ebrowse.el (ebrowse-view-file-other-frame):
 +      * progmodes/delphi.el (delphi-mode):
 +      * progmodes/cc-styles.el (c-setup-paragraph-variables):
 +      * progmodes/cc-mode.el (c-basic-common-init, c-common-init)
 +      (c-font-lock-init): Move make-local-variable to their setq.
 +
 +      * progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
 +      (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
 +      make-local-hook.
 +      * progmodes/sh-script.el (sh-require-final-newline): Remove.
 +      (sh-set-shell): Don't set require-final-newline since it's already done
 +      by prog-mode.
 +      * progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
 +      since we never set it.
 +      * progmodes/ebrowse.el (ebrowse-set-tree-indentation):
 +      Use read-string and standard prompt.
 +      * progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
 +      * progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
 +      (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
 +      (meta-common-mode-map): Rename from meta-mode-map.
 +      Remove C-m binding, which is a user preference, not mode specific.
 +      (meta-common-mode): New major mode; replace meta-common-initialization.
 +      * progmodes/js.el (js-mode): Call syntax-propertize rather than messing
 +      around with font-lock.
 +      * progmodes/etags.el (select-tags-table-mode):
 +      Derive from special-mode.
 +      * progmodes/octave-mod.el (octave-mode):
 +      * progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
 +      (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
 +      (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
 +      Let define-derived-mode do its job.
 +      * progmodes/cpp.el (cpp-edit-mode-map):
 +      Move initialization into declaration.
 +      (cpp-edit-mode): Use define-derived-mode.
 +      (cpp-edit-load): Use derived-mode-p.
 +      * progmodes/mixal-mode.el (mixal-mode):
 +      * progmodes/f90.el (f90-mode):
 +      * progmodes/cfengine.el (cfengine-mode): Don't bother setting
 +      require-final-newline since prog-mode does it already.
 +      * progmodes/cc-cmds.el (c-update-modeline): Use match-string.
 +      * progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
 +      * progmodes/antlr-mode.el: Require cc-mode upfront.
 +      (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
 +      the declaration.
 +      (antlr-directory-dependencies, antlr-show-makefile-rules):
 +      Use derived-mode-p.
 +      (antlr-language-option): Don't assume point-min==1.
 +      (antlr-mode): Use define-derived-mode.
 +      * progmodes/ada-mode.el: Use derived-mode-p.
 +      (ada-mode): Use define-derived-mode.
 +      Use hack-local-variables-hook.
 +
 +2010-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/texinfo.el (texinfo-mode-map): Bind texinfo-insert-@end.
 +      (texinfo-mode): Don't disable adaptive-fill-mode.
 +      (texinfo-insert-block): Adjust cursor placement for blocks with arg.
 +      (texinfo-insert-@end, texinfo-insert-braces, texinfo-insert-@code)
 +      (texinfo-insert-@dfn, texinfo-insert-@email, texinfo-insert-@emph)
 +      (texinfo-insert-@example, texinfo-insert-@file, texinfo-insert-@item)
 +      (texinfo-insert-@kbd, texinfo-insert-@node, texinfo-insert-@noindent)
 +      (texinfo-insert-@quotation, texinfo-insert-@samp)
 +      (texinfo-insert-@strong, texinfo-insert-@table, texinfo-insert-@var)
 +      (texinfo-insert-@uref): Use define-skeleton.
 +      (texinfo-insert-@-with-arg): Delete.
 +
 +2010-12-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * arc-mode.el (archive-zip-extract): If w32-quote-process-args is
 +      nil, do quote archive member names.  (Bug#6144)
 +
 +2010-12-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.el (diff-no-select): Declare.
 +
 +      * mail/emacsbug.el (report-emacs-bug): Use mail-user-agent properties.
 +      (report-emacs-bug-create-existing-bugs-buffer): Avoid free variables.
 +
 +      * comint.el (comint-input-ring-file-name): Doc fix.
 +
 +2010-12-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p):
 +      New functions.
 +      (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>:
 +      Use them instead of `nil' and `>', respectively.
 +      (menu-bar-showhide-tool-bar-menu): Use menu-bar-frame-for-menubar
 +      instead of `nil'.
 +      (toggle-menu-bar-mode-from-frame): Use menu-bar-frame-for-menubar
 +      and menu-bar-positive-p instead of `nil' and `>', respectively.
 +      (Bug#1077)
 +
 +2010-12-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el (whitespace-newline-mode): Code fix.
 +
 +2010-12-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * play/landmark.el (lm-print-y,s,noise-int, lm-print-y,s,noise):
 +      Rename functions without commas, update callers.
 +
 +2010-12-08  Jeff Dairiki  <dairiki@dairiki.org>  (tiny change)
 +
 +      * whitespace.el (whitespace-cleanup-region):
 +      Clean up spaces before tabs.  (Bug#7582)
 +
 +2010-12-08  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el: Adjust parameter names and doc strings to resolve
 +      confusion over whether "bookmark" meant a bookmark name or a
 +      bookmark record.  Along the way, shorten one function's name for
 +      similar reasons.  (Issue #7548)
 +      (bookmark-name-from-record): New name for
 +      `bookmark-name-from-full-record'.  All callers changed.
 +      (bookmark-get-bookmark, bookmark-get-bookmark-record)
 +      (bookmark-default-annotation-text, bookmark-prop-get, bookmark-prop-set)
 +      (bookmark-get-annotation, bookmark-set-annotation)
 +      (bookmark-get-filename, bookmark-set-filename)
 +      (bookmark-get-position, bookmark-set-position)
 +      (bookmark-get-front-context-string, bookmark-set-front-context-string)
 +      (bookmark-get-rear-context-string, bookmark-set-rear-context-string)
 +      (bookmark-get-handler, bookmark-edit-annotation, bookmark--jump-via)
 +      (bookmark-handle-bookmark, bookmark-location, bookmark-show-annotation):
 +      Rename `bookmark' parameter to `bookmark-name-or-record', to
 +      clearly show its role, and shorten or adjust doc strings accordingly.
 +      (bookmark-set-name): Same, and pass the parameter directly to
 +      `bookmark-get-bookmark' instead of redundantly doing the callee's work.
 +      (bookmark-default-annotation-text, bookmark-send-edited-annotation)
 +      (bookmark-relocate, bookmark-insert-location, bookmark-insert)
 +      (bookmark-delete): Rename `bookmark' parameter to `bookmark-name',
 +      and in some cases shorten doc string accordingly.
 +      (bookmark-rename): Change `old' and `new' parameters to `old-name'
 +      and `new-name', and adjust an internal variable to avoid confusion.
 +      (bookmark-jump, bookmark-jump-noselect): Clarify `bookmark'
 +      parameter in doc string.
 +
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/gdb-mi.el (gdb): Try to initialize comint input history
 +      from gdb's history file.  (Bug#7575)
 +
 +      * mail/emacsbug.el (report-emacs-bug):
 +      Try to handle some other mail clients.
 +
 +2010-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (dir-locals-collect-variables): Don't let errors stop us.
 +      Use string-prefix-p.
 +      (file-name-version-regexp): New var.
 +      (file-name-sans-versions):
 +      * jka-cmpr-hook.el (jka-compr-build-file-regexp): Use it,
 +      (jka-compr-get-compression-info): Use dolist.
 +      (jka-compr-compression-info-list): Don't bother specifying
 +      version/backup regexps.
 +
 +2010-12-07  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * simple.el (just-one-space): Make argument n default to 1 if
 +      omitted.
 +
 +2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Delete trailing newlines even if we don't reindent.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-at-point): Remove the `arg'.
 +      * bindings.el (complete-symbol): Move back from minibuffer.el.
 +
 +2010-12-06  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * simple.el (just-one-space): Delete newlines for negative arg.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * ansi-color.el (ansi-color-unfontify-region): Replace by trivial def.
 +      (ansi-color-filter-apply): Simplify.
 +      (ansi-color-apply): Use `font-lock-face' rather than `face'.
 +
 +2010-12-05  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * vc/vc-dir.el (vc-dir-query-replace-regexp): Doc fix (Bug#7501).
 +
 +2010-12-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-use-ls-dired): Set default to a special
 +      "unspecified" value.
 +      (dired-insert-directory): When called the first time, check
 +      whether "ls --dired" succeeds and set dired-use-ls-dired (Bug#7546).
 +
 +2010-12-04  Tak Ota  <Takaaki.Ota@am.sony.com>
 +
 +      * replace.el: Add "collect" feature to occur.
 +      (occur-collect-regexp-history): New var.
 +      (occur-read-primary-args): Return a replace string for nlines,
 +      if needed.
 +      (occur): Extend the meaning of nlines.
 +
 +2010-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/which-func.el (which-func-ff-hook): Log the error message.
 +      (which-func-update-1): Distinguish symbols from strings.
 +      (which-function): Stay within 80 columns.
 +
 +2010-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (with-demoted-errors): Distinguish symbols from strings.
 +
 +      * newcomment.el (comment-styles): Add docs to each style (bug#7509).
 +      Improve docstring.
 +      (comment-style): Use comment-styles's docs to describe values.
 +
 +2010-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/common-win.el (x-setup-function-keys): Restore ns-new-frame
 +      and ns-show-prefs (Bug#7535).
 +
 +      * term/ns-win.el (global-map): Restore ns-new-frame and ns-show-prefs
 +      bindings (Bug#7535).
 +
 +2010-12-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * nxml/nxml-mode.el: Require rng-nxml.
 +      (rng-nxml-mode-init, nxml-enable-unicode-char-name-sets):
 +      Remove declarations.
 +
 +      * nxml/nxml-mode.el, nxml/nxml-outln.el, nxml/rng-loc.el:
 +      * nxml/rng-nxml.el, nxml/rng-valid.el:
 +      Remove leading `*' from defcustom docs.
 +
 +      * startup.el (normal-top-level-add-subdirs-to-load-path): Simplify.
 +      (normal-top-level-add-to-load-path, tty-handle-args):
 +      Convert comments to basic doc-strings.
 +
 +      * net/browse-url.el (browse-url-url-at-point)
 +      (browse-url-default-browser): Remove autoload cookies.
 +
 +      * mail/emacsbug.el (report-emacs-bug-create-existing-bugs-buffer):
 +      Remove more undefined cl functions.
 +
 +      * vc/diff.el (diff-sentinel): Make new arguments optional.
 +      * ibuf-ext.el (diff-sentinel): Update declaration.
 +
 +2010-12-03  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg.el (epg-digest-algorithm-alist): Replace "RMD160" with
 +      "RIPEMD160" (Bug#7490).  Reported by Daniel Kahn Gillmor.
 +      (epg-context-set-passphrase-callback): Mention that the callback
 +      is not called when used with GnuPG 2.x.
 +
 +2010-12-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-local-host-regexp): Add "localhost6".
 +      (tramp-file-name-port): Check also for `tramp-default-port'.
 +      (tramp-get-connection-name): New defun.
 +      (tramp-get-connection-process): Use it.
 +      (tramp-debug-message): Extend function exclude list.
 +      (tramp-drop-volume-letter): Fix doc string.
 +
 +      * net/tramp-cmds.el: Remove solved todo item.
 +
 +      * net/tramp-efs.el:
 +      * net/tramp-ftp.el:
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el:
 +      * net/tramp-imap.el:
 +      * net/tramp-smb.el: Fix regexps added to `tramp-default-method-alist'
 +      and `tramp-default-user-alist', respectively.
 +
 +      * net/tramp-gw.el (tramp-gw-open-connection):
 +      Use `tramp-get-connection-name' and `tramp-get-connection-buffer'.
 +
 +      * net/tramp-imap.el (tramp-imap-make-iht): Use just
 +      `tramp-file-name-port'.
 +
 +      * net/tramp-sh.el (tramp-methods): Add recursive options to "pscp"
 +      and "psftp".  Exchange "%k" marker with options.
 +      (tramp-do-copy-or-rename-file, tramp-sh-handle-file-local-copy):
 +      Compute size of link target.
 +      (tramp-do-copy-or-rename-file-out-of-band). Move setting of
 +      `tramp-current-*' up due to gateway methods.  Optimze computing of
 +      copy arguments.  Use `tramp-get-connection-name' and
 +      `tramp-get-connection-buffer'.  Improve debug messages.
 +      (tramp-compute-multi-hops): Remove port determination.
 +      (tramp-maybe-open-connection): Use `tramp-get-connection-name'.
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-12-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/cl-macs.el (cl-parse-loop-clause):
 +      Avoid infinite loop over windows.  (Bug#7492)
 +
 +      * progmodes/flymake.el (flymake-check-file-limit):
 +      Allow nil to mean "no limit".
 +      (flymake-check-patch-master-file-buffer): Update for above change.
 +      Allow a .tex file-name extension to be optional.
 +      (flymake-master-tex-init): Also match \include statements.
 +
 +2010-11-30  Sam Steingold  <sds@gnu.org>
 +
 +      * nxml/nxml-mode.el (nxml-parent-document): Add a variable.
 +      (nxml-parent-document-set): A function to set `nxml-parent-document'.
 +      (nxml-mode): Define using `define-derived-mode' instead of `defun'.
 +      (nxml-mode-hook): Remove `defcustom' (auto-defined by
 +      define-derived-mode').
 +      * nxml/rng-valid.el (rng-dtd-trivial-p): Add a helper function for
 +      users who want to call `nxml-parent-document-set'.
 +
  2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * log-edit.el (log-edit-font-lock-keywords): Don't try matching
        `directory-listing-before-filename-regexp'.  (Bug#7308)
        (locate-post-command-hook, locate-post-command-hook): New defcustoms.
  
 -2010-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/smie.el (smie-prec2->grammar): Simplify handling
        of :smie-open/close-alist.
        (smie-indent-keyword): Be careful not to misidentify tokens that span
        more than one line, as empty lines.  Add argument `token'.
  
 -2010-11-26  Kenichi Handa  <handa@m17n.org>
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-insert-multipart): For unsupported
        multipart subtypes, insert all as usual.
  
        * mail/rmail.el: Require rfc2047.
  
 -2010-11-26  Kenichi Handa  <handa@m17n.org>
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-entity, rmail-mime-entity-type)
        (rmail-mime-entity-disposition)
        rmail-show-mime-function for a MIME message.  Decode the headers
        according to RFC2047.
  
 -2010-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * progmodes/which-func.el (which-func-imenu-joiner-function):
        Return a string, as expected.
        (which-function-mode): Make sure we stop any previous timer before
        starting a new one.
  
 -2010-11-23  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-27  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-default-method-alist)
        (tramp-default-user-alist, tramp-default-proxies-alist):
        Adapt custom options type.  (Bug#7445)
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * progmodes/python.el: Add Ipython support (Bug#5390).
        (python-shell-prompt-alist)
        (python-comint-output-filter-function): Use it.
        (run-python): Use a pipe (Bug#5694).
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * progmodes/python.el (run-python): Doc fix.
        (python-keep-current-directory-in-path): New var (Bug#7454).
  
 -2010-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * lpr.el (lpr-buffer, print-buffer, lpr-region, print-region):
        Prompt user before actually printing.
  
 -2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-27  Glenn Morris  <rgm@gnu.org>
  
 -      * simple.el (kill-new, kill-append, kill-region):
 -      * comint.el (comint-kill-region): Make the yank-handler argument
 -      obsolete.
 +      * startup.el (package-enable-at-startup, package-initialize):
 +      Remove unnecessary declarations.
  
 -2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-27  Eli Zaretskii  <eliz@gnu.org>
  
 -      * emacs-lisp/smie.el (smie-bnf-classify): Signal errors for tokens
 -      that are both openers (resp. closers) and something else.
 -      (smie-grammar): Loosen definition of valid values.
 -      (smie-next-sexp, smie-down-list, smie-blink-matching-open)
 -      (smie-indent--parent, smie-rule-parent, smie-indent-keyword)
 -      (smie-indent-after-keyword): Adjust users.
 -      (smie-indent-keyword): Don't indent empty lines.
 +      * international/characters.el (glyphless-char-display-control):
 +      Exclude newline and TAB from the c0-control group.
  
 -      * vc-hg.el (vc-hg-program): New var.
 -      Suggested by Norman Gray <norman@astro.gla.ac.uk>.
 -      (vc-hg-state, vc-hg-working-revision, vc-hg-command): Use it.
 +2010-11-27  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-17  Glenn Morris  <rgm@gnu.org>
 +      * mail/sendmail.el (build-mail-aliases): Doc fix for autoload.
 +      (expand-mail-aliases): Remove unnecessary autoload.
  
 -      * emacs-lisp/autoload.el (autoload-find-destination): The function
 -      coding-system-eol-type may return non-numeric values.  (Bug#7414)
 +      * allout.el (allout-command-prefix, allout-mode-map): Declare.
  
 -2010-11-16  Ulrich Mueller  <ulm@gentoo.org>
 +      * shell.el (shell-dir-cookie-re): Move definition before use.
  
 -      * server.el (server-force-stop): Ensure the server is stopped (Bug#7409).
 +      * mail/emacsbug.el (report-emacs-bug-create-existing-bugs-buffer):
 +      Replace undefined CL functions.
  
 -2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
  
 -      * subr.el (posn-col-row): Pay attention to header line.  (Bug#7390)
 +      * simple.el (prog-mode): Set bidi-paragraph-direction to
 +      left-to-right.
  
 -2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
 +      * term/pc-win.el (x-get-selection-internal): Emulation for MS-DOS.
  
 -      * textmodes/picture.el (picture-mouse-set-point): Don't use
 -      posn-col-row; explicitly compute the motion based on the posn at
 -      the window-start (Bug#7390).
 +2010-11-26  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
 +      * calendar/diary-lib.el (diary-outlook-format-1): New function, so that
 +      diary-outlook-formats can be sensitive to calendar-date-style.
 +      (diary-outlook-formats): Simplify the default setting.
 +      (diary-from-outlook-internal): Pass subject and body as arguments.
 +      Use dolist rather than dotimes.  Don't save the diary buffer.
 +      (diary-from-outlook-gnus, diary-from-outlook-rmail):
 +      Pass subject and body as explicit arguments to the -internal function.
  
 -      * net/tramp.el (tramp-remote-coding-commands): Add an alternative
 -      using "base64 -d -i".  This is needed for older base64 versions
 -      from GNU coreutils.  Reported by Klaus Reichl
 -      <Klaus.Reichl@thalesgroup.com>.
 +2010-11-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  
 -2010-11-13  Glenn Morris  <rgm@gnu.org>
 +      * mail/rfc2368.el (rfc2368-parse-mailto-url): Unfold URLs before
 +      parsing them.  This makes mailto:...?subject=foo\nbar work.
  
 -      * novice.el (disabled-command-function):
 -      Fix 2009-11-15 change.  (Bug#7384)
 +2010-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-11-12  Glenn Morris  <rgm@gnu.org>
 +      * vc/diff.el (diff): Fix last change.
  
 -      * calendar/calendar.el (diary-iso-date-forms): Make elements
 -      mutually exclusive.  (Bug#7377)
 +2010-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/pcase.el: Improve pcase-let.  Use "pcase--" prefix.
 +      (pcase--dontcare-upats): New var.
 +      (pcase-let, pcase-let*): Generate better code.
 +      Accept the same bodies as `let'.
 +      (pcase-dolist): New macro.
 +      (pcase--trivial-upat-p): New helper function.
 +      (pcase--expand): Strip leading "(let nil" if any.
  
 -      * emacs-lisp/smie.el (smie-prec2->grammar): Obey equality constraints
 -      when filling the remaining "unconstrained" values.
 +2010-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  
 -2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * mail/mailclient.el (browse-url): Require.
 +      (mailclient-send-it): Bind `browse-url-mailto-function' to nil to
 +      use the external browser function to send the mail (bug#7469).
  
 -      * emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
 -      safety predicate.
 +      * net/browse-url.el (browse-url-browser-function): Revert the
 +      default back to the previous value, since the new value broke
 +      mailclient.el.
 +      (browse-url-mailto-function): New variable for mailto: URLs.
 +      (browse-url): Use the new variable for mailto: URLs.
  
 -      * files.el (safe-local-variable-p): Gracefully handle errors.
 +2010-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * emacs-lisp/smie.el (smie-rule-parent, smie-indent--rule):
 -      Use smie-indent-virtual when indenting relative to an opener.
 -      (smie-rule-separator): Use smie-rule-parent.
 -      (smie-indent-keyword): Consult rules, even for openers at bol.
 -      (smie-indent-comment-close): Try to align closer's content.
 +      * eshell/esh-cmd.el (eshell-parse-command):
 +      * eshell/esh-arg.el (eshell-parse-arguments):
 +      * eshell/em-script.el (eshell-source-file):
 +      Use with-silent-modifications.
  
 -2010-11-11  Glenn Morris  <rgm@gnu.org>
 +2010-11-23  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
 +      * vc/vc.el (vc-merge): Remove optional arg PROMPT.  Always prompt
 +      for a merge location.
  
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +      * vc/vc-bzr.el (vc-bzr-pull): Remove unused var.
 +      (vc-bzr-merge-branch): Always prompt.
 +      (vc-bzr-async-command): Use the full branch filename.
  
 -      * printing.el (pr-menu-bind): Doc fix.
 +2010-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * speedbar.el (speedbar-toggle-images): Doc fix.
 +      * shell.el (shell): Use current-buffer by default if it's already
 +      a shell mode buffer and its process is dead.
 +      Suggested by Jose E. Marchesi <jemarch@gnu.org>.
  
 -      * progmodes/python.el (python-shell): Doc fix.
 +2010-11-23  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * wid-edit.el (widget-field-use-before-change)
 -      (widget-use-overlay-change): Doc fixes.
 +      * mail/emacsbug.el (report-emacs-bug-query-existing-bugs):
 +      Mention that the keywords should be comma separated.
  
 -2010-11-09  Glenn Morris  <rgm@gnu.org>
 +2010-11-23  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
 -
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc/vc.el (vc-merge): Use vc-BACKEND-merge-branch if available.
 +      Accept optional prefix arg meaning to prompt for a command.
 +      (vc-update): Use vc-BACKEND-pull if available.  Accept optional
 +      prefix arg meaning to prompt for a command.
 +      (vc-pull): Alias for vc-update.
  
 -      * minibuffer.el (minibuffer-completion-help): Specify the end of the
 -      completion field (bug#7211).
 +      * vc/vc-bzr.el (vc-bzr-admin-branchconf, vc-bzr-history): New vars.
 +      (vc-bzr--branch-conf, vc-bzr-async-command, vc-bzr-pull)
 +      (vc-bzr-merge-branch): New functions, implementing merge-branch
 +      and pull operations.
  
 -      * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
 -      Fix handling of backslash escapes.
 -      (python-quote-syntax): Adjust accordingly.
 +2010-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-11-08  Richard Levitte  <richard@levitte.org>  (tiny change)
 +      * Makefile.in: Fix up last merge.
  
 -      * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
 -      (vc-mtn-workfile-branch): Adjust to new output format.
 +      * vc/diff.el (diff-old-temp-file, diff-new-temp-file): Remove.
 +      (diff-sentinel): Get them as arguments instead.
 +      (diff-old-file, diff-new-file, diff-extra-args): Remove.
 +      (diff-file-local-copy, diff-better-file-name): New funs.
 +      (diff-no-select): Rename from diff-into-buffer.
 +      Support buffers additionally to files.  Move `buf' arg.  Don't display buf.
 +      Prefer closures to buffer-local variables.
 +      (diff): Adjust accordingly.
 +      (diff-buffer-with-file): Move from files.el.
 +      * files.el (diff-buffer-with-file): Move to vc/diff.el.
 +      (diff-buffer-internal): Remove.
 +      (diff-buffer-buffer): Remove.
 +      (save-some-buffers-action-alist): Use diff-no-select so as not to guess
 +      the buffer name used, and so as not to mess up windows and frames.
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-22  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
  
 -      * international/mule-cmds.el (princ-list): Mark as obsolete.
 +      * files.el: Make revert work with diff-buffer-with-file (bug#7277).
 +      (diff-buffer-internal): New function extracted from diff-buffer-with-file
 +      (diff-buffer-with-file): Use it.
 +      * vc/diff.el (diff-into-buffer): New fun, extracted from diff.
 +      (diff): Use it.
  
 -2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-22  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * emacs-lisp/smie.el: New package.
 +      * textmodes/reftex-ref.el (reftex-goto-label): Use the current
 +      \ref's or \pageref's value as default instead of initial input.
  
 -2010-11-06  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-21  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * files.el (backup-by-copying-when-mismatch):
 -      Set `permanent-local' property.
 +      * files.el (backup-by-copying-when-mismatch): The default value is
 +      now t.
  
 +      * startup.el (normal-top-level):
        * net/tramp.el (tramp-handle-insert-file-contents): Do not set
 -      `permanent-local' property for `backup-by-copying-when-mismatch'.
 +      `backup-by-copying-when-mismatch'.
  
 -2010-11-06  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * ls-lisp.el (insert-directory): Doc fix.  (bug#7285)
 -      (ls-lisp-classify-file): New function.
 -      (ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
 -      (ls-lisp-classify): Call ls-lisp-classify-file.
 -      (insert-directory): Remove blanks from switches.
 +      * tool-bar.el (tool-bar-setup): Remove save as, print and customize.
  
 -2010-11-07  Wilson Snyder  <wsnyder@wsnyder.org>
 +2010-11-21  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * progmodes/verilog-mode.el (verilog-insert-one-definition)
 -      (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
 -      AUTOINOUT for SV style multidimensional arrays, bug294.
 -      Reported by Eric Mastromarchi.
 -      (verilog-preprocess): Use with-current-buffer and
 -      font-lock-fontify-buffer to cleanup style issues.
 +      * progmodes/python.el (python-font-lock-keywords):
 +      Highlight top-level augmented assignments (Bug#6445).
  
 -2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * net/trampver.el: Update release number.
 +      * term/ns-win.el (ns-right-control-modifier)
 +      (ns-right-command-modifier): Defvar them.
  
 -2010-08-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * cus-start.el (all): Add ns-right-control-modifier and
 +      ns-right-command-modifier (Bug#7458).
  
 -      * mouse.el (mouse-fixup-help-message): Match "mouse-2" only at the
 -      beginning of the string.  Use `string-match-p'.  (Bug#6765)
 +2010-11-20  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-01  Glenn Morris  <rgm@gnu.org>
 +      * emacs-lisp/authors.el (authors-ignored-files)
 +      (authors-valid-file-names, authors-renamed-files-alist): Add entries.
  
 -      * locate.el (locate, locate-mode): Doc fixes.
 +2010-11-20  Tassilo Horn  <tassilo@member.fsf.org>
  
 -2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
 +      * mail/emacsbug.el (report-emacs-bug-query-existing-bugs)
 +      (report-emacs-bug-parse-query-results)
 +      (report-emacs-bug-create-existing-bugs-buffer): Pass through
 +      keywords used for querying the bug database to show them in the
 +      existing bugs buffer.
  
 -      * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
 -      user for confirmation.
 -      (server-force-stop): Use it.
 -      (server-start): Use server-force-stop for kill-emacs-hook, to
 -      avoid user interaction while killing Emacs.
 +2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * tool-bar.el (tool-bar-setup): Add some :vert-only keywords.
  
 -      * vc/log-edit.el (log-edit-rewrite-fixes): New var.
 -      (log-edit-author): New dynamic var.
 -      (log-edit-changelog-ours-p, log-edit-insert-changelog-entries):
 -      Use it to return the author if different from committer.
 -      (log-edit-insert-changelog): Use them to add Author: and Fixes headers.
 +      * info.el (info-tool-bar-map): Add some :vert-only keywords.
  
 -2010-10-31  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
 +      * international/characters.el (glyphless-char-display-control):
 +      Make it a defcustom, with update-glyphless-char-display as its
 +      :set attribute.
 +      (top level): Don't call update-glyphless-char-display.
  
 -2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-20  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * vc/vc.el (vc-deduce-backend): New fun.  Handle diff buffers.
 -      (vc-root-diff, vc-print-root-log, vc-log-incoming)
 -      (vc-log-outgoing): Use it.
 -      (vc-diff-internal): Set diff-vc-backend.
 +      Sync with Tramp 2.2.0.
  
 -      * vc/diff-mode.el (diff-vc-backend): New var.
 +      * net/tramp.el (tramp-handle-insert-file-contents): Don't use
 +      `file-remote-p' (due to compatibility).
  
 -2010-10-31  Juri Linkov  <juri@jurta.org>
 +      * net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band): Use `ignore-errors'.
  
 -      * vc/vc.el (vc-diff-internal): Set `revert-buffer-function'
 -      buffer-locally to lambda that re-runs the vc diff command.
 -      (Bug#6447)
 +      * net/trampver.el: Update release number.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
 +      * faces.el (glyphless-char): Define value for `pc'.
  
 -      Make 'g' (AKA revert-buffer) rerun VC log, log-incoming and
 -      log-outgoing commands.
 -      * vc/vc.el (vc-log-internal-common): Add a new argument and use it
 -      to create a buffer local revert-buffer-function variable.
 -      (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a
 -      revert-buffer-function lambda.
 +2010-11-20  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      Improve VC create/retrieve tag/branch.
 -      * vc.el (vc-create-tag): Do not read the directory name for VCs
 -      with repository revision granularity.  Adjust the tag/branch
 -      prompt.  Reset VC properties.
 -      (vc-retrieve-tag): Do not read the directory name for VCs
 -      with repository revision granularity.  Reset VC properties.
 +      Implemented a bug querying mechanism.
 +      * mail/emacsbug.el (report-emacs-bug-tracker-url): New variable.
 +      (report-emacs-bug-create-existing-bugs-buffer)
 +      (report-emacs-bug-parse-query-results)
 +      (report-emacs-bug-query-existing-bugs): New functions.
  
 -      Add optional support for resetting VC properties.
 -      * vc-dispatcher.el (vc-resynch-window): Add new optional argument,
 -      call vc-file-clearprops when true.
 -      (vc-resynch-buffer): Add new optional argument, pass it down.
 -      (vc-resynch-buffers-in-directory): Likewise.
 +2010-11-19  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      Improve support for special markup in the VC commit message.
 -      * vc-mtn.el (vc-mtn-checkin): Support Author: and Date: markup.
 -      * vc-hg.el (vc-hg-checkin): Add support for Date:.
 -      * vc-git.el (vc-git-checkin):
 -      * vc-bzr.el (vc-bzr-checkin): Likewise.
 +      * textmodes/reftex-ref.el (reftex-goto-label): If point is inside
 +      a \ref{} or \pageref{} macro, then use its value as initial input.
  
 -      Add support for vc-log-incoming, improve vc-log-outgoing for Git.
 -      * vc-git.el (vc-git-log-view-mode): Fix font lock for
 -      incoming/outgoing logs.
 -      (vc-git-log-outgoing, vc-git-log-incoming): New functions.
 +2010-11-19  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -      * vc-git.el (vc-git-log-outgoing): Use the same format as the
 -      short log.
 -      (vc-git-log-incoming): Likewise.  Run "git fetch" before the log
 -      command
 +      * calc/calc-units.el (math-build-units-table-buffer):
 +      calc/README: Mention that the TeX specific units won't use the
 +      `tex' prefix in TeX mode.
 +      calc/calc-lang.el (math-variable-table): Don't use the `tex'
 +      prefix for units in TeX mode.
  
 -      Add bindings for vc-log-incoming and vc-log-outgoing.
 -      * vc-hooks.el (vc-prefix-map): Add bindings for vc-log-incoming
 -      and vc-log-outgoing.
 -      * vc-dir.el (vc-dir-menu-map): Add menu bindings for vc-log-incoming
 -      and vc-log-outgoing.
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Improve state updating for VC tag commands.
 -      * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer
 -      to update the state of all buffers in the directory.
 +      * simple.el (kill-new, kill-append, kill-region):
 +      * comint.el (comint-kill-region): Make the yank-handler argument
 +      obsolete.
  
 -2010-05-19  Glenn Morris  <rgm@gnu.org>
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-dir.el (vc-dir): Don't pop-up-windows.  (Bug#6204)
 +      * emacs-lisp/smie.el (smie-bnf-classify): Signal errors for tokens
 +      that are both openers (resp. closers) and something else.
 +      (smie-grammar): Loosen definition of valid values.
 +      (smie-next-sexp, smie-down-list, smie-blink-matching-open)
 +      (smie-indent--parent, smie-rule-parent, smie-indent-keyword)
 +      (smie-indent-after-keyword): Adjust users.
 +      (smie-indent-keyword): Don't indent empty lines.
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc-hg.el (vc-hg-program): New var.
 +      Suggested by Norman Gray <norman@astro.gla.ac.uk>.
 +      (vc-hg-state, vc-hg-working-revision, vc-hg-command): Use it.
  
 -      * vc.el (vc-checkin, vc-modify-change-comment):
 -      Adjust to new vc-start/finish-logentry.
 -      (vc-find-conflicted-file): New command.
 -      (vc-transfer-file): Adjust to new vc-checkin.
 -      (vc-next-action): Improve scoping.
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-git.el (vc-git-checkin): Use log-edit-extract-headers.
 -      (vc-git-commits-coding-system): Rename from git-commits-coding-system.
 +      * emacs-lisp/autoload.el (autoload-find-destination): The function
 +      coding-system-eol-type may return non-numeric values.  (Bug#7414)
  
 -      * vc-dispatcher.el (vc-log-edit): Shorten names for
 -      log-edit-show-files.
 +2010-11-18  Ulrich Mueller  <ulm@gentoo.org>
  
 -      * vc-bzr.el (vc-bzr-checkin): Use log-edit-extract-headers.
 -      (vc-bzr-conflicted-files): New function.
 +      * server.el (server-force-stop): Ensure the server is stopped (Bug#7409).
  
 -      * log-edit.el (log-edit-summary, log-edit-header)
 -      (log-edit-unknown-header): New faces.
 -      (log-edit-headers-alist): New var.
 -      (log-edit-header-contents-regexp): New const.
 -      (log-edit-match-to-eoh): New function.
 -      (log-edit-font-lock-keywords): Use them.
 -      (log-edit): Insert a "Summary:" header as default.
 -      (log-edit-mode): Mark font-lock rules as case-insensitive.
 -      (log-edit-done): Cleanup headers.
 -      (log-edit-extract-headers): New function to replace it.
 +2010-11-18  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with
 -      the windows/frames.
 +      * subr.el (posn-col-row): Pay attention to header line.  (Bug#7390)
  
 -      * vc-bzr.el (vc-bzr-shelve-apply): Don't use *vc-bzr-shelve*.
 +2010-11-18  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * vc-dir.el (vc-dir-kill-line): New command.
 -      (vc-dir-mode-map): Bind it to C-k.
 -      (vc-dir-headers): Abbreviate the working dir.
 +      * textmodes/picture.el (picture-mouse-set-point): Don't use
 +      posn-col-row; explicitly compute the motion based on the posn at
 +      the window-start (Bug#7390).
  
 -      * vc-git.el (vc-git-revision-table): Include remote branches.
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * novice.el (disabled-command-function):
 +      Fix 2009-11-15 change.  (Bug#7384)
  
 -      New VC methods: vc-log-incoming and vc-log-outgoing.
 -      * vc.el (vc-print-log-setup-buttons, vc-log-internal-common)
 -      (vc-incoming-outgoing-internal, vc-log-incoming, vc-log-outgoing):
 -      New functions.
 -      (vc-print-log-internal): Just call vc-log-internal-common.
 -      (vc-log-view-type): New permanent local variable.
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
 +      * calendar/calendar.el (diary-iso-date-forms): Make elements
 +      mutually exclusive.  (Bug#7377)
  
 -      * vc-bzr.el (vc-bzr-log-view-mode): Use vc-log-view-type instead
 -      of the dynamic bound vc-short-log.
 -      (vc-bzr-log-incoming, vc-bzr-log-outgoing): New functions.
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-git.el (vc-git-log-outgoing): New function.
 -      (vc-git-log-view-mode): Use vc-log-view-type instead
 -      of the dynamic bound vc-short-log.
 +      * emacs-lisp/smie.el (smie-prec2->grammar): Obey equality constraints
 +      when filling the remaining "unconstrained" values.
  
 -      * vc-hg.el (vc-hg-log-view-mode): Use vc-log-view-type instead of
 -      the dynamic bound vc-short-log.  Highlight the tag.
 -      (vc-hg-log-incoming, vc-hg-log-outgoing): New functions.
 -      (vc-hg-outgoing, vc-hg-incoming, vc-hg-outgoing-mode):
 -      (vc-hg-incoming-mode): Remove.
 -      (vc-hg-extra-menu-map): Do not bind vc-hg-incoming and vc-hg-outgoing.
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Fix default-directory for vc-root-diff.
 -      * vc.el (vc-root-diff): Bind default-directory to the root
 -      directory for the diff command.
 +      * emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
 +      safety predicate.
  
 -2010-10-31  Sam Steingold  <sds@gnu.org>
 +      * files.el (safe-local-variable-p): Gracefully handle errors.
  
 -      * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
 -      `vc-hg-command' with a list of flags.
 +      * emacs-lisp/smie.el (smie-rule-parent, smie-indent--rule):
 +      Use smie-indent-virtual when indenting relative to an opener.
 +      (smie-rule-separator): Use smie-rule-parent.
 +      (smie-indent-keyword): Consult rules, even for openers at bol.
 +      (smie-indent-comment-close): Try to align closer's content.
  
 -2010-10-31  Glenn Morris  <rgm@gnu.org>
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to
 -      log-edit-before-checkin-process.
 +      * ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
  
 -      * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry.
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-bzr.el, vc-hg.el (log-edit-mode): Declare.
 +      * printing.el (pr-menu-bind): Doc fix.
  
 -      * vc-dispatcher.el (vc-start-logentry): Doc fix.
 -      (log-view-process-buffer, log-edit-extra-flags): Declare.
 +      * speedbar.el (speedbar-toggle-images): Doc fix.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * progmodes/python.el (python-shell): Doc fix.
  
 -      Add special markup processing for commit logs.
 -      * log-edit.el (log-edit): Add new argument MODE.  Use that mode
 -      when non-nil instead of the log-view-mode.
 +      * wid-edit.el (widget-field-use-before-change)
 +      (widget-use-overlay-change): Doc fixes.
  
 -      * vc.el (vc-default-log-edit-mode): New function.
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to
 -      log-edit.
 +      Minor cleanup to improve style.
 +      * textmodes/rst.el (rst-update-section): Use point-marker.
 +      (rst-get-decoration): Eliminate unneeded assignment.
 +      (rst-promote-region, rst-straighten-decorations)
 +      (rst-section-tree, rst-adjust): Use point-marker.
 +      (rst-toc-mode-mouse-goto): Avoid setq.
 +      (rst-shift-region-guts, rst-shift-region-left)
 +      (rst-iterate-leftmost-paragraphs, rst-iterate-leftmost-paragraphs-2)
 +      (rst-convert-bullets-to-enumeration): Use copy-marker.
 +
 +      * minibuffer.el (completion-fail-discreetly): New var.
 +      (completion--do-completion): Use it.
  
 -      Support for shelving snapshots and for showing shelves.
 -      * vc-bzr.el (vc-bzr-shelve-show, vc-bzr-shelve-show-at-point)
 -      (vc-bzr-shelve-apply-and-keep-at-point, vc-bzr-shelve-snapshot):
 -      New functions.
 -      (vc-bzr-shelve-map, vc-bzr-shelve-menu-map)
 -      (vc-bzr-extra-menu-map): Map them.
 +      * electric.el (electric-pair-pairs): New var.
 +      (electric-pair-post-self-insert-function): Use it.
 +      (electric-layout-post-self-insert-function): Don't insert a before
 +      newline unless it's actually needed.
  
 -2010-10-30  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-handle-insert-file-contents): For root,
 -      preserve owner and group when editing files.  (Bug#7289)
 +      * progmodes/python.el (run-python): Explain why we remove the current
 +      directory from sys.path.  Suggested by Eric Hanchrow <erich@cozi.com>.
 +
 +      * progmodes/grep.el (grep-regexp-alist): Tighten the regexp (bug#7378).
 +
 +2010-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el: Rely on elecric-*-modes.
 +      (octave-mode-map): Don't bind ;, SPC, and LF.
 +      (octave-auto-indent, octave-auto-newline): Remove.
 +      (electric-layout-rules): Declare.
 +      (octave-mode): Set electric-layout-rules.
 +      (octave-indent-new-comment-line): Use reindent-then-newline-and-indent.
 +      (octave-reindent-then-newline-and-indent, octave-electric-semi)
 +      (octave-electric-space): Remove.
 +
 +      * electric.el (electric-layout-mode): New minor mode.
 +      (electric--after-char-pos): New function.
 +      (electric-indent-post-self-insert-function): Use it.
 +      (electric-layout-rules): New var.
 +      (electric-layout-post-self-insert-function): New function.
 +      (electric-indent-mode): Make them interact better.
 +
 +2010-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-syntax-table): Fix last change.
 +      (checkdoc-sentencespace-region-engine, checkdoc-this-string-valid)
 +      (checkdoc-proper-noun-region-engine): Use with-syntax-table.
 +
 +2010-11-15  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/flyspell.el (flyspell-generic-progmode-verify):
 +      Make sure to check inside the word (Bug#6761).
 +
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): If the cursorColor resource is set,
 +      change the cursor face-spec (Bug#7392).
 +
 +2010-11-13  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      The main features of the following allout.el changes are:
 +      - implement user customization for the allout key bindings
 +      - add a customization control by which the user can inhibit use of
 +        a trailing Ctrl-H, so by default it's reserved for use with
 +        describe-prefix-bindings
 +      - adapt to new version of called-interactively-p, while
 +        maintaining backwards compatibility with old version
 +      - fix hotspot navigation so i works properly with meta-modified keys
 +
 +      * allout.el (allout-keybindings, allout-bind-keys)
 +      (allout-keybindings-binding, allout-prefixed-keybindings)
 +      (allout-unprefixed-keybindings, allout-preempt-trailing-ctrl-h)
 +      (allout-keybindings-list, allout-mode-map-adjustments)
 +      (allout-setup-mode-map): Establish allout-mode keymaps as user
 +      customizable settings, and also establish a customizable setting which
 +      regulates whether or not a trailing control-h is reserved for use with
 +      describe-prefix-bindings - and inhibit it by default, so that control-h
 +      *is* reserved for describe-prefix-bindings unless the user changes it.
 +
 +      * allout.el (allout-hotspot-key-handler): Distinguish more explicitly
 +      and accurately between modified and unmodified events, and handle
 +      modified events more comprehensively.
 +
 +      * allout.el (allout-substring-no-properties):
 +      Alias to use or provide version of `substring-no-properties'.
 +      (allout-solicit-alternate-bullet): Use `allout-substring-no-properties'.
 +
 +      * allout.el (allout-next-single-char-property-change):
 +      Alias to use or provide version of `next-single-char-property-change'.
 +      (allout-annotate-hidden, allout-hide-by-annotation):
 +      Use `allout-next-single-char-property-change'.
 +
 +      * allout.el (allout-select-safe-coding-system):
 +      Alias to use or provide version of `select-safe-coding-system'.
 +      (allout-toggle-subtree-encryption):
 +      Use `allout-select-safe-coding-system'.
 +
 +      * allout.el (allout-set-buffer-multibyte):
 +      Alias to use or provide version of `set-buffer-multibyte'.
 +      (allout-encrypt-string): Use `allout-set-buffer-multibyte'.
 +
 +      * allout.el (allout-called-interactively-p): Macro for using the
 +      different versions of called-interactively-p identically, depending on
 +      the subroutine's argument signature.
 +      (allout-back-to-current-heading, allout-beginning-of-current-entry):
 +      Use `(interactive "p")' instead of `(called-interactively-p)'.
 +
 +      * allout.el (allout-init, allout-ascend, allout-end-of-level)
 +      (allout-previous-visible-heading, allout-forward-current-level)
 +      (allout-backward-current-level, allout-show-children):
 +      Use `allout-called-interactively-p' instead of `called-interactively-p'.
  
 -2010-10-29  Glenn Morris  <rgm@gnu.org>
 +      * allout.el (allout-before-change-handler):
 +      Exempt edits to the (overlaid) character after the allout outline
 +      bullet from edit confirmation prompt.
  
 -      * speedbar.el (speedbar-mode):
 -      * play/fortune.el (fortune-in-buffer, fortune):
 -      * play/gomoku.el (gomoku-mode):
 -      * play/landmark.el (lm-mode):
 -      * textmodes/bibtex.el (bibtex-validate, bibtex-validate-globally):
 -      Replace inappropriate uses of toggle-read-only.  (Bug#7292)
 +      * allout.el (allout-add-resumptions):
 +      Ensure that it respects correct buffer for keybindings.
  
 -2010-10-28  Glenn Morris  <rgm@gnu.org>
 +      * allout.el (allout-beginning-of-line):
 +      Use `allout-previous-single-char-property-change' alias for the sake of
 +      diverse compatibility.
  
 -      * select.el (x-selection): Mark it as an obsolete alias.
 +      * allout.el (allout-end-of-line):
 +      Use `allout-mark-active-p' to encapsulate respect for mark activity.
  
 -2010-10-27  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 +2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * add-log.el (find-change-log): Use derived-mode-p rather than
 -      major-mode (bug#7284).
 +      * frame.el (frame-notice-user-settings): Don't clobber other
 +      user-set parameters when calling face-set-after-frame-default in
 +      response to background-color parameter (Bug#7373).
  
 -2010-10-27  Glenn Morris  <rgm@gnu.org>
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
  
 -      * menu-bar.el (menu-bar-files-menu): Make it into an actual alias,
 -      rather than just an unused variable that inherits from the real one.
 +      * international/characters.el (glyphless-char-display-control):
 +      Rename from glyphless-char-control; all users changed.  Doc fix.
 +      Signal an error if display method is not one of the recognized
 +      symbols.
  
 -2010-10-23  Michael McNamara  <mac@mail.brushroad.com>
 +2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * verilog-mode.el (verilog-directive-re): Make this variable
 -      auto-built for efficiency of execution and updating.
 -      (verilog-extended-complete-re): Support 'pure' fucntion & task
 -      declarations (these have no bodies).
 -      (verilog-beg-of-statement): General cleanup to enable support of
 -      'pure' fucntion & task declarations (these have no bodies).
 -      These efforts together fix Verilog bug210 from veripool; which was also
 -      noticed by Steve Pearlmutter.
 -      (verilog-directive-re, verilog-directive-begin, verilog-indent-re)
 -      (verilog-directive-nest-re, verilog-set-auto-endcomments):
 -      Support `elsif.  Reported by Shankar Giri.
 -      (verilog-forward-ws&directives, verilog-in-attribute-p): Fixes for
 -      attribute handling for lining up declarations and assignments.
 -      (verilog-beg-of-statement-1): Fix issue where continued declaration
 -      is indented differently if it is after a begin..end clock.
 -      (verilog-in-attribute-p, verilog-skip-backward-comments)
 -      (verilog-skip-forward-comment-p): Support proper treatment of
 -      attributes by indent code. Reported by Jeff Steele.
 -      (verilog-in-directive-p): Fix comment to correctly describe function.
 -      (verilog-backward-up-list, verilog-in-struct-region-p)
 -      (verilog-backward-token, verilog-in-struct-p)
 -      (verilog-in-coverage-p, verilog-do-indent)
 -      (verilog-pretty-declarations): Use verilog-backward-up-list as
 -      wrapper around backward-up-list inorder to properly skip comments.
 -      Reported by David Rogoff.
 -      (verilog-property-re, verilog-endcomment-reason-re)
 -      (verilog-beg-of-statement, verilog-set-auto-endcomments)
 -      (verilog-calc-1 ): Fix for assert a; else b; indentation (new form
 -      of if). Reported by Max Bjurling and
 -      (verilog-calc-1): Fix for clocking block in modport
 -      declaration. Reported by Brian Hunter.
 +      * net/tramp-compat.el (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position): Remove them.
 +
 +      * net/tramp.el (tramp-parse-rhosts-group)
 +      (tramp-parse-shosts-group, tramp-parse-sconfig-group)
 +      (tramp-parse-hosts-group, tramp-parse-passwd-group)
 +      (tramp-parse-netrc-group, tramp-parse-putty-group)
 +      * net/tramp-cmds.el (tramp-append-tramp-buffers)
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-ls)
 +      (tramp-sh-handle-file-selinux-context)
 +      (tramp-sh-handle-file-name-all-completions)
 +      (tramp-sh-handle-insert-directory)
 +      (tramp-sh-handle-expand-file-name, tramp-find-executable)
 +      (tramp-wait-for-output, tramp-send-command-and-read)
 +      * net/tramp-smb.el (tramp-smb-read-file-entry)
 +      (tramp-smb-get-cifs-capabilities): Use `point-at-eol'.
 +
 +      * net/tramp-sh.el (tramp-sh-handle-insert-directory) Use
 +      `point-at-bol'.
 +      (tramp-remote-coding-commands): Add an alternative using "base64
 +      -d -i".  This is needed for older base64 versions from GNU
 +      coreutils.  Reported by Klaus Reichl
 +      <Klaus.Reichl@thalesgroup.com>.
  
 -2010-10-23  Wilson Snyder  <wsnyder@wsnyder.org>
 +2010-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
  
 -      * verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
 -      (verilog-gate-keywords, verilog-read-sub-decls)
 -      (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios)
 -      (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support
 -      AUTOINST for gate primitives, bug284.  Reported by Mark Johnson.
 -      (verilog-read-decls): Fix spaces in V2K module parameters causing
 -      mis-identification as interfaces, bug287.
 -      (verilog-read-decls): Fix not treating "parameter string" as a
 -      parameter in AUTOINSTPARAM.
 -      (verilog-read-always-signals-recurse, verilog-read-decls): Fix not
 -      treating `elsif similar to `endif inside AUTOSENSE.
 -      (verilog-do-indent): Implement correct automatic or static task or
 -      function end comment highlight. Reported by Steve Pearlmutter.
 -      (verilog-font-lock-keywords-2): Fix highlighting of single
 -      character pins, bug264.  Reported by Michael Laajanen.
 -      (verilog-auto-inst, verilog-read-decls, verilog-read-sub-decls)
 -      (verilog-read-sub-decls-in-interfaced, verilog-read-sub-decls-sig)
 -      (verilog-subdecls-get-interfaced, verilog-subdecls-new):
 -      Support interfaces with AUTOINST, bug270.  Reported by Luis Gutierrez.
 -      (verilog-pretty-expr): Fix interactive arguments, bug272.
 -      Reported by Mark Johnson.
 -      (verilog-auto-tieoff, verilog-auto-tieoff-ignore-regexp):
 -      Add 'verilog-auto-tieoff-ignore-regexp' for AUTOTIEOFF,
 -      bug269. Suggested by Gary Delp.
 -      (verilog-mode-map, verilog-preprocess, verilog-preprocess-history)
 -      (verilog-preprocessor, verilog-set-compile-command):
 -      Create verilog-preprocess and verilog-preprocessor to show
 -      preprocessed output.
 -      (verilog-get-beg-of-line, verilog-get-end-of-line)
 -      (verilog-modi-file-or-buffer, verilog-modi-name)
 -      (verilog-modi-point, verilog-within-string): Move defmacro's
 -      before first use to avoid warning. Reported by Steve Pearlmutter.
 -      (verilog-colorize-buffer, verilog-colorize-include-files-buffer)
 -      (verilog-colorize-region, verilog-highlight-buffer)
 -      (verilog-highlight-includes, verilog-highlight-modules)
 -      (verilog-highlight-region, verilog-mode): Rename colorize to
 -      highlight to match other packages.  Disable module highlighting,
 -      as received speed complaints, reenable for experimentation only
 -      using new verilog-highlight-modules.
 -      (verilog-read-decls): Fix regexp stack overflow in very large
 -      AUTO_TEMPLATEs, bug250.
 -      (verilog-auto, verilog-delete-auto, verilog-save-buffer-state)
 -      (verilog-scan): Create verilog-save-buffer-state to standardize
 -      making insignificant changes that shouldn't call hooks.
 -      (verilog-save-no-change-functions, verilog-save-scan-cache)
 -      (verilog-scan, verilog-scan-cache-ok-p, verilog-scan-region):
 -      Create verilog-save-no-change-functions to wrap verilog-scan
 -      preservation, and fix to work with nested preserved calls.
 -      (verilog-auto-inst, verilog-auto-inst-dot-name): Support .name
 -      port syntax for AUTOWIRE, and with new verilog-auto-inst-dot-name
 -      generate .name with AUTOINST, bug245.  Suggested by David Rogoff.
 -      (verilog-submit-bug-report): Update variable list to be complete.
 -      (verilog-auto, verilog-colorize-region): Fix AUTO expansion
 -      breaking on-the-fly font-locking.
 -      (verilog-colorize-buffer, verilog-colorize-include-files)
 -      (verilog-colorize-include-files-buffer, verilog-colorize-region)
 -      (verilog-load-file-at-mouse, verilog-load-file-at-point)
 -      (verilog-mode, verilog-read-inst-module-matcher): With point on a
 -      AUTOINST cell instance name, middle mouse button now finds-file on
 -      it.  Suggested by Brad Dobbie.
 -      (verilog-alw-get-temps, verilog-auto-reset)
 -      (verilog-auto-sense-sigs, verilog-read-always-signals)
 -      (verilog-read-always-signals-recurse): Fix loop indexes being
 -      AUTORESET. AUTORESET now assumes any variables in the
 -      initialization section of a for() should be ignored.
 -      Reported by Dan Dever.
 -      (verilog-error-font-lock-keywords)
 -      (verilog-error-regexp-emacs-alist)
 -      (verilog-error-regexp-xemacs-alist): Fix error detection of
 -      Cadence HAL, reported by David Asher.  Repair drift between the
 -      three similar error variables.
 -      (verilog-modi-lookup, verilog-modi-lookup-cache)
 -      (verilog-modi-lookup-last-current, verilog-modi-lookup-last-mod)
 -      (verilog-modi-lookup-last-modi, verilog-modi-lookup-last-tick):
 -      Fix slow verilog-auto expansion on very large files.
 -      (verilog-read-sub-decls-expr, verilog-read-sub-decls-line):
 -      Fix AUTOOUTPUT treating "1*2" as a signal name in submodule connection
 -      "{1*2{...".  Broke in last revision.
 -      (verilog-read-sub-decls-expr): Fix AUTOOUTPUT not detecting
 -      submodule connections with replications "{#{a},#{b}}".
 +      * simple.el (count-words-region): New function.
  
 -2010-10-23  Glenn Morris  <rgm@gnu.org>
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * comint.el (comint-password-prompt-regexp):
 -      Match "enter the password".  (Bug#7224)
 +      * shell.el (shell-dir-cookie-re): New custom variable.
 +      (shell-dir-cookie-watcher): New function.
  
 -2010-10-22  Juanma Barranquero  <lekktu@gmail.com>
 +      * vc/vc.el (vc-deduce-backend): Use default-directory in shell-mode
 +      and compilation-mode (bug#7350).
  
 -      * progmodes/dcl-mode.el (dcl-electric-reindent-regexps):
 -      Fix typo in docstring.
 +      * vc/smerge-mode.el (smerge-refine): Choose better default part to
 +      highlight when one of them is empty.
  
 -2010-10-21  Michael Albinus  <michael.albinus@gmx.de>
 +      * skeleton.el (skeleton-read): Don't use `newline' since it may strip
 +      trailing space.
 +      (skeleton-newline): New function.
 +      (skeleton-internal-1): Use it.
  
 -      * net/tramp.el (tramp-get-inline-coding): Return `nil' in case of
 -      errors.
 +      * simple.el (open-line): `newline' may strip trailing space.
  
 -      * net/trampver.el: Update release number.
 +2010-11-12  Kevin Ryde  <user42@zip.com.au>
  
 -2010-10-20  Kenichi Handa  <handa@m17n.org>
 +      * international/mule-cmds.el (princ-list): Use mapc.
  
 -      * face-remap.el (text-scale-adjust): Call read-event with a proper
 -      prompt.
 +2010-11-12  Glenn Morris  <rgm@gnu.org>
  
 -2010-10-19  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/bytecomp.el (byte-compile-log-buffer): New constant.
 +      Use it to replace all instances of "*Compile-Log*"
  
 -      * net/tramp.el (tramp-do-file-attributes-with-stat)
 -      (tramp-do-directory-files-and-attributes-with-stat): Use "e0" in
 -      order to make stat results a float.  Patch by Andreas Schwab
 -      <schwab@linux-m68k.org>.
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/pcase.el (pcase-let*, pcase-let): Add debug and
 +      indentation specs.
  
 -      * repeat.el (repeat): Use read-key (bug#6256).
 +2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-10-18  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/modula2.el: Use SMIE and skeleton.
 +      (m2-mode-syntax-table): (*..*) can be nested.
 +      Add //...\n.  Fix paren syntax.
 +      (m2-mode-map): Remove LF and TAB bindings.
 +      (m2-indent): Add safety property.
 +      (m2-smie-grammar): New var.
 +      (m2-smie-refine-colon, m2-smie-refine-of, m2-smie-backward-token)
 +      (m2-smie-forward-token, m2-smie-refine-semi, m2-smie-rules): New funs.
 +      (m2-mode): Use define-derived-mode.
 +      (m2-newline, m2-tab): Remove.
 +      (m2-begin, m2-case, m2-definition, m2-else, m2-for, m2-header)
 +      (m2-if, m2-loop, m2-module, m2-or, m2-procedure, m2-with, m2-record)
 +      (m2-stdio, m2-type, m2-until, m2-var, m2-while, m2-export)
 +      (m2-import): Use define-skeleton.
  
 -      * emacs-lisp/unsafep.el: Don't mark functions that display
 -      messages as safe.  Suggested by Johan Bockgård.
 +2010-11-11  Glenn Morris  <rgm@gnu.org>
  
 -2010-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * obsolete/lucid.el: Don't warn about any CL functions in this file.
  
 -      * emacs-lisp/regexp-opt.el (regexp-opt-group, regexp-opt-charset):
 -      Turn comments into docstrings.
 +      * ls-lisp.el (ls-lisp-ignore-case, ls-lisp-dirs-first)
 +      (ls-lisp-verbosity): Add custom :set-after property.
 +      (ls-lisp-verbosity, ls-lisp-use-localized-time-format): Doc fixes.
 +      (ls-lisp-format, ls-lisp-format-time): Don't take `now' as an argument.
 +      (ls-lisp-insert-directory): Update caller.
 +      (ls-lisp-set-options): New function.
 +      (ls-lisp-emulation): Use ls-lisp-set-options for custom :set.
 +      Doc fix.
  
 -      * minibuffer.el (completion--replace): Move point where it belongs
 -      when there's a common suffix (bug#7215).
 +      * play/landmark.el (lm-prompt-for-move):
 +      * play/gomoku.el (gomoku-prompt-for-move): Remove nonsensical code.
  
 -2010-10-15  Michael Albinus  <michael.albinus@gmx.de>
 +      * progmodes/idlw-complete-structtag.el: Remove unused dec `name'.
  
 -      * net/tramp.el (tramp-open-connection-setup-interactive-shell):
 -      Suppress expansion of tabs to spaces.  Reported by Dale Sedivec
 -      <dale@codefu.org>.
 +      * progmodes/idlwave.el (idlwave-routine-entry-compare-twins)
 +      (idlwave-study-twins): Prefix dynamic local variable `name'.
 +      (idlwave-routine-twin-compare): Update for above change.
  
 -2010-10-15  Kenichi Handa  <handa@m17n.org>
 +      * progmodes/idlw-help.el (idlwave-do-mouse-completion-help):
 +      Prefix dynamic local variables `name', `kwd', and `link'.
 +      * progmodes/idlw-shell.el (idlwave-shell-complete-execcomm-help):
 +      * progmodes/idlw-complete-structtag.el
 +      (idlwave-complete-structure-tag-help):
 +      * progmodes/idlwave.el (idlwave-complete-sysvar-help)
 +      (idlwave-complete-sysvar-tag-help)
 +      (idlwave-complete-class-structure-tag-help):
 +      Update for above name changes.
  
 -      * international/characters.el: Add category '|' (word breakable)
 -      to fullwidth characters.
 +2010-11-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  
 -2010-10-14  Kenichi Handa  <handa@m17n.org>
 +      * net/browse-url.el (browse-url-browser-function): Change the
 +      default to use `browse-url-mail' on mailto: URLs.
  
 -      * mail/rmail.el (rmail-show-message-1): Catch an error of
 -      base64-decode-region and just show an error message (bug#7165).
 +2010-11-10  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * ps-mule.el (ps-mule-font-spec-list): Delete it.  Not used anymore.
 -      (ps-mule-begin-job): Fix for the case that only ENCODING is set in
 -      a font-spec (bug#7197).
 +      * emacs-lisp/package.el (package-read-all-archive-contents):
 +      Reset package-archive-contents to nil before re-reading.
  
 -2010-10-13  Glenn Morris  <rgm@gnu.org>
 +2010-11-10  Brandon Craig Rhodes  <brandon@rhodesmill.org>  (tiny change)
  
 -      * mail/emacsbug.el (report-emacs-bug): Mention debbugs.gnu.org.
 +      * textmodes/flyspell.el (flyspell-word): Do not re-check words
 +      already found as misspellings by (flyspell-large-region), just
 +      do highlighting (bug#7322).
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +2010-11-10  Glenn Morris  <rgm@gnu.org>
  
 -      * international/mule.el (define-coding-system):
 -      * international/titdic-cnv.el (quail-cxterm-package-ext-info):
 -      * composite.el (compose-region): Fix typo in docstring.
 +      * progmodes/octave-mod.el (octave-mark-block): Update for smie change.
  
 -2010-10-10  Jan Djärv  <jan.h.d@swipnet.se>
 +      * emulation/edt.el (edt-with-position): New macro.
 +      (edt-find-forward, edt-find-backward, edt-find-next-forward)
 +      (edt-find-next-backward, edt-sentence-forward, edt-sentence-backward)
 +      (edt-paragraph-forward, edt-paragraph-backward): Use it.
  
 -      * term/ns-win.el (ns-right-alternate-modifier): New defvar.
 -      (ns-right-option-modifier): New alias for ns-right-alternate-modifier.
 -      (mac-right-option-modifier): New alias for ns-right-option-modifier.
 +      * emulation/tpu-extras.el (tpu-with-position): New macro.
 +      (tpu-paragraph, tpu-page, tpu-search-internal): Use it.
  
 -      * cus-start.el (all): ns-right-alternate-modifier is new.
 +      * textmodes/texnfo-upd.el (texinfo-pointer-name): Fix typo.
  
 -2010-10-10  Andreas Schwab  <schwab@linux-m68k.org>
 +      * textmodes/texnfo-upd.el (texinfo-all-menus-update)
 +      (texinfo-menu-copy-old-description, texinfo-start-menu-description)
 +      (texinfo-master-menu, texinfo-insert-node-lines)
 +      (texinfo-multiple-files-update):
 +      * textmodes/texinfmt.el (texinfo-append-refill, texinfo-copying):
 +      Use line-beginning-position.
  
 -      * Makefile.in (ELCFILES): Update.
 +      * progmodes/cperl-mode.el (cperl-find-pods-heres, cperl-write-tags):
 +      No recent Emacs supports system-type `emx'.
  
 -2010-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/ada-xref.el (is-windows): Rename to ada-on-ms-windows.
 +      (ada-command-separator, ada-default-prj-properties)
 +      (ada-find-any-references): Update for above name change.
  
 -      * emacs-lisp/lisp.el (lisp-completion-at-point):
 -      Use emacs-lisp-mode-syntax-table for the whole function.
 +      * dirtrack.el (dirtrack-directory-function)
 +      (dirtrack-canonicalize-function):
 +      * filecache.el (file-cache-completion-ignore-case)
 +      (file-cache-case-fold-search, file-cache-ignore-case):
 +      * term.el (serial-port-is-file-p): Cosmetic change.
  
 -2010-10-09  Richard Sharman  <richard_sharman@mitel.com>  (tiny change)
 +      * emulation/viper-init.el (viper-ms-style-os-p): Doc fix.
 +      Remove non-existent `windows-95' system-type.
 +      * dired.el (dired-chown-program): Remove non-existent `linux'
 +      system-type.
  
 -      * progmodes/gdb-ui.el (gdb-mouse-toggle-breakpoint-margin)
 -      (gdb-mouse-toggle-breakpoint-fringe): Correct regexp to
 -      work when breakpoint number exceeds nine.
 +      * net/net-utils.el (net-utils-remove-ctl-m): Use memq for system-types.
 +      (ping-program-options): Remove non-existent `linux' system-type.
  
 -2010-10-05  David Koppelman  <koppel@ece.lsu.edu>
 +      * startup.el (package-initialize): Update declaration.
  
 -      * hi-lock.el (hi-lock-font-lock-hook): Check font-lock-fontified
 -      instead of font-lock-mode before adding keywords.
 -      Remove hi-lock-mode off code.  Remove inhibit hack.
 -      (hi-lock-set-pattern): Only add keywords if font-lock-fontified
 -      non-nil; removed hook inhibit hack.
 +      * ls-lisp.el (ls-lisp-time-lessp, ls-lisp-time-to-seconds): Remove.
 +      (ls-lisp-handle-switches): Use time-less-p.
 +      (ls-lisp-format-time): Use float-time.
  
 -2010-10-09  Glenn Morris  <rgm@gnu.org>
 +      * textmodes/remember.el (remember-time-to-seconds): Remove.
 +      (remember-store-in-mailbox): Use float-time.
  
 -      * emacs-lisp/shadow.el (find-emacs-lisp-shadows): Rename it...
 -      (load-path-shadows-find): ... to this.
 -      (list-load-path-shadows): Update for above change.
 +      * calendar/timeclock.el (timeclock-time-to-seconds): Make it an alias.
  
 -      * mail/mail-utils.el (mail-mbox-from): Also try return-path.
 +      * calendar/time-date.el (time-to-seconds): Always an alias on Emacs,
 +      never a real function.
 +      (with-no-warnings): Remove compat stub, now unused.
 +      (time-less-p): Doc fix.
 +      (time-to-number-of-days): Simplify.
  
 -2010-10-08  Glenn Morris  <rgm@gnu.org>
 +      * eshell/esh-util.el (eshell-time-less-p, eshell-time-to-seconds):
 +      Remove.
 +      (eshell-read-passwd, eshell-read-hosts): Use time-less-p.
 +      * eshell/esh-test.el (eshell-test, eshell-show-usage-metrics):
 +      * eshell/em-unix.el (eshell-show-elapsed-time, eshell/time):
 +      * eshell/em-pred.el (eshell-pred-file-time): Use float-time.
 +      * eshell/em-ls.el (eshell-ls-sort-entries): Use time-less-p.
 +
 +      * eshell/em-unix.el (eshell-remove-entries, eshell/rm)
 +      (eshell-shuffle-files, eshell-shorthand-tar-command)
 +      (eshell-mvcpln-template, eshell/mv, eshell/cp, eshell/ln):
 +      Prefix dynamic locals `interactive', `preview', `recursive', `verbose'.
 +      * eshell/em-glob.el (eshell-extended-glob, eshell-glob-entries):
 +      Prefix dynamic local variable `matches'.
 +
 +      * skeleton.el (skeleton-internal-list, skeleton-internal-1):
 +      Prefix dynamic local variable `skeleton'.
 +
 +2010-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * net/browse-url.el (browse-url-mail): Insert body part of mailto url
 +      in mail buffer; make yank-action always a command that yanks original
 +      buffer.
  
 -      * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/.
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
  
 -      * emacs-lisp/shadow.el (lisp-shadow): Change prefix.
 -      (shadows-compare-text-p): Make it an obsolete alias for...
 -      (load-path-shadows-compare-text): ... new name.
 -      (find-emacs-lisp-shadows): Update for above name change.
 -      (load-path-shadows-same-file-or-nonexistent): New name for the old
 -      shadow-same-file-or-nonexistent.
 +      * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
  
 -2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * minibuffer.el (completion--some, completion--do-completion)
 -      (minibuffer-complete-and-exit, minibuffer-completion-help)
 -      (completion-basic-try-completion)
 -      (completion-basic-all-completions)
 -      (completion-pcm--find-all-completions): Use lexical-let to
 -      avoid some false matches in variable completion (Bug#7056)
 +      * minibuffer.el (minibuffer-completion-help): Specify the end of the
 +      completion field (bug#7211).
  
 -2010-10-03  Olof Ohlsson Sax  <olof.ohlsson.sax@gmail.com>  (tiny change)
 +      * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
 +      Fix handling of backslash escapes.
 +      (python-quote-syntax): Adjust accordingly.
  
 -      * vc-svn.el (vc-svn-merge-news): Use --non-interactive.  (Bug#7152)
 +2010-11-09  Richard Levitte  <richard@levitte.org>  (tiny change)
  
 -2010-10-03  Leo  <sdl.web@gmail.com>
 +      * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
 +      (vc-mtn-workfile-branch): Adjust to new output format.
  
 -      * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only
 -      return non-nil if the file exists (Bug#7090).
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * international/mule-cmds.el (princ-list): Mark as obsolete.
  
 -      * minibuffer.el (completion--replace):
 -      Better preserve markers (bug#7138).
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-09-29  Juanma Barranquero  <lekktu@gmail.com>
 +      * emacs-lisp/smie.el: New package.
  
 -      * server.el (server-process-filter): Doc fix.
 +2010-11-09  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-09-27  Drew Adams  <drew.adams@oracle.com>
 +      * files.el (backup-by-copying-when-mismatch):
 +      Set `permanent-local' property.
  
 -      * dired.el (dired-save-positions): Doc fix.  (Bug#7119)
 +      * net/tramp.el (tramp-handle-insert-file-contents): Do not set
 +      `permanent-local' property for `backup-by-copying-when-mismatch'.
  
 -2010-09-27  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
  
 -      * Makefile.in (ELCFILES): Update.
 +      * ls-lisp.el (insert-directory): Doc fix.  (bug#7285)
  
 -      * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
 -      Avoid infinite recursion on erroneous lambda form.  (Bug#7114)
 +2010-11-09  Wilson Snyder  <wsnyder@wsnyder.org>
  
 -2010-09-27  Kenichi Handa  <handa@m17n.org>
 +      * progmodes/verilog-mode.el (verilog-insert-one-definition)
 +      (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
 +      AUTOINOUT for SV style multidimensional arrays, bug294.
 +      Reported by Eric Mastromarchi.
 +      (verilog-preprocess): Use with-current-buffer and
 +      font-lock-fontify-buffer to cleanup style issues.
  
 -      * tar-mode.el (tar-header-block-tokenize): Decode filenames in
 -      "ustar" format.
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
  
 -2010-09-27  Kenichi Handa  <handa@m17n.org>
 +      * locate.el (locate, locate-mode): Doc fixes.
  
 -      * international/mule.el (define-coding-system): Docstring fixed.
 +2010-11-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * international/mule-diag.el (describe-character-set): Use princ
 -      with proper print-length and print-level instead of insert.
 +      * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
 +      user for confirmation.
 +      (server-force-stop): Use it.
 +      (server-start): Use server-force-stop for kill-emacs-hook, to
 +      avoid user interaction while killing Emacs.
  
 -2010-09-26  Juanma Barranquero  <lekktu@gmail.com>
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
  
 -      * window.el (walk-windows): Doc fix (bug#7105).
 +      * progmodes/meta-mode.el: Remove leading `*' from defcustom docs.
 +      (meta-indent-line): Simplify.
 +
 +      * vc/emerge.el (emerge-line-number-in-buf):
 +      * textmodes/ispell.el (ispell-region):
 +      * textmodes/fill.el (current-fill-column):
 +      * progmodes/xscheme.el (xscheme-send-current-line):
 +      * progmodes/vhdl-mode.el (vhdl-current-line, vhdl-line-copy):
 +      * progmodes/tcl.el (tcl-hairy-scan-for-comment):
 +      * progmodes/sh-script.el (sh-handle-prev-do):
 +      * progmodes/meta-mode.el (meta-indent-line):
 +      * progmodes/idlwave.el (idlwave-goto-comment, idlwave-fill-paragraph)
 +      (idlwave-in-quote):
 +      * progmodes/idlw-shell.el (idlwave-shell-current-frame)
 +      (idlwave-shell-update-bp-overlays, idlwave-shell-sources-filter):
 +      * progmodes/fortran.el (fortran-looking-at-if-then):
 +      * progmodes/etags.el (find-tag-in-order, etags-snarf-tag):
 +      * progmodes/cperl-mode.el (cperl-sniff-for-indent)
 +      (cperl-find-pods-heres):
 +      * progmodes/ada-mode.el (ada-get-current-indent, ada-narrow-to-defun):
 +      * net/quickurl.el (quickurl-list-insert):
 +      * net/ldap.el (ldap-search-internal):
 +      * net/eudc.el (eudc-expand-inline):
 +      * mail/sendmail.el (sendmail-send-it):
 +      * mail/mspools.el (mspools-visit-spool, mspools-get-spool-name):
 +      * emulation/viper-cmd.el (viper-paren-match, viper-backward-indent)
 +      (viper-brac-function):
 +      * calc/calc-yank.el (calc-do-grab-region):
 +      * calc/calc-keypd.el (calc-keypad-press):
 +      * term.el (term-move-columns, term-insert-spaces):
 +      * speedbar.el (speedbar-highlight-one-tag-line):
 +      * simple.el (current-word):
 +      * mouse-drag.el (mouse-drag-should-do-col-scrolling):
 +      * info.el (Info-find-node-in-buffer-1, Info-follow-reference)
 +      (Info-scroll-down):
 +      * hippie-exp.el (he-line-beg):
 +      * epa.el (epa--marked-keys):
 +      * dired-aux.el (dired-kill-line, dired-do-kill-lines)
 +      (dired-update-file-line, dired-add-entry, dired-remove-entry)
 +      (dired-relist-entry):
 +      * buff-menu.el (Buffer-menu-buffer):
 +      * array.el (current-line):
 +      * allout.el (allout-resolve-xref)
 +      (allout-latex-verbatim-quote-curr-line):
 +      Replace yet more uses of end-of-line etc with line-end-position, etc.
  
 -2010-09-23  Glenn Morris  <rgm@gnu.org>
 +2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * isearch.el (isearch-lazy-highlight-cleanup)
 -      (isearch-lazy-highlight-initial-delay)
 -      (isearch-lazy-highlight-interval)
 -      (isearch-lazy-highlight-max-at-a-time, isearch-lazy-highlight-face):
 -      * net/net-utils.el (ipconfig-program-options):
 -      Move aliases to options before the associated definitions.
 +      * emacs-lisp/checkdoc.el (checkdoc-display-status-buffer)
 +      (checkdoc-interactive-loop, checkdoc-recursive-edit): Avoid princ-list.
 +      (checkdoc-syntax-table): Initialize in the declaration.
 +      (emacs-lisp-mode-hook): Use just checkdoc-minor-mode now that it turns
 +      the mode on unconditionally.
  
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/cl-macs.el (extent-data, extent-face, extent-priority)
 +      (extent-end-position, extent-start-position): Remove setf method for
 +      non-existing functions (bug#7319).
  
 -      * newcomment.el (comment-normalize-vars): Better test validity of
 -      comment-end-skip.
 +2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/smie.el: Simplify the smie-rules-function return values.
 +      (smie-precs->prec2): Rename from smie-precs-precedence-table.
 +      (smie-bnf->prec2): Rename from smie-bnf-precedence-table.
 +      (smie-prec2->grammar): Rename from smie-prec2-levels.
 +      (smie-grammar): Rename from smie-op-levels.
 +      (smie-indent--hanging-p): Rename from smie-hanging-p.
 +      (smie-rule-hanging-p): New alias.
 +      (smie-indent--bolp): Rename from smie-bolp.
 +      (smie-indent--hanging-p): New alias.
 +      (smie--token): New dynamically bound variable.
 +      (smie-indent--parent): New function.
 +      (smie-rule-parent-p): Use it; rename from smie-parent-p.
 +      (smie-rule-next-p): Rename from smie-next-p.
 +      (smie-rule-prev-p): Rename from smie-prev-p.
 +      (smie-rule-sibling-p, smie-rule-parent)
 +      (smie-indent--separator-outdent, smie-rule-separator): New functions.
 +      (smie-rule-separator-outdent): New var.
 +      (smie-indent--rule): Merge with smie-indent--column.
 +      (smie-indent-forward-token, smie-indent-backward-token):
 +      Also recognize close parens.
 +      (smie-indent-keyword): Don't use smie-indent--column any more.
 +      (smie-indent-after-keyword): Ignore closers by default.
 +      (smie-indent-line): Use with-demoted-errors.
 +      * progmodes/octave-mod.el (octave-smie-grammar):
 +      Rename from octave-smie-op-levels.
 +      (octave-smie-rules): Adjust to new behavior.
 +      * progmodes/prolog.el (prolog-smie-grammar):
 +      Rename from prolog-smie-op-levels.
 +
 +2010-11-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * eshell/esh-util.el (subst-char-in-string)
 +      (directory-files-and-attributes): These compatibility definitions are
 +      not needed on any version of Emacs since at least 21.4.
 +
 +      * progmodes/verilog-mode.el (verilog-get-beg-of-line)
 +      (verilog-get-end-of-line): Remove.
 +      (verilog-within-string, verilog-re-search-forward-substr)
 +      (verilog-re-search-backward-substr, verilog-set-auto-endcomments)
 +      (verilog-surelint-off, verilog-getopt-file, verilog-highlight-region):
 +      Use point-at-bol, point-at-eol.
 +      * progmodes/pascal.el (pascal-get-beg-of-line, pascal-get-end-of-line):
 +      Remove.
 +      (pascal-declaration-end, pascal-declaration-beg, pascal-within-string)
 +      (electric-pascal-terminate-line, pascal-set-auto-comments)
 +      (pascal-indent-paramlist, pascal-indent-declaration)
 +      (pascal-get-lineup-indent, pascal-func-completion)
 +      (pascal-get-completion-decl, pascal-var-completion, pascal-completion):
 +      Use point-at-bol, point-at-eol.
 +      * progmodes/flymake.el (flymake-line-beginning-position)
 +      (flymake-line-end-position): Remove.
 +      (flymake-highlight-line): Use point-at-bol, point-at-eol.
 +      * eshell/esh-util.el (line-end-position, line-beginning-position):
 +      Remove compat definitions.
  
 -      * emacs-lisp/float-sup.el (float-pi): New name for `pi'.
 -      (float-e): New name for `e'.
 -      (degrees-to-radians, radians-to-degrees):
 -      * calendar/solar.el (solar-longitude):
 -      * calculator.el (calculator-registers, calculator-funcall):
 -      * textmodes/artist.el (artist-spray-random-points):
 -      * play/bubbles.el (bubbles--initialize-images): Use new names.
 +      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
 +      Use end-of-line N.
 +      (checkdoc-this-string-valid-engine, checkdoc-file-comments-engine):
 +      Use line-end-position.
 +
 +      * emacs-lisp/chart.el (chart-zap-chars):
 +      * play/decipher.el (decipher-set-map):
 +      * progmodes/ada-mode.el (ada-get-current-indent)
 +      (ada-search-ignore-string-comment, ada-tab-hard, ada-untab-hard):
 +      * progmodes/ada-prj.el (ada-prj-load-from-file, ada-prj-display-help):
 +      * progmodes/ada-xref.el (ada-initialize-runtime-library)
 +      (ada-get-all-references):
 +      * progmodes/cperl-mode.el (cperl-electric-paren)
 +      (cperl-electric-rparen, cperl-electric-keyword, cperl-electric-else)
 +      (cperl-linefeed, cperl-sniff-for-indent, cperl-to-comment-or-eol)
 +      (cperl-find-pods-heres, cperl-indent-exp, cperl-fix-line-spacing)
 +      (cperl-word-at-point-hard):
 +      * progmodes/idlw-shell.el (idlwave-shell-move-or-history)
 +      (idlwave-shell-filename-string, idlwave-shell-batch-command)
 +      (idlwave-shell-display-line):
 +      * progmodes/idlwave.el (idlwave-show-begin, idlwave-fill-paragraph)
 +      (idlwave-calc-hanging-indent, idlwave-auto-fill, idlwave-template):
 +      * progmodes/js.el (js--re-search-forward-inner)
 +      (js--re-search-backward-inner):
 +      * progmodes/vhdl-mode.el (vhdl-align-region-1, vhdl-align-region-2)
 +      (vhdl-fix-clause, vhdl-compose-configuration-architecture):
 +      * progmodes/ruby-mode.el (ruby-parse-partial, eval-when-compile):
 +      * textmodes/flyspell.el (flyspell-process-localwords):
 +      * textmodes/ispell.el (ispell-buffer-local-parsing)
 +      (ispell-buffer-local-dict, ispell-buffer-local-words):
 +      Use point-at-bol and point-at-eol.
 +
 +      * speedbar.el (speedbar-generic-item-info)
 +      (speedbar-item-info-tag-helper, speedbar-change-expand-button-char)
 +      (speedbar-add-indicator, speedbar-check-vc-this-line)
 +      (speedbar-check-obj-this-line, speedbar-extract-one-symbol)
 +      (speedbar-buffers-line-directory, speedbar-buffer-revert-buffer):
 +      Replace more uses of end-of-line etc with line-end-position.
 +
 +2010-11-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/texnfo-upd.el (texinfo-start-menu-description)
 +      (texinfo-update-menu-region-beginning, texinfo-menu-first-node)
 +      (texinfo-delete-existing-pointers, texinfo-find-pointer)
 +      (texinfo-clean-up-node-line, texinfo-insert-node-lines)
 +      (texinfo-multiple-files-update):
 +      * textmodes/table.el (table--probe-cell-left-up)
 +      (table--probe-cell-right-bottom):
 +      * textmodes/picture.el (picture-tab-search):
 +      * textmodes/page-ext.el (pages-copy-header-and-position)
 +      (pages-directory-for-addresses):
 +      * progmodes/vera-mode.el (vera-get-offset):
 +      * progmodes/simula.el (simula-calculate-indent):
 +      * progmodes/python.el (python-pdbtrack-overlay-arrow):
 +      * progmodes/prolog.el (end-of-prolog-clause):
 +      * progmodes/perl-mode.el (perl-calculate-indent, perl-indent-exp):
 +      * progmodes/icon.el (indent-icon-exp):
 +      * progmodes/etags.el (tag-re-match-p):
 +      * progmodes/ebrowse.el (ebrowse-show-file-name-at-point):
 +      * progmodes/ebnf2ps.el (ebnf-begin-file):
 +      * progmodes/dcl-mode.el (dcl-back-to-indentation-1)
 +      (dcl-save-local-variable):
 +      * play/life.el (life-setup):
 +      * play/gametree.el (gametree-looking-at-ply):
 +      * nxml/nxml-maint.el (nxml-insert-target-repertoire-glyph-set):
 +      * mail/sendmail.el (mail-mode-auto-fill):
 +      * emacs-lisp/lisp-mode.el (calculate-lisp-indent):
 +      * emacs-lisp/edebug.el (edebug-overlay-arrow):
 +      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid):
 +      * woman.el (woman-parse-numeric-value, woman2-TH, woman2-SH)
 +      (woman-tab-to-tab-stop, WoMan-warn-ignored):
 +      * type-break.el (type-break-file-keystroke-count):
 +      * term.el (term-replace-by-expanded-history-before-point)
 +      (term-skip-prompt, term-extract-string):
 +      * speedbar.el (speedbar-edit-line, speedbar-expand-line)
 +      (speedbar-contract-line, speedbar-toggle-line-expansion)
 +      (speedbar-parse-c-or-c++tag, speedbar-parse-tex-string)
 +      (speedbar-buffer-revert-buffer, speedbar-highlight-one-tag-line):
 +      * sort.el (sort-skip-fields):
 +      * skeleton.el (skeleton-internal-list):
 +      * simple.el (line-move-finish, line-move-to-column):
 +      * shell.el (shell-forward-command):
 +      * misc.el (copy-from-above-command):
 +      * makesum.el (double-column):
 +      * ebuff-menu.el (electric-buffer-update-highlight):
 +      * dired.el (dired-move-to-end-of-filename):
 +      * dframe.el (dframe-popup-kludge):
 +      * bookmark.el (bookmark-kill-line, bookmark-bmenu-show-filenames):
 +      * arc-mode.el (archive-get-lineno):
 +      Use line-end-position and line-beginning-position.
 +
 +      * progmodes/idlwave.el (idlwave-routine-entry-compare-twins):
 +      (idlwave-study-twins): Prefix dynamic local `class'.
 +      (idlwave-routine-twin-compare): Update for above name change.
 +
 +      * emacs-lisp/eieio-comp.el (byte-compile-file-form-defmethod):
 +      Use boundp tests to silence compiler.  Update for changed name of
 +      bytecomp-filename variable.
 +
 +      * emulation/viper-cmd.el (viper-read-string-with-history):
 +      Prefix dynamic local `initial'.
 +      (viper-minibuffer-standard-hook): Update for above name change.
 +
 +      * emacs-lisp/elint.el (elint-init-env): Prefix dynamic local `env'.
 +      (elint-init-form): Update for above name change.
 +
 +      * mail/mail-extr.el (mail-extract-address-components): Give dynamic
 +      local variables `cbeg' and `cend' a prefix.
 +      (mail-extr-voodoo): Update for above name change.
 +
 +      * textmodes/reftex-toc.el (reftex-toc-do-promote)
 +      (reftex-toc-promote-prepare): Pass `delta' as an explicit argument.
 +      (reftex-toc-promote-action): Doc fix.
 +
 +      * textmodes/reftex-sel.el (reftex-select-item): Give local variables
 +      `prompt', `data' a prefix.
 +      (reftex-select-post-command-hook, reftex-select-callback)
 +      (reftex-select-mouse-accept, reftex-select-read-cite):
 +      Update for above name changes.
 +
 +      * textmodes/reftex-ref.el (reftex-reference): Rename local variable
 +      `refstyle' to reftex-refstyle.
 +      (reftex-offer-label-menu): Update for above name change.
 +      * textmodes/reftex-sel.el (reftex-select-toggle-varioref): Update for
 +      `refstyle' name change.
 +
 +      * vc/emerge.el (emerge-eval-in-buffer): Remove, and replace all uses
 +      with with-current-buffer.
 +      (diff, template): Give dynamic local variables a prefix.
 +      (emerge-line-numbers): Rename local `diff' to emerge-line-diff.
 +      (emerge-line-number-in-buf): Update for above name change.
 +      (emerge-combine-versions-internal): Rename local `template' to
 +      emerge-combine-template.
 +      (emerge-combine-versions-edit): Update for above name change.
 +
 +2010-11-06  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * textmodes/reftex-cite.el
 +      (reftex-extract-bib-entries-from-thebibliography): Match bibitem
 +      entries with whitespace after \bibitem.
 +      (reftex-create-bibtex-file): Match entries containing numbers and
 +      symbol constituents.  Make sure that entries with whitespace at
 +      various places are found.
 +
 +2010-11-05  Christian Millour  <cm@abtela.com>  (tiny change)
 +
 +      * shell.el (shell-process-popd): Made aware of comint-file-name-prefix.
 +
 +2010-11-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * mouse.el (mouse-yank-primary): Update comment (Bug#6802).
 +
 +2010-11-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * woman.el (woman0-roff-buffer, woman1-roff-buffer)
 +      (woman2-roff-buffer): Give local variable `request' a prefix.
 +      (woman0-macro): Rename argument `request' in the same way.
 +      (woman-request): New name for `request' dynamic variable.
 +      (woman-unquote, woman-forward-arg): Update for above name change.
 +      (woman1-roff-buffer): Give local variable `unquote' a prefix.
 +      (woman1-unquote): New name for `unquote' dynamic variable.
 +      (woman1-B-or-I, woman1-alt-fonts): Update for above name change.
 +      (woman-translations): Rename from `translations'.  No longer global.
 +      (woman2-tr, woman-translate): Update for above name change.
 +      (woman-translate): Check for bound variable.
 +      (woman2-roff-buffer): Give local variable `translations' a prefix.
 +
 +      * play/doctor.el: Give all local variables a prefix.  Update callers.
 +      (doc$, doctor-put-meaning): Use backquote.
 +
 +      * emacs-lisp/cl-macs.el (loop): Give local variable args a prefix.
 +      (cl-parse-loop-clause, cl-loop-handle-accum): Update for above change.
 +
 +      * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Give local
 +      variables bytes, ptr, op a prefix.
 +      (disassemble-offset): Update for above change.
 +
 +2010-11-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-unpack): Remove no-op.
 +      (package--builtins, package--dir): Doc fix.
 +      (package-activate-1, package-activate, package-install)
 +      (package-compute-transaction): Fix error message.
 +      (package-delete): Use delete-directory.  Omit system packages.
 +      (package-initialize): Set package-alist to nil first.
 +      (package-menu-mark-delete, package-menu-mark-install): Don't add
 +      symbols that are inconsistent with the package state.
 +      (package-menu-execute): Perform deletions and installations as
 +      single batch operations.
  
 -2010-09-19  Eric M. Ludlam  <zappo@gnu.org>
 +2010-11-03  Glenn Morris  <rgm@gnu.org>
  
 -      Update to CEDET 1.0's version of EIEIO.
 +      * progmodes/idlwave.el (idlwave-pset): Only used on XEmacs.
 +      (props): Remove unnecessary declaration.
  
 -      * emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key):
 -      New function.
 -      (eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
 -      (eieio-default-eval-maybe): Eval val instead of unquoting only.
 -      (class-precedence-list): If class is nil, return nil.
 -      (eieio-generic-call): If class of first input arg is nil, don't
 -      look up static methods, and do check for primary methods.
 -      (initialize-instance): See if the default needs to be evaluated
 -      during the constructor.
 -      (eieio-perform-slot-validation-for-default): Don't do the check
 -      for values that will eventually be evaluated.
 -      (eieio-eval-default-p): New function.
 -      (eieio-default-eval-maybe): Use it.
 +      * textmodes/ispell.el (ispell-init-process): On Emacs, always use
 +      set-process-query-on-exit-flag.
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +      * textmodes/reftex-toc.el (name1, dummy, dummy2): Remove unused decs.
 +      (reftex-toc-do-promote): Remove unused local `mpos'.
 +      (reftex-toc-restore-region): Make `mpos' local to this function.
  
 -      * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
 -      method-invocation-order.
 -      (eieio-c3-candidate, eieio-c3-merge-lists): New functions.
 -      (eieio-class-precedence-dfs): Compute class precedence list using
 -      dfs algorithm.
 -      (eieio-class-precedence-bfs): Compute class precedence list using
 -      bfs algorithm.
 -      (eieio-class-precedence-c3): Compute class precedence list using
 -      c3 algorithm.
 -      (class-precedence-list): New function.
 -      (eieiomt-method-list, eieiomt-sym-optimize): Use it.
 -      (inconsistent-class-hierarchy): New error symbol.
 -      (call-next-method): Stow the replacement argument list for future
 -      call-next-method invocations.
 +      * net/dbus.el (dbus-name-owner-changed-handler): Doc fix.
  
 -2010-09-15  Glenn Morris  <rgm@gnu.org>
 +      * play/landmark.el (lm-losing-threshold): Correct spelling.
 +      (lm-human-plays): Use new name.
 +
 +      * play/gomoku.el (gomoku-loosing-threshold): Correct spelling.
 +      (gomoku-human-plays): Use new name.
  
 -      * calendar/appt.el (appt-check): If not displaying the diary,
 -      use (diary 1) to only get the entries we need.
 -      (appt-make-list): Sort diary-list-entries, if we cannot guarantee
 -      that it is in day order.  (Bug#7019)
 +      * play/gomoku.el (nil-score, Xscore, XXscore, XXXscore, XXXXscore)
 +      (Oscore, OOscore, OOOscore, OOOOscore): Rename with gomoku- prefix.
 +      (gomoku-score-trans-table, gomoku-winning-threshold)
 +      (gomoku-loosing-threshold, gomoku-init-score-table): Use new names.
 +
 +2010-11-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * calendar/appt.el (appt-check): Rather than showing the diary,
 -      just turn off invisible display, and only if needed.
 +      * emacs-lisp/package.el: Don't put built-in packages in
 +      package-alist, to avoid loading inefficiencies.
 +      (package-built-in-p): Make VERSION optional, and treat it as a
 +      minimum acceptable version.
 +      (package-activate): Search separately for built-in packages.
 +      Emit a warning if a dependency fails.
 +      (define-package): Handle most common case, where there is no
 +      obsolete package, first.
 +      (package-compute-transaction): Print required version in error.
 +      (package--initialized): New variable.
 +      (list-packages): Use it.
 +      (package-initialize): Optional arg NO-ACTIVATE.  Don't put
 +      built-in packages in packages-alist; keep it separate.
 +      Set package--initialized.
 +      (describe-package): Avoid activating packages as a side-effect.
 +      Search separately for built-in packages.
 +      (describe-package-1): Handle the case where an elpa package is
 +      simultaneously built-in and available/installed.
 +      (package-installed-p, package--generate-package-list):
 +      Search separately for built-in packages.
 +      (package-load-descriptor): Doc fix.
  
 -      * calendar/diary-lib.el (diary-list-entries): Doc fix.  (Bug#7019)
 +2010-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/perl-mode.el (perl-syntax-propertize-function):
 +      Handle __DATA__ and __END__.
  
 -      * emacs-lisp/byte-run.el (set-advertised-calling-convention):
 -      Add `when' argument.  Update callers.
 +2010-11-02  Noah Friedman  <friedman@splode.com>
  
 -      * subr.el (unintern): Declare the obarray arg mandatory.
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): If bytecomp-arg is
 +      nil, do not ask to recompile files that are not already compiled,
 +      and do not recompile them.
  
 -2010-09-14  Glenn Morris  <rgm@gnu.org>
 +2010-11-02  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * calendar/diary-lib.el (diary-list-entries-hook, diary-sort-entries):
 -      Doc fixes.
 +      * emacs-lisp/package.el (package-initialize): Ensure that
 +      obsoleted built-in packages are not in package-activated-list
 +      during activation.
 +      (describe-package-1): Make the "installed" status override
 +      "built-in".
  
 -      * calendar/diary-lib.el (diary-included-files): New variable.
 -      (diary-list-entries): Maybe initialize diary-included-files.
 -      (diary-include-other-diary-files): Append to diary-included-files.
 -      * calendar/appt.el (appt-update-list): Also check the members of
 -      diary-included-files.  (Bug#6999)
 -      (appt-check): Doc fix.
 +2010-11-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
 -2010-09-12  David Reitter  <david.reitter@gmail.com>
 +      * subr.el (version-separator, version-regexp-alist): Remove '*'
 +      from docstring.
 +      (version-list-<=, version<=, version=): Doc fix.
  
 -      * simple.el (line-move-visual): Do not truncate goal column to
 -      integer size.  (Bug#7020)
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
  
 -2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * faces.el (glyphless-char): Inherit underline for tty.
  
 -      * repeat.el (repeat): Allow repeating when the last event is a click.
 -      Suggested by Drew Adams (bug#6256).
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
  
 -2010-09-11  Sascha Wilde  <wilde@sha-bang.de>
 +      Implement various display methods for glyphless characters.
  
 -      * vc/vc-hg.el (vc-hg-state,vc-hg-working-revision):
 -      Replace setting HGRCPATH to "" by some less invasive --config options.
 +      * international/characters.el (char-acronym-table): New variable.
 +      (glyphless-char-control): New variable.
 +      (update-glyphless-char-display): New funciton.
  
 -2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * faces.el (glyphless-char): New face.
  
 -      * font-lock.el (font-lock-beginning-of-syntax-function):
 -      Mark as obsolete.
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
  
 -2010-09-10  Glenn Morris  <rgm@gnu.org>
 +      * calendar/holidays.el (general-holidays, oriental-holidays)
 +      (local-holidays, other-holidays, hebrew-holidays, christian-holidays)
 +      (islamic-holidays, bahai-holidays, solar-holidays): Move aliases before
 +      the definitions of their targets.
  
 -      * menu-bar.el (menu-bar-options-save): Fix handling of menu-bar
 -      and tool-bar modes.  (Bug#6211)
 -      (menu-bar-mode): Move setting of standard-value after the
 -      minor-mode definition, otherwise it seems to have no effect.
 +      * emacs-lisp/smie.el (smie): New custom group.
 +      (smie-blink-matching-inners, smie-indent-basic): Add :group.
  
 -2010-09-08  Masatake YAMATO  <yamato@redhat.com>
 +      * faces.el (xw-defined-colors, x-setup-function-keys):
 +      * mouse-sel.el (x-select-text):
 +      * term/w32console.el (x-setup-function-keys): Update declarations.
  
 -      * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords):
 -      Fix typo.  (Bug#6976)
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-heredoc): Declare.
  
 -2010-09-06  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +      * textmodes/ispell.el (comment-add): Declare.
  
 -      * whitespace.el: Allow cleaning up blanks without blank
 -      visualization (Bug#6651).  Adjust help window for
 -      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 -      instead of whitespace-line-column (from EmacsWiki).  New version 13.1.
 -      (whitespace-style): Add new value 'face.  Adjust docstring.
 -      (whitespace-space, whitespace-hspace, whitespace-tab):
 -      Adjust foreground property face.
 -      (whitespace-line-column): Adjust docstring and type declaration.
 -      (whitespace-style-value-list, whitespace-toggle-option-alist)
 -      (whitespace-help-text): Adjust const initialization.
 -      (whitespace-toggle-options, global-whitespace-toggle-options):
 -      Adjust docstring.
 -      (whitespace-display-window, whitespace-interactive-char)
 -      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 -      (whitespace-help-scroll): New fun.
 +      * net/gnutls.el (gnutls-boot, gnutls-errorp, gnutls-error-string):
 +      Declare.
  
 -2010-09-05  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +      * info.el (finder-keywords-hash, package-alist): Declare.
  
 -      * files.el (directory-abbrev-alist): Use \` as default regexp.
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * emacs-lisp/rx.el (rx-any): Don't explode ranges that end in special
 -      chars like - or ] (bug#6984).
 -      (rx-any-condense-range): Explode 2-char ranges.
 +      * finder.el (finder-compile-keywords): Don't use intern-soft,
 +      since package names may not yet exist in the obarray.
  
 -2010-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * textmodes/bibtex.el:
 -      * proced.el: Update to new email for Roland Winkler <winkler@gnu.org>.
 +      * vc/vc-arch.el (vc-arch-checkin):
 +      * vc/vc-cvs.el (vc-cvs-checkin):
 +      * vc/vc-mtn.el (vc-mtn-checkin):
 +      * vc/vc-rcs.el (vc-rcs-checkin):
 +      * vc/vc-sccs.el (vc-sccs-checkin):
 +      * vc/vc-svn.el (vc-svn-checkin): Remove optional extra arg, unused
 +      since 2010-04-21 commit by Stefan Monnier.
  
 -2010-09-02  Glenn Morris  <rgm@gnu.org>
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
  
 -      * desktop.el (desktop-path): Bump :version after 2009-09-15 change.
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): Fix previous change.
  
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 +      * startup.el (package-enable-at-startup, package-initialize):
 +      Silence compiler.
  
 -      * international/mule-cmds.el (standard-display-european-internal):
 -      Setup standard-display-table for 8-bit characters by storing 8-bit
 -      characters in the element vector.
 +      * progmodes/ada-mode.el (ada-font-lock-syntactic-keywords):
 +      Silence compiler.
  
 -      * disp-table.el (standard-display-8bit):
 -      Setup standard-display-table for 8-bit characters by storing 8-bit
 -      characters in the element vector.
 -      (standard-display-european): Likewise.
 +2010-10-31  Julien Danjou  <julien@danjou.info>
  
 -2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): New fun (bug#7297).
 +      (byte-recompile-directory):
 +      * emacs-lisp/lisp-mode.el (emacs-lisp-byte-compile-and-load):
 +      Use `byte-recompile-file'.
  
 -      Sync with Tramp 2.1.19.
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
 -      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 -      (tramp-reporter-dump-variable, tramp-load-report-modules)
 -      (tramp-append-tramp-buffers): Use `tramp-compat-funcall'.
 -      (tramp-bug): Recommend setting of `tramp-verbose' to 9.
 +      * cus-start.el: Handle standard values via a keyword.
 +      Only set version property if specified.
 +      (cursor-in-non-selected-windows, menu-bar-mode)
 +      (tool-bar-mode, show-trailing-whitespace):
 +      Do not specify standard values.
 +      (transient-mark-mode, temporary-file-directory): Use :standard.
  
 -      * net/tramp-compat.el (top): Do not autoload
 -      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 -      only when `start-file-process' is not bound.
 -      (byte-compile-not-obsolete-vars): Define if not bound.
 -      (tramp-compat-funcall): New defmacro.
 -      (tramp-compat-line-beginning-position)
 -      (tramp-compat-line-end-position)
 -      (tramp-compat-temporary-file-directory)
 -      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 -      (tramp-compat-copy-file, tramp-compat-copy-directory)
 -      (tramp-compat-delete-file, tramp-compat-delete-directory)
 -      (tramp-compat-number-sequence, tramp-compat-process-running-p):
 -      Use it.
 -      (tramp-advice-file-expand-wildcards): Do not use
 -      `tramp-handle-file-remote-p'.
 -      (tramp-compat-make-temp-file): Simplify fallback implementation.
 -      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-compat-copy-tree): Remove function.
 -      (tramp-compat-delete-file): New defun.
 -      (tramp-compat-delete-directory): Provide implementation for older
 -      Emacsen.
 -      (tramp-compat-file-attributes): Handle only
 -      `wrong-number-of-arguments' error.
 +2010-10-31  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 -      Add PRESERVE_SELINUX_CONTEXT.
 -      (tramp-fish-handle-delete-file): Add TRASH arg.
 -      (tramp-fish-handle-directory-files-and-attributes):
 -      Do not use `tramp-fish-handle-file-attributes.
 -      (tramp-fish-handle-file-local-copy)
 -      (tramp-fish-handle-insert-file-contents)
 -      (tramp-fish-maybe-open-connection): Use `with-progress-reporter'.
 +      * term/x-win.el (x-get-selection-value): New function that gets
 +      PRIMARY with type as specified in x-select-request-type. (Bug#6802).
  
 -      * net/tramp-gvfs.el (top): Require url-util.
 -      (tramp-gvfs-mount-point): Remove.
 -      (tramp-gvfs-file-name-handler-alist): Add `file-selinux-context'
 -      and `set-file-selinux-context'.
 -      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command)
 -      (tramp-gvfs-handle-file-selinux-context)
 -      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 -      (with-tramp-dbus-call-method): Format trace message.
 -      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
 -      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 -      Implement backup call, when operation on local files fails.
 -      Use progress reporter.  Flush properties of changed files.
 -      (tramp-gvfs-handle-delete-file): Add TRASH arg.
 -      Use `tramp-compat-delete-file'.
 -      (tramp-gvfs-handle-expand-file-name): Expand "~/".
 -      (tramp-gvfs-handle-make-directory): Make more traces.
 -      (tramp-gvfs-handle-write-region): Protect deleting tmpfile.
 -      (tramp-gvfs-url-file-name): Hexify file name in url.
 -      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 -      into account for the resulting file name.
 -      (tramp-gvfs-handler-askquestion): Preserve current message, in
 -      order to let progress reporter continue afterwards.  (Bug#6257)
 -      Return dummy mountpoint, when the answer is "no".
 -      See `tramp-gvfs-maybe-open-connection'.
 -      (tramp-gvfs-handler-mounted-unmounted)
 -      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 -      attribute "default_location".  Set "prefix" property.
 -      Handle default-location.
 -      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 -      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 -      exists.  Raise an error, if not (due to a corresponding answer
 -      "no" in interactive questions, for example).
 -      Use `tramp-compat-funcall'.
 +2010-10-31  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 -      (tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-imap-do-copy-or-rename-file)
 -      (tramp-imap-handle-insert-file-contents)
 -      (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
 -      (tramp-imap-handle-delete-file): Add TRASH arg.
 +      * net/tramp.el (tramp-handle-insert-file-contents): For root,
 +      preserve owner and group when editing files.  (Bug#7289)
  
 -      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 -      Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-smb-handle-copy-file)
 -      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 -      (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
 -      Use `with-progress-reporter'.
 -      (tramp-smb-handle-delete-file): Add TRASH arg.
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
 -      * net/tramp.el (tramp-methods): Move hostname to the end in all
 -      ssh `tramp-login-args'.  Add `tramp-async-args' attribute where
 -      appropriate.
 -      (tramp-verbose): Describe verbose level 9.
 -      (tramp-completion-function-alist)
 -      (tramp-file-name-regexp, tramp-chunksize)
 -      (tramp-local-coding-commands, tramp-remote-coding-commands)
 -      (with-connection-property, tramp-completion-mode-p)
 -      (tramp-action-process-alive, tramp-action-out-of-band)
 -      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 -      (tramp-exists-file-name-handler): Fix docstring.
 -      (tramp-remote-process-environment): Use `format' instead of
 -      `concat'.  Protect version string by apostroph.
 -      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 -      XEmacs.
 -      (tramp-file-name-regexp-unified)
 -      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 -      not regard the volume letter as remote filename.  (Bug#5447)
 -      (tramp-perl-file-attributes)
 -      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 -      (tramp-vc-registered-read-file-names): Read input as
 -      here-document, otherwise the command could exceed maximum length
 -      of command line.
 -      (tramp-file-name-handler-alist): Add `file-selinux-context' and
 -      `set-file-selinux-context'.
 -      (tramp-debug-message): Add `tramp-compat-funcall' to ignored
 -      backtrace functions.
 -      (tramp-error-with-buffer): Don't show the connection buffer when
 -      we are in completion mode.
 -      (tramp-progress-reporter-update, tramp-remote-selinux-p)
 -      (tramp-handle-file-selinux-context)
 -      (tramp-handle-set-file-selinux-context, tramp-process-sentinel)
 -      (tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash):
 -      New defuns.
 -      (with-progress-reporter): New defmacro.
 -      (tramp-debug-outline-regexp): New defconst.
 -      (top, tramp-rfn-eshadow-setup-minibuffer)
 -      (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
 -      (tramp-handle-dired-compress-file, tramp-handle-shell-command)
 -      (tramp-completion-mode-p, tramp-check-for-regexp)
 -      (tramp-open-connection-setup-interactive-shell)
 -      (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
 -      (tramp-time-diff, tramp-coding-system-change-eol-conversion)
 -      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp):
 -      Use `tramp-compat-funcall'.
 -      (tramp-handle-make-symbolic-link): Flush file properties.
 -      (tramp-handle-load, tramp-handle-file-local-copy)
 -      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 -      (tramp-handle-vc-registered, tramp-maybe-send-script)
 -      (tramp-find-shell): Use `with-progress-reporter'.
 -      (tramp-do-file-attributes-with-stat): Add space in format string,
 -      in order to work around a bug in pdksh.  Reported by Gilles Pion
 -      <gpion@lfdj.com>.
 -      (tramp-handle-verify-visited-file-modtime): Do not send a command
 -      when the connection is not established.
 -      (tramp-handle-set-file-times): Simplify the check for utc.
 -      (tramp-handle-directory-files-and-attributes)
 -      (tramp-get-remote-path): Use `copy-tree'.
 -      (tramp-completion-handle-file-name-all-completions): Ensure, that
 -      non remote files are still checked.  Oops.
 -      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 -      Handle PRESERVE-SELINUX-CONTEXT.
 -      (tramp-do-copy-or-rename-file): Add progress reporter.
 -      (tramp-do-copy-or-rename-file-directly): Do not use
 -      `tramp-handle-file-remote-p'.
 -      (tramp-do-copy-or-rename-file-out-of-band):
 -      Use `tramp-compat-delete-directory'.
 -      (tramp-do-copy-or-rename-file-out-of-band)
 -      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 -      Use `format-spec-make'.
 -      (tramp-handle-delete-file): Add TRASH arg.
 -      (tramp-handle-dired-uncache): Flush directory cache, not only file
 -      cache.
 -      (tramp-handle-expand-file-name)
 -      (tramp-completion-handle-file-name-all-completions)
 -      (tramp-completion-handle-file-name-completion):
 -      Use `tramp-connectable-p'.
 -      (tramp-handle-start-file-process): Set connection property "vec".
 -      Use it, in order to invalidate file caches.  Check only for
 -      `remote-tty' process property.
 -      Implement tty setting.  (Bug#4604, Bug#6360)
 -      (tramp-file-name-for-operation): Add `call-process-region' and
 -      `set-file-selinux-context'.
 -      (tramp-find-foreign-file-name-handler)
 -      (tramp-advice-make-auto-save-file-name)
 -      (tramp-set-auto-save-file-modes): Remove superfluous check for
 -      `stringp'.  This is done inside `tramp-tramp-file-p'.
 -      (tramp-file-name-handler): Trace 'quit.  Catch the error for some
 -      operations when we are in completion mode.  This gives the user
 -      the chance to correct the file name in the minibuffer.
 -      (tramp-completion-mode-p): Use `non-essential'.
 -      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 -      compatibility: Use `completion-ignore-case' if
 -      `read-file-name-completion-ignore-case' does not exist.
 -      (tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'.
 -      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 -      `tramp-open-shell'.
 -      (tramp-action-password): Hide password prompt before next run.
 -      (tramp-process-actions): Widen connection buffer for the trace.
 -      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 -      process property.  Trace stty settings if `tramp-verbose' >= 9.
 -      Apply workaround for IRIX64 bug.  Move argument of last
 -      `tramp-send-command' where it belongs to.
 -      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 -      front of `login-args'.
 -      (tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests
 -      on "/dev/null" instead of "/".
 -      (tramp-get-ls-command-with-dired): Make test for "--dired"
 -      stronger.
 -      (tramp-set-auto-save-file-modes): Adapt version check.
 +      * speedbar.el (speedbar-mode):
 +      * play/fortune.el (fortune-in-buffer, fortune):
 +      * play/gomoku.el (gomoku-mode):
 +      * play/landmark.el (lm-mode):
 +      * textmodes/bibtex.el (bibtex-validate, bibtex-validate-globally):
 +      Replace inappropriate uses of toggle-read-only.  (Bug#7292)
 +
 +      * select.el (x-selection): Mark it as an obsolete alias.
 +
 +2010-10-31  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 +
 +      * vc/add-log.el (find-change-log): Use derived-mode-p rather than
 +      major-mode (bug#7284).
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-files-menu): Make it into an actual alias,
 +      rather than just an unused variable that inherits from the real one.
 +
 +2010-10-31  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph): Fix an off-by-1 error.
 +      This fixes bug #7185.
 +
 +2010-10-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Search for package directories, and
 +      don't load package.el if none are found.
 +
 +      * emacs-lisp/package.el (describe-package, list-packages):
 +      Call package-initialize if it has not been called yet.
 +
 +2010-10-30  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-fonts.el (c-font-lock-enum-tail): New function
 +      which fontifies the tail of an enum.
 +      (c-basic-matchers-after): Insert a call to the above new function.
 +      This fixes bug #7264.
 +
 +2010-10-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * cus-start.el: Add :set properties for minor modes menu-bar-mode,
 +      tool-bar-mode, transient-mark-mode.  (Bug#7306)
 +      Include the :set property in the dumped Emacs.
 +
 +2010-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      SMIE: change indent rules format, improve smie-setup.
 +      * emacs-lisp/smie.el (smie-precs-precedence-table)
 +      (smie-merge-prec2s, smie-bnf-precedence-table, smie-prec2-levels):
 +      Mark them pure so the tables gets built at compile time.
 +      (smie-bnf-precedence-table): Store the closer-alist in the table.
 +      (smie-prec2-levels): Preserve the closer-alist.
 +      (smie-blink-matching-open): Be more forgiving in case of indentation.
 +      (smie-hanging-p): Rename from smie-indent--hanging-p.
 +      (smie-bolp): Rename from smie-indent--bolp.
 +      (smie--parent, smie--after): New dynamic vars.
 +      (smie-parent-p, smie-next-p, smie-prev-p): New funs.
 +      (smie-indent-rules): Remove.
 +      (smie-indent--offset-rule): Remove fun.
 +      (smie-rules-function): New var.
 +      (smie-indent--rule): New fun.
 +      (smie-indent--offset, smie-indent-keyword, smie-indent-after-keyword)
 +      (smie-indent-exps): Use it.
 +      (smie-setup): Setup paren blinking; add keyword args for token
 +      functions; extract closer-alist from op-levels.
 +      (smie-indent-debug-log): Remove var.
 +      (smie-indent-debug): Remove fun.
 +      * progmodes/prolog.el (prolog-smie-indent-rules): Remove.
 +      (prolog-smie-rules): New fun to replace it.
 +      (prolog-mode-variables): Simplify.
 +      * progmodes/octave-mod.el (octave-smie-closer-alist): Remove, now that
 +      it's setup automatically.
 +      (octave-smie-indent-rules): Remove.
 +      (octave-smie-rules): New fun to replace it.
 +      (octave-mode): Simplify.
 +
 +2010-10-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.el (temporary-file-directory): Remove (already defined in C).
 +      * cus-start.el: Add temporary-file-directory.
 +
 +      * abbrev.el (abbrev-mode):
 +      * composite.el (auto-composition-mode):
 +      * menu-bar.el (menu-bar-mode):
 +      * simple.el (transient-mark-mode):
 +      * tool-bar.el (tool-bar-mode): Adjust the define-minor-mode calls so
 +      that they do not define the associated variables twice.
 +      * simple.el (transient-mark-mode): Remove defvar.
 +      * composite.el (auto-composition-mode): Make variable auto-buffer-local.
 +      * cus-start.el: Add transient-mark-mode, menu-bar-mode, tool-bar-mode.
 +      Handle multiple groups, and also custom-delayed-init-variables.
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
 +
 +2010-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase): New `string' and `guard' patterns.
 +      (pcase-if): Add one minor optimization.
 +      (pcase-split-equal): Rename from pcase-split-eq.
 +      (pcase-split-member): Rename from pcase-split-memq.
 +      (pcase-u1): Add strings to the member optimization.
 +      Add `guard' variant of predicates.
 +      (pcase-q1): Add string patterns.
 +
 +2010-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/log-edit.el (log-edit-rewrite-fixes): State its safety pred.
 +
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (global-map, menu-bar-final-items, menu-bar-help-menu):
 +      Move menu-bar related settings to ../menu-bar.el.
 +      * menu-bar.el (global-map, menu-bar-final-items, menu-bar-help-menu):
 +      Move ns-specific settings here from term/ns-win.el.
 +
 +      * simple.el (x-selection-owner-p): Remove unused declaration.
 +
 +2010-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-cycling): New var (bug#7266).
 +      (minibuffer-complete, completion--do-completion):
 +      Use completion--flush-all-sorted-completions.
 +      (minibuffer-complete): Only cycle if completion-cycling is set.
 +      (completion--flush-all-sorted-completions): Unset completion-cycling.
 +      (minibuffer-force-complete): Set completion-cycling.
 +      (completion-all-sorted-completions): Move declaration before first use.
 +
 +2010-10-28  Leo  <sdl.web@gmail.com>
 +
 +      * iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist'
 +      which changes the order of matches seen by users (bug#7231).
 +
 +2010-10-28  Jes Bodi Klinke  <jes@bodi-klinke.dk>  (tiny change)
 +
 +      * progmodes/compile.el (compilation-mode-font-lock-keywords):
 +      Don't confuse -omega as "-o mega".
 +
 +2010-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/log-edit.el (log-edit-rewrite-fixes): New var.
 +      (log-edit-author): New dynamic var.
 +      (log-edit-changelog-ours-p, log-edit-insert-changelog-entries): Use it
 +      to return the author if different from committer.
 +      (log-edit-insert-changelog): Use them to add Author: and Fixes headers.
 +
 +      * play/landmark.el: Adjust commenting convention.
 +      (lm-nil-score): Rename from nil-score.
 +      (Xscore, XXscore, XXXscore, XXXXscore, Oscore, OOscore, OOOscore)
 +      (OOOOscore): Move into a let in lm-score-trans-table.
 +      (lm-winning-threshold, lm-loosing-threshold): Use lm-score-trans-table.
 +
 +      * electric.el (electric-indent-chars): Autoload.
 +      * progmodes/octave-mod.el (octave-mode):
 +      * progmodes/ruby-mode.el (ruby-mode): Take advantage of it.
 +      (ruby-mode-abbrev-table): Merge initialization and declaration.
 +
 +2010-10-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * abbrev.el (abbrev-mode): Remove one of the three definitions of this
 +      variable.
 +
 +      * server.el (server-host, server-port, server-auth-dir): Autoload risky.
 +
 +      * term/ns-win.el: Restore require of cl when compiling.
 +      (menu-bar-final-items): Remove non-existent `windows' menu.
 +      (ns-handle-nxopen): Optionally handle the temp-case.
 +      (ns-handle-nxopentemp): Just call ns-handle-nxopen.
 +      (ns-insert-file, ns-find-file): Use `pop'.
 +
 +2010-10-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/common-win.el (xw-defined-colors): Simplify the 'ns case.
 +
 +2010-10-26  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * term/ns-win.el (ns-new-frame, ns-show-prefs): Don't add to
 +      global map.
 +      * term/common-win.el (x-setup-function-keys): Remove most of the
 +      keymappings.  Comment on the remaining ones.
 +
 +2010-10-26  Peter Oliver  <p.d.oliver@mavit.org.uk>  (tiny change)
 +
 +      * server.el (server-port): New option.  (Bug#854)
 +      (server-start): Use server-port.
 +
 +2010-10-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (ns-version-string): Remove unused declaration.
 +      (ns-invocation-args): Change to x-invocation-args.
 +      (ns-handle-switch, ns-handle-numeric-switch, ns-handle-iconic)
 +      (ns-handle-name-switch, ns-ignore-2-arg): Remove.
 +      (ns-handle-nxopen, ns-handle-nxopentemp, ns-ignore-1-arg):
 +      Use x-invocation-args instead of ns-invocation-args.
 +      (ns-initialize-window-system, handle-args-function-alist):
 +      Use x-handle-args instead of ns-handle-args.
 +      * term/common-win.el (x-handle-args): Also handle nextstep arguments.
 +      * startup.el (command-line-ns-option-alist): Replace
 +      ns-handle-name-switch, ns-handle-switch, ns-handle-numeric-switch,
 +      ns-handle-iconic with the x- equivalents.
 +
 +      * term/common-win.el (x-select-enable-clipboard):
 +      * term/pc-win.el (x-select-enable-clipboard): Doc fix.
 +
 +      * term/ns-win.el: No need to require cl when compiling.
 +      (x-display-name, x-setup-function-keys, x-select-text, x-colors)
 +      (xw-defined-colors): Use the common-win definitions.
 +      (ns-alternatives-map): Make it an obsolete alias for x-alternatives-map.
 +      (ns-handle-iconic): Make it an alias for x-handle-iconic.
 +      * term/common-win.el (x-select-text, x-alternatives-map)
 +      (x-setup-function-keys, x-colors, xw-defined-colors): Handle 'ns case.
 +      * loadup.el [ns]: Load common-win.
 +
 +2010-10-26  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-mail.el (epa-mail-encrypt): Handle local-part only
 +      recipients; expand mail aliases (Bug#7280).
 +
 +2010-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/common-win.el (x-handle-switch): Simplify with pop.
 +      Optionally handle numeric switches.
 +      (x-handle-numeric-switch): Just call x-handle-switch.
 +      (x-handle-initial-switch, x-handle-xrm-switch, x-handle-geometry)
 +      (x-handle-name-switch, x-handle-display, x-handle-args):
 +      Simplify with pop.
 +
 +      * term/ns-win.el: Do not require easymenu.
 +      (menu-bar-edit-menu) <copy, paste, paste-from-menu, separator-undo>:
 +      <spell>: Move adjustments to menu-bar.el.
 +      * menu-bar.el (menu-bar-edit-menu) <copy, paste, paste-from-menu>:
 +      <separator-undo, spell>: Move ns-win's adjustments here.
 +      * loadup.el [ns]: Do not load easymenu.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.el (image-checkbox-checked, image-checkbox-unchecked):
 +      Delete (Bug#7222).
 +
 +      * startup.el (fancy-startup-tail): Instead of using inline images,
 +      refer to image files from etc/.
 +
 +      * wid-edit.el (checkbox): Likewise.
 +      (widget-image-find): Center image specs.
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (x-select-text): Doc fix.
 +      * w32-fns.el (x-alternatives-map, x-setup-function-keys)
 +      (x-select-text): Move to term/common-win.
 +      * term/w32-win.el (xw-defined-colors): Move to common-win.
 +      * term/x-win.el (xw-defined-colors, x-alternatives-map)
 +      (x-setup-function-keys, x-select-text): Move to common-win.
 +      * term/common-win.el (x-select-text, x-alternatives-map)
 +      (x-setup-function-keys, xw-defined-colors): Merge x- and w32-
 +      definitions here.
 +
 +2010-10-24  T.V. Raman  <tv.raman.tv@gmail.com>  (tiny change)
 +
 +      * net/mairix.el (mairix-searches-mode-map):
 +      * mail/mspools.el (mspools-mode-map): Fix 2010-10-10 change.
 +
 +2010-10-24  Michael McNamara  <mac@mail.brushroad.com>
 +
 +      * verilog-mode.el (verilog-directive-re): Make this variable
 +      auto-built for efficiency of execution and updating.
 +      (verilog-extended-complete-re): Support 'pure' fucntion & task
 +      declarations (these have no bodies).
 +      (verilog-beg-of-statement): General cleanup to enable support of
 +      'pure' fucntion & task declarations (these have no bodies).
 +      These efforts together fix Verilog bug210 from veripool; which was also
 +      noticed by Steve Pearlmutter.
 +      (verilog-directive-re, verilog-directive-begin, verilog-indent-re)
 +      (verilog-directive-nest-re, verilog-set-auto-endcomments):
 +      Support `elsif.  Reported by Shankar Giri.
 +      (verilog-forward-ws&directives, verilog-in-attribute-p): Fixes for
 +      attribute handling for lining up declarations and assignments.
 +      (verilog-beg-of-statement-1): Fix issue where continued declaration
 +      is indented differently if it is after a begin..end clock.
 +      (verilog-in-attribute-p, verilog-skip-backward-comments)
 +      (verilog-skip-forward-comment-p): Support proper treatment of
 +      attributes by indent code. Reported by Jeff Steele.
 +      (verilog-in-directive-p): Fix comment to correctly describe function.
 +      (verilog-backward-up-list, verilog-in-struct-region-p)
 +      (verilog-backward-token, verilog-in-struct-p)
 +      (verilog-in-coverage-p, verilog-do-indent)
 +      (verilog-pretty-declarations): Use verilog-backward-up-list as
 +      wrapper around backward-up-list inorder to properly skip comments.
 +      Reported by David Rogoff.
 +      (verilog-property-re, verilog-endcomment-reason-re)
 +      (verilog-beg-of-statement, verilog-set-auto-endcomments)
 +      (verilog-calc-1 ): Fix for assert a; else b; indentation (new form
 +      of if). Reported by Max Bjurling and
 +      (verilog-calc-1): Fix for clocking block in modport
 +      declaration. Reported by Brian Hunter.
 +
 +2010-10-24  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
 +      (verilog-gate-keywords, verilog-read-sub-decls)
 +      (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios)
 +      (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support
 +      AUTOINST for gate primitives, bug284.  Reported by Mark Johnson.
 +      (verilog-read-decls): Fix spaces in V2K module parameters causing
 +      mis-identification as interfaces, bug287.
 +      (verilog-read-decls): Fix not treating "parameter string" as a
 +      parameter in AUTOINSTPARAM.
 +      (verilog-read-always-signals-recurse, verilog-read-decls): Fix not
 +      treating `elsif similar to `endif inside AUTOSENSE.
 +      (verilog-do-indent): Implement correct automatic or static task or
 +      function end comment highlight. Reported by Steve Pearlmutter.
 +      (verilog-font-lock-keywords-2): Fix highlighting of single
 +      character pins, bug264.  Reported by Michael Laajanen.
 +      (verilog-auto-inst, verilog-read-decls, verilog-read-sub-decls)
 +      (verilog-read-sub-decls-in-interfaced, verilog-read-sub-decls-sig)
 +      (verilog-subdecls-get-interfaced, verilog-subdecls-new):
 +      Support interfaces with AUTOINST, bug270.  Reported by Luis Gutierrez.
 +      (verilog-pretty-expr): Fix interactive arguments, bug272.
 +      Reported by Mark Johnson.
 +      (verilog-auto-tieoff, verilog-auto-tieoff-ignore-regexp):
 +      Add 'verilog-auto-tieoff-ignore-regexp' for AUTOTIEOFF,
 +      bug269. Suggested by Gary Delp.
 +      (verilog-mode-map, verilog-preprocess, verilog-preprocess-history)
 +      (verilog-preprocessor, verilog-set-compile-command):
 +      Create verilog-preprocess and verilog-preprocessor to show
 +      preprocessed output.
 +      (verilog-get-beg-of-line, verilog-get-end-of-line)
 +      (verilog-modi-file-or-buffer, verilog-modi-name)
 +      (verilog-modi-point, verilog-within-string): Move defmacro's
 +      before first use to avoid warning. Reported by Steve Pearlmutter.
 +      (verilog-colorize-buffer, verilog-colorize-include-files-buffer)
 +      (verilog-colorize-region, verilog-highlight-buffer)
 +      (verilog-highlight-includes, verilog-highlight-modules)
 +      (verilog-highlight-region, verilog-mode): Rename colorize to
 +      highlight to match other packages.  Disable module highlighting,
 +      as received speed complaints, reenable for experimentation only
 +      using new verilog-highlight-modules.
 +      (verilog-read-decls): Fix regexp stack overflow in very large
 +      AUTO_TEMPLATEs, bug250.
 +      (verilog-auto, verilog-delete-auto, verilog-save-buffer-state)
 +      (verilog-scan): Create verilog-save-buffer-state to standardize
 +      making insignificant changes that shouldn't call hooks.
 +      (verilog-save-no-change-functions, verilog-save-scan-cache)
 +      (verilog-scan, verilog-scan-cache-ok-p, verilog-scan-region):
 +      Create verilog-save-no-change-functions to wrap verilog-scan
 +      preservation, and fix to work with nested preserved calls.
 +      (verilog-auto-inst, verilog-auto-inst-dot-name): Support .name
 +      port syntax for AUTOWIRE, and with new verilog-auto-inst-dot-name
 +      generate .name with AUTOINST, bug245.  Suggested by David Rogoff.
 +      (verilog-submit-bug-report): Update variable list to be complete.
 +      (verilog-auto, verilog-colorize-region): Fix AUTO expansion
 +      breaking on-the-fly font-locking.
 +      (verilog-colorize-buffer, verilog-colorize-include-files)
 +      (verilog-colorize-include-files-buffer, verilog-colorize-region)
 +      (verilog-load-file-at-mouse, verilog-load-file-at-point)
 +      (verilog-mode, verilog-read-inst-module-matcher): With point on a
 +      AUTOINST cell instance name, middle mouse button now finds-file on
 +      it.  Suggested by Brad Dobbie.
 +      (verilog-alw-get-temps, verilog-auto-reset)
 +      (verilog-auto-sense-sigs, verilog-read-always-signals)
 +      (verilog-read-always-signals-recurse): Fix loop indexes being
 +      AUTORESET. AUTORESET now assumes any variables in the
 +      initialization section of a for() should be ignored.
 +      Reported by Dan Dever.
 +      (verilog-error-font-lock-keywords)
 +      (verilog-error-regexp-emacs-alist)
 +      (verilog-error-regexp-xemacs-alist): Fix error detection of
 +      Cadence HAL, reported by David Asher.  Repair drift between the
 +      three similar error variables.
 +      (verilog-modi-lookup, verilog-modi-lookup-cache)
 +      (verilog-modi-lookup-last-current, verilog-modi-lookup-last-mod)
 +      (verilog-modi-lookup-last-modi, verilog-modi-lookup-last-tick):
 +      Fix slow verilog-auto expansion on very large files.
 +      (verilog-read-sub-decls-expr, verilog-read-sub-decls-line):
 +      Fix AUTOOUTPUT treating "1*2" as a signal name in submodule connection
 +      "{1*2{...".  Broke in last revision.
 +      (verilog-read-sub-decls-expr): Fix AUTOOUTPUT not detecting
 +      submodule connections with replications "{#{a},#{b}}".
 +
 +2010-10-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/dcl-mode.el (dcl-electric-reindent-regexps):
 +      Fix typo in docstring.
 +
 +2010-10-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * face-remap.el (text-scale-adjust): Call read-event with a proper
 +      prompt.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/unsafep.el: Don't mark functions that display
 +      messages as safe.  Suggested by Johan Bockgård.
 +
 +2010-10-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt-group, regexp-opt-charset):
 +      Turn comments into docstrings.
 +
 +      * minibuffer.el (completion--replace): Move point where it belongs
 +      when there's a common suffix (bug#7215).
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Merge read-color and facemenu-read-color (Bug#7242).
 +
 +      * faces.el (read-color): Use the completion code from
 +      facemenu-read-color.  Require match in completion.  Doc fix.
 +
 +      * facemenu.el (facemenu-read-color): Alias for read-color.
 +      (facemenu-set-foreground, facemenu-set-background):
 +      Use read-color.
 +
 +      * frame.el (set-background-color, set-foreground-color)
 +      (set-cursor-color, set-mouse-color, set-border-color):
 +      Use read-color.
 +
 +2010-10-24  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/em-unix.el (eshell-remove-entries): Use the TRASH
 +      argument of delete-file and delete-directory (Bug#7011).
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map): Inherit from
 +      button-buffer-map.
 +
 +2010-10-24  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * emacs-lisp/package.el (package--generate-package-list): Make the
 +      *Packages* buffer read-only.
 +
 +2010-10-24  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-fonts.el (c-font-lock-declarations): Cache the
 +      result of `c-beginning-of-decl-1' between invocations of a lambda
 +      function (Bug #7265).
 +
 +2010-10-24  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg-config.el (epg-gpg-program): Try to use "gpg2" if "gpg"
 +      executable is not available on the system (Bug#7268).
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * select.el (selection-coding-system, next-selection-coding-system):
 +      Sync doc with C versions.
 +
 +      * w32-vars.el (x-select-enable-clipboard):
 +      * term/x-win.el (x-select-enable-clipboard): Move to common-win.
 +      * term/common-win.el (x-select-enable-clipboard): Move here.
 +
 +      * term/tty-colors.el (tty-defined-color-alist): Remove duplicate
 +      definition of C variable.
 +
 +      * frame.el (show-trailing-whitespace, auto-hscroll-mode)
 +      (display-hourglass, hourglass-delay, cursor-in-non-selected-windows):
 +      Don't redefine things that are defined in C.
 +      * cus-start.el: Also handle :risky, :safe, :set, and :tag.
 +      (show-trailing-whitespace, auto-hscroll-mode)
 +      (display-hourglass, hourglass-delay, cursor-in-non-selected-windows):
 +      Set up the appropriate custom properties.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Bind "C-c ]" to ...
 +      * progmodes/f90.el (f90-mode-map): ... f90-insert-end.
 +      * nxml/nxml-mode.el (nxml-mode-map): ... nxml-finish-element.
 +      * textmodes/tex-mode.el (tex-mode-map): ... latex-close-block.
 +      * textmodes/sgml-mode.el (sgml-mode-map): ... sgml-close-tag.
 +
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/flyspell.el (flyspell-mode): If there was an error,
 +      say what it was.
 +
 +      * frame.el (auto-hscroll-mode, cursor-in-non-selected-windows):
 +      Sync docs with C version.
 +
 +      * term/ns-win.el (xw-defined-colors):
 +      * term/x-win.el (xw-defined-colors): Make docs identical to w32-win.
 +
 +      * term/pc-win.el (x-select-enable-clipboard):
 +      * term/x-win.el (x-select-enable-clipboard):
 +      * w32-vars.el (x-select-enable-clipboard): Make doc-strings identical.
 +
 +      * comint.el (comint-password-prompt-regexp): Make it less vague.
 +      Bump version.
 +
 +      * help-fns.el (doc-file-to-man, doc-file-to-info): New commands.
 +
 +      * help.el (finder-by-keyword): Remove unnecessary autoload.
 +
 +2010-10-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * loadup.el: Unconditionally load float-sup.
 +      * paren.el (show-paren-delay):
 +      * emacs-lisp/float-sup.el:
 +      * emulation/cua-base.el (cua-prefix-override-inhibit-delay):
 +      * obsolete/lazy-lock.el (lazy-lock-defer-time, lazy-lock-stealth-nice)
 +      (lazy-lock-stealth-verbose): Assume float support.
 +      * ps-print.el: Assume float support on Emacs.
 +      * emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
 +      Remove non-float branch.
 +
 +      * emacs-lisp/autoload.el (batch-update-autoloads): Update for
 +      src/Makefile no longer being pre-processed.
 +
 +2010-10-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/find-func.el (find-library): Use test-completion.
 +
 +2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * newcomment.el (comment-dwim): Fix the intentation in the doc string.
 +
 +2010-10-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-stat): Do not use
 +      space in stat format string.
 +      (tramp-send-command): Unset $PS1 when using here documents, in
 +      order not to get several prompts.
 +      (tramp-get-inline-coding): Return `nil' in case of errors.
 +
 +2010-10-21  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * hexl.el (hexl-mode, hexl-mode-exit):
 +      Tweak revert-buffer-function to inhibit auto-mode-alist (Bug#7252).
 +      (hexl-revert-buffer-function): New function.
 +      (hexl-before-revert-hook, hexl-after-revert-hook): Abolish.
 +
 +2010-10-19  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-langs.el (c-type-decl-prefix-key): C++ bit:
 +      Move "\(const\|throw\|volatile\)\>" nearer the start of the regexp, so
 +      that these keywords aren't wrongly matched as identifiers.
 +
 +      * progmodes/cc-mode.el (c-before-change, c-after-change): Move the
 +      setting of c-new-BEG and c-new-END from c-before-change to
 +      c-after-change.  (Bug#7181)
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-face.el (custom-theme-set-faces): Revert 2010-10-18 change.
 +      Don't mark as safe.
 +
 +      * custom.el (custom-theme-set-variables): Likewise.
 +      (load-theme): Add custom-theme-set-faces and
 +      custom-theme-set-variables to safe-functions while loading.
 +      (custom-enabled-themes): Mark as risky.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * bindings.el: Remove end dashes in default mode-line-format.
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * bindings.el (global-map): Bind C-d to delete-char and deletechar
 +      to delete-forward-char.
 +
 +      * simple.el (normal-erase-is-backspace-mode): Remap delete to
 +      deletechar, and hence delete-forward-char.
 +
 +2010-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * repeat.el (repeat): Use read-key (bug#6256).
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/unsafep.el: Don't mark functions that display
 +      messages as safe.  Suggested by Johan Bockgård.
 +
 +2010-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--replace): Move point where it belongs
 +      when there's a common suffix (bug#7215).
 +
 +2010-10-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Add category '|' (word breakable)
 +      to fullwidth characters.
 +
 +2010-10-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-stat)
 +      (tramp-do-directory-files-and-attributes-with-stat): Use "e0" in
 +      order to make stat results a float.  Patch by Andreas Schwab
 +      <schwab@linux-m68k.org>.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * avoid.el (mouse-avoidance-ignore-p): Ignore mouse when it is
 +      hidden by `make-pointer-invisible'.
 +
 +2010-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (locate-file-completion-table): Strip non-matching elements
 +      before checking length of list (bug#7238).
 +
 +2010-10-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.el (custom-theme-set-variables): Mark as a safe function.
 +      (load-theme): Check forms using unsafep.
 +
 +      * cus-face.el (custom-theme-set-faces): Mark as a safe function.
 +
 +2010-10-17  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-aspell-find-dictionary):
 +      Fix aspell data file searching (bug#7230).
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (custom-theme--migrate-settings): New var.
 +      (customize-create-theme): Allow editing the `user' theme.
 +      (custom-theme-add-variable, custom-theme-add-var-1)
 +      (custom-theme-add-face, custom-theme-add-face-1): Add a checkbox
 +      to the front of each variable or face widget.
 +      (custom-theme-write): Save theme settings in the correct order.
 +      Optionally, remove saved settings from user customizations.
 +      (custom-theme-write-variables, custom-theme-write-faces):
 +      Save only the checked widgets.
 +      (customize-themes): Add a link for migrating custom settings.
 +
 +      * custom.el (custom-declare-theme, provide-theme):
 +      Use custom-theme-name-valid-p.
 +      (custom-theme-name-valid-p): Remove checks that are now
 +      unnecessary since themes no longer obey load-path.
 +
 +      * cus-edit.el (custom-variable-value-create): For the simple
 +      style, hide documentation string when hidden.
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-variable, custom-face): Combine the
 +      :inhibit-magic and :display-style properties into a single
 +      :custom-style property.
 +      (custom-toggle-hide-variable, custom-toggle-hide-face):
 +      New functions.  If hiding an edited value, save it to :shown-value.
 +      (custom-variable-value-create, custom-face-value-create): Use them.
 +      (custom-magic-reset): Allow magic property to be unset.
 +
 +      * custom.el: Custom themes no longer use load-path.
 +      (custom-theme-load-path): New option.  Change built-in theme
 +      directory to etc/.
 +      (custom-enabled-themes): Add custom-theme-load-path dependency.
 +      (custom-theme--load-path): New function.
 +      (load-theme, custom-available-themes): Use it.
 +
 +      * cus-theme.el (describe-theme-1): Use custom-theme--load-path.
 +      (customize-themes): Link to custom-theme-load-path variable.
 +      (custom-theme-add-var-1, custom-theme-add-face-1): Use the
 +      :custom-style property.
 +
 +      * themes/*.el: Moved to etc/.
 +
 +2010-10-16  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * textmodes/reftex-cite.el
 +      (reftex-extract-bib-entries-from-thebibliography): Do not move
 +      point when searching for \bibitem entries.  Match entries with
 +      spaces or tabs in front of arguments.
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (customize-create-theme): Delete overlays after
 +      erasing.  If given a THEME arg, display only the faces of that arg
 +      instead of custom-theme--listed-faces.
 +      (custom-theme-variable-menu, custom-theme-variable-action)
 +      (custom-variable-reset-theme, custom-theme-delete-variable): Delete.
 +      (custom-theme-add-variable, custom-theme-add-face): Apply value
 +      from the theme settings, instead of the current value.
 +      (custom-theme-add-var-1, custom-theme-add-face-1): New functions.
 +      (custom-theme-visit-theme): Allow calling outside theme buffers.
 +      (custom-theme-merge-theme): Don't enable the theme when merging.
 +      (custom-theme-write-variables, custom-theme-write-faces): Use the
 +      :shown-value properties to save buffer values, not global ones.
 +      (customize-themes): Display a warning about user customizations.
 +
 +      * cus-edit.el (custom-variable-value-create)
 +      (custom-face-value-create): Obey new special properties
 +      :shown-value and :inhibit-magic.
 +
 +2010-10-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
 +      Suppress expansion of tabs to spaces.  Reported by Dale Sedivec
 +      <dale@codefu.org>.
 +
 +2010-10-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmail.el (rmail-show-message-1): Catch an error of
 +      base64-decode-region and just show an error message (bug#7165).
 +
 +      * ps-mule.el (ps-mule-font-spec-list): Delete it.  Not used anymore.
 +      (ps-mule-begin-job): Fix for the case that only ENCODING is set in
 +      a font-spec (bug#7197).
 +
 +2010-10-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/emacsbug.el (report-emacs-bug): Mention debbugs.gnu.org.
 +
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/mule.el (define-coding-system):
 +      * international/titdic-cnv.el (quail-cxterm-package-ext-info):
 +      * composite.el (compose-region): Fix typo in docstring.
 +
 +2010-10-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-face.el (custom-theme-set-faces): Call custom-push-theme
 +      only after checking the theme-face property.
 +
 +      * faces.el (face-spec-reset-face): Reset all attributes in one
 +      single call to set-face-attribute.
 +      (face-spec-match-p): Make it a defsubst.
 +      (frame-set-background-mode): New arg KEEP-FACE-SPECS.
 +      (x-create-frame-with-faces, tty-create-frame-with-faces)
 +      (tty-set-up-initial-frame-faces): Don't recompute face specs in
 +      frame-set-background-mode, since they are recomputed immediately
 +      afterwards in face-set-after-frame-default.
 +      (face-set-after-frame-default): Minor optimization.
 +      (cursor): Provide non-trivial defface spec.
 +
 +      * custom.el (custom-theme-recalc-face): Simplify.
 +
 +2010-10-14  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-alg.el (math-var): Rename from `var'.
 +      (math-is-polynomial, math-is-poly-rec): Replace `var'
 +      with `math-var'.
 +
 +      * calc/calcalg2.el (math-var): Rename from `var'.
 +      (calcFunc-table, math-scan-for-limits): Replace `var'
 +      with `math-var'.
 +
 +2010-10-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (last): Deal with dotted lists (reported in bug#7174).
 +
 +2010-10-13  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * subr.el (last): Use `safe-length' instead of `length' (bug#7206).
 +
 +2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-program): Remove spurious %s from openssl.
 +      (tls-starttls-switches): Remove starttls hack.
 +      (open-tls-stream): Ditto.
 +      (tls-find-starttls-argument): Ditto.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * image.el (image-library-alist): Declare as obsolete alias.
 +      (image-type-available-p): Use `dynamic-library-alist'.
 +
 +      * term/w32-win.el (dynamic-library-alist):
 +      Use instead of `image-library-alist'.
 +
 +2010-10-13  IRIE Shinsuke  <irieshinsuke@yahoo.co.jp>  (tiny change)
 +
 +      * subr.el (last): Make it faster.  (Bug#7174)
 +
 +2010-10-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>  (tiny change)
 +
 +      * Makefile.in (compile-clean): Use `` instead of $().  (Bug#7178)
 +
 +2010-10-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (custom-theme--listed-faces): Add cursor face.
 +      (describe-theme-1): Extract doc from unloaded themes.
 +
 +      * custom.el (custom-theme-name-valid-p): Don't list color-themes.
 +
 +      * themes/tango-theme.el:
 +      * themes/tango-dark-theme.el:
 +      * themes/wheatgrass-theme.el: New files.
 +
 +2010-10-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (describe-theme, customize-themes)
 +      (custom-theme-save): New commands.
 +      (custom-new-theme-mode-map): Bind C-x C-s.
 +      (custom-new-theme-mode): Use custom--initialize-widget-variables.
 +      (customize-create-theme): New optional arg THEME.
 +      (custom-theme-revert): Use it.
 +      (custom-theme-visit-theme): Remove dead code.
 +      (custom-theme-merge-theme): Use custom-available-themes.
 +      (custom-theme-write): Make interactive.
 +      (custom-theme-write): Use custom-theme-name-valid-p.
 +      (describe-theme-1, custom-theme-choose-revert)
 +      (custom-theme-checkbox-toggle, custom-theme-selections-toggle):
 +      New funs.
 +      (custom-theme-allow-multiple-selections): New option.
 +      (custom-theme-choose-mode): New major mode.
 +
 +      * custom.el (custom-theme-set-variables): Remove dead code.
 +      Obey custom--inhibit-theme-enable.
 +      (custom--inhibit-theme-enable): New var.
 +      (provide-theme): Obey it.
 +      (load-theme): Replace load with manual read/eval, in order to
 +      check for correctness.  Use custom-theme-name-valid-p.
 +      (custom-theme-name-valid-p): New function.
 +      (custom-available-themes): Use it.
 +
 +      * cus-edit.el (custom--initialize-widget-variables): New function.
 +      (Custom-mode): Use it.
 +
 +      * cus-face.el (custom-theme-set-faces): Remove dead code.
 +      Obey custom--inhibit-theme-enable.
 +
 +      * help-mode.el (help-theme-def, help-theme-edit): New buttons.
 +
 +2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/telnet.el (telnet-mode-map): Fix previous change (bug#7193).
 +
 +2010-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-right-alternate-modifier): New defvar.
 +      (ns-right-option-modifier): New alias for ns-right-alternate-modifier.
 +      (mac-right-option-modifier): New alias for ns-right-option-modifier.
 +
 +      * cus-start.el (all): ns-right-alternate-modifier is new.
 +
 +2010-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/lisp.el (lisp-completion-at-point):
 +      Use emacs-lisp-mode-syntax-table for the whole function.
 +
 +2010-10-12  David Koppelman  <koppel@ece.lsu.edu>
 +
 +      * hi-lock.el (hi-lock-font-lock-hook): Check font-lock-fontified
 +      instead of font-lock-mode before adding keywords.
 +      Remove hi-lock-mode off code.  Remove inhibit hack.
 +      (hi-lock-set-pattern): Only add keywords if font-lock-fontified
 +      non-nil; removed hook inhibit hack.
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/shadow.el (find-emacs-lisp-shadows): Rename it...
 +      (load-path-shadows-find): ... to this.
 +      (list-load-path-shadows): Update for above change.
 +
 +      * mail/mail-utils.el (mail-mbox-from): Also try return-path.
 +
 +2010-10-11  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/hashcash.el, net/imap.el, pgg-parse.el, pgg.el:
 +      Fix comment for declare-function.
 +
 +2010-10-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.el (custom-fix-face-spec): New function; code moved from
 +      custom-face-edit-fix-value.
 +      (custom-push-theme): Use it when checking if a face has been
 +      changed outside customize.
 +      (custom-available-themes): New function.
 +      (load-theme): Use it.
 +
 +      * cus-edit.el (custom-face-edit-fix-value): Use custom-fix-face-spec.
 +
 +      * custom.el (custom-push-theme): Cleanup (use cond).
 +      (disable-theme): Recompute the saved-face property.
 +      (custom-theme-recalc-face): Follow face alias before setting prop.
 +
 +      * image.el (image-checkbox-checked, image-checkbox-unchecked):
 +      New variables, containing checkbox images.
 +
 +      * startup.el (fancy-startup-tail):
 +      * wid-edit.el (checkbox): Use them.
 +
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * shell.el (shell-mode-map):
 +      * progmodes/modula2.el (m2-mode-map):
 +      * progmodes/inf-lisp.el (inferior-lisp-mode-map):
 +      * play/mpuz.el (mpuz-mode-map):
 +      * play/landmark.el (lm-mode-map):
 +      * play/decipher.el (decipher-mode-map):
 +      * play/5x5.el (5x5-mode-map):
 +      * net/telnet.el (telnet-mode-map):
 +      * net/quickurl.el (quickurl-list-mode-map):
 +      * net/mairix.el (mairix-searches-mode-map):
 +      * net/eudc-hotlist.el (eudc-hotlist-mode-map):
 +      * net/dig.el (dig-mode-map):
 +      * mail/mspools.el (mspools-mode-map):
 +      * hexl.el (hexl-mode-map):
 +      * emulation/ws-mode.el (wordstar-C-k-map, wordstar-mode-map)
 +      (wordstar-C-o-map, wordstar-C-q-map):
 +      * emacs-lisp/edebug.el (edebug-eval-mode-map):
 +      * emacs-lisp/chart.el (chart-map):
 +      * edmacro.el (edmacro-mode-map):
 +      * erc/erc-list.el (erc-list-menu-mode-map):
 +      * array.el (array-mode-map): Declare and define in one step.
 +
 +      * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
 +
 +2010-10-10  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.el (epa-passphrase-callback-function): Display filename
 +      passed as the 3rd arg.
 +      * epa-file.el (epa-file-passphrase-callback-function):
 +      Pass filename to epa-passphrase-callback-function.
 +
 +2010-10-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-face-widget-to-spec)
 +      (custom-face-get-current-spec, custom-face-state): New functions.
 +      (custom-face-set, custom-face-mark-to-save)
 +      (custom-face-value-create, custom-face-state-set): Use them.
 +
 +      * cus-theme.el (custom-theme--listed-faces): New var.
 +      (customize-create-theme): Use *Custom Theme* as the buffer name.
 +      Set revert-buffer-function.  Optional arg BUFFER.  Insert all
 +      faces listed in custom-theme--listed-faces.
 +      (custom-theme-revert): New function.
 +      (custom-theme-add-variable, custom-theme-add-face): Insert at the
 +      bottom of the list.
 +      (custom-theme-write): Prompt for theme name if empty.
 +      (custom-theme-write-variables): Use dolist.
 +      (custom-theme-write-faces): Handle hidden (collapsed) widgets.
 +
 +2010-10-09  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance fontification of declarators to take account of the
 +      presence/absence of "typedef".
 +
 +      * cc-engine.el (c-forward-type): New &optional param
 +      "brace-block-too".
 +      (c-forward-decl-or-cast-1): cdr of return value now indicates the
 +      presence of either or both of a "struct"-like keyword and "typedef".
 +
 +      * cc-fonts.el (c-complex-decl-matchers): Remove the heuristic
 +      fontification of declarators which follow a "}".
 +      (c-font-lock-declarations): Fontify declarators according to the
 +      presence/absence of "typedef".
 +
 +      * cc-langs.el (c-typedef-kwds c-typedef-key): New lang variable
 +      for "typedef".
 +      (c-typedef-decl-key): New lang variable built from
 +      c-typedef-decl-kwds.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * ibuffer.el (ibuffer-mode-map): Don't redefine the cursor keys,
 +      since that's too annoying.  Move the filter groups commands to
 +      TAB/backtab.
 +
 +      * epa.el (epa-passphrase-callback-function): Say what we're
 +      querying the password for.
 +
 +      * ibuffer.el (ibuffer-visit-buffer): To mimick list-buffers
 +      behaviour, don't bury the ibuffer buffer when visiting other buffers.
 +
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-commands, custom-buffer-create-internal)
 +      (custom-magic-value-create): Pad button tags with spaces.
 +      (custom-face-edit): New variable.
 +      (custom-face-value-create): Determine whether to use the usual
 +      face editor here, instead of using custom-face-selected.
 +      Pass face defaults to custom-face-edit widget.
 +      (custom-face-selected, custom-display-unselected): Delete widgets.
 +      (custom-display-unselected-match): Function removed.
 +      (custom-face-set, custom-face-mark-to-save):
 +      Accept custom-face-edit widgets as the direct widget child.
 +
 +      * wid-edit.el (widget--completing-widget): New var.
 +      (widget-default-complete): Bind it when doing completion.
 +      (widget-string-complete, widget-file-complete): Use it.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah)
 +      (holiday-hebrew-passover, holiday-hebrew-tisha-b-av)
 +      (holiday-hebrew-misc): Small simplifications.
 +
 +      * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c.
 +
 +      * net/browse-url.el: Don't require thingatpt, term, dired,
 +      executable, or w3-auto when compiling.
 +      (dired-get-filename, term-char-mode, term-send-down, term-send-string):
 +      Declare.
 +      (browse-url-text-emacs): Require term.
 +
 +2010-10-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh.
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/.
 +
 +      * emacs-lisp/shadow.el (lisp-shadow): Change prefix.
 +      (shadows-compare-text-p): Make it an obsolete alias for...
 +      (load-path-shadows-compare-text): ... new name.
 +      (find-emacs-lisp-shadows): Update for above name change.
 +      (load-path-shadows-same-file-or-nonexistent): New name for the old
 +      shadow-same-file-or-nonexistent.
 +
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuffer.el (completion--some, completion--do-completion)
 +      (minibuffer-complete-and-exit, minibuffer-completion-help)
 +      (completion-basic-try-completion)
 +      (completion-basic-all-completions)
 +      (completion-pcm--find-all-completions): Use lexical-let to
 +      avoid some false matches in variable completion (Bug#7056)
 +
 +2010-10-08  Olof Ohlsson Sax  <olof.ohlsson.sax@gmail.com>  (tiny change)
 +
 +      * vc-svn.el (vc-svn-merge-news): Use --non-interactive.  (Bug#7152)
 +
 +2010-10-08  Leo  <sdl.web@gmail.com>
 +
 +      * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only
 +      return non-nil if the file exists (Bug#7090).
 +
 +2010-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--replace):
 +      Better preserve markers (bug#7138).
 +
 +2010-10-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-process-filter): Doc fix.
 +
 +2010-10-08  Drew Adams  <drew.adams@oracle.com>
 +
 +      * dired.el (dired-save-positions): Doc fix.  (Bug#7119)
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/ediff-wind.el (ediff-setup-control-frame):
 +      * vc/ediff-ptch.el (ediff-default-backup-extension):
 +      * vc/ediff-diff.el (ediff-shell, ediff-diff-options)
 +      (ediff-exec-process): Remove system-types emx, windows-95.
 +
 +      * net/browse-url.el (browse-url-xdg-open): Shell-quote url.  (Bug#7166)
 +
 +2010-10-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-variable, custom-face): Doc fix.
 +      (custom-face-edit): Add value-create attribute.
 +      (custom-face-edit-value-create)
 +      (custom-face-edit-value-visibility-action): New functions.
 +      Hide unused face attributes by default, and add a visibility toggle.
 +      (custom-face-edit-deactivate): Show empty values with shadow face.
 +      (custom-face-selected): Only use this for face specs with default
 +      attributes.
 +      (custom-face-value-create): Cleanup.
 +
 +      * wid-edit.el (widget-checklist-value-create): Use dolist.
 +      (widget-checklist-match-find): Make second arg optional.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * hilit-chg.el (hilit-chg-get-diff-info, hilit-chg-get-diff-list-hk):
 +      Prefix things.
 +
 +      * emacs-lisp/shadow.el (shadow-font-lock-keywords)
 +      (load-path-shadows-mode, list-load-path-shadows): Rename shadow-mode to
 +      load-path-shadows-mode, update references.
 +      (load-path-shadows-font-lock-keywords, load-path-shadows-find-file):
 +      Rename variable and button.
 +      (list-load-path-shadows): Update button caller.
 +
 +2010-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-bnf-classify): New function.
 +      (smie-bnf-precedence-table): Use it to remember the closers/openers.
 +      (smie-merge-prec2s): Handle those new entries.
 +      (smie-prec2-levels): Only set precedence to nil for actual
 +      openers/closers.
 +      * progmodes/octave-mod.el (octave-smie-op-levels): Remove dummy entry
 +      that is now unnecessary.
 +
 +2010-10-07  Miles Bader  <miles@gnu.org>
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt): Add `symbols' mode.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/rmail.el (mail-sendmail-delimit-header, mail-header-end)
 +      (mail-position-on-field): Remove declarations.
 +      (mail-position-on-field): Autoload it.
 +      (rmail-retry-failure): Replace use of mail-sendmail-delimit-header
 +      and mail-header-end.  Don't require sendmail.
 +
 +      * emacs-lisp/shadow.el (shadow-font-lock-keywords): New variable.
 +      (shadow-mode): New mode.
 +      (shadow-find-file): New button.
 +      (list-load-path-shadows): Use shadow-mode and buttons.
 +
 +      * iimage.el (iimage-version): Remove.
 +      (iimage-mode-image-search-path, iimage-mode-image-regex-alist):
 +      Turn into defcustoms.
 +      (iimage-mode-map): Give it a doc string.
 +
 +      * calendar/appt.el (appt-activate): Give a warning rather than an error
 +      if there is no diary-file.
 +
 +2010-10-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-sh-file-name-handler-alist):
 +      Use `tramp-handle-find-backup-file-name'.
 +
 +2010-10-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * font-core.el (font-lock-defaults-alist): Remove variable.
 +      (font-lock-mode): Doc fix.
 +      (font-lock-default-function): Do not consult font-lock-defaults-alist.
 +      * font-lock.el (font-lock-refresh-defaults): Doc fix.
 +      (font-lock-set-defaults): Doc fix.
 +      Do not consult font-lock-defaults-alist.
 +
 +      * hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler.
 +
 +      * emacs-lisp/cl.el: No longer provide cl-19.
 +
 +2010-10-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-directory-files-and-attributes)
 +      (tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p):
 +      New defuns, taken from tramp-smb.el.
 +      (tramp-coding-system-change-eol-conversion)
 +      (tramp-set-process-query-on-exit-flag): Remove.
 +
 +      * net/tramp-compat.el (top): Do not check for byte-compiler objects.
 +      (tramp-compat-coding-system-change-eol-conversion)
 +      (tramp-compat-set-process-query-on-exit-flag): New defuns, taken
 +      from tramp.el.
 +
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag'
 +      by `tramp-compat-set-process-query-on-exit-flag'.
 +
 +      * net/tramp-imap.el (tramp-imap-file-name-handler-alist):
 +      Use `tramp-handle-directory-files-and-attributes',
 +      `tramp-handle-file-exists-p' and
 +      `tramp-handle-file-newer-than-file-p'.
 +      (tramp-imap-handle-file-exists-p)
 +      (tramp-imap-handle-file-executable-p)
 +      (tramp-imap-handle-file-readable-p)
 +      (tramp-imap-handle-directory-files-and-attributes)
 +      (tramp-imap-handle-file-newer-than-file-p): Remove.
 +
 +      * net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag'
 +      by `tramp-compat-set-process-query-on-exit-flag' and
 +      `tramp-coding-system-change-eol-conversion' by
 +      `tramp-compat-coding-system-change-eol-conversion'.
 +
 +      * net/tramp-smb.el (tramp-smb-file-name-handler-alist):
 +      Use `tramp-handle-directory-files-and-attributes',
 +      `tramp-handle-file-exists-p' and
 +      `tramp-handle-file-newer-than-file-p'.
 +      (tramp-smb-handle-directory-files-and-attributes)
 +      (tramp-smb-handle-file-exists-p)
 +      (tramp-smb-handle-file-newer-than-file-p): Remove.
 +      (tramp-smb-maybe-open-connection):
 +      Replace `tramp-set-process-query-on-exit-flag' by
 +      `tramp-compat-set-process-query-on-exit-flag'.
 +
 +2010-10-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/rnews.el, obsolete/rnewspost.el: Remove files.
 +
 +2010-10-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Continue reorganization of load dependencies.  (Bug#7156)
 +
 +      * net/tramp.el (tramp-handle-file-local-copy-hook)
 +      (tramp-delete-temp-file-function): Move down.
 +      (tramp-exists-file-name-handler): Move up.
 +      (tramp-register-file-name-handlers): Simplify autoload.
 +      (tramp-handle-write-region-hook, tramp-handle-directory-file-name)
 +      (tramp-handle-directory-files, tramp-handle-dired-uncache)
 +      (tramp-handle-file-modes, tramp-handle-file-name-as-directory)
 +      (tramp-handle-file-name-completion)
 +      (tramp-handle-file-name-directory)
 +      (tramp-handle-file-name-nondirectory, tramp-handle-file-regular-p)
 +      (tramp-handle-file-remote-p, tramp-handle-file-symlink-p)
 +      (tramp-handle-find-backup-file-name)
 +      (tramp-handle-insert-file-contents, tramp-handle-load)
 +      (tramp-handle-substitute-in-file-name)
 +      (tramp-handle-unhandled-file-name-directory)
 +      (tramp-mode-string-to-int, tramp-local-host-p)
 +      (tramp-make-tramp-temp-file): Move from tramp-sh.el.
 +
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-smb.el (top): Do not require 'tramp-sh.
 +
 +      * net/tramp-sh.el (all): Move several objects to tramp.el, see
 +      there.  Rename `tramp-handle-*' to `tramp-sh-handle-*'.
 +
 +2010-10-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-add): Ensure reminders are enabled.
 +      (appt-activate): Give status messages.
 +
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el: Improve docs.  Remove starttls and ssl emulation.
 +      Provide only `open-gnutls-stream' (formerly `open-ssl-stream') and
 +      `gnutls-negotiate' (formerly `starttls-negotiate').
 +      Remove trivial wrapper `starttls-open-stream'.
 +
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Make 'g' (AKA revert-buffer) rerun the VC log, log-incoming and
 +      log-outgoing commands.
 +      * vc/vc.el (vc-log-internal-common): Add a new argument and use it
 +      to create a buffer local revert-buffer-function variable.
 +      (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a
 +      revert-buffer-function lambda.
 +
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el (starttls-negotiate): Use the plist interface to
 +      `gnutls-boot'.  Make TYPE the only required parameter.
 +      Allow TRUSTFILES and KEYFILES to be lists.
 +      (open-ssl-stream): Use it.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (directory-sep-char): Remove obsolete variable.
 +      * net/tramp-compat.el: Don't mess about with the byte-compiler unless
 +      it is "necessary".
 +
 +      * vc/vc-hooks.el (vc-header-alist): Remove obsolete variable.
 +      * vc/vc.el (vc-static-header-alist): Doc fix.
 +      * vc/vc-cvs.el (vc-cvs-header):
 +      * vc/vc-rcs.el (vc-rcs-header):
 +      * vc/vc-sccs.el (vc-sccs-header):
 +      * vc/vc-svn.el (vc-svn-header): Do not consult vc-header-alist.
 +      * obsolete/vc-mcvs.el (vc-mcvs-header):
 +      * progmodes/cperl-mode.el (cperl-mode): Only set vc-header-alist
 +      on XEmacs.
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-from-buffer):
 +      Remove obsolete use of binary-overwrite-mode (Bug#7001).
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/x-menu.el: Remove file, obsolete since 21.1
 +
 +      * textmodes/rst.el (rst-font-lock-keywords-function):
 +      Drop Emacs 20 code.
 +
 +      * textmodes/artist.el (artist-replace-char): Drop Emacs 20 code.
 +
 +      * printing.el: Drop Emacs 20 code.
 +
 +      * calendar/appt.el (appt-delete): Don't autoload it (you can't use it
 +      without having used appt.el already).
 +
 +      * subr.el (make-local-hook): Remove function obsolete since 21.1.
 +      * progmodes/cc-mode.el (make-local-hook): Don't do cc-bytecomp stuff.
 +      (c-basic-common-init, c-font-lock-init): Only call make-local-hook on
 +      XEmacs.
 +      * progmodes/cc-styles.el (make-local-hook): Don't do cc-bytecomp stuff.
 +      (c-make-styles-buffer-local): Only call make-local-hook on XEmacs.
 +
 +      * ps-def.el (leading-code-private-22, charset-bytes, charset-id)
 +      (charset-width, find-charset-region, chars-in-region, forward-point)
 +      (encode-coding-string, coding-system-p, ccl-execute-on-string)
 +      (define-ccl-program, multibyte-string-p, string-make-multibyte):
 +      Remove compatibility cruft (none of these are used by ps*.el).
 +
 +2010-10-03  Kevin Rodgers  <kevin.d.rodgers@gmail.com>
 +
 +      * subr.el (booleanp): Return t instead of a list (Bug#7086).
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * server.el (server-process-filter, server-return-error):
 +      Give emacsclient time to shut down after receiving an error string.
 +
 +2010-10-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.el (remote-file-name-inhibit-cache): New defcustom.
 +
 +      * time.el (display-time-file-nonempty-p):
 +      Use `remote-file-name-inhibit-cache'.
 +
 +      * net/tramp.el (tramp-completion-reread-directory-timeout):
 +      Fix docstring.
 +
 +      * net/tramp-cache.el (tramp-cache-inhibit-cache): Remove.
 +      (tramp-get-file-property): Replace `tramp-cache-inhibit-cache' by
 +      `remote-file-name-inhibit-cache'.  Check also for an integer
 +      value.  Add/increase counter when `tramp-verbose' >= 10.
 +      (tramp-set-file-property): Add/increase counter when
 +      `tramp-verbose' >= 10.
 +
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-cleanup-all-buffers): Set tramp-autoload cookie.
 +      (tramp-bug): Set tramp-autoload cookie.  Report all interned
 +      tramp-* variables.  Report also `remote-file-name-inhibit-cache'.
 +      (tramp-reporter-dump-variable): Fix docstring.  Mask non-7bit
 +      characters only in strings.
 +
 +      * net/tramp-compat.el (remote-file-name-inhibit-cache): Define due
 +      to backward compatibility.
 +
 +      * net/tramp-sh.el (tramp-handle-verify-visited-file-modtime)
 +      (tramp-handle-file-name-all-completions)
 +      (tramp-handle-vc-registered): Use `remote-file-name-inhibit-cache'.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Call `tramp-cleanup-connection' directly.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-minor-keymap): Remove obsolete alias.
 +
 +      * subr.el (char-bytes): Remove obsolete function.
 +
 +      * isearch.el (isearch-return-char): Remove obsolete function.
 +
 +      * mouse.el: No longer provide mldrag.
 +      (mldrag-drag-mode-line, mldrag-drag-vertical-line):
 +      Remove obsolete aliases.
 +
 +      * comint.el (comint-kill-output): Remove obsolete alias.
 +
 +      * composite.el (decompose-composite-char): Remove obsolete function.
 +      * ps-def.el (decompose-composite-char): Remove unused function.
 +
 +      * iswitchb.el (iswitchb-default-keybindings): Remove obsolete function.
 +
 +      * outline.el (outline-visible): Remove obsolete function.
 +
 +      * term/pc-win.el (x-frob-font-slant, x-frob-font-weight):
 +      * faces.el (internal-find-face, internal-get-face)
 +      (frame-update-faces, frame-update-face-colors)
 +      (x-frob-font-weight, x-frob-font-slant)
 +      (internal-frob-font-weight, internal-frob-font-slant)
 +      (x-make-font-bold, x-make-font-demibold, x-make-font-unbold)
 +      (x-make-font-italic, x-make-font-oblique, x-make-font-unitalic)
 +      (x-make-font-bold-italic): Remove functions and aliases, obsolete
 +      since Emacs 21.1.
 +      * emulation/viper-util.el (viper-get-face):
 +      * obsolete/lucid.el (find-face, get-face): Use facep.
 +      * vc/ediff-init.el (ediff-valid-color-p, ediff-get-face):
 +      Remove unused functions.
 +      * vc/ediff-util.el (ediff-submit-report): Doc fix.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file): Use kill-emacs-hook to
 +      delete tempfile if interrupted during compilation.
 +
 +2010-10-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-starttls-switches): Give up on using starttls with
 +      gnutls-cli.
 +      (tls-program): Add --insecure to be consistent with the defaults from
 +      openssl s_client.  Now all three commands are insecure.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (DEST, TAGS, TAGS-LISP, TAGS-nmake)
 +      (TAGS-LISP-nmake, TAGS-gmake, TAGS-LISP-gmake, TAGS-SH)
 +      (TAGS-LISP-SH, TAGS-CMD, TAGS-LISP-CMD): New targets.
 +
 +2010-10-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/sc.el: Remove file.
 +
 +      * files.el (temporary-file-directory): On darwin, also try
 +      DARWIN_USER_TEMP_DIR (see discussion in bug#7135).
 +
 +2010-10-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Revert part of 2010-09-30T02:53:26Z!lekktu@gmail.com.
 +      Let's not break compatibility gratuitously, shall we?
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-starttls-switches): New variable.
 +      (tls-find-starttls-argument): Use it.
 +      (open-tls-stream): Ditto.
 +
 +      * net/netrc.el (netrc-credentials): Return the value of the "default"
 +      entry.
 +      (netrc-machine): Ditto.
 +
 +2010-09-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
 +
 +2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Don't write pid to the authentication file.
 +      (server-create-tty-frame): Don't send pid.
 +      (server-process-filter): Send pid at the start of every connection.
 +
 +2010-09-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (view-diary-entries, list-diary-entries)
 +      (show-all-diary-entries): Remove obsolete function aliases.
 +
 +      * calendar/appt.el (appt-issue-message, appt-visible, appt-msg-window):
 +      Remove options, obsolete since 22.1.
 +      (appt-display-format, appt-display-message):
 +      Remove backwards-compatibility code.
 +      (appt-check): No longer check appt-issue-message.
 +      (appt-make-list): No longer autoload it.  Doc fix.  No longer
 +      activate the package.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Loop a lot longer.
 +      (starttls-negotiate): Just call boot, and let the handshake be
 +      triggered from the read loop.
 +
 +2010-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-list-entries): Use temp buffers when
 +      not displaying the diary.
 +      (diary-add-to-list): If no buffer-file-name, fall back to diary-file.
 +      * calendar/appt.el (appt-check): No longer need to kill diary.
 +
 +      * calendar/diary-lib.el (diary-list-entries): Move the
 +      "Preparing..." message entirely here.
 +      (diary-simple-display, diary-fancy-display): Move "Preparing..."
 +      messages to diary-list-entries.
 +      (diary-include-other-diary-files): Use LIST-ONLY rather than setting
 +      diary-display-function.
 +
 +      * calendar/diary-lib.el (diary-include-other-diary-files):
 +      Trap some recursive includes.
 +
 +      * calendar/appt.el (appt-activate): Check diary file.
 +
 +2010-09-29  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * pgg.el (pgg-run-at-time-1): Define it for XEmacs only; fix if/else
 +      construction.
 +
 +      * calendar/time-date.el: No need to require cl for Emacs 21.
 +
 +2010-09-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-check): Minor simplification.
 +
 +2010-09-28  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/sendmail.el (mail-citation-prefix-regexp): Remove "}" from
 +      citation prefix.
 +
 +2010-09-27  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
 +      Avoid infinite recursion on erroneous lambda form.  (Bug#7114)
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * tar-mode.el (tar-header-block-tokenize): Decode filenames in
 +      "ustar" format.
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (define-coding-system): Docstring fixed.
 +
 +      * international/mule-diag.el (describe-character-set): Use princ
 +      with proper print-length and print-level instead of insert.
 +
 +2010-09-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * window.el (walk-windows): Doc fix (bug#7105).
 +
 +2010-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/float-sup.el (e): Remove.
 +
 +2010-09-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el (gnutls, gnutls-log-level): Add group and custom
 +      variable.
 +      (starttls-negotiate): Use it.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Stop looping when we get a t
 +      back.
 +
 +2010-09-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Avoid the cl.el decf function.
 +
 +      * net/netrc.el (netrc-store-data): New function.
 +
 +2010-09-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el: GnuTLS glue code to set up a connection.
 +
 +2010-09-25  Julien Danjou  <julien@danjou.info>
 +
 +      * notifications.el: Call dbus-register-signal only if it is bound.
 +
 +2010-09-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * eshell/em-alias.el, eshell/em-banner.el, eshell/em-basic.el:
 +      * eshell/em-cmpl.el, eshell/em-dirs.el, eshell/em-glob.el:
 +      * eshell/em-hist.el, eshell/em-ls.el, eshell/em-pred.el:
 +      * eshell/em-prompt.el, eshell/em-rebind.el, eshell/em-script.el:
 +      * eshell/em-smart.el, eshell/em-term.el, eshell/em-unix.el:
 +      * eshell/esh-cmd.el, eshell/esh-ext.el, eshell/esh-io.el:
 +      * eshell/esh-mode.el, eshell/esh-proc.el, eshell/esh-test.el:
 +      * eshell/esh-util.el, eshell/esh-var.el:
 +      Remove leading `*' from docs of faces and defcustoms.
 +
 +2010-09-25  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * eshell/em-ls.el (eshell-ls-archive-regexp):
 +      * eshell/esh-util.el (eshell-tar-regexp):
 +      * ibuffer.el (ibuffer-compressed-file-name-regexp):
 +      * info.el (Info-suffix-list):
 +      * international/mule.el (auto-coding-alist):
 +      * woman.el (woman-file-regexp, woman-file-compression-regexp):
 +      * progmodes/etags.el (tags-compression-info-list):
 +      Support xz compression.
 +
 +2010-09-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.el (get-free-disk-space): Don't assume the "df" output
 +      columns line up (Bug#6995).
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * finder.el (finder-unknown-keywords):
 +      * progmodes/gdb-mi.el (gdb-jsonify-buffer, gdb-running-threads-count):
 +      * progmodes/etags.el (tags-table-including): Fix typos in docstrings.
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Revert part of 2010-08-08 change.  Using
 +      address 127.0.0.1 for local host is now done in Fmake_network_process.
 +
 +2010-09-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * image-mode.el, progmodes/compile.el, progmodes/gud.el:
 +      * progmodes/mixal-mode.el, textmodes/bibtex-style.el:
 +      * textmodes/css-mode.el, textmodes/dns-mode.el:
 +      Move autoloaded auto-mode-alist entries to files.el.
 +      * files.el (auto-mode-alist): Move entries here.
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * isearch.el (isearch-lazy-highlight-cleanup)
 +      (isearch-lazy-highlight-initial-delay)
 +      (isearch-lazy-highlight-interval)
 +      (isearch-lazy-highlight-max-at-a-time, isearch-lazy-highlight-face):
 +      * net/net-utils.el (ipconfig-program-options):
 +      Move aliases to options before the associated definitions.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * newcomment.el (comment-normalize-vars): Better test validity of
 +      comment-end-skip.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/float-sup.el (float-pi): New name for `pi'.
 +      (float-e): New name for `e'.
 +      (degrees-to-radians, radians-to-degrees):
 +      * calendar/solar.el (solar-longitude):
 +      * calculator.el (calculator-registers, calculator-funcall):
 +      * textmodes/artist.el (artist-spray-random-points):
 +      * play/bubbles.el (bubbles--initialize-images): Use new names.
 +
 +2010-09-23  Eric M. Ludlam  <zappo@gnu.org>
 +
 +      Update to CEDET 1.0's version of EIEIO.
 +
 +      * emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key):
 +      New function.
 +      (eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
 +      (eieio-default-eval-maybe): Eval val instead of unquoting only.
 +      (class-precedence-list): If class is nil, return nil.
 +      (eieio-generic-call): If class of first input arg is nil, don't
 +      look up static methods, and do check for primary methods.
 +      (initialize-instance): See if the default needs to be evaluated
 +      during the constructor.
 +      (eieio-perform-slot-validation-for-default): Don't do the check
 +      for values that will eventually be evaluated.
 +      (eieio-eval-default-p): New function.
 +      (eieio-default-eval-maybe): Use it.
 +
 +2010-09-23  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
 +      method-invocation-order.
 +      (eieio-c3-candidate, eieio-c3-merge-lists): New functions.
 +      (eieio-class-precedence-dfs): Compute class precedence list using
 +      dfs algorithm.
 +      (eieio-class-precedence-bfs): Compute class precedence list using
 +      bfs algorithm.
 +      (eieio-class-precedence-c3): Compute class precedence list using
 +      c3 algorithm.
 +      (class-precedence-list): New function.
 +      (eieiomt-method-list, eieiomt-sym-optimize): Use it.
 +      (inconsistent-class-hierarchy): New error symbol.
 +      (call-next-method): Stow the replacement argument list for future
 +      call-next-method invocations.
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-check): If not displaying the diary,
 +      use (diary 1) to only get the entries we need.
 +      (appt-make-list): Sort diary-list-entries, if we cannot guarantee
 +      that it is in day order.  (Bug#7019)
 +
 +      * calendar/appt.el (appt-check): Rather than showing the diary,
 +      just turn off invisible display, and only if needed.
 +
 +      * calendar/diary-lib.el (diary-list-entries): Doc fix.  (Bug#7019)
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar):
 +      (byte-compile-defvar, byte-compile-cl-warn):
 +      Start warnings with lower-case, like the majority.
 +
 +      * files.el (auto-mode-alist): Add .xa, .xw, .xsw for ld-script-mode.
 +
 +      * files.el (auto-mode-alist): Prefer C-mode for .xs.  (Bug#7071)
 +
 +      * progmodes/ld-script.el (auto-mode-alist): Move to files.el.
 +      * files.el (auto-mode-alist): Move ld-script entries here, further down
 +      the list.
 +
 +      * vc/add-log.el: Don't require timezone when compiling.
 +      (timezone-make-date-sortable): Autoload it.
 +      (change-log-sortable-date-at): Don't require timezone.
 +      Use `ignore-errors'.
 +
 +      * comint.el (comint-use-prompt-regexp-instead-of-fields):
 +      Move alias before definition, so it does not need autoloading.
 +
 +      * emulation/crisp.el, emulation/cua-base.el, emulation/edt.el:
 +      * emulation/pc-select.el, emulation/vip.el, international/iso-ascii.el:
 +      * international/kkc.el, international/ogonek.el, mail/feedmail.el:
 +      * net/browse-url.el, net/eudc-vars.el, net/net-utils.el:
 +      * net/rcompile.el, net/rlogin.el, textmodes/enriched.el:
 +      * textmodes/makeinfo.el, textmodes/page-ext.el, textmodes/picture.el:
 +      * textmodes/refer.el, textmodes/spell.el, textmodes/table.el:
 +      * textmodes/tex-mode.el, textmodes/two-column.el:
 +      Remove leading `*' from docs of defcustoms etc.
 +
 +2010-09-23  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/netrc.el (netrc-parse): Remove encrypt.el mentions.
 +
 +2010-09-22  Dan Christensen  <jdc@uwo.ca>
 +
 +      * calendar/time-date.el (date-to-time): Try using parse-time-string
 +      first before using the slower timezone-make-date-arpa-standard.
 +
 +2010-09-22  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * calendar/time-date.el (format-seconds): Comment fix.
 +
 +2010-09-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/package.el (package-menu-mode): `revert-buffer-function'
 +      is not automatically buffer-local.
 +
 +2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo.
 +      (smie-indent-comment): Be more careful with comment-start-skip.
 +      (smie-indent-comment-close, smie-indent-comment-inside): New funs.
 +      (smie-indent-functions): Use them.
 +
 +2010-09-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/ange-ftp.el (ange-ftp-skip-msgs): Add "^504 ..." message.
 +
 +2010-09-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): customize-set-variable
 +      tool-bar-position.  Don't modify frame parameters here.
 +      (menu-bar-options-save): Add tool-bar-position.
 +
 +      * tool-bar.el (tool-bar-position): New defcustom (Bug#7049).
 +
 +2010-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/reftex-parse.el (reftex-what-macro)
 +      (reftex-context-substring): Let-bind forward-sexp-function to nil
 +      since we don't need/want to treat \begin...\end as a block (bug#7053).
 +
 +      * emacs-lisp/lisp.el (up-list): Don't do nothing silently.
 +
 +      * simple.el (blink-matching-open): Use syntax-class.
 +
 +      * progmodes/pascal.el (pascal-mode): Use define-derived-mode.
 +      Set invisibility spec for pascal's outline mode.
 +      (pascal-outline-change): Clean up calling convention.
 +      (pascal-show-all, pascal-hide-other-defuns): Update callers.
 +
 +      * progmodes/prolog.el (prolog-smie-forward-token)
 +      (prolog-smie-backward-token): New functions.
 +      (prolog-mode-variables): Use them to parse "!," correctly.
 +      Set up smie-blink-matching for ".".
 +
 +      * textmodes/ispell.el (ispell-start, ispell-end): Rename from `start'
 +      and `end'.
 +      (ispell-region, ispell-process-line): Update users.
 +
 +      * textmodes/reftex-parse.el (reftex-what-macro): Don't hardcode
 +      point-min==1.
 +
 +      * textmodes/ispell.el: Fix commenting convention.
 +      (ispell-parse-output): Simplify, use push.
 +      (ispell-region): Use match-string-no-properties.
 +      (ispell-begin-skip-region-regexp): Use mapconcat to simplify.
 +      (ispell-minor-mode): Use define-minor-mode.
 +      (ispell-message): Remove unused var `skip-regexp'.
 +      (ispell-add-per-file-word-list): Use dynamic let-binding.
 +      Try and use the proper comment marker.
 +
 +      * mail/sendmail.el: Fix commenting convention.
 +      (sendmail-send-it): Use line-beginning-position.
 +
 +      * help-fns.el (describe-variable): Add original value, if applicable.
 +
 +2010-09-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (y-or-n-p): Remove leftover code from 2010-09-17T13:30:30Z!monnier@iro.umontreal.ca.
 +
 +      * emacs-lisp/smie.el (smie-indent--hanging-p): Use `smie-indent--bolp'.
 +
 +2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-bnf-precedence-table): Improve error message.
 +      (smie-debug--prec2-cycle, smie-debug--describe-cycle): New functions.
 +      (smie-prec2-levels): Use them to better diagnose precedence cycles.
 +      (smie-blink-matching-check): Don't signal a mismatch if car is t.
 +      (smie-blink-matching-open): Rewrite to remove assumptions, so that
 +      something like "." can also be a closer.
 +      (smie--associative-p, smie-indent--hanging-p, smie-indent--bolp)
 +      (smie-indent--offset, smie-indent--offset-rule, smie-indent--column):
 +      Rename internal functions to use "--".  Update callers.
 +
 +      * frame.el (make-frame-names-alist): Don't list frames on other displays.
 +
 +      * fringe.el (fringe-styles): New var.
 +      (fringe-mode, fringe-query-style): Use it.
 +
 +2010-09-18  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.8
 +      (sql-login-params): Update widget structure; changes still needed.
 +      (sql-product-alist): Add :list-all and :list-table features for
 +      SQLite, Postgres and MySQL products.
 +      (sql-redirect): Handle default value.
 +      (sql-execute, sql-execute-feature): New functions.
 +      (sql-read-table-name): New function.
 +      (sql-list-all, sql-list-table): New functions.  User API.
 +      (sql-mode-map, sql-interactive-mode-map): Add key definitions
 +      for above functions.
 +      (sql-mode-menu, sql-interactive-mode-menu): Add menu definitions
 +      for above functions.
 +      (sql-postgres-login-params): Add user and database defaults.
 +      (sql-buffer-live-p): Bug fix.
 +      (sql-product-history): New variable.
 +      (sql-read-product): New function. Use it.
 +      (sql-set-product, sql-product-interactive): Use it.
 +      (sql-connection-history): New variable.
 +      (sql-read-connection): New function.  Use it.
 +      (sql-connect): New function.
 +      (sql-for-each-login): Redesign function interface.
 +      (sql-make-alternate-buffer-name, sql-save-connection): Use it.
 +      (sql-get-login-ext, sql-get-login): Use it.  Handle default values.
 +      (sql-comint): Check for program.  Existing live buffer.
 +      (sql-comint-postgres): Add port parameter.
 +
 +2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/warnings.el: Fix commenting convention.
 +      (display-warning): Use special mode and make the buffer read-only.
 +
 +2010-09-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-prog.el (calc-read-parse-table-part): Don't "fix" the
 +      empty string when it follows a repeated or optional pattern.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * indent.el (indent-according-to-mode): Apply syntax-propertize.
 +      (indent-region): Use indent-according-to-mode.
 +
 +2010-09-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.el (fringe-mode): Doc fix.
 +
 +2010-09-14  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
 +
 +      * textmodes/nroff-mode.el (nroff-view): Kill old buffer before
 +      refreshing the preview buffer.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el (tex-syntax-propertize-rules)
 +      (latex-syntax-propertize-rules): New consts; replace
 +      tex-font-lock-syntactic-keywords.
 +      (tex-env-mark, latex-env-before-change): New functions.
 +      (latex-electric-env-pair-mode): New minor mode.
 +      (tex-font-lock-verb): Change arguments; do move point.
 +      (tex-font-lock-syntactic-face-function): Adjust to new verbatim
 +      representation as a form of comment.
 +      (tex-font-lock-keywords-1): Remove workaround, now unneeded.
 +      (doctex-syntax-propertize-rules): New const; replaces
 +      doctex-font-lock-syntactic-keywords.
 +      (tex-common-initialization, doctex-mode): Use syntax-propertize-rules.
 +
 +      * progmodes/fortran.el (fortran--font-lock-syntactic-keywords): Remove.
 +      (fortran-make-syntax-propertize-function): New function; replaces
 +      fortran-font-lock-syntactic-keywords.
 +      (fortran-mode): Use it.
 +      (fortran-line-length): Use it.  Improve interactive spec.
 +
 +      * emacs-lisp/syntax.el (syntax-propertize-precompile-rules): New macro.
 +      (syntax-propertize-rules): Add var-ref case.  Fix offset computation
 +      when adding surrounding \(..\).
 +
 +      * progmodes/js.el (js-mode): Fix last change (bug#7054).
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * obsolete/old-whitespace.el (whitespace-rescan-files-in-buffers):
 +      Use with-current-buffer.
 +
 +      * isearch.el (isearch-face): Rename from `isearch'.
 +      (isearch-highlight): Use new name.
 +
 +2010-09-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.el (fringe-mode, fringe-query-style): Use 4 pixels, not
 +      5, for `half' width fringes.  (Bug#6933)
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar)
 +      (byte-compile-defvar): "foo/bar" does not lack a prefix.
 +
 +      * subr.el (y-or-n-p): Add the "(y or n)" that was lost somehow.
 +
 +2010-09-17  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * dframe.el (dframe-reposition-frame-emacs): Use tool-bar-pixel-width
 +      in calculating new frame position.  Add more space between new and
 +      parent on the left (Bug#7048).
 +
 +2010-09-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-with-temp-message): Make it a
 +      defmacro.
 +
 +2010-09-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mail/sendmail.el: Add "*unsent mail*" to same-window-buffer-names.
 +
 +      * term/x-win.el (x-cut-buffer-or-selection-value): Define as
 +      obsolete alias for x-selection-value.
 +
 +      * ido.el (ido-make-buffer-list): Fix error in 2010-08-22 merge.
 +
 +2010-09-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-cmds.el (tramp-cleanup-connection): Set tramp-autoload
 +      cookie.
 +
 +2010-09-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-with-temp-message)
 +      (tramp-compat-font-lock-add-keywords, tramp-compat-process-get)
 +      (tramp-compat-process-put): New defuns.
 +
 +      * net/tramp.el (top):
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-cache.el (top): Use `tramp-compat-font-lock-add-keywords'.
 +
 +      * net/tramp.el (tramp-progress-reporter-update):
 +      Use `tramp-compat-funcall'.
 +
 +      * net/tramp.el (tramp-process-actions):
 +      * net/tramp-gvfs.el (tramp-handle-vc-registered):
 +      * net/tramp-sh.el (tramp-gvfs-handler-askquestion)
 +      (tramp-get-remote-stat, tramp-get-remote-readlink):
 +      Use `tramp-compat-with-temp-message'.
 +
 +      * net/tramp-sh.el (top): Require 'cl.
 +      (tramp-handle-start-file-process): Use `tramp-compat-process-get'.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Use `tramp-compat-process-put'.
 +
 +2010-09-15  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Correct the
 +      indentation.
 +      (c-forward-<>-arglist-recur): Fix an infinite recursion.
 +
 +2010-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-warning-types): New type
 +      `lexical' for warnings related to lexical scoping.
 +      (byte-compile-file-form-defvar, byte-compile-defvar): Warn about
 +      global vars which don't have a prefix and could hence affect lexical
 +      scoping in unrelated files.
 +
 +2010-09-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el: Revert back to version
 +      cb950ed8ff3e0f40dac437a51b269166f9ffb60d, since some of the changes
 +      seem problematic.
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * obsolete/old-whitespace.el (whitespace-unload-function):
 +      Explicitly pass `obarray' to `unintern' to avoid a warning.
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/byte-run.el (set-advertised-calling-convention):
 +      Add `when' argument.  Update callers.
 +
 +      * subr.el (unintern): Declare the obarray arg mandatory.
 +
 +2010-09-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-list-entries-hook, diary-sort-entries):
 +      Doc fixes.
 +
 +      * calendar/diary-lib.el (diary-included-files): New variable.
 +      (diary-list-entries): Maybe initialize diary-included-files.
 +      (diary-include-other-diary-files): Append to diary-included-files.
 +      * calendar/appt.el (appt-update-list): Also check the members of
 +      diary-included-files.  (Bug#6999)
 +      (appt-check): Doc fix.
 +
 +2010-09-14  David Reitter  <david.reitter@gmail.com>
 +
 +      * simple.el (line-move-visual): Do not truncate goal column to
 +      integer size.  (Bug#7020)
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * repeat.el (repeat): Allow repeating when the last event is a click.
 +      Suggested by Drew Adams (bug#6256).
 +
 +2010-09-14  Sascha Wilde  <wilde@sha-bang.de>
 +
 +      * vc/vc-hg.el (vc-hg-state,vc-hg-working-revision):
 +      Replace setting HGRCPATH to "" by some less invasive --config options.
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * font-lock.el (font-lock-beginning-of-syntax-function):
 +      Mark as obsolete.
 +
 +2010-09-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-options-save): Fix handling of menu-bar
 +      and tool-bar modes.  (Bug#6211)
 +      (menu-bar-mode): Move setting of standard-value after the
 +      minor-mode definition, otherwise it seems to have no effect.
 +
 +2010-09-14  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords):
 +      Fix typo.  (Bug#6976)
 +
 +2010-09-14  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Allow cleaning up blanks without blank
 +      visualization (Bug#6651).  Adjust help window for
 +      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 +      instead of whitespace-line-column (from EmacsWiki).  New version 13.1.
 +      (whitespace-style): Add new value 'face.  Adjust docstring.
 +      (whitespace-space, whitespace-hspace, whitespace-tab):
 +      Adjust foreground property face.
 +      (whitespace-line-column): Adjust docstring and type declaration.
 +      (whitespace-style-value-list, whitespace-toggle-option-alist)
 +      (whitespace-help-text): Adjust const initialization.
 +      (whitespace-toggle-options, global-whitespace-toggle-options):
 +      Adjust docstring.
 +      (whitespace-display-window, whitespace-interactive-char)
 +      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 +      (whitespace-help-scroll): New fun.
 +
 +2010-09-14  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * calendar/time-date.el (format-seconds): Comment fix.
 +
 +2010-09-13  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.7.
 +      (sql-buffer-live-p): Improve detection.
 +      (sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
 +      (sql-set-sqli-buffer): Use it.
 +      (sql-product-interactive): Run `sql-set-sqli-hook'.
 +      (sql-rename-buffer): Code cleanup.
 +      (sql-redirect, sql-redirect-value): New functions.  More to come.
 +
 +2010-09-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Port tramp-related Makefile changes of 2010-09-08T14:42:54Z!michael.albinus@gmx.de, 2010-09-13T15:17:01Z!michael.albinus@gmx.de to Windows.
 +      * makefile.w32-in (LOADDEFS): Add $(lisp)/net/tramp-loaddefs.el.
 +      (TRAMP_SRC): New macro.
 +      ($(lisp)/net/tramp-loaddefs.el): New target.
 +
 +2010-09-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Major code cleanup.  Split tramp.el into tramp.el and tramp-sh.el.
 +
 +      * Makefile.in (TRAMP_SRC): Remove tramp-fish.el.  Add tramp-sh.el.
 +
 +      * net/tramp.el (top): Don't show loading message.  Require just
 +      'tramp-compat, everything else is required there.
 +      Use `ignore-errors' where appropriate.
 +      (tramp-inline-compress-start-size, tramp-copy-size-limit)
 +      (tramp-terminal-type, tramp-end-of-output)
 +      (tramp-initial-end-of-output, tramp-completion-function-alist-rsh)
 +      (tramp-completion-function-alist-ssh)
 +      (tramp-completion-function-alist-telnet)
 +      (tramp-completion-function-alist-su)
 +      (tramp-completion-function-alist-putty, tramp-remote-path)
 +      (tramp-remote-process-environment, tramp-sh-extra-args)
 +      (tramp-actions-before-shell, tramp-uudecode)
 +      (tramp-perl-file-truename, tramp-perl-file-name-all-completions)
 +      (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes)
 +      (tramp-perl-encode-with-module, tramp-perl-decode-with-module)
 +      (tramp-perl-encode, tramp-perl-decode)
 +      (tramp-vc-registered-read-file-names, tramp-file-mode-type-map)
 +      (tramp-file-name-handler-alist, tramp-make-tramp-temp-file)
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-handle-file-name-as-directory)
 +      (tramp-handle-file-name-directory)
 +      (tramp-handle-file-name-nondirectory, tramp-handle-file-truename)
 +      (tramp-handle-file-exists-p, tramp-handle-file-attributes)
 +      (tramp-do-file-attributes-with-ls)
 +      (tramp-do-file-attributes-with-perl)
 +      (tramp-do-file-attributes-with-stat)
 +      (tramp-handle-set-visited-file-modtime)
 +      (tramp-handle-verify-visited-file-modtime)
 +      (tramp-handle-set-file-modes, tramp-handle-set-file-times)
 +      (tramp-set-file-uid-gid, tramp-remote-selinux-p)
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context)
 +      (tramp-handle-file-executable-p, tramp-handle-file-readable-p)
 +      (tramp-handle-file-newer-than-file-p, tramp-handle-file-modes)
 +      (tramp-handle-file-directory-p, tramp-handle-file-regular-p)
 +      (tramp-handle-file-symlink-p, tramp-handle-file-writable-p)
 +      (tramp-handle-file-ownership-preserved-p)
 +      (tramp-handle-directory-file-name, tramp-handle-directory-files)
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-do-directory-files-and-attributes-with-perl)
 +      (tramp-do-directory-files-and-attributes-with-stat)
 +      (tramp-handle-file-name-all-completions)
 +      (tramp-handle-file-name-completion, tramp-handle-add-name-to-file)
 +      (tramp-handle-copy-file, tramp-handle-copy-directory)
 +      (tramp-handle-rename-file, tramp-do-copy-or-rename-file)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-make-directory, tramp-handle-delete-directory)
 +      (tramp-handle-delete-file)
 +      (tramp-handle-dired-recursive-delete-directory)
 +      (tramp-handle-dired-compress-file, tramp-handle-dired-uncache)
 +      (tramp-handle-insert-directory)
 +      (tramp-handle-unhandled-file-name-directory)
 +      (tramp-handle-expand-file-name)
 +      (tramp-handle-substitute-in-file-name)
 +      (tramp-handle-executable-find, tramp-process-sentinel)
 +      (tramp-handle-start-file-process, tramp-handle-process-file)
 +      (tramp-handle-call-process-region, tramp-handle-shell-command)
 +      (tramp-handle-file-local-copy, tramp-handle-file-remote-p)
 +      (tramp-handle-insert-file-contents)
 +      (tramp-handle-insert-file-contents-literally)
 +      (tramp-handle-find-backup-file-name)
 +      (tramp-handle-make-auto-save-file-name, tramp-handle-write-region)
 +      (tramp-vc-registered-file-names, tramp-handle-vc-registered)
 +      (tramp-sh-file-name-handler, tramp-vc-file-name-handler)
 +      (tramp-maybe-send-script, tramp-set-auto-save, tramp-run-test)
 +      (tramp-run-test2, tramp-find-executable, tramp-set-remote-path)
 +      (tramp-find-file-exists-command, tramp-open-shell)
 +      (tramp-find-shell, tramp-barf-if-no-shell-prompt)
 +      (tramp-open-connection-setup-interactive-shell)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands)
 +      (tramp-find-inline-encoding, tramp-call-local-coding-command)
 +      (tramp-inline-compress-commands, tramp-find-inline-compress)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection)
 +      (tramp-send-command, tramp-wait-for-output)
 +      (tramp-send-command-and-check, tramp-barf-unless-okay)
 +      (tramp-send-command-and-read, tramp-mode-string-to-int)
 +      (tramp-convert-file-attributes, tramp-check-cached-permissions)
 +      (tramp-file-mode-from-int, tramp-file-mode-permissions)
 +      (tramp-shell-case-fold, tramp-make-copy-program-file-name)
 +      (tramp-method-out-of-band-p, tramp-local-host-p)
 +      (tramp-get-remote-path, tramp-get-remote-tmpdir)
 +      (tramp-get-ls-command, tramp-get-ls-command-with-dired)
 +      (tramp-get-test-command, tramp-get-test-nt-command)
 +      (tramp-get-file-exists-command, tramp-get-remote-ln)
 +      (tramp-get-remote-perl, tramp-get-remote-stat)
 +      (tramp-get-remote-readlink, tramp-get-remote-trash)
 +      (tramp-get-remote-id, tramp-get-remote-uid, tramp-get-remote-gid)
 +      (tramp-get-local-uid, tramp-get-local-gid)
 +      (tramp-get-inline-compress, tramp-get-inline-coding): Move to
 +      tramp-sh.el.
 +      (tramp-methods, tramp-default-method-alist)
 +      (tramp-default-user-alist, tramp-foreign-file-name-handler-alist):
 +      Move initialization to tramp-sh.el.
 +      (tramp-temp-name-prefix): Make it a defconst.
 +      (tramp-dissect-file-name): Don't check anymore for multi-hop
 +      methods.
 +      (tramp-debug-outline-regexp): Add a docstring.
 +      (tramp-debug-outline-level): Rename from `tramp-outline-level'.
 +      (tramp-get-debug-buffer): Use it.
 +
 +      * net/tramp-cache.el (top): Set tramp-autoload cookie for
 +      initialization forms.
 +      (tramp-set-connection-property): Don't protect `tramp-message'
 +      call, it isn't necessary any longer.
 +      (tramp-dump-connection-properties): Use `ignore-errors'.
 +
 +      * net/tramp-compat.el (top): Require 'advice, 'format-spec,
 +      'password-cache and 'auth-source.
 +
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-smb.el (top): Require 'tramp-sh.
 +
 +      * net/tramp-gw.el (tramp-gw-open-network-stream): Use `ignore-errors'.
 +
 +      * net/tramp-sh.el: New file, derived from tramp.el.
 +      (top): Initialize `tramp-methods', `tramp-default-method-alist',
 +      `tramp-default-user-alist', `tramp-foreign-file-name-handler-alist'.
 +      Remove "scp1_old", "scp2_old", "ssh1_old", "ssh2_old".
 +      Use `ignore-errors' where appropriate.
 +      (tramp-sh-file-name-handler-alist): Rename from
 +      `tramp-file-name-handler-alist'.
 +      (tramp-send-command-and-check): Return t or nil.  Remove all
 +      `zerop' checks, where called.
 +      (tramp-handle-set-file-modes)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-handle-delete-directory, tramp-handle-delete-file)
 +      (tramp-maybe-send-script): Use `tramp-barf-unless-okay'.
 +      (tramp-sh-file-name-handler, tramp-send-command-and-check)
 +      (tramp-get-remote-ln): Set tramp-autoload cookie.
 +
 +      * net/tramp-fish.el: Remove file.
 +
 +2010-09-13  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-insert-file-contents): If visiting, bind
 +      buffer-file-name to avoid file-locking.  (Bug#7026)
 +
 +2010-09-13  Julien Danjou  <julien@danjou.info>
 +
 +      * notifications.el (notifications-notify): Add support for
 +      image-path and sound-name.
 +      (notifications-specification-version): Add this variable.
 +
 +2010-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (y-or-n-p): New function, moved from src/fns.c; use read-key.
 +
 +2010-09-12  Leo  <sdl.web@gmail.com>
 +
 +      * net/rcirc.el (rcirc-server-commands, rcirc-client-commands)
 +      (rcirc-completion-start): New variables.
 +      (rcirc-nick-completions): Rename to rcirc-completions.
 +      (rcirc-nick-completion-start-offset): Delete.
 +      (rcirc-completion-at-point): New function for constructing
 +      completion data for both nicks and irc commands.  Add to
 +      completion-at-point-functions in rcirc mode.
 +      (rcirc-complete): Rename from rcirc-nick-complete; use
 +      rcirc-completion-at-point.
 +      (defun-rcirc-command): Update rcirc-client-commands.
 +
 +2010-09-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file): Create .elc files
 +      atomically, to avoid parallel build errors.  (Bug#4196)
 +
 +2010-09-11  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.6
 +      (sql-dialect): Synonym for "sql-product".
 +      (sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
 +      (sql-set-sqli-buffer, sql-show-sqli-buffer, sql-interactive-mode):
 +      Set "sql-buffer" to buffer name not buffer object so multiple sql
 +      interactive buffers work properly.  Reverts misguided changes in
 +      earlier work.
 +      (sql-comint): Make sure different buffer name is used if "*SQL*"
 +      buffer is for a different product.
 +      (sql-make-alternate-buffer-name): Fix bug with "sql-database"
 +      login param.
 +      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
 +      (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
 +      (sql-db2, sql-linter, sql-product-interactive, sql-rename-buffer):
 +      Accept new buffer name or prompt for one.
 +      (sql-port): Default to zero.
 +      (sql-comint-mysql): Handle "sql-port" as a numeric.
 +      (sql-port-history): Delete unused variable.
 +      (sql-get-login): Default "sql-port" to a number.
 +      (sql-product-alist): Correct Postgres prompt and terminator regexp.
 +      (sql-sqlite-program): Dynamically detect presence of "sqlite" or
 +      "sqlite3" executables.
 +      (sql-sqlite-login-params): Add "*.sqlite[23]?" database name pattern.
 +      (sql-buffer-live-p): New function.
 +      (sql-mode-menu, sql-send-string): Use it.
 +      (sql-mode-oracle-font-lock-keywords): Improve SQL*Plus REMARK
 +      syntax pattern.
 +      (sql-mode-postgres-font-lock-keywords): Support Postgres V9.
 +      (sql-mode-sqlite-font-lock-keywords): Hilight sqlite commands.
 +
 +2010-09-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/netrc.el (netrc-credentials): New convenience function.
 +
 +2010-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/texinfo.el (texinfo-syntax-propertize-function): New fun
 +      to replace texinfo-font-lock-syntactic-keywords.
 +      (texinfo-mode): Use it.
 +
 +      * textmodes/tex-mode.el (tex-common-initialization, doctex-mode):
 +      Use syntax-propertize-function.
 +
 +      * textmodes/sgml-mode.el (sgml-syntax-propertize-function): New var to
 +      replace sgml-font-lock-syntactic-keywords.
 +      (sgml-mode): Use it.
 +
 +      * textmodes/reftex.el (font-lock-syntactic-keywords): Don't declare
 +      since we don't use it.
 +
 +      * textmodes/bibtex.el (bibtex-mode): Use syntax-propertize-function.
 +
 +      * progmodes/vhdl-mode.el (vhdl-mode): Use syntax-propertize-function
 +      if available.
 +      (vhdl-fontify-buffer): Adjust.
 +
 +      * progmodes/tcl.el (tcl-syntax-propertize-function): New var to
 +      replace tcl-font-lock-syntactic-keywords.
 +      (tcl-mode): Use it.
 +
 +      * progmodes/simula.el (simula-syntax-propertize-function): New var to
 +      replace simula-font-lock-syntactic-keywords.
 +      (simula-mode): Use it.
 +
 +      * progmodes/sh-script.el (sh-st-symbol): Remove.
 +      (sh-font-lock-close-heredoc, sh-font-lock-open-heredoc): Add eol arg.
 +      (sh-font-lock-flush-syntax-ppss-cache, sh-font-lock-here-doc): Remove.
 +      (sh-font-lock-quoted-subshell): Assume we've already matched $(.
 +      (sh-font-lock-paren): Set syntax-multiline.
 +      (sh-font-lock-syntactic-keywords): Remove.
 +      (sh-syntax-propertize-function): New function to replace it.
 +      (sh-mode): Use it.
 +
 +      * progmodes/ruby-mode.el (ruby-here-doc-beg-re):
 +      Define while compiling.
 +      (ruby-here-doc-end-re, ruby-here-doc-beg-match)
 +      (ruby-font-lock-syntactic-keywords, ruby-comment-beg-syntax)
 +      (syntax-ppss, ruby-in-ppss-context-p, ruby-in-here-doc-p)
 +      (ruby-here-doc-find-end, ruby-here-doc-beg-syntax)
 +      (ruby-here-doc-end-syntax): Only define when
 +      syntax-propertize is not available.
 +      (ruby-syntax-propertize-function, ruby-syntax-propertize-heredoc):
 +      New functions.
 +      (ruby-in-ppss-context-p): Update to new syntax of heredocs.
 +      (electric-indent-chars): Silence bytecompiler.
 +      (ruby-mode): Use prog-mode, syntax-propertize-function, and
 +      electric-indent-chars.
 +
 +      * progmodes/python.el (python-syntax-propertize-function): New var to
 +      replace python-font-lock-syntactic-keywords.
 +      (python-mode): Use it.
 +      (python-quote-syntax): Simplify and adjust to new use.
 +
 +      * progmodes/perl-mode.el (perl-syntax-propertize-function): New fun to
 +      replace perl-font-lock-syntactic-keywords.
 +      (perl-syntax-propertize-special-constructs): New fun to replace
 +      perl-font-lock-special-syntactic-constructs.
 +      (perl-font-lock-syntactic-face-function): New fun.
 +      (perl-mode): Use it.
 +
 +      * progmodes/octave-mod.el (octave-syntax-propertize-sqs): New function
 +      to replace octave-font-lock-close-quotes.
 +      (octave-syntax-propertize-function): New function to replace
 +      octave-font-lock-syntactic-keywords.
 +      (octave-mode): Use it.
 +
 +      * progmodes/mixal-mode.el (mixal-syntax-propertize-function): New var;
 +      replaces mixal-font-lock-syntactic-keywords.
 +      (mixal-mode): Use it.
 +
 +      * progmodes/make-mode.el (makefile-syntax-propertize-function):
 +      New var; replaces makefile-font-lock-syntactic-keywords.
 +      (makefile-mode): Use it.
 +      (makefile-imake-mode): Adjust.
 +
 +      * progmodes/js.el (js--regexp-literal): Define while compiling.
 +      (js-syntax-propertize-function): New var; replaces
 +      js-font-lock-syntactic-keywords.
 +      (js-mode): Use it.
 +
 +      * progmodes/gud.el (gdb-script-syntax-propertize-function): New var;
 +      replaces gdb-script-font-lock-syntactic-keywords.
 +      (gdb-script-mode): Use it.
 +
 +      * progmodes/fortran.el (fortran-mode): Use syntax-propertize-function.
 +      (fortran--font-lock-syntactic-keywords): New var.
 +      (fortran-line-length): Update syntax-propertize-function and
 +      fortran--font-lock-syntactic-keywords.
 +
 +      * progmodes/cperl-mode.el (cperl-mode): Use syntax-propertize-function.
 +
 +      * progmodes/cfengine.el (cfengine-mode):
 +      Use syntax-propertize-function.
 +      (cfengine-font-lock-syntactic-keywords): Remove.
 +
 +      * progmodes/autoconf.el (autoconf-mode):
 +      Use syntax-propertize-function.
 +      (autoconf-font-lock-syntactic-keywords): Remove.
 +
 +      * progmodes/ada-mode.el (ada-set-syntax-table-properties)
 +      (ada-after-change-function, ada-initialize-syntax-table-properties)
 +      (ada-handle-syntax-table-properties): Only define when
 +      syntax-propertize is not available.
 +      (ada-mode): Use syntax-propertize-function.
 +
 +      * font-lock.el (font-lock-syntactic-keywords): Make obsolete.
 +      (font-lock-fontify-syntactic-keywords-region): Move handling of
 +      font-lock-syntactically-fontified to...
 +      (font-lock-default-fontify-region): ...here.
 +      Let syntax-propertize-function take precedence.
 +      (font-lock-fontify-syntactically-region): Cal syntax-propertize.
 +
 +      * emacs-lisp/syntax.el (syntax-propertize-function)
 +      (syntax-propertize-chunk-size, syntax-propertize--done)
 +      (syntax-propertize-extend-region-functions): New vars.
 +      (syntax-propertize-wholelines, syntax-propertize-multiline)
 +      (syntax-propertize--shift-groups, syntax-propertize-via-font-lock)
 +      (syntax-propertize): New functions.
 +      (syntax-propertize-rules): New macro.
 +      (syntax-ppss-flush-cache): Set syntax-propertize--done.
 +      (syntax-ppss): Call syntax-propertize.
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt-depth): Skip named groups.
 +
 +2010-09-10  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Improve comments.
 +      XEmacs compatibility changes regarding (add-hook) 'local option
 +      and (set-process-query-on-exit-flag).
 +
 +2010-09-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-cache.el (tramp-parse-connection-properties):
 +      Set tramp-autoload cookie.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * image.el (imagemagick-types-inhibit): Add :type, :version, :group.
 +      (imagemagick-register-types): Doc fix.
 +
 +2010-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (electric-indent-chars): Silence bytecomp.
 +
 +      * progmodes/js.el (require): Require is already "eval-and-compile".
 +      (js--re-search-forward): Avoid `eval'.  Preserve the error data.
 +      (js--re-search-backward): Use js--re-search-forward.
 +
 +      * progmodes/fortran.el (fortran-line-length): Don't recompute
 +      syntactic keywords redundantly a second time.
 +
 +      * progmodes/ada-mode.el: Replace "(set '" with setq.
 +      (ada-mode): Simplify.
 +      (ada-create-case-exception, ada-adjust-case-interactive)
 +      (ada-adjust-case-region, ada-format-paramlist, ada-indent-current)
 +      (ada-search-ignore-string-comment, ada-move-to-start)
 +      (ada-move-to-end): Use with-syntax-table.
 +
 +      * font-lock.el (save-buffer-state): Remove `varlist' arg.
 +      (font-lock-unfontify-region, font-lock-default-fontify-region):
 +      Update usage correspondingly.
 +      (font-lock-fontify-syntactic-keywords-region):
 +      Set parse-sexp-lookup-properties buffer-locally here.
 +      (font-lock-fontify-syntactically-region): Remove unused `ppss' arg.
 +
 +      * simple.el (blink-matching-open): Don't burp if we can't find a match.
 +
 +2010-09-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-report-ops):
 +      Error if not compiled with -DBYTE_CODE_METER.
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-directory):
 +      Ignore dir-locals-file.
 +
 +2010-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Not a const.
 +      (compilation-error-regexp-alist-alist): Rule out ": " in file names
 +      for the `gnu' messages.
 +      (compilation-set-skip-threshold): New command.
 +      (compilation-start): Use \' rather than $.
 +      (compilation-forget-errors): Use clrhash.
 +
 +2010-09-08  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-valid-dictionary-list):
 +      Simplify logic.
 +
 +2010-09-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Migrate to Tramp 2.2.  Rearrange load dependencies.
 +      (Bug#1529, Bug#5448, Bug#5705)
 +
 +      * Makefile.in (TRAMP_DIR, TRAMP_SRC): New variables.
 +      ($(TRAMP_DIR)/tramp-loaddefs.el): New target.
 +      (LOADDEFS): Add $(lisp)/net/tramp-loaddefs.el.
 +
 +      * net/tramp.el (top): Remove all other tramp-* loads except
 +      tramp-compat.el.  Remove all changes to tramp-unload-hook for
 +      other tramp-* packages.  Rearrange defun order.  Change calls of
 +      `tramp-compat-call-process', `tramp-compat-decimal-to-octal',
 +      `tramp-compat-octal-to-decimal' to new function names.
 +      (tramp-terminal-type, tramp-initial-end-of-output)
 +      (tramp-methods, tramp-foreign-file-name-handler-alist)
 +      (tramp-tramp-file-p, tramp-completion-mode-p)
 +      (tramp-send-command-and-check, tramp-get-remote-path)
 +      (tramp-get-remote-tmpdir, tramp-get-remote-ln)
 +      (tramp-shell-quote-argument): Set tramp-autoload cookie.
 +      (with-file-property, with-connection-property): Move to
 +      tramp-cache.el.
 +      (tramp-local-call-process, tramp-decimal-to-octal)
 +      (tramp-octal-to-decimal): Move to tramp-compat.el.
 +      (tramp-handle-shell-command): Do not require 'shell.
 +      (tramp-compute-multi-hops): No special handling for tramp-gw-*
 +      symbols.
 +      (tramp-unload-tramp): Do not call `tramp-unload-file-name-handlers'.
 +
 +      * net/tramp-cache.el (top): Require 'tramp.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-cache-data, tramp-get-file-property)
 +      (tramp-set-file-property, tramp-flush-file-property)
 +      (tramp-flush-directory-property, tramp-get-connection-property)
 +      (tramp-set-connection-property, tramp-flush-connection-property)
 +      (tramp-cache-print, tramp-list-connections): Set tramp-autoload
 +      cookie.
 +      (with-file-property, with-connection-property): New defuns, moved
 +      from tramp.el.
 +      (tramp-flush-file-function): Use `with-parsed-tramp-file-name'
 +      macro.
 +
 +      * net/tramp-cmds.el (top): Add to `tramp-unload-hook'.
 +      (tramp-version): Set tramp-autoload cookie.
 +
 +      * net/tramp-compat.el (top): Require 'tramp-loaddefs.  Remove all
 +      changes to tramp-unload-hook for other tramp-* packages.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-compat-decimal-to-octal, tramp-compat-octal-to-decimal)
 +      (tramp-compat-call-process): New defuns, moved from tramp.el.
 +
 +      * net/tramp-fish.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change call of
 +      `tramp-compat-decimal-to-octal' to new function name.
 +      (tramp-fish-method): Make it a defconst.
 +      (tramp-fish-file-name-p): Make it a defsubst.
 +      (tramp-fish-method, tramp-fish-file-name-handler)
 +      (tramp-fish-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-ftp.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-ftp-method): Make it a defconst.
 +      (tramp-ftp-file-name-p): Make it a defsubst.
 +      (tramp-ftp-method, tramp-ftp-file-name-handler)
 +      (tramp-ftp-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-gvfs.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.
 +      (tramp-gvfs-file-name-p): Make it a defsubst.
 +      (tramp-gvfs-methods, tramp-gvfs-file-name-handler)
 +      (tramp-gvfs-file-name-p): Set tramp-autoload cookie.
 +      (tramp-gvfs-handle-file-directory-p): New defun.
 +      (tramp-gvfs-file-name-handler-alist): Use it.
 +
 +      * net/tramp-gw.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-gw-tunnel-method, tramp-gw-default-tunnel-port)
 +      (tramp-gw-socks-method, tramp-gw-default-socks-port): Make it a
 +      defconst.
 +      (tramp-gw-tunnel-method, tramp-gw-socks-method)
 +      (tramp-gw-open-connection): Set tramp-autoload cookie.
 +
 +      * net/tramp-imap.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.
 +      (tramp-imap-file-name-p): Make it a defsubst.
 +      (tramp-imap-method, tramp-imaps-method)
 +      (tramp-imap-file-name-handler)
 +      (tramp-imap-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-smb.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.  Change call of `tramp-compat-decimal-to-octal' to new
 +      function name.
 +      (tramp-smb-tunnel-method): Make it a defconst.
 +      (tramp-smb-file-name-p): Make it a defsubst.
 +      (tramp-smb-method, tramp-smb-file-name-handler)
 +      (tramp-smb-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-uu.el (top) Add to `tramp-unload-hook'.
 +      (tramp-uuencode-region): Set tramp-autoload cookie.
 +
 +      * net/trampver.el (top) Add to `tramp-unload-hook'.
 +      (tramp-version, tramp-bug-report-address): Set tramp-autoload
 +      cookie.  Update release number.
 +
 +2010-09-07  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-start-process): Make sure original
 +      arg list is properly initialized (Bug#6993, Bug#6994).
 +
 +2010-09-06  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +
 +      * files.el (directory-abbrev-alist): Use \` as default regexp.
 +
 +      * emacs-lisp/rx.el (rx-any): Don't explode ranges that end in special
 +      chars like - or ] (bug#6984).
 +      (rx-any-condense-range): Explode 2-char ranges.
 +
 +2010-09-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-path): Bump :version after 2009-09-15 change.
 +
 +2010-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/bibtex.el:
 +      * proced.el: Update to new email for Roland Winkler <winkler@gnu.org>.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-message-map): Remove optional buffer parameter,
 +      since no callers use it.
 +      (imap-message-get): Ditto.
 +      (imap-message-put): Ditto.
 +      (imap-mailbox-map): Ditto.
 +      (imap-mailbox-put): Ditto.
 +      (imap-mailbox-get): Ditto.
 +      (imap-mailbox-get): Revert last change for this function.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-fetch-safe): Remove function, and alter all
 +      callers to use `imap-fetch' instead.  According to the comments, this
 +      should be safe, since all other IMAP clients use the 1:* syntax.
 +      (imap-enable-exchange-bug-workaround): Remove.
 +      (imap-debug): Remove -- doesn't seem very useful.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-log): New convenience function used throughout
 +      instead of repeating the same code all over the place.
 +
 +2010-09-05  David De La Harpe Golden  <david@harpegolden.net>
 +
 +      * mouse.el (mouse-save-then-kill): Save region to kill-ring
 +      when mouse-drag-copy-region is non-nil (Bug#6956).
 +
 +2010-09-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-ls-sorting-switches, dired-sort-by-name-regexp):
 +      Improve regexps (Bug#6987).
 +      (dired-sort-toggle): Search more robustly for -t flag.
 +
 +      * files.el (get-free-disk-space): Search more robustly for
 +      "available" column.  Suggested by Ehud Karni
 +      <ehud@unix.mvs.co.il>.
 +
 +2010-09-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/uni-bidi.el:
 +      * international/uni-category.el:
 +      * international/uni-combining.el:
 +      * international/uni-decimal.el:
 +      * international/uni-mirrored.el:
 +      * international/uni-name.el: Regenerate.
 +
 +2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Don't reindent with a sloppy indentation function.
 +
 +      * emacs-lisp/syntax.el (syntax-ppss): More sanity check to catch
 +      border case in change-log-mode.
 +
 +2010-09-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Remove ruby regexp; handle Ruby errors with gcc-include and gnu.
 +      Recognize leading tab in gcc-include regexp.  Ignore names with
 +      leading "from" or "in" in gnu regexp (Bug#6937).
 +
 +2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Avoid global recursive calls to kill-buffer-hooks; fit into 80 cols.
 +      * textmodes/ispell.el (ispell-process-buffer-name): Remove.
 +      (ispell-start-process): Avoid setq and simplify logic.
 +      (ispell-init-process): Setup kill-buffer-hook locally when needed.
 +      (kill-buffer-hook): Don't use it globally with code that uses
 +      expand-file-name since that may call kill-buffer via
 +      code_conversion_restore.
 +
 +2010-09-04  Noorul Islam K M  <noorul@noorul.com>  (tiny change)
 +
 +      * emacs-lisp/package.el (package-directory-list): Only call
 +      file-name-nondirectory on a string.
 +
 +2010-09-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--download-one-archive):
 +      Ensure that archive-contents is valid before saving it.
 +      (package-activate-1, package-mark-obsolete, define-package)
 +      (package-compute-transaction, package-list-maybe-add): Use push.
 +
 +2010-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use SMIE's blink-paren for octave-mode.
 +      * progmodes/octave-mod.el (octave-font-lock-close-quotes):
 +      Backslashes do not escape single-quotes, single-quotes do.
 +      (octave-block-else-regexp, octave-block-end-regexp)
 +      (octave-block-match-alist): Remove.
 +      (octave-smie-bnf-table): New var, with old content.
 +      (octave-smie-op-levels): Use it.
 +      (octave-smie-closer-alist): New var.
 +      (octave-mode): Use it.  Setup smie-blink-matching and electric-indent.
 +      (octave-blink-matching-block-open): Remove.
 +      (octave-reindent-then-newline-and-indent, octave-electric-semi)
 +      (octave-electric-space): Let self-insert-command run expand-abbrev and
 +      blink parens.
 +
 +      * electric.el (electricity): New group.
 +      (electric-indent-chars): New var.
 +      (electric-indent-post-self-insert-function): New fun.
 +      (electric-indent-mode): New minor mode.
 +      (electric-pair-skip-self): New custom.
 +      (electric-pair-post-self-insert-function): New function.
 +      (electric-pair-mode): New minor mode.
 +
 +      * calc/calc-aent.el (calcAlg-blink-matching-check): New fun, to replace
 +      calcAlg-blink-matching-open.
 +      (calc-alg-ent-map, calc-alg-ent-esc-map): Initialize in the declaration.
 +      (calc-do-alg-entry): Only touch the part of the keymap that varies.
 +      Use the new blink-matching-check-function.
 +
 +      Provide blink-matching support to SMIE.
 +      * emacs-lisp/smie.el (smie-bnf-closer-alist): New function.
 +      (smie-blink-matching-triggers, smie-blink-matching-inners): New vars.
 +      (smie-blink-matching-check, smie-blink-matching-open): New functions.
 +
 +      * simple.el (newline): Fix last change to properly remove itself from
 +      the hook.
 +
 +2010-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (newline): Eliminate optimization.
 +      Use post-self-insert-hook to set hard-newline and things before
 +      running post-self-insert-hook.
 +      (blink-matching-check-mismatch): New function.
 +      (blink-matching-check-function): New variable.
 +      (blink-matching-open): Use them.
 +      Skip back forward over prefix chars skipped by forward-sexp.
 +      Don't check if the parens are backslash escaped.
 +      (blink-paren-post-self-insert-function): Check backslash escaping here.
 +
 +2010-09-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map):
 +      Change package-menu-revert bindings to revert-buffer.
 +      (package-menu-mode): Set revert-buffer-function.
 +      (package-menu-revert): Doc fix.
 +
 +2010-09-02  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Use "~/" as
 +      `default-directory' unless using Ispell per-directory personal
 +      dictionaries and not in a mini-buffer under XEmacs.
 +      (kill-buffer-hook): Do not kill ispell process on exit when
 +      `ispell-process-directory' is "~/".  (Bug#6143)
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * simple.el (kill-new): Call interprogram-cut-function with only
 +      one argument.
 +
 +      * term.el (term-mouse-paste): Don't call x-get-cutbuffer.
 +      Remove cut buffer from error message.
 +
 +      * term/x-win.el (x-select-text):
 +      * term/pc-win.el (x-selection-value):
 +      * term/ns-win.el (x-selection-value):
 +      * eshell/em-term.el:
 +      * w32-fns.el (x-get-selection-value):
 +      * mouse-sel.el (mouse-sel-set-selection-function):
 +      * frame.el (display-selections-p): Remove cut-buffer in documentation.
 +
 +      * term/x-win.el: Update documentation for x-last-selected-text-*.
 +      (x-last-selected-text-cut, x-last-selected-text-cut-encoded)
 +      (x-last-cut-buffer-coding, x-cut-buffer-max): Remove.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +      Remove cut-buffer code.
 +      (x-selection-value-internal): Was previously x-selection-value.
 +      (x-selection-value): Rename from x-cut-buffer-or-selection-value.
 +      Update documentation, remove cut-buffer code.
 +      Call x-selection-value-internal.
 +      (x-clipboard-yank): Call x-selection-value-internal.
 +      (x-initialize-window-system): Remove setting of x-cut-buffer-max.
 +
 +      * term/pc-win.el (x-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * term/ns-win.el (x-setup-function-keys, ns-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value
 +      (x-selection-value): Rename from x-cut-buffer-or-selection-value.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * emacs-lisp/cl-macs.el (x-get-cutbuffer, x-get-cut-buffer): Remove.
 +
 +      * w32-fns.el (x-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value.
 +      (x-cut-buffer-max): Remove.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * simple.el (interprogram-cut-function): Remove mention of PUSH.
 +
 +      * select.el (x-get-cut-buffer, x-set-cut-buffer): Remove.
 +
 +      * mouse-sel.el (mouse-sel-get-selection-function):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value.
 +      (x-select-text): Remove optional push.
 +
 +2010-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (blink-paren-function): Move from C to here.
 +      (blink-paren-post-self-insert-function): New function.
 +      (post-self-insert-hook): Use it.
 +
 +      * emacs-lisp/pcase.el (pcase-split-memq):
 +      Fix overenthusiastic optimisation.
 +      (pcase-u1): Handle the case of a lambda pred.
 +
 +2010-08-31  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (standard-display-european-internal):
 +      Setup standard-display-table for 8-bit characters by storing 8-bit
 +      characters in the element vector.
 +
 +      * disp-table.el (standard-display-8bit):
 +      Setup standard-display-table for 8-bit characters by storing 8-bit
 +      characters in the element vector.
 +      (standard-display-european): Likewise.
 +
 +2010-08-31  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * textmodes/nroff-mode.el (nroff-view): New command.
 +      (nroff-mode-map): Bind it to C-c C-c.
 +
 +2010-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-down-list): New command.
 +
 +      Remove old indentation and navigation code on octave-mode.
 +      * progmodes/octave-mod.el (octave-mode-map): Remap down-list to
 +      smie-down-list rather than add a binding for octave-down-block.
 +      (octave-mark-block, octave-blink-matching-block-open):
 +      Rely on forward-sexp-function.
 +      (octave-fill-paragraph): Don't narrow, so you can use
 +      indent-according-to-mode.
 +      (octave-block-begin-regexp, octave-block-begin-or-end-regexp): Remove.
 +      (octave-in-block-p, octave-re-search-forward-kw)
 +      (octave-re-search-backward-kw, octave-indent-calculate)
 +      (octave-end-as-array-index-p, octave-block-end-offset)
 +      (octave-scan-blocks, octave-forward-block, octave-backward-block)
 +      (octave-down-block, octave-backward-up-block, octave-up-block)
 +      (octave-before-magic-comment-p, octave-indent-line): Remove.
 +
 +2010-08-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--read-archive-file): Just use
 +      `read', to avoid copying an additional string.
 +      (package-menu-mode): Set header-line-format here.
 +      (package-menu-refresh, package-menu-revert): Signal an error if
 +      not in the Package Menu.
 +      (package-menu-package-list): New var.
 +      (package--generate-package-list): Operate on the current buffer;
 +      don't assume that it is *Packages*, since the user may rename it.
 +      Allow persistent package listings and sort keys using
 +      package-menu-package-list and package-menu-package-sort-key.
 +      (package-menu--version-predicate): Fix version calculation.
 +      (package-menu-sort-by-column): Don't select the window.
 +      (package--list-packages): Create the *Packages* buffer.
 +      Set package-menu-package-list-key.
 +      (list-packages): Sorting by status is now the default.
 +      (package-buffer-info): Use match-string-no-properties.
 +      (define-package): Add a &rest argument for future proofing, but
 +      don't use it yet.
 +      (package-install-from-buffer, package-install-buffer-internal):
 +      Merge into a single function, package-install-from-buffer.
 +      (package-install-file): Change caller.
 +
 +      * finder.el: Load finder-inf using `require'.
 +      (finder-list-matches): Sorting by status is now the default.
 +      (finder-compile-keywords): Simpify printing.
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (octave-font-lock-keywords): Use regexp-opt.
 +      (octave-mode-map): Remove special bindings for forward/backward-block
 +      and octave-backward-up-block.  Use smie-close-block.
 +      (octave-continuation-marker-regexp): New var.
 +      (octave-continuation-regexp): Use it.
 +      (octave-operator-table, octave-smie-op-levels)
 +      (octave-operator-regexp, octave-smie-indent-rules): New vars.
 +      (octave-smie-backward-token, octave-smie-forward-token): New funs.
 +      (octave-mode): Use SMIE.
 +      (octave-close-block): Delete.
 +
 +2010-08-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * menu-bar.el (menu-bar-edit-menu) <"Paste">: Check selection in
 +      CLIPBOARD, not in PRIMARY.  (Bug#6944)
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-rule): Let :parent take
 +      a list of parents.
 +      (smie-indent-column): Allow indirection through variables.
 +
 +      * composite.el (save-buffer-state): Delete, unused.
 +      * font-lock.el (save-buffer-state): Use with-silent-modifications.
 +      (font-lock-default-fontify-region): Use with-syntax-table.
 +      * jit-lock.el (with-buffer-unmodified): Remove.
 +      (with-buffer-prepared-for-jit-lock): Use with-silent-modifications.
 +
 +      Use `declare' in defmacros.
 +      * window.el (save-selected-window):
 +      * subr.el (with-temp-file, with-temp-message, with-syntax-table):
 +      * progmodes/python.el (def-python-skeleton):
 +      * net/dbus.el (dbus-ignore-errors):
 +      * jka-cmpr-hook.el (with-auto-compression-mode):
 +      * international/mule.el (with-category-table):
 +      * emacs-lisp/timer.el (with-timeout):
 +      * emacs-lisp/lisp-mnt.el (lm-with-file):
 +      * emacs-lisp/eieio.el (with-slots):
 +      * emacs-lisp/easymenu.el (easy-menu-define):
 +      * emacs-lisp/debug.el (debugger-env-macro):
 +      * emacs-lisp/cl-compat.el (Multiple-value-bind, Multiple-value-setq)
 +      (Multiple-value-call, Multiple-value-prog1):
 +      * emacs-lisp/cl-seq.el (cl-parsing-keywords, cl-check-key)
 +      (cl-check-test-nokey, cl-check-test, cl-check-match): Move indent and
 +      edebug rule to definition.
 +      * emacs-lisp/lisp-mode.el (save-selected-window)
 +      (with-current-buffer, combine-after-change-calls)
 +      (with-output-to-string, with-temp-file, with-temp-buffer)
 +      (with-temp-message, with-syntax-table, read-if, eval-after-load)
 +      (dolist, dotimes, when, unless):
 +      * emacs-lisp/byte-run.el (inline): Remove indent rule, redundant.
 +
 +2010-08-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * finder.el: Require `package'.
 +      (finder-known-keywords): Tweak descriptions.  Retire `oop' keyword.
 +      (finder-package-info): Var deleted.
 +      (finder-keywords-hash, finder--builtins-alist): New vars.
 +      (finder-compile-keywords): Compute package--builtins and
 +      finder-keywords-hash instead of finder-keywords-hash, respecting
 +      the "Package" header.
 +      (finder-unknown-keywords, finder-list-matches):
 +      Use finder-keywords-hash and package--list-packages.
 +      (finder-mode): Don't set font-lock-defaults.
 +      (finder-exit): We don't use "*Finder-package*" and "*Finder
 +      Category*" buffers anymore.
 +
 +      * emacs-lisp/package.el (package--builtins-base): Var deleted.
 +      (package--builtins): Set default value to nil.
 +      (package-initialize): Load precomputed value of package--builtins
 +      from finder-inf.el.
 +      (package-alist, package-compute-transaction)
 +      (package-download-transaction): Improve docstring.
 +      (package-read-all-archive-contents): Do not change
 +      package--builtins here.
 +      (list-packages): Make package-list-packages an alias for this.
 +      Sort by status by default.
 +      (package--list-packages): Add optional PACKAGES arg.
 +      (describe-package-1): Use font-lock-face property.  For built-in
 +      packages, insert file commentary.
 +      (package--generate-package-list): Rename from
 +      package-list-packages-internal; all callers changed.  Add optional
 +      PACKAGES arg.  Add alphabetical sort fallbacks.
 +      (package-menu--version-predicate, package-menu--status-predicate)
 +      (package-menu--description-predicate)
 +      (package-menu--name-predicate): New functions.
 +
 +      * info.el (Info-finder-find-node): Search package-alist instead of
 +      finder-package-info.
 +
 +2010-08-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (version-regexp-alist): Don't use "a" and "b" for
 +      "alpha" and "beta".
 +      (version-to-list): Handle versions like "10.3d".
 +
 +2010-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase.
 +      (macroexp-accumulate): Use `declare'.
 +
 +2010-08-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el (whitespace-style): Adjust type declaration.
 +
 +2010-08-26  Magnus Henoch  <magnus.henoch@gmail.com>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 +      empty argument to gvfs-copy.
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 +      handle new TRASH arg of `delete-file'.
 +
 +2010-08-26  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +
 +      * net/tramp.el (tramp-handle-insert-directory): Don't use
 +      `forward-word', its default syntax could be changed.
 +
 +2010-08-26  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 +            Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Implement compression for inline methods.
 +
 +      * net/tramp.el (tramp-inline-compress-start-size): New defcustom.
 +      (tramp-copy-size-limit): Allow also nil.
 +      (tramp-inline-compress-commands): New defconst.
 +      (tramp-find-inline-compress, tramp-get-inline-compress)
 +      (tramp-get-inline-coding): New defuns.
 +      (tramp-get-remote-coding, tramp-get-local-coding): Remove,
 +      replaced by `tramp-get-inline-coding'.
 +      (tramp-handle-file-local-copy, tramp-handle-write-region)
 +      (tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
 +
 +2010-08-26  Noah Lavine  <noah549@gmail.com>  (tiny change)
 +
 +      Detect ssh 'ControlMaster' argument automatically in some cases.
 +
 +      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 +      (tramp-default-method): Use it.
 +
 +2010-08-26  Karel Klíč  <kklic@redhat.com>
 +
 +      * net/tramp.el (tramp-file-name-for-operation):
 +      Add file-selinux-context.
 +
 +2010-08-26  Łukasz Stelmach  <lukasz.stelmach@iem.pw.edu.pl>  (tiny change)
 +
 +      * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (beginning-of-buffer, end-of-buffer): Doc fix
 +      (Bug#6907).
 +
 +2010-08-26  Nathan Weizenbaum  <nweiz@cressida.sea.corp.google.com>  (tiny change)
 +
 +      * progmodes/js.el: Make indentation more customizable (Bug#6914).
 +      (js-paren-indent-offset, js-square-indent-offset)
 +      (js-curly-indent-offset): New options.
 +      (js--proper-indentation): Use them.
 +
 +2010-08-26  Daniel Colascione  <dan.colascione@gmail.com>
 +
 +      * progmodes/sh-script.el (sh-get-indent-info): Use syntax-ppss
 +      instead of inspecting font-lock properties (Bug#6916).
 +
 +2010-08-26  David Reitter  <david.reitter@gmail.com>
 +
 +      * server.el (server-visit-files): Run pre-command-hook and
 +      post-command-hook for each buffer while it is current (Bug#6910).
 +      (server-execute): Do not run hooks here.
 +
 +2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.1.19.
 +
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-reporter-dump-variable, tramp-load-report-modules)
 +      (tramp-append-tramp-buffers): Use `tramp-compat-funcall'.
 +      (tramp-bug): Recommend setting of `tramp-verbose' to 9.
 +
 +      * net/tramp-compat.el (top): Do not autoload
 +      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 +      only when `start-file-process' is not bound.
 +      (byte-compile-not-obsolete-vars): Define if not bound.
 +      (tramp-compat-funcall): New defmacro.
 +      (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position)
 +      (tramp-compat-temporary-file-directory)
 +      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 +      (tramp-compat-copy-file, tramp-compat-copy-directory)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory)
 +      (tramp-compat-number-sequence, tramp-compat-process-running-p):
 +      Use it.
 +      (tramp-advice-file-expand-wildcards): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-compat-make-temp-file): Simplify fallback implementation.
 +      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-compat-copy-tree): Remove function.
 +      (tramp-compat-delete-file): New defun.
 +      (tramp-compat-delete-directory): Provide implementation for older
 +      Emacsen.
 +      (tramp-compat-file-attributes): Handle only
 +      `wrong-number-of-arguments' error.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 +      Add PRESERVE_SELINUX_CONTEXT.
 +      (tramp-fish-handle-delete-file): Add TRASH arg.
 +      (tramp-fish-handle-directory-files-and-attributes):
 +      Do not use `tramp-fish-handle-file-attributes.
 +      (tramp-fish-handle-file-local-copy)
 +      (tramp-fish-handle-insert-file-contents)
 +      (tramp-fish-maybe-open-connection): Use `with-progress-reporter'.
 +
 +      * net/tramp-gvfs.el (top): Require url-util.
 +      (tramp-gvfs-mount-point): Remove.
 +      (tramp-gvfs-file-name-handler-alist): Add `file-selinux-context'
 +      and `set-file-selinux-context'.
 +      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command)
 +      (tramp-gvfs-handle-file-selinux-context)
 +      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 +      (with-tramp-dbus-call-method): Format trace message.
 +      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
 +      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 +      Implement backup call, when operation on local files fails.
 +      Use progress reporter.  Flush properties of changed files.
 +      (tramp-gvfs-handle-delete-file): Add TRASH arg.
 +      Use `tramp-compat-delete-file'.
 +      (tramp-gvfs-handle-expand-file-name): Expand "~/".
 +      (tramp-gvfs-handle-make-directory): Make more traces.
 +      (tramp-gvfs-handle-write-region): Protect deleting tmpfile.
 +      (tramp-gvfs-url-file-name): Hexify file name in url.
 +      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 +      into account for the resulting file name.
 +      (tramp-gvfs-handler-askquestion): Preserve current message, in
 +      order to let progress reporter continue afterwards.  (Bug#6257)
 +      Return dummy mountpoint, when the answer is "no".
 +      See `tramp-gvfs-maybe-open-connection'.
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 +      attribute "default_location".  Set "prefix" property.
 +      Handle default-location.
 +      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 +      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 +      exists.  Raise an error, if not (due to a corresponding answer
 +      "no" in interactive questions, for example).
 +      Use `tramp-compat-funcall'.
 +
 +      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 +      (tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-imap-do-copy-or-rename-file)
 +      (tramp-imap-handle-insert-file-contents)
 +      (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
 +      (tramp-imap-handle-delete-file): Add TRASH arg.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 +      Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
 +      Use `with-progress-reporter'.
 +      (tramp-smb-handle-delete-file): Add TRASH arg.
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      ssh `tramp-login-args'.  Add `tramp-async-args' attribute where
 +      appropriate.
 +      (tramp-verbose): Describe verbose level 9.
 +      (tramp-completion-function-alist)
 +      (tramp-file-name-regexp, tramp-chunksize)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands)
 +      (with-connection-property, tramp-completion-mode-p)
 +      (tramp-action-process-alive, tramp-action-out-of-band)
 +      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 +      (tramp-exists-file-name-handler): Fix docstring.
 +      (tramp-remote-process-environment): Use `format' instead of
 +      `concat'.  Protect version string by apostroph.
 +      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 +      XEmacs.
 +      (tramp-file-name-regexp-unified)
 +      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 +      not regard the volume letter as remote filename.  (Bug#5447)
 +      (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 +      (tramp-vc-registered-read-file-names): Read input as
 +      here-document, otherwise the command could exceed maximum length
 +      of command line.
 +      (tramp-file-name-handler-alist): Add `file-selinux-context' and
 +      `set-file-selinux-context'.
 +      (tramp-debug-message): Add `tramp-compat-funcall' to ignored
 +      backtrace functions.
 +      (tramp-error-with-buffer): Don't show the connection buffer when
 +      we are in completion mode.
 +      (tramp-progress-reporter-update, tramp-remote-selinux-p)
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context, tramp-process-sentinel)
 +      (tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash):
 +      New defuns.
 +      (with-progress-reporter): New defmacro.
 +      (tramp-debug-outline-regexp): New defconst.
 +      (top, tramp-rfn-eshadow-setup-minibuffer)
 +      (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
 +      (tramp-handle-dired-compress-file, tramp-handle-shell-command)
 +      (tramp-completion-mode-p, tramp-check-for-regexp)
 +      (tramp-open-connection-setup-interactive-shell)
 +      (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
 +      (tramp-time-diff, tramp-coding-system-change-eol-conversion)
 +      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp):
 +      Use `tramp-compat-funcall'.
 +      (tramp-handle-make-symbolic-link): Flush file properties.
 +      (tramp-handle-load, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-handle-vc-registered, tramp-maybe-send-script)
 +      (tramp-find-shell): Use `with-progress-reporter'.
 +      (tramp-do-file-attributes-with-stat): Add space in format string,
 +      in order to work around a bug in pdksh.  Reported by Gilles Pion
 +      <gpion@lfdj.com>.
 +      (tramp-handle-verify-visited-file-modtime): Do not send a command
 +      when the connection is not established.
 +      (tramp-handle-set-file-times): Simplify the check for utc.
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-get-remote-path): Use `copy-tree'.
 +      (tramp-completion-handle-file-name-all-completions): Ensure, that
 +      non remote files are still checked.  Oops.
 +      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 +      Handle PRESERVE-SELINUX-CONTEXT.
 +      (tramp-do-copy-or-rename-file): Add progress reporter.
 +      (tramp-do-copy-or-rename-file-directly): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-do-copy-or-rename-file-out-of-band):
 +      Use `tramp-compat-delete-directory'.
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 +      Use `format-spec-make'.
 +      (tramp-handle-delete-file): Add TRASH arg.
 +      (tramp-handle-dired-uncache): Flush directory cache, not only file
 +      cache.
 +      (tramp-handle-expand-file-name)
 +      (tramp-completion-handle-file-name-all-completions)
 +      (tramp-completion-handle-file-name-completion):
 +      Use `tramp-connectable-p'.
 +      (tramp-handle-start-file-process): Set connection property "vec".
 +      Use it, in order to invalidate file caches.  Check only for
 +      `remote-tty' process property.
 +      Implement tty setting.  (Bug#4604, Bug#6360)
 +      (tramp-file-name-for-operation): Add `call-process-region' and
 +      `set-file-selinux-context'.
 +      (tramp-find-foreign-file-name-handler)
 +      (tramp-advice-make-auto-save-file-name)
 +      (tramp-set-auto-save-file-modes): Remove superfluous check for
 +      `stringp'.  This is done inside `tramp-tramp-file-p'.
 +      (tramp-file-name-handler): Trace 'quit.  Catch the error for some
 +      operations when we are in completion mode.  This gives the user
 +      the chance to correct the file name in the minibuffer.
 +      (tramp-completion-mode-p): Use `non-essential'.
 +      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 +      compatibility: Use `completion-ignore-case' if
 +      `read-file-name-completion-ignore-case' does not exist.
 +      (tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'.
 +      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 +      `tramp-open-shell'.
 +      (tramp-action-password): Hide password prompt before next run.
 +      (tramp-process-actions): Widen connection buffer for the trace.
 +      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 +      process property.  Trace stty settings if `tramp-verbose' >= 9.
 +      Apply workaround for IRIX64 bug.  Move argument of last
 +      `tramp-send-command' where it belongs to.
 +      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 +      front of `login-args'.
 +      (tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests
 +      on "/dev/null" instead of "/".
 +      (tramp-get-ls-command-with-dired): Make test for "--dired"
 +      stronger.
 +      (tramp-set-auto-save-file-modes): Adapt version check.
 +      (tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
 +      (tramp-handle-process-file): Call the program in a subshell, in
 +      order to preserve working directory.
 +      (tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but
 +      `tramp-remote-sh' from `tramp-methods'.
 +      (tramp-get-ls-command): Make test for "--color=never" stronger.
 +      (tramp-check-for-regexp): Use (forward-line 1).
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * help.el (help-map): Bind `C-h P' to describe-package.
 +
 +      * menu-bar.el (menu-bar-describe-menu): Add describe-package.
 +
 +      * emacs-lisp/package.el (package-refresh-contents): Catch errors
 +      when downloading archives.
 +      (describe-package-1): Add package commentary.
 +      (package-install-button-action): New function.
 +      (package-menu-mode-map): Bind ? to package-menu-describe-package.
 +      (package-menu-view-commentary): Function removed.
 +      (package-list-packages-internal): Hide the `package' package too.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/misc-lang.el ("Arabic"): New language environment.
 +      Setup composition-function-table for Arabic characters.
 +
 +      * international/fontset.el (setup-default-fontset): Fix typo for
 +      arabic OTF spec (fini->fina).
 +
 +2010-08-25  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): Set frame parameter
 +      on all frames.
 +
 +2010-08-24  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Allow cleaning up blanks without blank
 +      visualization (Bug#6651).  Adjust help window for
 +      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 +      instead of whitespace-line-column (from EmacsWiki).  New version
 +      13.1.
 +      (whitespace-style): Add new value 'face.  Adjust docstring.
 +      (whitespace-space, whitespace-hspace, whitespace-tab):
 +      Adjust foreground property face.
 +      (whitespace-line-column): Adjust docstring and type declaration.
 +      (whitespace-style-value-list, whitespace-toggle-option-alist)
 +      (whitespace-help-text): Adjust const initialization.
 +      (whitespace-toggle-options, global-whitespace-toggle-options):
 +      Adjust docstring.
 +      (whitespace-display-window, whitespace-interactive-char)
 +      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 +      (whitespace-help-scroll): New fun.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (list-packages): Alias for
 +      package-list-packages.
 +
 +2010-08-24  Kevin Ryde  <user42@zip.com.au>
 +
 +      * textmodes/flyspell.el (flyspell-check-tex-math-command): Doc fix
 +      (Bug#5651).
 +
 +      * progmodes/ruby-mode.el (ruby): Add defgroup.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/python.el: Add Ipython support (Bug#5390).
 +      (python-shell-prompt-alist)
 +      (python-shell-continuation-prompt-alist): New options.
 +      (python--set-prompt-regexp): New function.
 +      (inferior-python-mode, run-python, python-shell):
 +      Require ansi-color.  Use python--set-prompt-regexp to set the comint
 +      prompt based on the Python interpreter.
 +      (python--prompt-regexp): New var.
 +      (python-check-comint-prompt)
 +      (python-comint-output-filter-function): Use it.
 +      (run-python): Use a pipe (Bug#5694).
 +
 +2010-08-24  Fabian Ezequiel Gallina  <galli.87@gmail.com>  (tiny change)
 +
 +      * progmodes/python.el (python-send-region): Send a different
 +      Python command if Ipython is in use.
 +      (python-check-version): Use a Python command to find the version.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-yank-primary): Avoid setting primary when
 +      deactivating the mark (Bug#6872).
 +
 +2010-08-23  Chris Foote  <chris@foote.com.au>  (tiny change)
 +
 +      * progmodes/python.el (python-block-pairs): Allow use of "finally"
 +      with "else" (Bug#3991).
 +
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el: Accept UNIX domain sockets as bus address.
 +      (top): Don't initialize `dbus-registered-objects-table' anymore,
 +      this is done in dbusbind,c.
 +      (dbus-check-event): Adapt test for bus.
 +      (dbus-return-values-table, dbus-unregister-service)
 +      (dbus-event-bus-name, dbus-introspect, dbus-register-property):
 +      Adapt doc string.
 +
 +2010-08-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ido.el (ido-use-virtual-buffers): Fix typo in docstring.
 +
 +2010-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * simple.el (read-extended-command): New function with the logic
 +      for `completing-read' moved to Elisp from `execute-extended-command'.
 +      Use `function-called-at-point' in `minibuffer-default-add-function'
 +      to get a command name for M-n (bug#5364, bug#5214).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line-1): Issue warning for ignored arguments
 +      --unibyte, etc (Bug#6886).
 +
 +2010-08-22  Leo  <sdl.web@gmail.com>
 +
 +      * net/rcirc.el (rcirc-add-or-remove): Accept a list of elements.
 +      (ignore, bright, dim, keyword): Split list of nicknames before
 +      passing to rcirc-add-or-remove (Bug#6894).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
 +
 +2010-08-22  Leo  <sdl.web@gmail.com>
 +
 +      Fix buffer-list rename&refresh after killing a buffer in ido.
 +      * ido.el: Revert Óscar's.
 +      (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
 +      Remember the buffers at head, rather than their name.
 +      * iswitchb.el (iswitchb-kill-buffer): Re-make the list.
 +
 +2010-08-22  Kirk Kelsey  <kirk.kelsey@0x4b.net>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
 +      extra backslash added to each line (bug#6890).
 +
 +2010-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (read-key): Don't echo keystrokes (bug#6883).
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-games-menu): Add landmark.
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * align.el (align-regexp): Make group and spacing arguments
 +      use the interactive defaults when non-interactive.  (Bug#6698)
 +
 +      * mail/rmail.el (rmail-forward): Replace mail-text-start with its
 +      expansion, so as not to need sendmail.
 +      (mail-text-start): Remove declaration.
 +      (rmail-retry-failure): Require sendmail.
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
 +
 +2010-08-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * progmodes/flymake.el (flymake-start-syntax-check-process):
 +      Use `start-file-process' in order to let it run also on remote hosts.
 +
 +2010-08-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * files.el: Add `word-wrap' as safe local variable.
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * woman.el (woman-translate): Case matters.  (Bug#6849)
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (kill-region): Doc fix (Bug#6787).
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-header-line-format):
 +      Fit it to the window, not the frame.
 +
 +2010-08-22  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * subr.el (ignore-errors): Add debug declaration.
 +
 +2010-08-22  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
 +
 +      * whitespace.el (whitespace-color-off): Remove post-command-hook
 +      locally.
 +
 +2010-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/add-log.el (add-log-file-name): Don't get confused by symlinks.
 +
 +2010-08-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-group-value-create): Add extra newline
 +      before end line (Bug#6876).
 +
 +2010-08-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-save-then-kill): Don't save region to kill ring
 +      when extending it.  Before killing on the second click, check if
 +      the buffer is the correct one.  Doc fix.
 +      (mouse-secondary-save-then-kill): Allow usage without first
 +      calling mouse-start-secondary, by defaulting to point.  Don't save
 +      an empty secondary selection.  Doc fix.
 +
 +2010-08-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Fix slow cursor movement (Bug#6172).  Reported by
 +      Christoph Groth <cwg@falma.de> and Liu Xin <x_liu@neusoft.com>.
 +      New version 13.0.
 +      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp):
 +      Adjust initialization.
 +      (whitespace-bob-marker, whitespace-eob-marker)
 +      (whitespace-buffer-changed): New vars.
 +      (whitespace-cleanup, whitespace-color-on, whitespace-color-off)
 +      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp)
 +      (whitespace-post-command-hook, whitespace-display-char-on):
 +      Adjust code.
 +      (whitespace-looking-back, whitespace-buffer-changed): New funs.
 +      (whitespace-space-regexp, whitespace-tab-regexp): Fun eliminated.
 +
 +2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (locate-file-completion-table): Only list the .el and .elc
 +      extensions if there's no other choice (bug#5955).
 +
 +      * facemenu.el (facemenu-self-insert-data): New var.
 +      (facemenu-post-self-insert-function, facemenu-set-self-insert-face):
 +      New functions.
 +      (facemenu-add-face): Use them.
 +
 +      * simple.el (blink-matching-open): Obey forward-sexp-function.
 +
 +2010-08-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (prog-mode-map): New var.
 +      (prog-indent-sexp): New command.
 +
 +      * progmodes/octave-mod.el (octave-mode-menu): Make toggle buttons.
 +
 +      * progmodes/prolog.el (smie): Require.
 +
 +      * emacs-lisp/smie.el (smie-default-backward-token)
 +      (smie-default-forward-token): Strip properties.
 +      (smie-next-sexp): Be more careful with associative operators.
 +      (smie-forward-sexp-command): Generalize.
 +      (smie-backward-sexp-command): Simplify.
 +      (smie-closer-alist): New var.
 +      (smie-close-block): New command.
 +      (smie-indent-debug-log): New var.
 +      (smie-indent-offset-rule): Add a few more cases.
 +      (smie-indent-column): New function.
 +      (smie-indent-after-keyword): Use it.
 +      (smie-indent-keyword): Use it.
 +      Fix up the opener code's point position.
 +      (smie-indent-comment): Only applies at BOL.
 +      (smie-indent-debug): New command.
 +
 +      * emacs-lisp/autoload.el (make-autoload): Preload the macros's
 +      declarations that are useful before running the macro.
 +
 +2010-08-18  Joakim Verona  <joakim@verona.se>
 +
 +      * image.el (imagemagick-types-inhibit): New variable.
 +      (imagemagick-register-types): New function.
 +      * image-mode.el (image-transform-properties): New function.
 +      (image-transform-set-scale, image-transform-fit-to-height)
 +      (image-transform-set-rotation, image-transform-set-resize)
 +      (image-transform-fit-to-width, image-transform-fit-to-height):
 +      New functions.
 +      (image-toggle-display-image): Support image transforms.
 +
 +2010-08-18  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * image.el (create-animated-image): Don't add heuristic mask to image
 +      (Bug#6839).
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-get-pasteboard, ns-set-pasteboard):
 +      Use QCLIPBOARD instead of QPRIMARY (Bug#6677).
 +
 +2010-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set.
 +
 +      Font-lock '...' strings, plus various simplifications and fixes.
 +      * progmodes/octave-mod.el (octave-font-lock-keywords): Use regexp-opt.
 +      (octave-font-lock-close-quotes): New function.
 +      (octave-font-lock-syntactic-keywords): New var.
 +      (octave-mode): Use it.  Set beginning-of-defun-function.
 +      (octave-mode-map): Don't override the <foo>-defun commands.
 +      (octave-mode-menu): Pass it directly to easy-menu-define;
 +      remove (now generic) <foo>-defun commands; use info-lookup-symbol.
 +      (octave-block-match-alist): Fix up last change so that
 +      octave-close-block uses the more specific keyword.
 +      (info-lookup-mode): Silence byte-compiler.
 +      (octave-beginning-of-defun): Not interactive any more.
 +      Optimize slightly.
 +      (octave-end-of-defun, octave-mark-defun, octave-in-defun-p): Remove.
 +      (octave-indent-defun, octave-send-defun): Use mark-defun instead.
 +      (octave-completion-at-point-function): Make sure point is within
 +      beg..end.
 +      (octave-reindent-then-newline-and-indent):
 +      Use reindent-then-newline-and-indent.
 +      (octave-add-octave-menu): Remove.
 +
 +2010-08-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * mail/emacsbug.el (report-emacs-bug-insert-to-mailer)
 +      (report-emacs-bug-can-use-xdg-email): New functions.
 +      (report-emacs-bug): Set can-xdg-email to result of
 +      report-emacs-bug-can-use-xdg-email.  If can-xdg-email bind
 +      \C-cm to report-emacs-bug-insert-to-mailer and add help text
 +      about it.
 +
 +      * net/browse-url.el (browse-url-default-browser): Add cond
 +      for browse-url-xdg-open.
 +      (browse-url-can-use-xdg-open, browse-url-xdg-open): New functions.
 +
 +2010-08-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/cc-engine.el (c-new-BEG, c-new-END)
 +      (c-fontify-recorded-types-and-refs): Define for compiler.
 +      * progmodes/cc-mode.el (c-new-BEG, c-new-END): Move definitions
 +      before use.
 +
 +      * calendar/icalendar.el (icalendar--convert-recurring-to-diary):
 +      Fix format call.
 +
 +2010-08-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-make-symbolic-link): Flush file
 +      properties.
 +      (tramp-handle-process-file): Call the program in a subshell, in
 +      order to preserve working directory.
 +      (tramp-action-password): Hide password prompt before next run.
 +      (tramp-process-actions): Widen connection buffer for the trace.
 +
 +2010-08-16  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el (rcirc-log-process-buffers): New option.
 +      (rcirc-print): Use it.
 +      (rcirc-generate-log-filename): New function.
 +      (rcirc-log-filename-function): Change default to
 +      rcirc-generate-log-filename (Bug#6828).
 +
 +2010-08-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (deactivate-mark): If select-active-regions is `only',
 +      only set selection for temporarily active regions.
 +
 +      * cus-start.el: Change defcustom for select-active-regions.
 +
 +2010-08-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse--drag-set-mark-and-point): New function.
 +      (mouse-drag-track): Use LOCATION arg to push-mark.
 +      Use mouse--drag-set-mark-and-point to take click-count into
 +      consideration when updating point and mark (Bug#6840).
 +
 +2010-08-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Give the Ruby rule a lower priority than Gnu (Bug#6778).
 +
 +2010-08-14  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * font-lock.el (lisp-font-lock-keywords-2):
 +      Add combine-after-change-calls, condition-case-no-debug,
 +      with-demoted-errors, and with-silent-modifications (Bug#6025).
 +
 +2010-08-14  Kevin Ryde  <user42@zip.com.au>
 +
 +      * emacs-lisp/copyright.el (copyright-update-year)
 +      (copyright-update): Temporary switch-to-buffer to ensure the
 +      buffer change being queried is visible (Bug#5394).
 +
 +2010-08-14  Tom Tromey  <tromey@redhat.com>
 +
 +      * progmodes/etags.el (tags-file-name): Mark safe if stringp
 +      (Bug#6733).
 +
 +2010-08-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary): Fix mouse-2 on MS-Windows and
 +      MS-DOS.  (Bug#6689)
 +
 +2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): New function.
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-left)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-right)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-top)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-bottom):
 +      Call menu-bar-set-tool-bar-position.
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (octave-mode-syntax-table): Use the new "c"
 +      comment style (bug#6834).
 +      * progmodes/scheme.el (scheme-mode-syntax-table):
 +      * emacs-lisp/lisp-mode.el (lisp-mode-syntax-table): Remove spurious
 +      "b" flag in "' 14b" syntax.
 +
 +      * progmodes/octave-mod.el (octave-mode-map): Remove special bindings
 +      for (un)commenting the region and performing completion.
 +      (octave-mode-menu): Use standard commands for help and completion.
 +      (octave-mode-syntax-table): Support %{..%} comments (sort of).
 +      (octave-mode): Use define-derived-mode.
 +      Set completion-at-point-functions and don't set columns.
 +      Don't disable adaptive-fill-regexp.
 +      (octave-describe-major-mode, octave-comment-region)
 +      (octave-uncomment-region, octave-comment-indent)
 +      (octave-indent-for-comment): Remove.
 +      (octave-indent-calculate): Rename from calculate-octave-indent.
 +      (octave-indent-line, octave-fill-paragraph): Update caller.
 +      (octave-initialize-completions): No need to make an alist.
 +      (octave-completion-at-point-function): New function.
 +      (octave-complete-symbol): Use it.
 +      (octave-insert-defun): Use define-skeleton.
 +
 +      * progmodes/octave-mod.el (octave-mode): Set comment-add.
 +      (octave-mode-map): Use comment-dwim (bug#6829).
 +
 +2010-08-12  Antoine Levitt  <antoine.levitt@gmail.com>  (tiny change)
 +
 +      * cus-edit.el (custom-save-variables, custom-save-faces): Fix up
 +      indentation of inserted comment.
 +
 +2010-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * faces.el (region): Add type gtk that uses gtk colors.
 +
 +      * dynamic-setting.el (dynamic-setting-handle-config-changed-event):
 +      Handle theme-name change.
 +
 +2010-08-10  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.5
 +      (sql-product-alist): Add :prompt-cont-regexp property for several
 +      database products.
 +      (sql-prompt-cont-regexp): New variable.
 +      (sql-output-newline-count, sql-output-by-send):
 +      New variables.  Record number of newlines in input text.
 +      (sql-send-string): Handle multiple filters and count newlines.
 +      (sql-send-magic-terminator): Count terminator newline.
 +      (sql-interactive-remove-continuation-prompt): Filters output to
 +      remove continuation prompts; one for each newline.
 +      (sql-interactive-mode): Set up new variables, prompt regexp and
 +      output filter.
 +      (sql-mode-sqlite-font-lock-keywords): Correct some keywords.
 +      (sql-make-alternate-buffer-name): Correct buffer name in edge cases.
 +
 +2010-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el: New file.
 +
 +2010-08-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-vc-registered-read-file-names): Read input
 +      as here-document, otherwise the command could exceed maximum
 +      length of command line.
 +      (tramp-handle-vc-registered): Call script accordingly.
 +      Reported by Toru TSUNEYOSHI <t_tuneyosi@hotmail.com>.
 +
 +2010-08-10  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Exclude U+05C3 (Hebrew SOF PASUQ) from the
 +      composable pattern.
 +
 +2010-08-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-version-split)
 +      (package--version-first-nonzero, package-version-compare):
 +      Functions removed.
 +      (package-directory-list, package-load-all-descriptors)
 +      (package--built-in, package-activate, define-package)
 +      (package-installed-p, package-compute-transaction)
 +      (package-read-all-archive-contents)
 +      (package--add-to-archive-contents, package-buffer-info)
 +      (package-tar-file-info, package-list-packages-internal):
 +      Use version-to-list and version-list-*.
 +
 +      * emacs-lisp/package-x.el (package-upload-buffer-internal):
 +      Use version-to-list.
 +      (package-upload-buffer-internal): Use version-list-<=.
 +
 +2010-08-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Exclude U+05BD (Hebrew MAQAF) from the
 +      composable pattern.
 +
 +2010-08-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tutorial.el (tutorial--default-keys): C-d is now bound to
 +      delete-forward-char (Bug#6826).
 +
 +      * mouse.el (mouse-drag-track): Remove accidentally-removed check
 +      for `double' value of mouse-1-click-follows-link (Bug#6807).
 +
 +2010-08-08  Johan Bockgård  <bojohan@gnu.org>
 +
 +      * replace.el (replace-highlight): Bind isearch-forward and
 +      isearch-error, ensuring that highlighting is updated if the user
 +      switches the search direction (Bug#6808).
 +
 +      * isearch.el (isearch-lazy-highlight-forward): New var.
 +      (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
 +      (isearch-lazy-highlight-update): Use it.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (define-charset): Store NAME as :base property.
 +      (ctext-non-standard-encodings-table): Pay attention to charset aliases.
 +      (ctext-pre-write-conversion): Sort ctext-standard-encodings by the
 +      current priority.  Force using the designation of the specific
 +      charset by adding `charset' text property.  Improve the whole algorithm.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/pc-select.el (pc-selection-mode-hook)
 +      (copy-region-as-kill-nomark, beginning-of-buffer-mark)
 +      (pc-selection-mode): Fix typos in docstrings.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/cyrillic.el: Don't add "microsoft-cp1251" to
 +      ctext-non-standard-encodings-alist here.
 +
 +      * international/mule.el (ctext-non-standard-encodings-alist):
 +      Add "koi8-r" and "microsoft-cp1251".
 +      (ctext-standard-encodings): New variable.
 +      (ctext-non-standard-encodings-table): List only elements for
 +      non-standard encodings.
 +      (ctext-pre-write-conversion): Adjust for the above change.
 +      Check ctext-standard-encodings.
 +
 +      * international/mule-conf.el (compound-text): Doc fix.
 +      (ctext-no-compositions): Doc fix.
 +      (compound-text-with-extensions): Doc fix.
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (exchange-dot-and-mark): Mark obsolete, finally.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/which-func.el (which-func-format): Split help-echo text
 +      into lines, like other mode-line tooltips.
 +
 +      * server.el (server-start): When using TCP sockets, force IPv4
 +      and use a literal 127.0.0.1 for localhost.  (Related to bug#6781.)
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bindings.el (complete-symbol): Run completion-at-point as a fallback.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * term.el (term-delimiter-argument-list): Reflow docstring.
 +      (term-read-input-ring, term-write-input-ring, term-send-input)
 +      (term-bol, term-erase-in-display, serial-supported-or-barf):
 +      Fix typos in docstrings.
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bindings.el (function-key-map): Add a S-tab => backtab fallback.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dabbrev.el (dabbrev-completion): Fix typo in docstring.
 +
 +2010-08-08  MON KEY  <monkey@sandpframing.com>  (tiny change)
 +
 +      * emacs-lisp/syntax.el (syntax-ppss-toplevel-pos):
 +      Fix typo in docstring (bug#6747).
 +
 +2010-08-08  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/esh-io.el (eshell-get-target): Better detection of
 +      read-only file (Bug#6762).
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * align.el (align-default-spacing): Doc fix.
 +      (align-region-heuristic, align-regexp): Fix typos in docstrings.
 +
 +2010-08-08  Stephen Peters  <speters@itasoftware.com>
 +
 +      * calendar/icalendar.el
 +      (icalendar--split-value): Fix splitting regexp.  (Bug#6766)
 +      (icalendar--get-weekday-numbers): New.
 +      (icalendar--convert-recurring-to-diary): Handle multiple byday
 +      values in weekly rules.  (Bug#6766)
 +
 +2010-08-08  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * calendar/icalendar.el (icalendar-uid-format): Doc fix.
 +      (icalendar--create-uid, icalendar-export-region)
 +      (icalendar--parse-summary-and-rest): Code formatting.
 +
 +2010-08-08  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-trail-mode,calc-refresh): Use `face' property
 +      to italicize headers.
 +      (calc-highlight-selections-with-faces): New variable.
 +      (calc-selected-face, calc-nonselected-face): New faces.
 +
 +      * calc/calccomp.el (math-comp-highlight-string): Use
 +      `calc-highlight-selections-with-faces' to determine how to highlight
 +      sub-formulas.
 +
 +      * calc/calc-sel.el (calc-show-selections): Change message to when
 +      using faces to highlight selections.
 +
 +2010-08-07  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el (sql-mode-sqlite-font-lock-keywords):
 +      Add SQLite 3 keywords, functions and datatypes.
 +      (sql-interactive-mode): Remove `comint-process-echoes' set to t
 +      (Bug#6686).
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (select-active-regions): Move to keyboard.c.
 +      (deactivate-mark): Used saved-region-selection.
 +      (select-active-region): Function removed.
 +      (activate-mark, set-mark, push-mark-command)
 +      (handle-shift-selection): Don't call it.
 +      (keyboard-quit): Avoid adding the region to the window selection.
 +
 +      * mouse.el (mouse-drag-track): Remove hacks to deal with old
 +      select-active-regions implementation.
 +      (mouse-yank-at-click): Doc fix.
 +
 +      * cus-start.el: Add custom declaration for select-active-regions.
 +
 +2010-08-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (delete-forward-char): Doc fix.
 +
 +      * tutorial.el (help-with-tutorial): Hack safe file-local variables
 +      after reading the tutorial.
 +
 +2010-08-06  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph, c-fill-paragraph):
 +      Fix for the case that a C style comment has its delimiters alone on
 +      their respective lines.
 +
 +2010-08-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-start-file-process): Set connection
 +      property "vec".
 +      (tramp-process-sentinel): Use it for flushing the cache.
 +      We cannot do it via the process buffer, the buffer could be deleted
 +      already when running the sentinel.
 +
 +2010-08-06  Jürgen Hötzel  <juergen@archlinux.org>  (tiny change)
 +
 +      * comint.el (comint-mode): Make directory tracking functions
 +      functional on remote files.  (Bug#6764)
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc/diff-mode.el (diff-mode-shared-map): Bind g to revert-buffer.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs-lisp/find-gc.el (find-gc-source-files):
 +      Rename unexec.c => unexcoff.c.
 +
 +      * emacs-lisp/authors.el (authors-fixed-entries):
 +      Rename unexec.c => unexcoff.c.
 +
 +2010-08-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-dired-uncache): Flush directory
 +      cache, not only file cache.
 +      (tramp-process-sentinel): New defun.
 +      (tramp-handle-start-file-process): Use it, in order to invalidate
 +      file caches.
 +
 +2010-08-03  Leo  <sdl.web@gmail.com>
 +
 +      * server.el (server-start): Simplify loop.
 +
 +2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.el (screen-height, screen-width, set-screen-width)
 +      (set-screen-height): Remove ancient compatibility aliases.
 +
 +      * textmodes/fill.el (justify-current-line): Don't add 1 to nspaces
 +      when justifying.  It seems useless and harmful for ncols=1 (bug#6738).
 +
 +      * emacs-lisp/timer.el (timer-event-handler): Protect against timers
 +      that change current buffer.
 +
 +2010-08-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * mouse.el (mouse-fixup-help-message): Match "mouse-2" only at the
 +      beginning of the string.  Use `string-match-p'.  (Bug#6765)
 +
 +2010-08-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cus-start.el (x-gtk-use-system-tooltips): New variable.
 +
 +2010-08-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--list-packages): Fix column alignment.
 +      (package--builtins): Tweak descriptions.
 +      (package-print-package): Upcase descriptions if necessary.
 +      Show all built-in packages in font-lock-builtin-face.
 +      (package-list-packages-internal): Omit "emacs" package.
 +      Show status of built-in packages as "built-in".
 +
 +2010-07-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-save-then-kill): Doc fix.  Deactivate mark
 +      before killing to preserve the primary selection (Bug#6701).
 +
 +      * term/x-win.el (x-select-text): Doc fix.
 +
 +2010-07-31  Nathaniel Flath  <flat0103@gmail.com>
 +
 +      * progmodes/cc-vars.el (c-offsets-alist, c-inside-block-syms)
 +      (objc-font-lock-extra-types):
 +      * progmodes/cc-mode.el (c-basic-common-init):
 +      * progmodes/cc-langs.el (c-make-mode-syntax-table)
 +      (c++-make-template-syntax-table)
 +      (c-identifier-syntax-modifications, c-symbol-start, c-operators)
 +      (c-<-op-cont-regexp, c->-op-cont-regexp, c-class-decl-kwds)
 +      (c-brace-list-decl-kwds, c-modifier-kwds, c-prefix-spec-kwds-re)
 +      (c-type-list-kwds, c-decl-prefix-re, c-opt-type-suffix-key):
 +      * progmodes/cc-fonts.el (c-make-inverse-face)
 +      (c-basic-matchers-after):
 +      * progmodes/cc-engine.el (c-forward-keyword-clause)
 +      (c-forward-<>-arglist, c-forward-<>-arglist-recur)
 +      (c-forward-name, c-forward-type, c-forward-decl-or-cast-1)
 +      (c-guess-continued-construct, c-guess-basic-syntax):
 +      Enhance Java Mode to handle Java 5.0 (Tiger) and Java 6 (Mustang).
 +      The above functions were modified or created.
 +
 +2010-07-31  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * faces.el (face-all-attributes): Improve documentation (Bug#6767).
 +
 +2010-07-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (bidi-paragraph-direction): Define safe local values.
 +
 +      * language/hebrew.el ("Hebrew"): Add TUTORIAL.he to
 +      language-info-alist.  Remove outdated FIXME in a comment.
 +
 +2010-07-31  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph): Fix bug #6688:
 +      Auto-fill broken in C/C++ modes.
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-showhide-tool-bar-menu-customize-enable-left)
 +      (menu-bar-showhide-tool-bar-menu-customize-disable)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-right)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-bottom)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-top): New functions
 +      (menu-bar-showhide-tool-bar-menu): If tool bar is moveable,
 +      make a menu for Options => toolbar that can move it.
 +
 +2010-07-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package-x.el (package--make-rss-entry):
 +      (package-maint-add-news-item, package--update-news)
 +      (package-upload-buffer-internal): New arg ARCHIVE-URL.
 +
 +      * emacs-lisp/package.el (package-archive-url): Rename from
 +      package-archive-id.
 +      (package-install): Doc fix.
 +      (package-download-single, package-download-tar, package-install)
 +      (package-menu-view-commentary): Callers changed.
 +
 +2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-start-file-process): Check only for
 +      `remote-tty' process property.
 +      (tramp-open-shell): Don't check for tty.
 +      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 +      process property.
 +
 +      * progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote
 +      host.
 +
 +2010-07-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-load-list, package-archives)
 +      (package-archive-contents, package-user-dir)
 +      (package-directory-list, package--builtins, package-alist)
 +      (package-activated-list, package-obsolete-alist): Mark as risky.
 +
 +2010-07-28  Phil Hagelberg  <phil@evri.com>
 +
 +      Add support for non-default package repositories.
 +      * emacs-lisp/package.el (package-archive-base): Var deleted.
 +      (package-archives): New variable.
 +      (package-archive-contents): Doc fix.
 +      (package-load-descriptor): Do nothing if descriptor file is missing.
 +      (package--write-file-no-coding): New function.
 +      (package-unpack-single): Use it.
 +      (package-archive-id): New function.
 +      (package-download-single, package-download-tar)
 +      (package-menu-view-commentary): Use it.
 +      (package-installed-p): Make second argument optional.
 +      (package-read-all-archive-contents): New function.
 +      (package-initialize): Use it.
 +      (package-read-archive-contents): Add ARCHIVE argument.
 +      (package--add-to-archive-contents): New function.
 +      (package-install): Don't call package-read-archive-contents.
 +      (package--download-one-archive): Store archive file in a
 +      subdirectory of package-user-dir.
 +      (package-menu-execute): Remove spurious line movement.
 +
 +2010-07-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cus-start.el (tool-bar-style): Add text-image-horiz.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * progmodes/gud.el (gud-common-init): Check for remoteness of
 +      `file', and not of `default-directory'.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      ssh `tramp-login-args'.
 +      (tramp-verbose): Describe verbose level 9.
 +      (tramp-open-shell): Check for tty if `tramp-verbose' >= 9.
 +      (tramp-open-connection-setup-interactive-shell): Trace stty
 +      settings if `tramp-verbose' >= 9.
 +      (tramp-handle-start-file-process): Implement tty setting.
 +      (Bug#4604, Bug#6360)
 +
 +      * net/tramp-cmds.el (tramp-bug): Recommend setting of
 +      `tramp-verbose' to 9.
 +
 +2010-07-27  Aaron S. Hawley  <ashawley@burlingtontelecom.net>
 +
 +      * emacs-lisp/re-builder.el (reb-re-syntax, reb-lisp-mode)
 +      (reb-lisp-syntax-p, reb-change-syntax, reb-cook-regexp):
 +      Remove references to package `lisp-re' (bug#4369).
 +
 +2010-07-27  Tom Tromey  <tromey@redhat.com>
 +
 +      * progmodes/js.el (js-mode):
 +      * progmodes/make-mode.el (makefile-mode):
 +      * progmodes/simula.el (simula-mode):
 +      * progmodes/tcl.el (tcl-mode): Derive from prog-mode.
 +
 +2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
 +
 +      * time.el (display-time-day-and-date): Remove spurious * in docstring.
 +      (display-time-world-buffer-name, display-time-world-mode-map):
 +      Fix typos in docstrings.
 +
 +2010-07-27  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
 +
 +      * image-mode.el (image-display-size): New function.
 +      (image-forward-hscroll, image-next-line, image-eol, image-eob)
 +      (image-mode-fit-frame): Use it (Bug#6639).
 +
 +2010-07-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-buffers-for-dir): Handle list values of
 +      dired-directory (Bug#6636).
 +
 +2010-07-26  Sam Steingold  <sds@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary, mouse-yank-secondary):
 +      Do not call `x-get-selection' the second time, reuse the value.
 +
 +2010-07-26  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-mail.el (epa-mail-mode-map): Add alternative key bindings
 +      which consist of control chars only.  Suggested by Richard Stallman.
 +
 +2010-07-25  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-insert-file-contents): Check if LOCAL-FILE
 +      exists before passing an error to find-file-not-found-functions
 +      (bug#6723).
 +
 +2010-07-23  Lukas Huonker  <l.huonker@gmail.com>
 +
 +      * play/tetris.el (tetris-tty-colors, tetris-x-colors, tetris-blank):
 +      Remove leading nil element, adjust values.
 +      (tetris-shapes, tetris-shape-scores):
 +      Change representation of shapes and remove some redundancy.
 +      (tetris-get-shape-cell, tetris-shape-width, tetris-draw-next-shape)
 +      (tetris-draw-shape, tetris-erase-shape, tetris-test-shape):
 +      Adjust for working with new representation of shapes.
 +      (tetris-shape-rotations): New function.
 +      (tetris-move-bottom, tetris-move-left, tetris-move-right)
 +      (tetris-rotate-prev, tetris-rotate-next):
 +      Adjust for working with the new version of tetris-test-shape.
 +
 +2010-07-23  Markus Triska  <markus.triska@gmx.at>
 +
 +      * progmodes/ps-mode.el: Use comint (bug#5954).
 +      (ps-run-mode-map): Adapt for comint-mode; omit "\r", [return]..
 +      (ps-mode-other-newline): Simplify.
 +      (ps-run-mode): Derive from comint-mode instead of
 +      fundamental-mode, yielding input history etc.
 +      (ps-run-start, ps-run-quit, ps-run-clear, ps-run-region)
 +      (ps-run-send-string): Adapt for comint-mode.
 +      (ps-run-newline): Remove now unneeded function.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      plink `tramp-login-args'.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-open-shell): New defun.
 +      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 +      Use it.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-file-name-regexp-unified)
 +      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 +      not regard the volume letter as remote filename.  (Bug#5447)
 +
 +2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * custom.el (custom-declare-variable): Give a clearer error message
 +      when the docstring is missing (bug#6476).
 +
 +2010-07-22  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.4.  Improved Login prompting.
 +      (sql-login-params): New widget definition.
 +      (sql-oracle-login-params, sql-mysql-login-params)
 +      (sql-solid-login-params, sql-sybase-login-params)
 +      (sql-informix-login-params, sql-ingres-login-params)
 +      (sql-ms-login-params, sql-postgres-login-params)
 +      (sql-interbase-login-params, sql-db2-login-params)
 +      (sql-linter-login-params): Use it.
 +      (sql-sqlite-login-params): Use it; Define "database" parameter as
 +      a file name.
 +      (sql-sqlite-program): Change to "sqlite3".
 +      (sql-comint-sqlite): Make sure database name is complete.
 +      (sql-for-each-login): New function.
 +      (sql-connect, sql-save-connection): Use it.
 +      (sql-get-login-ext): New function.
 +      (sql-get-login): Use it.
 +      (sql-make-alternate-buffer-name): Handle :file parameters.
 +
 +2010-07-22  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dired.el (dired-no-confirm): Document value t and fix defcustom to
 +      accept it (bug#6597).  Suggested by Drew Adams <drew.adams@oracle.com>.
 +
 +2010-07-22  Teemu Likonen  <tlikonen@iki.fi>  (tiny change)
 +
 +      * dired.el (dired-mode-map): Use command remapping (bug#6632).
 +
 +2010-07-22  Lawrence Mitchell  <wence@gmx.li>
 +
 +      * term/vt100.el (vt100-wide-mode): Fix :init-value keyword (bug#6620).
 +
 +2010-07-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-get-ls-command)
 +      (tramp-get-ls-command-with-dired): Run tests on "/dev/null"
 +      instead of "/".
 +
 +2010-07-20  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.3.
 +      (sql-connection-alist): Change keys from symbols to strings;
 +      enhanced the widget definition.
 +      (sql-mode-menu): Add submenu to select connections.
 +      (sql-interactive-mode-menu): Add "Save Connection" item.
 +      (sql-add-product): Fix menu item.
 +      (sql-get-product-feature): Improved error handling.
 +      (sql--alt-buffer-part, sql--alt-if-not-empty): Removed.
 +      (sql-make-alternate-buffer-name): Simplified.
 +      (sql-product-interactive): Handle missing product.
 +      (sql-connect): Support string keys, minor improvements.
 +      (sql-save-connection): New function.
 +      (sql-connection-menu-filter): New function.
 +
 +2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-file-name-handler): Trace 'quit.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Apply workaround for IRIX64 bug.  Move argument of last
 +      `tramp-send-command' where it belongs to.
 +
 +2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 +      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 +      front of `login-args'.
 +
 +2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * time.el (display-time-world-mode): Define with `define-derived-mode'.
 +      Set `show-trailing-whitespace' to nil.
 +      (display-time-world-display): Simplify.
 +
 +2010-07-18  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance `c-file-style' in file/directory local variables.
 +      * progmodes/cc-mode.el (c-count-cfss): New function.
 +      (c-before-hack-hook): Call `c-set-style' differently according to
 +      whether c-file-style was set in file or directory local
 +      variables.
 +
 +2010-07-18  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.2.
 +      (sql-product, sql-user, sql-database, sql-server, sql-port):
 +      Use defcustom :safe keyword rather than putting safe-local-variable
 +      property.
 +      (sql-password): Use defcustom :risky keyword rather than putting
 +      risky-local-variable property.
 +      (sql-oracle-login-params, sql-sqlite-login-params)
 +      (sql-solid-login-params, sql-sybase-login-params)
 +      (sql-informix-login-params, sql-ingres-login-params)
 +      (sql-ms-login-params, sql-postgres-login-params)
 +      (sql-interbase-login-params, sql-db2-login-params)
 +      (sql-linter-login-params): Add `port' option.
 +      (sql-get-product-feature): Add NO-INDIRECT parameter.
 +      (sql-comint-oracle, sql-comint-sybase)
 +      (sql-comint-informix, sql-comint-sqlite, sql-comint-mysql)
 +      (sql-comint-solid, sql-comint-ingres, sql-comint-ms)
 +      (sql-comint-postgres, sql-comint-interbase, sql-comint-db2)
 +      (sql-comint-linter): Rename sql-connect-* functions to
 +      sql-comint-*.
 +      (sql-product-alist, sql-mode-menu): Rename as above and
 +      :sqli-connect-func to :sqli-comint-func.
 +      (sql-connection): New variable.
 +      (sql-interactive-mode): Set it.
 +      (sql-connection-alist): New variable.
 +      (sql-connect): New function.
 +      (sql--alt-buffer-part, sql--alt-if-not-empty)
 +      (sql-make-alternate-buffer-name): Improved alternative buffer name.
 +
 +2010-07-17  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * image-mode.el (image-bookmark-make-record): Do not set context
 +      in an image (Bug#6650).
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (select-active-region): New function.
 +      (push-mark-command, set-mark, activate-mark)
 +      (handle-shift-selection): Use it.
 +      (deactivate-mark): Don't check for size of region.
 +
 +      * mouse.el (mouse-drag-track): Use select-active-region.
 +
 +2010-07-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-get-ls-command-with-dired): Make test for
 +      "--dired" stronger.
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/x-win.el (x-select-enable-primary): Change default to nil.
 +      (x-select-enable-clipboard): Add :version keyword.
 +
 +      * mouse.el (mouse-drag-copy-region):
 +      * simple.el (select-active-regions): Likewise.
 +
 +2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * vc/vc.el (vc-coding-system-inherit-eol): New defvar.
 +      (vc-coding-system-for-diff): Use it to decide whether to inherit
 +      from the file the EOL format for reading the diffs of that file.
 +      (Bug#4451)
 +
 +2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mail/rmailmm.el (rmail-mime-save): Make the temp buffer
 +      unibyte, so compressed attachments are not compressed again.
 +
 +2010-07-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-shell-command): Don't use hard-wired
 +      "/bin/sh" but `tramp-remote-sh' from `tramp-methods'.
 +      (tramp-find-shell): Simplify setting connection property.
 +      (tramp-get-ls-command): Make test for "--color=never" stronger.
 +
 +2010-07-15  Simon South  <ssouth@member.fsf.org>
 +
 +      * progmodes/delphi.el (delphi-previous-indent-of): Indent case
 +      blocks within record declarations (i.e. variant parts) correctly.
 +
 +2010-07-15  Simon South  <ssouth@member.fsf.org>
 +
 +      * progmodes/delphi.el (delphi-token-at): Give newlines precedence
 +      over literal tokens when parsing so newlines aren't "absorbed" by
 +      single-line comments.  Corrects the indentation of case blocks
 +      that have a comment on the first line.
 +
 +2010-07-14  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-load-hook): Fix doc string as suggested
 +      by Drew Adams (Bug#5504).
 +
 +2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
 +      now that Unicode is used (Bug#6594).
 +
 +2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/x-win.el (x-select-enable-clipboard): Default to t.
 +      (x-initialize-window-system): Don't overwrite Paste menu item.
 +
 +      * simple.el (select-active-regions): Default to t.
 +      (push-mark-command): Don't overwrite primary with empty string.
 +
 +      * mouse.el: Bind mouse-2 to mouse-yank-primary.
 +      (mouse-drag-copy-region): Default to nil.
 +
 +      * menu-bar.el (menu-bar-enable-clipboard): Don't overwrite
 +      Cut/Copy/Paste menu bar items.
 +
 +2010-07-13  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975).
 +      Patch applied by Karl Fogel.
 +
 +      * bookmark.el (bookmark-set): Don't set `bookmark-yank-point'
 +      and `bookmark-current-buffer' if they have been already set in
 +      another buffer (e.g gnus-art).
 +
 +2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 +            Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      Preparation for setting bookmarks in Gnus article buffers (Bug#5975).
 +
 +      * bookmark.el (bookmark-make-record-default): Allow unneeded
 +      information to be omitted from the record.
 +
 +      Adjust declarations and calls:
 +
 +      * info.el (bookmark-make-record-default): Adjust declaration.
 +      (Info-bookmark-make-record): Adjust call.
 +
 +      * woman.el (bookmark-make-record-default): Adjust declaration.
 +      (woman-bookmark-make-record): Adjust call.
 +
 +      * man.el (bookmark-make-record-default): Adjust declaration.
 +      (Man-bookmark-make-record): Adjust call.
 +
 +      * image-mode.el (bookmark-make-record-default): Adjust declaration.
 +
 +      * doc-view.el (bookmark-make-record-default): Adjust declaration.
 +
 +2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-show-annotation): Use `when' instead of `if'.
 +      This is also from Thierry Volpiatto's patch in bug #6444.  However,
 +      because it was extraneous to the functional change in that patch,
 +      and causes a re-indendation, I am committing it separately.
 +
 +2010-07-13  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * bookmark.el (bookmark-show-annotation): Ensure annotations show,
 +      e.g. in Info bookmarks, by using `switch-to-buffer-other-window'.
 +      Patch applied by Karl Fogel (Bug#6444).
 +
 +2010-07-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.el (make-frame): Fix typo in 2010-06-30 change (Bug#6625).
 +
 +2010-07-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * term/ns-win.el: Bind M-~ to 'ns-prev-frame (due to Matthew
 +      Dempsky; bug#5084).  Remove incorrect binding for S-tab.
 +      (ns-alternatives-map): Change S-tab binding to backtab
 +      (bug#6616).
 +
 +      * simple.el (normal-erase-is-backspace-setup-frame): Set mode on
 +      under ns.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * language/tai-viet.el ("TaiViet"): Try to fix re-encoding bugs.
 +      (Bug#5806)
 +
 +      * language/tv-util.el (tai-viet-re): Remove format.
 +
 +2010-07-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Remove no-byte-compile declaration.
 +      Change coding: tag to utf-8.  Register hebrew-shape-gstring in
 +      composition-function-table for 3-character looking back.
 +      (hebrew-font-get-precomposed): New function.
 +      (hebrew-shape-gstring): Utilize precomposed glyphs if available.
 +
 +2010-07-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-drag-track): Handle select-active-regions
 +      (Bug#6612).
 +
 +2010-07-11  Magnus Henoch  <magnus.henoch@gmail.com>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 +      empty argument to gvfs-copy.
 +
 +2010-07-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/calendar.el (calendar-week-end-day): New function.
 +      * calendar/cal-tex.el (cal-tex-cursor-month): Remove unused vars.
 +      Respect calendar-week-start-day.  (Bug#6606)
 +      (cal-tex-insert-day-names, cal-tex-insert-blank-days)
 +      (cal-tex-insert-blank-days-at-end): Respect calendar-week-start-day.
 +      (cal-tex-first-blank-p, cal-tex-last-blank-p): Simplify, and
 +      respect calendar-week-start-day.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (use-region-p): Doc fix (Bug#6607).
 +
 +2010-07-10  Aleksei Gusev  <aleksei.gusev@gmail.com>  (tiny change)
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Add regexps for cucumber and ruby.
 +
 +2010-07-08  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-error, epa-file--find-file-not-found-function)
 +      (epa-file-insert-file-contents): Hack to prevent
 +      find-file from opening empty buffer when decryption failed
 +      (bug#6568).
 +
 +2010-07-07  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-alternate-dictionary):
 +      Use file-readable-p.
 +      Return nil if no word-list is found at default locations.
 +      (ispell-complete-word-dict): Default to nil.
 +      (ispell-command-loop): Use 'word-list' when using lookup-words.
 +      (lookup-words): Use ispell-complete-word-dict or
 +      ispell-alternate-dictionary.  Check for word-list availability
 +      and handle errors if needed with better messages (Bug#6539).
 +      (ispell-complete-word): Use ispell-complete-word-dict or
 +      ispell-alternate-dictionary.
 +
 +2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
 +      builtins (BufferError, BytesWarning, WindowsError; callables
 +      bin, bytearray, bytes, format, memoryview, next, print; __package__).
 +
 +2010-07-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * play/zone.el (top-level): Do not require timer, tabify, or cl.
 +      (zone-shift-left): Ignore intangibility, and any errors from
 +      forward-char.
 +      (zone-shift-right): Remove no-op end-of-line.  Ignore intangibility.
 +      (zone-pgm-putz-with-case): Use upcase-region rather than inserting,
 +      deleting, and copying text properties.
 +      (zone-line-specs, zone-pgm-stress): Check forward-line exit status.
 +      (zone-pgm-rotate): Handle odd buffers like that of gomoku, where getting
 +      to point-max is hard.
 +      (zone-fret, zone-fill-out-screen): Replace cl's do with dotimes.
 +      (zone-fill-out-screen): Ignore intangibility.
 +
 +2010-07-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * menu-bar.el (menu-bar-mode):
 +      * tool-bar.el (tool-bar-mode): Replace default-frame-alist element
 +      if it has been set.
 +
 +      * mouse.el (mouse-drag-track): Call mouse-start-end to handle
 +      word/line selection (Bug#6565).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/dbus.el (dbus-send-signal): Declare function.
 +
 +2010-07-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el: Implement signal "PropertiesChanged" (from D-Bus 1.3.1).
 +      (dbus-register-property): New optional argument EMITS-SIGNAL.
 +      (dbus-property-handler): Send signal "PropertiesChanged" if requested.
 +
 +2010-07-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-drag-overlay): Variable deleted.
 +      (mouse-move-drag-overlay, mouse-show-mark): Functions deleted.
 +      (mouse--remap-link-click-p): New function.
 +      (mouse-drag-track): Handle dragging by using temporary Transient
 +      Mark mode, instead of a special overlay.
 +      (mouse-kill-ring-save, mouse-save-then-kill): Don't call
 +      mouse-show-mark.
 +
 +      * mouse-sel.el (mouse-sel-selection-alist): mouse-drag-overlay
 +      deleted.
 +
 +2010-07-02  Juri Linkov  <juri@jurta.org>
 +
 +      * autoinsert.el (auto-insert-alist): Fix readability
 +      by using dotted pair notation for lambda.
 +
 +2010-07-02  Juri Linkov  <juri@jurta.org>
 +
 +      * faces.el (read-face-name): Rename arg `string-describing-default'
 +      to `default'.  Doc fix.  Display the default value in quotes
 +      in the prompt.  With empty input, return the `default' arg,
 +      unless the default value is a string (in which case return nil).
 +      (describe-face): Replace the string `default' arg of `read-face-name'
 +      with the symbol `default'.
 +
 +2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emulation/viper-cmd.el (viper-delete-backward-char)
 +      (viper-del-backward-char-in-insert)
 +      (viper-del-backward-char-in-replace, viper-change)
 +      (viper-backward-indent): Replace delete-backward-char with
 +      delete-char (Bug#6552).
 +
 +2010-07-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ruler-mode.el (ruler--save-header-line-format): Fix typos.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.el (make-frame): Add default-frame-alist to the PARAMETERS
 +      argument passed to frame-creation-function (Bug#5378).
 +
 +      * faces.el (x-handle-named-frame-geometry)
 +      (x-handle-reverse-video, x-create-frame-with-faces)
 +      (face-set-after-frame-default, tty-create-frame-with-faces):
 +      Don't separately consult default-frame-alist.  It is now passed as the
 +      PARAMETER argument.
 +
 +2010-06-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * startup.el (command-line): Don't call tool-bar-setup in a
 +      tty-only build.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ruler-mode.el (ruler--save-header-line-format): New fun.
 +      (ruler-mode): Use it as a setter function, so as not to overwrite
 +      ruler-mode-header-line-format-old if Ruler mode is on (Bug#5370).
 +
 +2010-06-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc.el (vc-deduce-backend): New fun.  Handle diff buffers.
 +      (vc-root-diff, vc-print-root-log, vc-log-incoming)
 +      (vc-log-outgoing): Use it.
 +      (vc-diff-internal): Set diff-vc-backend.
 +
 +      * vc/diff-mode.el (diff-vc-backend): New var.
 +
 +2010-06-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * dynamic-setting.el (font-setting-change-default-font):
 +      Remove call to message.
 +
 +2010-06-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/quail.el (quail-insert-kbd-layout): Fix the
 +      showing of untranslated characters.
 +
 +2010-06-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (delete-active-region): New option.
 +      (delete-backward-char): Implement in Lisp.
 +      (delete-forward-char): New command.
 +
 +      * mouse.el (mouse-region-delete-keys): Deleted.
 +      (mouse-show-mark): Simplify.
 +
 +      * bindings.el (global-map): Bind delete and DEL, the former to
 +      delete-forward-char.
 +
 +2010-06-27  Lennart Borgman  <lennart.borgman@gmail.com>
 +
 +      * progmodes/ruby-mode.el (ruby-mode-map): Don't bind TAB.
 +      (ruby-mode): Bind indent-line-function (Bug#5119).
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Recognize "0" X resource value.
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Use X resources to set the value of
 +      menu-bar-mode and tool-bar-mode, before calling frame-initialize.
 +
 +      * menu-bar.el (menu-bar-mode):
 +      * tool-bar.el (tool-bar-mode): Don't change default-frame-alist.
 +      Set init-value to t.
 +
 +      * frame.el (frame-notice-user-settings): Don't change
 +      default-frame-alist based on menu-bar-mode and tool-bar-mode, or
 +      vice versa (Bug#2249).
 +
 +2010-06-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32-fns.el (w32-convert-standard-filename): Doc fix.
 +
 +2010-06-25  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/flyspell.el (flyspell-check-previous-highlighted-word):
 +      Make sure `flyspell-word' re-checks word after function run (Bug#6504).
 +
 +      * textmodes/ispell.el (ispell-init-process): Make sure ispell and
 +      default directories are expanded (Bug#6143).
 +
 +2010-06-24  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuffer.el (completions-format): Change default from nil to
 +      `horizontal'.  Remove `nil' value from :type.  Doc fix.  (Bug#6459)
 +
 +2010-06-24  Juri Linkov  <juri@jurta.org>
 +
 +      * vc/vc.el (vc-diff-internal): Set `revert-buffer-function'
 +      buffer-locally to lambda that re-runs the vc diff command.
 +      (Bug#6447)
 +
 +2010-06-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * kmacro.el (kmacro-call-macro): Don't issue hint message if the
 +      echo area is in use (Bug#3412).
 +
 +2010-06-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/texinfmt.el (texinfo-format-region)
 +      (texinfo-raise-lower-sections, texinfo-format-separate-node)
 +      (texinfo-itemize-item, texinfo-multitable-item, texinfo-alias)
 +      (texinfo-format-option, texinfo-noindent):
 +      Use line-beginning-position and line-end-position.
 +
 +      * calc/calc-aent.el, calc/calc-ext.el, calc/calc-lang.el:
 +      * calc/calc-store.el, calc/calc-units.el, calc/calc.el:
 +      * calc/calccomp.el: Add explicit utf-8 coding cookies to files with
 +      utf-8 characters.
 +
 +2010-06-21  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * play/zone.el (zone-fall-through-ws): Fix next-line ->
 +      forward-line fallout.
 +
 +2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-appearance-menu): Add docstring.
 +
 +      * help.el (describe-key): Print up-event using key-description.
 +
 +2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/zeroconf.el (zeroconf-resolve-service)
 +      (zeroconf-service-resolver-handler): Use `dbus-byte-array-to-string'.
 +      (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
 +
 +2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
 +
 +2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Avoid displaying files with a nil state in vc-dir.
 +      * vc/vc-dir.el (vc-dir-update): Obey the noinsert argument in all
 +      cases that cause insertion.
 +      (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
 +      with a nil state.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
 +
 +2010-06-29  Leo  <sdl.web@gmail.com>
 +
 +      * emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
 +
 +2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
 +
 +      * generic-x.el (bat-generic-mode): Fix regexp for command line
 +      switches (Bug#5719).
 +
 +2010-06-27  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * htmlfontify.el (hfy-face-attr-for-class): Use append instead
 +      of nconc to avoid pure storage error (Bug#6239).
 +
 +2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +
 +      * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
 +      (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
 +      bindings of bookmark-automatically-show-annotations (Bug#6515).
 +
 +2010-06-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * arc-mode.el (archive-zip-extract): Don't quote the file name on
 +      MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
 +
 +2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * comint.el (make-comint, make-comint-in-buffer): Mention return
 +      value in the docstrings.  (Bug#6498)
 +
 +2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
 +
 +      * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
 +      since it is not present when using some non-default switches.
 +
 +2010-06-23  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * simple.el (compose-mail): Fix doc string to refer to
 +      `compose-mail-user-agent-warnings', instead of to the
 +      nonexistent `compose-mail-check-user-agent'.
 +
 +2010-06-21  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +
 +      Fix an indentation bug:
 +
 +      * progmodes/cc-mode.el (c-common-init): Initialise c-new-BEG/END.
 +      (c-neutralize-syntax-in-and-mark-CPP): c-new-BEG/END: Take account
 +      of existing values.
 +
 +      * progmodes/cc-engine.el (c-clear-<-pair-props-if-match-after)
 +      (c-clear->-pair-props-if-match-before): now return t when they've
 +      cleared properties, nil otherwise.
 +      (c-before-change-check-<>-operators): Set c-new-beg/end correctly
 +      by taking account of the existing value.
 +
 +      * progmodes/cc-defs.el
 +      (c-clear-char-property-with-value-function): Fix this to clear the
 +      property rather than overwriting it with nil.
 +
 +2010-06-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-print-package): Add link to
 +      package description via describe-package.
 +      (describe-package-1): List package requirements.  Add button to
 +      perform installation.
 +      (package-menu-describe-package): New command.
 +
 +      * help-mode.el (help-package): New button type.
 +
 +2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el: Move package-list-packages binding to
 +      menu-bar.el.
 +      (describe-package, describe-package-1, package--dir): New funs.
 +      (package-activate-1): Use package--dir.
 +
 +      * emacs-lisp/package-x.el (gnus-article-buffer): Require package.
 +
 +      * help-mode.el (help-package-def): New button type.
 +
 +      * menu-bar.el: Move package-list-packages binding here from
 +      package.el.
 +
 +2010-06-19  Gustav Hållberg  <gustav@gmail.com>  (tiny change)
 +
 +      * descr-text.el (describe-char): Avoid trailing whitespace.  (Bug#6423)
 +
 +2010-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/edebug.el (edebug-read-list):
 +      Phase out old-style backquotes.
 +
 +2010-06-17  Juri Linkov  <juri@jurta.org>
 +
 +      * help-mode.el (help-mode): Set buffer-local variable
 +      revert-buffer-function to help-mode-revert-buffer.
 +      (help-mode-revert-buffer): New function.
 +
 +      * info.el (Info-revert-find-node): Check for major-mode Info-mode
 +      before popping to "*info*" (like in other Info functions).
 +      Keep buffer-name in old-buffer-name.  Keep Info-history-forward in
 +      old-history-forward.  Pop to old-buffer-name or "*info*" to
 +      recreate the killed buffer.  Set Info-history-forward from
 +      old-history-forward.
 +      (Info-breadcrumbs-depth): Add :group and :version.
 +
 +2010-06-17  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map): Add a menu.
 +
 +2010-06-17  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-aspell-find-dictionary): Fix regexp
 +      for languages like Portuguese with pt_{BR,PT} and no plain pt.
 +
 +2010-06-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map):
 +      Move initialization into declaration.
 +
 +      * menu-bar.el (menu-bar-options-menu): Fix typo in menu entry.
 +
 +2010-06-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-archive-base): Point to
 +      elpa.gnu.org.
 +      (package-enable, package-load-list): New defcustoms.
 +      (package-user-dir, package-directory-list): Turn into defcustoms.
 +      Don't include package-user-dir in package-directory-list.
 +      (package--builtins-base): Don't include Emacs as a "package".
 +      (package-subdirectory-regexp): New var.
 +      (package-load-all-descriptors, package-compute-transaction)
 +      (package-download-transaction): Obey package-load-list.
 +      (package-activate-1): Rename from package-do-activate.
 +      (package-list-packages-internal): Check package-load-list.
 +      (package-load-descriptor, package-generate-autoloads)
 +      (package-unpack, package-unpack-single)
 +      (package--read-archive-file, package-delete):
 +      Use expand-file-name.
 +
 +      * emacs-lisp/package-x.el: New file.  Package uploading
 +      functionality split out from package.el.
 +
 +      * startup.el (command-line): Load packages after reading init file.
 +
 +2010-06-17  Tom Tromey  <tromey@redhat.com>
 +
 +      * emacs-lisp/package.el: New file.
 +
 +2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix vc-annotate for renamed files when using Git.
 +      * vc/vc-git.el (vc-git-find-revision): Deal with empty results from
 +      ls-files.  Doe not pass the object as a file name to cat-file, it
 +      is not a file name.
 +      (vc-git-annotate-command): Pass the file name using -- to avoid
 +      ambiguity with the revision.
 +      (vc-git-previous-revision): Pass a relative file name.
 +
 +2010-06-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/js.el (js-mode-map): Use standard capitalization and
 +      ellipses for menu entries.
 +
 +      * wid-edit.el (widget-complete): Doc fix.
 +
 +2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
 +
 +      * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
 +
 +2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix annotating other revisions for renamed files in vc-annotate.
 +      * vc/vc-annotate.el (vc-annotate): Add an optional argument for the
 +      VC backend.  Use it when non-nil.
 +      (vc-annotate-warp-revision): Pass the VC backend to vc-annotate.
 +      (Bug#6487).
 +
 +      Fix vc-annotate-show-changeset-diff-revision-at-line for git.
 +      * vc/vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
 +      Do not pass the file name to the 'previous-revision call when we
 +      don't want a file diff.  (Bug#6489)
 +
 +2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix finding revisions for renamed files in vc-annotate.
 +      * vc/vc.el (vc-find-revision): Add an optional argument for
 +      the VC backend.  Use it when non-nil.
 +      * vc/vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
 +      backend to vc-find-revision.  (Bug#6487)
 +
 +2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix reading file names in Git annotate buffers.
 +      * vc/vc-git.el (vc-git-annotate-extract-revision-at-line):
 +      Remove trailing whitespace.  Suggested by Eric Hanchrow.  (Bug#6481)
 +
 +2010-06-20  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
 +      in file local variables, set it first.
 +
 +2010-06-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * descr-text.el (describe-char-unicode-data): Insert separating
 +      space when needed.  (Bug#6422)
 +
 +      * progmodes/idlwave.el (idlwave-action-and-binding):
 +      Fix typo in 2009-12-03 change.  (Bug#6450)
 +
 +2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special
 +      handling for `lambda' (misunderstanding).
 +
 +2010-06-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-poly.el (math-accum-factors): Make sure that
 +      constants aren't distributed after they are factored out.
 +
 +2010-06-16  Juri Linkov  <juri@jurta.org>
 +
 +      * facemenu.el (list-colors-display): Call `pop-to-buffer' before
 +      `list-colors-print'.  (Bug#6332)
 +
 +      * subr.el (read-quoted-char): Fix up last change (bug#6290).
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda'
 +      specially, since it's a macro.  Fix up wrong hint passed to maybe-cons.
 +
 +      * font-lock.el (font-lock-major-mode): Rename from
 +      font-lock-mode-major-mode to distinguish it from
 +      global-font-lock-mode's own font-lock-mode-major-mode (bug#6135).
 +      (font-lock-set-defaults):
 +      * font-core.el (font-lock-default-function): Adjust users.
 +      (font-lock-mode): Don't set it at all.
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/vc-annotate.el (vc-annotate): Use vc-read-revision.
 +
 +2010-06-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-time-msg-list): Doc fix.
 +      (appt-check): Let-bind appt-warn-time.
 +      (appt-add): Make the 3rd argument optional.
 +      Simplify argument names.  Doc fix.  Check for integer WARNTIME.
 +      Only add WARNTIME to the output list if non-nil.
 +
 +2010-06-16  Ivan Kanis  <apple@kanis.eu>
 +
 +      * calendar/appt.el (appt-check): Let the 3rd element of
 +      appt-time-msg-list specify the warning time.
 +      (appt-add): Add new argument with the warning time.  (Bug#5176)
 +
 +2010-06-16  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
 +      older than version 1.6.  (Bug#6361)
 +
 +2010-06-16  Helmut Eller  <eller.helmut@gmail.com>
 +
 +      * emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
 +      used by cl-do-arglist.  (Bug#6408)
 +
 +2010-06-16  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-dictionary-base-alist):
 +      Fix portuguese casechars/not-casechars for missing 'çÇ'.
 +      Suggested by Rolando Pereira (bug#6434).
 +
 +2010-06-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * facemenu.el (list-colors-sort): Doc fix.
 +
 +2010-06-15  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * progmodes/sql.el (sql-connect-mysql): Fix typo.
 +
 +2010-06-14  Juri Linkov  <juri@jurta.org>
 +
 +      Add sort option `list-colors-sort'.  (Bug#6332)
 +      * facemenu.el (color-rgb-to-hsv): New function.
 +      (list-colors-sort): New defcustom.
 +      (list-colors-sort-key): New function.
 +      (list-colors-display): Doc fix.  Sort list according to the option
 +      `list-colors-sort'.
 +      (list-colors-print): Add HSV values to `help-echo' property of
 +      RGB strings.
 +
 +2010-06-14  Juri Linkov  <juri@jurta.org>
 +
 +      * compare-w.el: Move to the "vc" subdirectory.
 +
 +2010-06-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * image-mode.el (image-mode-map): Remap left-char and right-char.
 +
 +      * nxml/nxml-mode.el (nxml-indent-line): Standardize indent behavior.
 +
 +2010-06-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/common-win.el (x-colors): Add all the color names defined
 +      in rgb.txt (Bug#6332).
 +
 +      * facemenu.el (list-colors-print): Don't print extra names if it
 +      will overflow the window width.
 +
 +      * vc/log-edit.el (log-edit-font-lock-keywords): Revert 2010-06-02
 +      change (Bug#6343).
 +
 +2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (make-directory): Doc fix (bug#6396).
 +
 +2010-06-12  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-remote-process-environment): Protect version
 +      string by apostroph.
 +      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 +      XEmacs.
 +      (tramp-file-name-for-operation): Add `call-process-region'.
        (tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
 -      (tramp-handle-process-file): Call the program in a subshell, in
 -      order to preserve working directory.
 -      (tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but
 -      `tramp-remote-sh' from `tramp-methods'.
 -      (tramp-get-ls-command): Make test for "--color=never" stronger.
 -      (tramp-check-for-regexp): Use (forward-line 1).
  
 -      * net/trampver.el: Update release number.
 +      * net/tramp-compat.el (top): Do not autoload
 +      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 +      only when `start-file-process' is not bound.
 +      (tramp-advice-file-expand-wildcards): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-compat-make-temp-file): Handle the case, that
 +      `make-temp-file' has no third argument EXTENSION.
 +
 +2010-06-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (WINS_BASIC): Include new directory vc.
 +
 +      * loadup.el ("vc-hooks", "ediff-hook"): Load from lisp/vc/.
 +
 +2010-06-11  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el (finder-known-keywords): Add keyword "vc"
 +      for version control.
 +
 +      * add-log.el, cvs-status.el, diff.el, diff-mode.el, ediff.el,
 +      * emerge.el, log-edit.el, log-view.el, pcvs.el, smerge-mode.el,
 +      * vc-annotate.el, vc-bzr.el, vc-dir.el, vc-dispatcher.el, vc-git.el,
 +      * vc-hg.el, vc-mtn.el, vc.el: Add keyword "vc".
 +
 +2010-06-11  Juri Linkov  <juri@jurta.org>
 +
 +      Move version control related files to the "vc" subdirectory.
 +      * add-log.el, cvs-status.el, diff.el, diff-mode.el, ediff-diff.el,
 +      * ediff.el, ediff-help.el, ediff-hook.el, ediff-init.el,
 +      * ediff-merg.el, ediff-mult.el, ediff-ptch.el, ediff-util.el,
 +      * ediff-vers.el, ediff-wind.el, emerge.el, log-edit.el, log-view.el,
 +      * pcvs-defs.el, pcvs.el, pcvs-info.el, pcvs-parse.el, pcvs-util.el,
 +      * smerge-mode.el, vc-annotate.el, vc-arch.el, vc-bzr.el, vc-cvs.el,
 +      * vc-dav.el, vc-dir.el, vc-dispatcher.el, vc.el, vc-git.el,
 +      * vc-hg.el, vc-hooks.el, vc-mtn.el, vc-rcs.el, vc-sccs.el, vc-svn.el:
 +      Move files to the "vc" subdirectory.
 +
 +2010-06-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * comint.el (comint-password-prompt-regexp): Fix 2010-04-10 change
 +      (Bug#6367).
 +
 +2010-06-11  Stephen Eglen  <stephen@gnu.org>
 +
 +      * shell.el: Bind `shell-resync-dirs' to M-RET.
 +
 +2010-06-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * notifications.el: Move file from lisp/net, because it is
 +      supposed to talk locally to the user.
 +
 +2010-06-10  Julien Danjou  <julien@danjou.info>
 +
 +      * net/notifications.el (notifications-on-action-signal)
 +      (notifications-on-closed-signal): Pass notification id as first
 +      argument to the callback functions.  Add docstrings.
 +      (notifications-notify): Fix docstring.
 +
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/authors.el (authors-ignored-files)
 +      (authors-valid-file-names): Add some files.
 +
 +2010-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/rcirc.el (rcirc-server-alist, rcirc, rcirc-connect): Resolve
 +      merge conflict, giving preference to the emacs-23 version of the code.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el (ad-compile-function):
 +      Define warning-suppress-types before we let-bind it (bug#6275).
 +
 +      * vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
 +      declare it, make it buffer-local and permanent-local (bug#6324).
 +      (vc-resynch-window): Adjust name.
 +      * vc-hooks.el (vc-find-file-hook): Adjust name.
 +
 +2010-06-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/notifications.el (notifications-notify): Fix docstring.
 +
 +2010-06-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Update to Unicode 6.0.0 beta.
 +      * international/charprop.el: Update copyright.
 +      * international/mule-cmds.el (ucs-names): Update character ranges.
 +      * international/uni-bidi.el:
 +      * international/uni-category.el:
 +      * international/uni-combining.el:
 +      * international/uni-comment.el:
 +      * international/uni-decimal.el:
 +      * international/uni-decomposition.el:
 +      * international/uni-digit.el:
 +      * international/uni-lowercase.el:
 +      * international/uni-mirrored.el:
 +      * international/uni-name.el:
 +      * international/uni-numeric.el:
 +      * international/uni-old-name.el:
 +      * international/uni-titlecase.el:
 +      * international/uni-uppercase.el: Regenerate.
 +
 +2010-06-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/smie.el (comment-string-strip): Declare function.
 +      (smie-precs-precedence-table): Fix typo in docstring.
 +
 +      * vc-mtn.el (log-edit-extract-headers): Declare function.
 +
 +      * vc-hg.el (log-edit-extract-headers): Remove duplicate declaration.
 +
 +      * net/notifications.el (dbus-register-signal): Declare function.
 +      (notifications-notify): Fix typos and reflow docstring.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Improve VC create/retrieve tag/branch.
 +      * vc.el (vc-create-tag): Do not read the directory name for VCs
 +      with repository revision granularity.  Adjust the tag/branch
 +      prompt.  Reset VC properties.
 +      (vc-retrieve-tag): Do not read the directory name for VCs
 +      with repository revision granularity.  Reset VC properties.
 +
 +2010-06-09  Julien Danjou  <julien@danjou.info>
 +
 +      * net/notifications.el: New file.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add optional support for resetting VC properties.
 +      * vc-dispatcher.el (vc-resynch-window): Add new optional argument,
 +      call vc-file-clearprops when true.
 +      (vc-resynch-buffer): Add new optional argument, pass it down.
 +      (vc-resynch-buffers-in-directory): Likewise.
 +
 +      Improve support for special markup in the VC commit message.
 +      * vc-mtn.el (vc-mtn-checkin): Add support for Author: and Date: markup.
 +      * vc-hg.el (vc-hg-checkin): Add support for Date:.
 +      * vc-git.el (vc-git-checkin):
 +      * vc-bzr.el (vc-bzr-checkin): Likewise.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-keyword): Remove special case that
 +      can be handled with a ((:before "fn") (:prev "=>" parent)) rule.
 +
 +2010-06-07  Martin Pohlack  <mp26@os.inf.tu-dresden.de>
 +
 +      * iimage.el: Remove images as soon as the underlying text is modified.
 +      (iimage-modification-hook): New function.
 +      (iimage-mode-buffer): Use it.
 +
 +2010-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-rule): Rename from
 +      smie-indent-offset-after.  Add :prev case.  Make a bit more generic.
 +      (smie-indent-virtual): Remove `virtual' arg.  Update callers.
 +      (smie-indent-keyword): Add handling of open-paren keywords.
 +      (smie-indent-comment-continue): Don't assume comment-continue.
 +
 +2010-06-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.el (pop-to-buffer): Remove the conditional that
 +      compares new-window and old-window, so it will reselect
 +      the selected window unconditionally.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00078.html
 +
 +2010-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-after)
 +      (smie-indent-forward-token, smie-indent-backward-token): New functions.
 +      (smie-indent-after-keyword): Use them.
 +      (smie-indent-fixindent): Only applies to the indentation of the BOL.
 +      (smie-indent-keyword): Tweak the black magic.
 +      (smie-indent-comment-continue): Strip comment-continue before use.
 +      (smie-indent-functions): Indent comments before keywords.
 +
 +2010-06-06  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-lazy-highlight-search): Fix looping
 +      by checking for empty match.  This syncs this loop with the
 +      similar loop in `isearch-search'.  (Bug#6362)
 +
 +2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/dbus.el (dbus-register-method): Declare function.
 +      (dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
 +      (dbus-introspect): Doc fix.
 +      (dbus-event-bus-name, dbus-introspect-get-interface)
 +      (dbus-introspect-get-argument): Reflow docstrings.
 +
 +2010-06-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      vc-log-incoming/vc-log-outgoing fixes for Git.
 +      * vc-git.el (vc-git-log-view-mode): Fix font lock for
 +      incoming/outgoing logs.
 +      (vc-git-log-outgoing, vc-git-log-incoming): Use @{upstream}
 +      instead of vc-git-compute-remote.
 +      (vc-git-compute-remote): Remove.
 +
 +2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/common-win.el (x-colors): Add "dark green" and "dark
 +      turquoise" (Bug#6332).
 +
 +2010-06-04  Juri Linkov  <juri@jurta.org>
 +
 +      * simple.el (kill-new): Fix logic of kill-do-not-save-duplicates.
 +      Instead of setting `replace' to t and replacing the same string
 +      with itself, don't do certain actions when
 +      kill-do-not-save-duplicates is non-nil and string is equal to car
 +      of kill-ring: don't call menu-bar-update-yank-menu, don't push
 +      interprogram-paste strings to kill-ring, and don't push the input
 +      argument `string' to kill-ring.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00072.html
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (directory-sep-char): Move from fileio.c and make a defconst.
 +
 +2010-06-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): Expand "~/".
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Handle default-location.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-delete-directory): Don't try to
 +      move files to trash.
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/mule-cmds.el (nonascii-insert-offset)
 +      (nonascii-translation-table): Add obsolescence information.
 +
 +      * international/mule.el (make-translation-table-from-vector): Doc fix.
 +
 +2010-06-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-clear-preserve-buffers):
 +      Add "*Warnings*" buffer.  (Bug#6336)
 +
 +2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      vc-log-incoming/vc-log-outgoing improvements for Git.
 +      * vc-git.el (vc-git-log-outgoing): Use the same format as the
 +      short log.
 +      (vc-git-log-incoming): Likewise.  Run "git fetch" before the log command.
 +
 +      Add bindings for vc-log-incoming and vc-log-outgoing.
 +      * vc-hooks.el (vc-prefix-map): Add bindings for vc-log-incoming
 +      and vc-log-outgoing.
 +      * vc-dir.el (vc-dir-menu-map): Add menu bindings for vc-log-incoming
 +      and vc-log-outgoing.
 +
 +2010-06-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): Remove.
 +      (rcirc-handler-366): Always sort nicknames.
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/smie.el (comment-continue): Declare for byte-compiler.
 +
 +2010-06-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/rcirc.el (rcirc-nickname<, rcirc-sort-nicknames-join): Doc fix.
 +
 +2010-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): Change default.
 +      (rcirc-sort-nicknames-join): Avoid setq.
 +
 +2010-06-03  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): New custom.
 +      (rcirc-nickname<, rcirc-sort-nicknames-join): New funs.
 +      (rcirc-handler-366): Use them.
 +
 +2010-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Split smie-indent-calculate into more manageable chunks.
 +      * emacs-lisp/smie.el (smie-indent-virtual, smie-indent-fixindent)
 +      (smie-indent-comment, smie-indent-after-keyword, smie-indent-keyword)
 +      (smie-indent-close, smie-indent-comment-continue, smie-indent-bob)
 +      (smie-indent-exps): Extract from smie-indent-calculate.
 +      (smie-indent-functions): New var.
 +      (smie-indent-functions): Use them.
 +
 +2010-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-hanging-p): Use smie-bolp.
 +      (smie-indent-calculate): Simplify and cleanup.
 +
 +2010-06-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-gvfs.el (top): Require url-util.
 +      (tramp-gvfs-mount-point): Remove.
 +      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command):
 +      New defuns.
 +      (with-tramp-dbus-call-method): Format trace message.
 +      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 +      Implement backup call, when operation on local files fails.
 +      Use progress reporter.  Flush properties of changed files.
 +      (tramp-gvfs-handle-make-directory): Make more traces.
 +      (tramp-gvfs-url-file-name): Hexify file name in url.
 +      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 +      into account for the resulting file name.
 +      (tramp-gvfs-handler-askquestion): Return dummy mountpoint, when
 +      the answer is "no".  See `tramp-gvfs-maybe-open-connection'.
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 +      attribute "default_location".  Set "prefix" property.
 +      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 +      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 +      exists.  Raise an error, if not (due to a corresponding answer
 +      "no" in interactive questions, for example).
 +
 +2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * log-edit.el (log-edit-font-lock-keywords): Make group 4 match lax.
 +
 +2010-06-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/eldoc.el: Add completions for new commands left-* and
 +      right-*.  (Bug#6265)
 +
 +2010-06-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add support for vc-log-incoming, improve vc-log-outgoing for Git.
 +      * vc-git.el (vc-git-compute-remote): New function.
 +      (vc-git-log-outgoing): Use it instead of hard coding a value.
 +      (vc-git-log-incoming): New function.
 +
 +      Improve state updating for VC tag commands.
 +      * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer
 +      to update the state of all buffers in the directory.
 +
 +      * vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
 +
 +2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-bzr.el (vc-bzr-revision-completion-table): Apply
 +      `file-directory-p' to the filename part rather than to the whole text.
 +
 +2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * man.el (Man-completion-table): Let the user type "-k " (bug#6319).
 +
 +2010-05-31  Drew Adams  <drew.adams@oracle.com>
 +
 +      * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
 +
 +2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (momentary-string-display): Just use read-event to read
 +      the exit event (Bug#6238).
 +
 +2010-05-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/mule.el (define-coding-system): Doc fix (bug#6313).
 +
 +2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/cua-base.el: Recognize also `right-word' and `left-word'.
 +      Suggested by Eli Zaretskii <eliz@gnu.org>.
 +
 +2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-file-name-table): Don't return a boundary
 +      past the end of `string' (bug#6299).
 +      (completion--file-name-table): Delegate to completion-file-name-table
 +      for the `boundaries' case.
 +
 +2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/cua-base.el: Recognize `right-char' and `left-char' as
 +      movement commands.
 +
 +      * progmodes/ada-xref.el (ada-prj-ada-project-path-sep): Set from
 +      `path-separator', but maintain compatibility with Emacs 20.2.
 +
 +2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * server.el (server-process-filter): Receive parent-id argument
 +      from emacsclient.
 +      (server-create-window-system-frame): New arg.  Pass parent-id as
 +      frame parameter.
 +
 +2010-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Bidi-sensitive word movement with arrow keys.
 +      * subr.el (right-arrow-command, left-arrow-command): Move to
 +      bindings.el.
 +
 +      * bindings.el (right-char, left-char): Move from subr.el and
 +      rename from right-arrow-command and left-arrow-command.
 +      (right-word, left-word): New functions.
 +      (global-map) <right>: Bind to right-char.
 +      (global-map) <left>: Bind to left-char.
 +      (global-map) <C-right>: Bind to right-word.
 +      (global-map) <C-left>: Bind to left-word.
 +
 +      * ls-lisp.el (ls-lisp-classify-file): New function.
 +      (ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
 +      (ls-lisp-classify): Call ls-lisp-classify-file.
 +      (insert-directory): Remove blanks from switches.
 +
 +2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ansi-color.el: Delete unused escape sequences (Bug#6085).
 +      (ansi-color-drop-regexp): New constant.
 +      (ansi-color-apply, ansi-color-filter-region)
 +      (ansi-color-apply-on-region): Delete unrecognized control sequences.
 +      (ansi-color-apply): Build string list before calling concat.
 +
 +2010-05-28  Juri Linkov  <juri@jurta.org>
 +
 +      * image-dired.el (image-dired-dired-toggle-marked-thumbs):
 +      Replace LOCALP arg of `dired-get-filename' 'no-dir with nil.
 +      (Bug#5270)
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-debug-message): Add `tramp-compat-funcall'
 +      to ignored backtrace functions.
 +      (with-progress-reporter): Expand docstring.
 +      (tramp-handle-delete-file): Implement TRASH argument.
 +      (tramp-get-remote-trash): New defun.
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file):
 +      Use `symbol-value' for backward compatibility.
 +
 +      * net/tramp.el (tramp-handle-make-symbolic-link)
 +      (tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use `delete-file' instead
 +      of `tramp-compat-delete-file'.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-directory)
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use `delete-file' instead
 +      of `tramp-compat-delete-file'.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler):
 +      Use `delete-file' instead of `tramp-compat-delete-file'.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
 +      (tramp-gvfs-handle-write-region): Use `delete-file' instead of
 +      `tramp-compat-delete-file'.
 +
 +      * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file):
 +      Use `delete-file' instead of `tramp-compat-delete-file'.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region): Use `delete-file' instead of
 +      `tramp-compat-delete-file'.
 +      (tramp-smb-handle-delete-directory): Use 'trash as arg.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-delete-file): New arg TRASH.
 +      (dired-internal-do-deletions): New arg TRASH.  Use progress reporter.
 +      (dired-do-flagged-delete, dired-do-delete): Use trash.
 +
 +      * speedbar.el (speedbar-item-delete): Allow trashing.
 +
 +      * files.el (delete-directory): New arg TRASH.
 +
 +      * net/ange-ftp.el (ange-ftp-del-tmp-name, ange-ftp-delete-file)
 +      (ange-ftp-rename-remote-to-remote)
 +      (ange-ftp-rename-local-to-remote)
 +      (ange-ftp-rename-remote-to-local, ange-ftp-load)
 +      (ange-ftp-compress, ange-ftp-uncompress): Remove optional arg from
 +      `delete-file'.
 +      (ange-ftp-delete-directory): Add optional arg to `delete-file', to
 +      allow trashing.
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 +      handle new TRASH arg of `delete-file'.
 +
 +      * net/tramp.el (tramp-handle-delete-file): Change FORCE arg to TRASH.
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use null TRASH arg in
 +      tramp-compat-delete-file call.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-directory)
 +      (tramp-fish-handle-delete-file)
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler): Use null TRASH
 +      arg in `tramp-compat-delete-file' call.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
 +      (tramp-gvfs-handle-write-region): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-imap.el (tramp-imap-handle-delete-file): Rename arg.
 +      (tramp-imap-do-copy-or-rename-file): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region): Use null TRASH arg in
 +      tramp-compat-delete-file call.
 +      (tramp-smb-handle-delete-directory): Use tramp-compat-delete-file.
 +      (tramp-smb-handle-delete-file): Rename arg.
 +
 +      * diff.el (diff-sentinel):
 +      * epg.el (epg--make-temp-file, epg-decrypt-string)
 +      (epg-verify-string, epg-sign-string, epg-encrypt-string):
 +      * jka-compr.el (jka-compr-partial-uncompress)
 +      (jka-compr-call-process, jka-compr-write-region):
 +      * server.el (server-sentinel): Remove optional arg from
 +      delete-file, reverting 2010-05-03 change.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 +      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +
 +2010-05-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el (hebrew-shape-gstring): Check if a glyph
 +      element of GSTRING is nil.
 +
 +2010-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-forward-token-function)
 +      (smie-backward-token-function): New vars.
 +      (smie-backward-sexp, smie-forward-sexp)
 +      (smie-indent-hanging-p, smie-indent-calculate): Use them.
 +      (smie-default-backward-token): Rename from smie-backward-token and
 +      skip comments.
 +      (smie-default-forward-token): Rename from smie-forward-token and
 +      skip comments.
 +      (smie-next-sexp): Handle nil results from next-token.
 +      (smie-indent-calculate): Add a new case for special `fixindent' comments.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 +      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +
 +2010-05-27  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * htmlfontify.el (hfy-face-resolve-face): New function.
 +      (hfy-face-to-style): Use it (Bug#6279).
 +
 +2010-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/ada-xref.el (ada-gnat-parse-gpr):
 +      * emulation/edt.el (edt-load-keys): Avoid (expand-file-name ".").
 +
 +2010-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * emulation/edt.el (edt-load-keys): Use locate-library.
 +
 +2010-05-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * log-edit.el (log-edit-strip-single-file-name): Default to nil.
 +      (log-edit-changelog-entries): Doc fix.
 +      (log-edit-changelog-insert-entries): Args changed.
 +      Rename relative filenames in ChangeLog entries.  Delete tabs.
 +      (log-edit-insert-changelog-entries): Reorganize return value of
 +      `log-edit-changelog-entries' to pass filenames to
 +      log-edit-changelog-insert-entries.
 +
 +2010-05-25  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * dired.el (dired-mode-map): Rebind "\C-t\C-t" from
 +      `image-dired-dired-insert-marked-thumbs' to
 +      `image-dired-dired-toggle-marked-thumbs'.
 +
 +      * image-dired.el: Require cl when compiling.
 +      (image-dired-dired-toggle-marked-thumbs): Rename from
 +      `image-dired-dired-insert-marked-thumbs'.  Add ARG.  Doc fix.
 +      Use interactive spec "P".  Set LOCALP arg of `dired-get-filename'
 +      to 'no-dir.  Skip files whose names don't match
 +      `image-file-name-regexp'.  When file has a thumbnail overlay,
 +      delete it.  (Bug#5270)
 +
 +2010-05-25  Juri Linkov  <juri@jurta.org>
 +
 +      * image-mode.el (image-mode): Add image-after-revert-hook to
 +      after-revert-hook.
 +      (image-after-revert-hook): New function.  (Bug#5669)
 +
 +2010-05-25  Juri Linkov  <juri@jurta.org>
 +
 +      * image.el (image-animated-p): When delay between animated images
 +      is 0, set it to 10 (0.1 sec).  (Bug#6258)
 +
 +2010-05-25  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +
 +      * net/tramp.el (tramp-handle-insert-directory): Don't use
 +      `forward-word', its default syntax could be changed.
 +
 +2010-05-25  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-progress-reporter-update): New defun.
 +      (with-progress-reporter): Use it.
 +      (tramp-process-actions):
 +      * net/tramp-gvfs.el (tramp-gvfs-handler-askquestion):
 +      Preserve current message, in order to let progress reporter continue
 +      afterwards.  (Bug#6257)
 +
 +2010-05-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * net/rcirc.el (rcirc-default-user-name, rcirc-default-full-name):
 +      Add :version.
 +
 +2010-05-25  Ryan Yeske  <rcyeske@gmail.com>
 +
 +      * net/rcirc.el (rcirc-default-user-name): Change to "user".
 +      (rcirc-default-full-name): Change to "unknown".
 +      (rcirc-user-name-history): Add variable.
 +
 +2010-05-25  Ryan Yeske  <rcyeske@gmail.com>
 +            Jonathan Rockway  <jon@jrock.us>
 +
 +      * net/rcirc.el (rcirc-server-alist): Add :pass.
 +      (rcirc): When prompting for connection parameters, also prompt for
 +      username and password.
 +      (rcirc-connect): Take a PASS argument.  If PASS is non-nil, send
 +      value to server when connecting.
 +
 +2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-set-prec2tab): Check override before use.
 +      (smie-merge-prec2s): Pass the tables as separate args.
 +      (smie-bnf-precedence-table): Adjust call accordingly.
 +      (smie-prec2-levels): Set levels at the end.
 +
 +      Replace Lisp calls to delete-backward-char by delete-char.
 +      * bs.el, expand.el, ido.el, image-dired.el, lpr.el, pcomplete.el,
 +      * skeleton.el, term.el, time.el, wid-edit.el, woman.el,
 +      * calc/calc-graph.el, calc/calc-help.el, calc/calc-incom.el,
 +      * calc/calc.el, emacs-lisp/cl-extra.el, emacs-lips/cl-loaddefs.el,
 +      * emulation/cua-rect.el, emulation/viper-ex.el, eshell/esh-test.el,
 +      * eshell/eshell.el, gnus/gnus-uu.el, gnus/nndoc.el, gnus/nnrss.el,
 +      * gnus/rfc2047.el, gnus/utf7.el, international/utf-7.el,
 +      * language/ethio-util.el, mh-e/mh-alias.el, mh-e/mh-search.el,
 +      * net/imap.el, net/rcirc.el, obsolete/complete.el, play/decipher.el,
 +      * progmodes/ada-mode.el, progmodes/cc-awk.el, progmodes/dcl-mode.el,
 +      * progmodes/ps-mode.el, progmodes/verilog-mode.el,
 +      * progmodes/vhdl-mode.el, textmodes/bibtex.el, textmodes/fill.el,
 +      * textmodes/reftex-auc.el, textmodes/rst.el, textmodes/sgml-mode.el,
 +      * textmodes/table.el, textmodes/texinfmt.el: Replace Lisp calls to
 +      delete-backward-char by calls to delete-char.
 +
 +2010-05-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el (hebrew-shape-gstring): New function.
 +      Register it in composition-function-table for all Hebrew combining
 +      characters.
 +
 +2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * epa.el (epa--select-keys): Don't explicitly delete the window since
 +      that can fail (e.g. sole window in frame).  Use dedication instead.
 +
 +2010-05-24  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
 +
 +      * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
 +
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.el (image-refresh): Define as an alias for image-flush.
 +
 +      * image-mode.el (image-toggle-display-image): Caller changed.
 +
 +2010-05-21  Juri Linkov  <juri@jurta.org>
 +
 +      * progmodes/grep.el (grep-read-files): Fix multi-pattern aliases.
 +      Remove "all" from grep-files-aliases.  Split grep-files-aliases by
 +      whitespace, call wildcard-to-regexp on substrings and concat them
 +      with "\\|".  (Bug#6114)
 +
 +2010-05-21  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-parse-state-get-strategy):
 +      Replace parameter `here' with `here-' and `here-plus', which sandwich
 +      any pertinent CPP construct.
 +      (c-remove-stale-state-cache-backwards): Fix a bug which happens
 +      when doing (c-parse-state) in a CPP construct: Exclude any "new"
 +      CPP construct from taking part in the scanning.
 +
 +2010-05-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-do-copy-or-rename-file)
 +      (tramp-handle-file-local-copy, tramp-maybe-open-connection):
 +      Tune `with-progress-reporter' messages.
 +      (tramp-handle-vc-registered):
 +      * net/tramp-fish.el (tramp-fish-handle-file-local-copy)
 +      (tramp-fish-handle-insert-file-contents)
 +      (tramp-fish-maybe-open-connection):
 +      * net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
 +      * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file)
 +      (tramp-imap-handle-insert-file-contents)
 +      (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
 +
 +2010-05-21  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * add-log.el (change-log-font-lock-keywords):
 +      Highlight all authors in multi-author entries.
 +
 +      * smerge-mode.el (smerge-refine-ignore-whitespace)
 +      (smerge-refine-weight-hack, smerge-refine, smerge-makeup-conflict):
 +      Fix typos in docstrings.
 +      (smerge-resolve, smerge-refine-subst): Reflow docstrings.
 +
 +2010-05-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/fortran.el (fortran-mode):
 +      * progmodes/f90.el (f90-mode): Derive from prog-mode.
 +
 +      * loadup.el [CANNOT_DUMP]: Update for bootstrap-emacs no longer
 +      having a relative path in src/Makefile.in.
 +
 +2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +
 +      * help-mode.el (help-make-xrefs): For Info node links turn
 +      newlines into spaces.  Link node names with newlines are matched
 +      by help-xref-info-regexp and buttonized, this change ensures they
 +      can be followed successfully with RET.  (Bug#6206)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * locate.el (locate): Use pop-to-buffer instead of
 +      switch-to-buffer-other-window.  (Bug#6204)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (replace-highlight): Fix lazy-highlighting
 +      for `M-s w str M-% str RET'.
 +
 +2009-12-15  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * isearch.el (isearch-yank-word-or-char): Pull next subword
 +      when `subword-mode' is activated.  (Bug#6220)
 +
 +2010-05-20  Mark A. Hershberger  <mah@everybody.org>
 +
 +      * isearch.el (isearch-update-post-hook): New hook.
 +      (isearch-update): Use the new hook.  (Bug#6225)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-mode-map): Bind more keys to isearch-help-map:
 +      [f1], [help], and (char-to-string help-char) instead of "\C-h".
 +      (Bug#6222)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-yank-string): Use isearch-process-search-string.
 +      (Bug#6223)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * dired-x.el (dired-jump, dired-jump-other-window): Add arg
 +      FILE-NAME to read from the minibuffer when called interactively
 +      with prefix argument instead of using buffer-file-name.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00534.html
 +
 +      * dired.el: Update autoloads.
 +
 +2010-05-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nxml/nxml-mode.el (nxml-mode-map): Bind C-c / to
 +      nxml-finish-element, for consistency with SGML mode.
 +
 +      * progmodes/octave-mod.el (octave-mode-map): Bind C-c / to
 +      octave-close-block.
 +
 +2010-05-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * composite.el: Require cl when compiling.
 +      (reference-point-alist, compose-gstring-for-graphic)
 +      (compose-gstring-for-terminal): Fix typos in docstrings.
 +
 +2010-05-19  Juri Linkov  <juri@jurta.org>
 +
 +      * emacs-lisp/cl-macs.el (window-parameter): Add defsetf with
 +      set-window-parameter.
 +
 +2010-05-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Add `tramp-async-args' attribute
 +      where appropriate.
 +      (tramp-maybe-open-connection): Use it.
 +
 +2010-05-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (move-end-of-line): Make sure we are at line beginning
 +      before backing up to end of previous line.
 +
 +2010-05-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * password-cache.el (password-cache-remove): Fix docstring.
 +
 +      * net/secrets.el: Autoload the widget functions.
 +      (secrets-search-items, secrets-create-item)
 +      (secrets-get-attributes, secrets-expand-item): Attributes will be
 +      stored on the password database without leading ":", as all other
 +      clients do as well.
 +      (secrets-mode): Fix docstring.
 +      (secrets-show-secrets): Provide it as autoloaded command only when
 +      D-Bus support is available.  Check existence of Secret Service API.
 +
 +2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * indent.el (indent-region): Deactivate region (bug#6200).
 +
 +2010-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc-dir.el (vc-dir): Don't pop-up-windows.  (Bug#6204)
 +
 +2010-05-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el: Register compose-gstring-for-graphic in
 +      composition-function-table only for combining characters (Mn, Mc, Me).
 +
 +2010-05-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-trail.el (calc-trail-isearch-forward)
 +      (calc-trail-isearch-backward): Ensure that the new window
 +      point is set correctly.
 +
 +2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (read-quoted-char): Resolve modifiers after key
 +      remapping (bug#6212).
 +
 +2010-05-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Add visualization code for secrets.
 +      * net/secrets.el (secrets-mode): New major mode.
 +      (secrets-show-secrets, secrets-show-collections)
 +      (secrets-expand-collection, secrets-expand-item)
 +      (secrets-tree-widget-after-toggle-function)
 +      (secrets-tree-widget-show-password): New defuns.
 +
 +2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB.
 +      (smie-backward-sexp, smie-forward-sexp): Remove boundary condition now
 +      handled in smie-next-sexp.
 +      (smie-indent-calculate): Provide a starting indentation (so the
 +      recursion is well-founded ;-).
 +
 +      Fix handling of non-associative equal levels.
 +      * emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even
 +      when it's not needed.
 +      (smie-op-left, smie-op-right): New functions.
 +      (smie-next-sexp): New function, extracted from smie-backward-sexp.
 +      Better handle equal levels to distinguish the associative case from
 +      the "multi-keyword construct" case.
 +      (smie-backward-sexp, smie-forward-sexp): Use it.
 +
 +2010-05-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/prolog.el (smie-indent-basic): Declare for byte-compiler.
 +
 +      * emacs-lisp/smie.el (smie-precs-precedence-table, smie-backward-sexp)
 +      (smie-forward-sexp, smie-indent-calculate): Fix typos in docstrings.
 +
 +2010-05-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Provide a simple generic indentation engine and use it for Prolog.
 +      * emacs-lisp/smie.el: New file.
 +      * progmodes/prolog.el (prolog-smie-op-levels)
 +      (prolog-smie-indent-rules): New var.
 +      (prolog-mode-variables): Use them to configure SMIE.
 +      (prolog-indent-line, prolog-indent-level): Remove.
 +
 +2010-05-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-vec.el (math-vector-avg): Put the vector elements in
 +      order before computing the averages.
 +
 +2010-05-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-vec.el (calc-histogram):
 +      (calcFunc-histogram): Allow vectors as inputs.
 +      (math-vector-avg): New function.
 +
 +      * calc/calc-ext.el (math-group-float): Have the number of digits
 +      being grouped depend on the radix (Bug#6189).
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * version.el (emacs-copyright, emacs-version): Don't define here,
 +      now that emacs.c defines it.
 +
 +2010-05-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/mule-cmds.el (mule-menu-keymap): Fix definition of
 +      "Describe Language Environment" menu item.
 +
 +      * language/hebrew.el ("Hebrew", "Windows-1255"): Doc fix.
 +
 +      Bidi-sensitive movement with arrow keys.
 +      * subr.el (right-arrow-command, left-arrow-command): New functions.
 +
 +      * bindings.el (global-map): Bind them to right and left arrow keys.
 +
 +      Don't override standard definition of convert-standard-filename.
 +      * files.el (convert-standard-filename):
 +      Call w32-convert-standard-filename and dos-convert-standard-filename on
 +      the corresponding systems.
 +
 +      * w32-fns.el (w32-convert-standard-filename): Rename from
 +      convert-standard-filename.  Doc fix.
 +
 +      * dos-fns.el (dos-convert-standard-filename): Doc fix.
 +      (convert-standard-filename): Don't defalias.
 +      (register-name-alist, make-register, register-value)
 +      (set-register-value, intdos): Obsolete aliases for the
 +      corresponding dos-* functions and variables.
 +      (dos-intdos): Add a doc string.
 +
 +2010-05-15  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-aent.el (math-read-token, math-find-user-tokens):
 +      * calc/calc-lang.el (math-read-big-rec, math-lang-read-symbol):
 +      (math-compose-tex-func):
 +      * calc/calccomp.el (math-compose-expr):
 +      * calc/calc-ext.el (math-format-flat-expr-fancy):
 +      * calc/calc-store.el (calc-read-var-name):
 +      * calc/calc-units.el (calc-explain-units-rec): Allow Greek letters.
 +
 +      * calc/calc.el (var-π, var-φ, var-γ): New variables.
 +      * calc/calc-aent.el (math-read-replacement-list): Add "micro" symbol.
 +      * calc/calc-units.el (math-unit-prefixes): Add mu for micro.
 +      (math-standard-units): Add units.
 +
 +2010-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/asm-mode.el (asm-mode):
 +      * progmodes/prolog.el (prolog-mode): Use define-derived-mode.
 +
 +      * pcomplete.el (pcomplete-completions-at-point): New function,
 +      extracted from pcomplete-std-complete.
 +      (pcomplete-std-complete): Use it.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (setwins, setwins_almost, setwins_for_subdirs):
 +      Remove references to CVS, RCS and Old directories.
 +
 +2010-05-14  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-bin.el (math-format-twos-complement): Group digits when
 +      appropriate.
 +
 +2010-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/sh-script.el (sh-mode-default-syntax-table): Remove.
 +      (sh-mode-syntax-table): Give it a default value instead.
 +      (sh-header-marker): Make buffer-local.
 +      (sh-mode): Move make-local-variable to the corresponding setq.
 +      (sh-add-completer): Avoid gratuitously let-binding a buffer-local var.
 +      Use complete-with-action.
 +
 +      * simple.el (prog-mode): New (abstract) major mode.
 +      * emacs-lisp/lisp-mode.el (emacs-lisp-mode, lisp-mode): Use it.
 +      * progmodes/sh-script.el (sh-mode): Remove redundant var assignment.
 +
 +2010-05-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/sql.el (sql-oracle-program): Reflow docstring.
 +      (sql-oracle-scan-on, sql-sybase-program, sql-product-font-lock)
 +      (sql-add-product-keywords, sql-highlight-product, sql-set-product)
 +      (sql-make-alternate-buffer-name, sql-placeholders-filter)
 +      (sql-escape-newlines-filter, sql-input-sender)
 +      (sql-send-magic-terminator, sql-sybase): Fix typos in docstrings.
 +
 +2010-05-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Add TeX open-block and close-block keybindings to SGML, and vice versa.
 +
 +      * textmodes/tex-mode.el (tex-mode-map): Bind C-c C-t to
 +      latex-open-block and C-c / to latex-close-block.
 +
 +      * textmodes/sgml-mode.el (sgml-mode-map): Bind C-c C-o to sgml-tag
 +      and C-c C-e to sgml-close-tag.
 +
 +2010-05-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (with-progress-reporter): Create reporter object
 +      only when the message would be displayed.  Handle nested calls.
 +      (tramp-handle-load, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-maybe-send-script, tramp-find-shell):
 +      Use `with-progress-reporter'.
 +      (tramp-handle-dired-compress-file, tramp-maybe-open-connection):
 +      Fix message text.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
 +      Use `with-progress-reporter'.
 +
 +2010-05-13  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Do not kill ispell
 +      process everytime when spellchecking from the minibuffer (bug#6143).
 +
 +2010-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/sh-script.el (sh-mode): Use define-derived-mode.
 +
 +      * dos-fns.el: Add "dos-" prefix for namespace control.
 +      (convert-standard-filename): Define as alias for
 +      dos-convert-standard-filename but only if applicable.
 +
 +2010-05-12  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun):
 +      Push the mark at the start of these functions when appropriate.
 +
 +2010-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-cycle-threshold): New custom var.
 +      (completion--do-completion): Use it.
 +      (minibuffer-complete): Use cycling if appropriate.
 +
 +2010-05-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dirtrack.el (dirtrackp): Remove defcustom; don't make automatically
 +      buffer-local (it's an obsolete alias for `dirtrack-mode') (bug#6173).
 +
 +2010-05-11  Juri Linkov  <juri@jurta.org>
 +
 +      * scroll-all.el (scroll-all-check-to-scroll):
 +      Add `scroll-up-command' and `scroll-down-command' (bug#6164).
 +
 +2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * iimage.el (iimage-mode-map): Move initialization into declaration.
 +      (iimage-mode-buffer): Use with-silent-modifications.
 +      Simplify calling convention.  Adjust callers.
 +      (iimage-mode): Don't run hook redundantly.
 +
 +      * minibuffer.el (completion-pcm--pattern->regex):
 +      Fix last change (bug#6160).
 +
 +2010-05-10  Juri Linkov  <juri@jurta.org>
 +
 +      Remove nodes visited during Isearch from the Info history.
 +      * info.el (Info-isearch-initial-history)
 +      (Info-isearch-initial-history-list): New variables.
 +      (Info-isearch-start): Record initial values of
 +      Info-isearch-initial-history and Info-isearch-initial-history-list.
 +      Add Info-isearch-end to isearch-mode-end-hook.
 +      (Info-isearch-end): New function.
 +
 +2010-05-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-do-file-attributes-with-stat): Add space in
 +      format string, in order to work around a bug in pdksh.
 +      Reported by Gilles Pion <gpion@lfdj.com>.
 +      (tramp-handle-verify-visited-file-modtime): Do not send a command
 +      when the connection is not established.
 +      (tramp-handle-set-file-times): Simplify the check for utc.
 +
 +2010-05-10  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix use of `filter-buffer-substring' (rework previous change).
 +      * emulation/cua-base.el (cua--filter-buffer-noprops): New function.
 +      (cua-repeat-replace-region):
 +      * emulation/cua-rect.el (cua--extract-rectangle, cua-incr-rectangle):
 +      * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
 +      (cua-cut-region-to-global-mark): Use it.
 +
 +2010-05-09  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.1.
 +      (sql-product-alist): Redesign structure of product info.
 +      (sql-product, sql-user, sql-server, sql-database): Safe variables.
 +      (sql-port, sql-port-history): New variables.
 +      (sql-interactive-product): New variable.
 +      (sql-send-terminator): New variable.
 +      (sql-imenu-generic-expression): Add "Types" imenu entry.
 +      (sql-oracle-login-params, sql-sqlite-login-params)
 +      (sql-mysql-login-params, sql-solid-login-params)
 +      (sql-sybase-login-params, sql-informix-login-params)
 +      (sql-ingres-login-params, sql-ms-login-params)
 +      (sql-postgres-login-params, sql-interbase-login-params)
 +      (sql-db2-login-params, sql-linter-login-params)
 +      (sql-oracle-scan-on): New variables.
 +      (sql-mode-map): Add C-c C-i to start interactive mode.
 +      (sql-mode-menu): Update existing menu entries.
 +      (sql-font-lock-keywords-builder): Compile-time font-lock optimization.
 +      (sql-mode-oracle-font-lock-keywords)
 +      (sql-mode-postgres-font-lock-keywords)
 +      (sql-mode-ms-font-lock-keywords)
 +      (sql-mode-sybase-font-lock-keywords)
 +      (sql-mode-informix-font-lock-keywords)
 +      (sql-mode-interbase-font-lock-keywords)
 +      (sql-mode-ingres-font-lock-keywords)
 +      (sql-mode-solid-font-lock-keywords)
 +      (sql-mode-mysql-font-lock-keywords)
 +      (sql-mode-sqlite-font-lock-keywords)
 +      (sql-mode-db2-font-lock-keywords)
 +      (sql-mode-linter-font-lock-keywords): Update initialization to
 +      reduce run-time complexity.
 +      (sql-add-product, sql-del-product): New functions.
 +      (sql-set-product-feature, sql-get-product-feature): New functions.
 +      (sql-product-font-lock): Update product API.
 +      (sql-add-product-keywords): New function.
 +      (sql-highlight-product): Update product API.
 +      (sql-help-list-products): New function.
 +      (sql-help): Dynamically lists free and non-free products.
 +      (sql-get-login): Correct bug in handling history and added
 +      prompt for port.
 +      (sql-copy-column): Copy without properties.
 +      (sqli-input-sender): Apply filters to SQLi input.
 +      (sql-query-placeholders-and-send): Obey `sql-oracle-scan-on' setting.
 +      Implement as a filter.
 +      (sql-escape-newlines-filter): Implement as a filter.
 +      (sql-remove-tabs-filter): New function.
 +      (sql-send-magic-terminator): New function.
 +      (sql-send-string): Implement magic terminator.
 +      (sql-send-region): Use `sql-send-string'.
 +      (sql-interactive-mode): Use product API.
 +      (sql-product-interactive): Use product API.
 +      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
 +      (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
 +      (sql-db2, sql-linter): Use `sql-product-interactive'.
 +      (sql-connect): New function.
 +      (sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
 +      (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
 +      (sql-connect-ingres, sql-connect-ms, sql-connect-postgres)
 +      (sql-connect-interbase, sql-connect-db2, sql-connect-linter):
 +      Use `sql-connect'.
 +
 +2010-05-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-pcm-complete-word-inserts-delimiters):
 +      New custom variable.
 +      (completion-pcm--string->pattern): Use it.
 +      (completion-pcm--pattern->regex, completion-pcm--pattern->string):
 +      Make it handle any symbol as `any'.
 +      (completion-pcm--merge-completions): Extract common suffix for the new
 +      `prefix' symbol as well.
 +      (completion-substring--all-completions): Use the new `prefix' symbol.
 +
 +2010-05-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (byte-compile-not-obsolete-vars): Define if
 +      not bound.
 +      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-compat-funcall): New defmacro.
 +      (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position)
 +      (tramp-compat-temporary-file-directory)
 +      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 +      (tramp-compat-copy-file, tramp-compat-copy-directory)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory)
 +      (tramp-compat-number-sequence, tramp-compat-process-running-p)
 +      * net/tramp.el (top, with-progress-reporter)
 +      (tramp-rfn-eshadow-setup-minibuffer)
 +      (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
 +      (tramp-handle-dired-compress-file, tramp-handle-shell-command)
 +      (tramp-completion-mode-p, tramp-check-for-regexp)
 +      (tramp-open-connection-setup-interactive-shell)
 +      (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
 +      (tramp-time-diff, tramp-coding-system-change-eol-conversion)
 +      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp)
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-reporter-dump-variable, tramp-load-report-modules)
 +      (tramp-append-tramp-buffers)
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-file-selinux-context): Use it.
 +
 +      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 +
 +2010-05-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation-buffer-modtime): Rename from
 +      buffer-modtime.  Adjust users.
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * international/mule.el (auto-coding-alist): Only purecopy
 +      car of each item, not the whole list (Bug#6083).
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/js.el (js-mode): Make paragraph variables local before
 +      calling c-setup-paragraph-variables (Bug#6071).
 +
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * composite.el (compose-region, reference-point-alist): Fix typos
 +      in the doc strings.
 +
 +2010-05-08  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +
 +      * calc/calc-graph.el (calc-graph-plot): Use the proper form for
 +      gnuplot's "set" command.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * abbrev.el (last-abbrev-text): Doc fix.
 +      (abbrev-prefix-mark): Don't escape parenthesis.
 +
 +2010-05-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * composite.el (find-composition): Doc fix.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/sql.el (sql-electric-stuff): Fix typo in tag.
 +      (sql-oracle-program, sql-sqlite-options)
 +      (sql-query-placeholders-and-send): Doc fixes.
 +      (sql-set-product, sql-interactive-mode): Reflow docstrings.
 +      (sql-imenu-generic-expression, sql-buffer)
 +      (sql-mode-ansi-font-lock-keywords, sql-mode-oracle-font-lock-keywords)
 +      (sql-mode-postgres-font-lock-keywords, sql-mode-ms-font-lock-keywords)
 +      (sql-mode-sybase-font-lock-keywords)
 +      (sql-mode-informix-font-lock-keywords)
 +      (sql-mode-interbase-font-lock-keywords)
 +      (sql-mode-ingres-font-lock-keywords, sql-mode-solid-font-lock-keywords)
 +      (sql-mode-mysql-font-lock-keywords, sql-mode-sqlite-font-lock-keywords)
 +      (sql-mode-db2-font-lock-keywords, sql-mode-font-lock-keywords)
 +      (sql-product-feature, sql-highlight-product)
 +      (comint-line-beginning-position, sql-rename-buffer)
 +      (sql-toggle-pop-to-buffer-after-send-region sql-oracle)
 +      (sql-sybase, sql-informix, sql-sqlite, sql-mysql, sql-solid)
 +      (sql-ingres, sql-ms, sql-postgres, sql-interbase, sql-db2, sql-linter):
 +      Fix typos in docstrings.
 +
 +2010-05-08  Juri Linkov  <juri@jurta.org>
 +
 +      * info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
 +      property instead of `invisible' and `after-string' (bug#5998).
 +
 +2010-05-08  Juri Linkov  <juri@jurta.org>
 +
 +      * image-mode.el (image-mode-as-text): Fix typo in docstring.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * filecache.el (file-cache-add-directory-list)
 +      (file-cache-add-directory-recursively): Fix typos in docstrings.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/indian.el (gurmukhi-composable-pattern): Fix typo.
 +      (gujarati-composable-pattern): Fix typo.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/indian.el (oriya-composable-pattern)
 +      (tamil-composable-pattern, malayalam-composable-pattern):
 +      Add two-part vowels to "v" (vowel sign).
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.el (copy-directory): Handle symlinks (Bug#5982).
 +
 +2010-05-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc-hg.el (vc-hg-state): Use HGRCPATH, not HGRC.
 +      (vc-hg-working-revision): Likewise.  Use hg parents, not hg parent
 +      (Bug#5846).
 +
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Give it a doc string.
 +
 +      * minibuffer.el (completion-at-point): Doc fix.
 +
 +2010-05-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (Electric-command-loop): Minor tweak.
 +
 +      * ebuff-menu.el (electric-buffer-list): Try and make it behave a bit
 +      better with dedicated windows.
 +
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-07  Deniz Dogan  <deniz.a.m.dogan@gmail.com>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Highlight vendor specific properties.
 +      * textmodes/css-mode.el (css-proprietary-nmstart-re): New var.
 +      (css-proprietary-property): New face.
 +      (css-font-lock-keywords): Use them.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-08-26  Magnus Henoch  <magnus.henoch@gmail.com>
 +      * cus-start.el (all): Add native condition for tool-bar-* symbols.
  
 -      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 -      empty argument to gvfs-copy.
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +      * textmodes/dns-mode.el (auto-mode-alist): Add entry for .zone files.
 +      * files.el (auto-mode-alist): Remove redundant entries.
  
 -      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 -      handle new TRASH arg of `delete-file'.
 +      * files.el (auto-save-mode): Move to simple.el to fix bootstrap.
 +      * simple.el (auto-save-mode): Move from files.el.
 +      * minibuffer.el (completion--common-suffix): Fix copy&paste error.
  
 -2010-08-26  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +2010-05-07  Christian von Roques  <roques@mti.ag>  (tiny change)
  
 -      * net/tramp.el (tramp-handle-insert-directory): Don't use
 -      `forward-word', its default syntax could be changed.
 +      * epg.el (epg-key-capablity-alist): Add "D" flag (Bug#5592).
  
 -2010-08-26  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 +2010-05-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/binhex.el (binhex-decode-region-internal)
 +      * mail/uudecode.el (uudecode-decode-region-internal)
 +      * net/dns.el (dns-read-string-name, dns-write, dns-read)
 +      (dns-read-type, dns-query)
 +      * pgg-parse.el (pgg-parse-armor)
 +      * pgg.el (pgg-verify-region)
 +      * sha1.el (sha1-string-external): Don't run set-buffer-multibyte for
 +      XEmacs.
 +
 +      * net/imap.el (imap-disable-multibyte): Redefine it as a macro.
 +
 +2010-05-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
 +
 +      Fix use of `filter-buffer-substring' (4th arg NOPROPS removed).
 +      * emulation/cua-base.el (cua-repeat-replace-region):
 +      * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
 +      (cua-cut-region-to-global-mark):
 +      Remove text properties with `set-text-properties'.
 +
 +2010-05-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (top, with-progress-reporter):
 +      Use `symbol-function' inside `funcall'.
 +
 +      * net/tramp-compat.el (tramp-compat-file-attributes)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory):
 +      Handle only `wrong-number-of-arguments' error.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Fix typo.
 +      (tramp-gvfs-handle-file-selinux-context): Use `symbol-function'
 +      inside `funcall'.
 +
 +2010-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--sreverse, completion--common-suffix):
 +      New functions.
 +      (completion-pcm--merge-completions): Extract common suffix when safe.
 +
 +      * emacs-lisp/easy-mmode.el (define-minor-mode):
 +      Make :variable more flexible.
 +      * files.el (auto-save-mode): Use it to define using define-minor-mode.
 +
 +2010-05-05  Juri Linkov  <juri@jurta.org>
 +
 +      Add `slow' and `history' tags to the desktop data.
 +
 +      * info.el (Info-virtual-nodes) [*Index*]: Add `slow' tag.
 +      (Info-virtual-files) [*Apropos*]: Add `slow' tag.
 +      (Info-finder-find-node): Require `finder.el' to be able
 +      to restore node from the desktop.
 +      (Info-desktop-buffer-misc-data): Save all nodes.  Save additional
 +      data `Info-history' and `slow' tag in the assoc list.
 +      (Info-restore-desktop-buffer): Don't restore nodes with the
 +      `slow' tag.  Restore `Info-history'.
 +
 +2010-05-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Add FORCE argument to `delete-file'.
 +
 +      * net/ange-ftp.el (ange-ftp-del-tmp-name): Make it a defun,
 +      forcing to delete the temporary file.
 +      (ange-ftp-delete-file): Add FORCE arg.
 +      (ange-ftp-rename-remote-to-remote)
 +      (ange-ftp-rename-local-to-remote, ange-ftp-rename-remote-to-local)
 +      (ange-ftp-load, ange-ftp-compress, ange-ftp-uncompress):
 +      Force file deletion.
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): New defun.
 +
 +      * net/tramp.el (tramp-handle-delete-file): Add FORCE arg.
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-file): Add FORCE arg.
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler):
 +      Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Add FORCE arg.
 +      (tramp-gvfs-handle-write-region): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-imap.el (tramp-imap-handle-delete-file): Add FORCE arg.
 +      (tramp-imap-do-copy-or-rename-file): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-delete-file): Add FORCE arg.
 +      (tramp-smb-handle-copy-file, tramp-smb-handle-file-local-copy)
 +      (tramp-smb-handle-rename-file, tramp-smb-handle-write-region):
 +      Use `tramp-compat-delete-file'.
 +
 +2010-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Minor cleanups.
 +      * subr.el (add-minor-mode): Use push.
 +      * mail/supercite.el (sc-electric-mode): Use more descriptive arg name.
 +      * emulation/edt.el (edt-select-mode): Simplify.
 +
 +      Use define-minor-mode in more cases.
 +      * term/tvi970.el (tvi970-set-keypad-mode):
 +      * simple.el (auto-fill-mode, overwrite-mode, binary-overwrite-mode)
 +      (normal-erase-is-backspace-mode):
 +      * scroll-bar.el (scroll-bar-mode): Use it and define-minor-mode.
 +      (set-scroll-bar-mode-1): (Re)move to its sole caller.
 +      (get-scroll-bar-mode): New function.
 +      * emacs-lisp/cl-macs.el (eq): Handle a non-variable first arg.
 +
 +      Use define-minor-mode for less obvious cases.
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Add :variable keyword.
 +      * emacs-lisp/cl-macs.el (terminal-parameter, eq): Add setf method.
 +      * international/iso-ascii.el (iso-ascii-mode):
 +      * frame.el (auto-raise-mode, auto-lower-mode):
 +      * composite.el (global-auto-composition-mode): Use define-minor-mode.
 +
 +2010-05-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Remove "-q" from `tramp-login-args'
 +      in order to see error messages for failed logins.
 +
 +2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * diff.el (diff-sentinel):
 +
 +      * epg.el (epg--make-temp-file, epg-decrypt-string)
 +      (epg-verify-string, epg-sign-string, epg-encrypt-string):
 +
 +      * jka-compr.el (jka-compr-partial-uncompress)
 +      (jka-compr-call-process, jka-compr-write-region, jka-compr-load):
 +
 +      * server.el (server-sentinel): Use delete-file's new FORCE arg
 +      (Bug#6070).
 +
 +2010-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use define-minor-mode where applicable.
 +      * view.el (view-mode):
 +      * type-break.el (type-break-query-mode)
 +      (type-break-mode-line-message-mode):
 +      * textmodes/reftex.el (reftex-mode):
 +      * term/vt100.el (vt100-wide-mode):
 +      * tar-mode.el (tar-subfile-mode):
 +      * savehist.el (savehist-mode):
 +      * ibuf-ext.el (ibuffer-auto-mode):
 +      * composite.el (auto-composition-mode):
 +      * progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode):
 +      Use define-minor-mode.
 +      (vhdl-mode): Use static mode-line format.
 +      (vhdl-mode-line-update): Delete.
 +      (vhdl-create-mode-menu, vhdl-activate-customizations)
 +      (vhdl-hs-minor-mode): Don't bother calling it.
 +
 +2010-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (with-wrapper-hook): Move.
 +      (buffer-substring-filters): Mark obsolete.
 +      (filter-buffer-substring-functions): New variable.
 +      (filter-buffer-substring): Use it.  Remove unused arg `noprops'.
 +
 +2010-05-01  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
              Michael Albinus  <michael.albinus@gmx.de>
  
        Implement compression for inline methods.
        (tramp-handle-file-local-copy, tramp-handle-write-region)
        (tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
  
 -2010-08-26  Noah Lavine  <noah549@gmail.com>  (tiny change)
 -
 -      Detect ssh 'ControlMaster' argument automatically in some cases.
 +2010-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 -      (tramp-default-method): Use it.
 +      * bindings.el (mode-line-abbrev-mode, mode-line-auto-fill-mode):
 +      Remove unused functions.
  
 -2010-08-26  Karel Klíč  <kklic@redhat.com>
 +      * emacs-lisp/lisp-mode.el (lisp-mode): Use define-derived-mode.
 +      Set find-tag-default-function as a variable rather than a property.
  
 -      * net/tramp.el (tramp-file-name-for-operation):
 -      Add file-selinux-context.
 +      * minibuffer.el (tags-completion-at-point-function): Move to etags.el.
 +      * progmodes/etags.el (tags-completion-at-point-function):
 +      Remove left over interactive spec.  Add autoloading stub.
 +      (complete-tag): Use tags-completion-at-point-function.
  
 -2010-08-26  Łukasz Stelmach  <lukasz.stelmach@iem.pw.edu.pl>  (tiny change)
 +2010-04-30  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
 +      * minibuffer.el (tags-completion-at-point-function): Fix return value.
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * simple.el (beginning-of-buffer, end-of-buffer): Doc fix
 -      (Bug#6907).
 +      * ido.el (ido-init-completion-maps): Remove C-v binding.
 +      (ido-minibuffer-setup): Don't set cua-inhibit-cua-keys (Bug#5765).
  
 -2010-08-23  Chris Foote <chris@foote.com.au>  (tiny change)
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * progmodes/python.el (python-block-pairs): Allow use of "finally"
 -      with "else" (Bug#3991).
 +      * minibuffer.el (tags-completion-at-point-function): New function.
 +      (completion-at-point-functions): Use it.
  
 -2010-08-22  Leo  <sdl.web@gmail.com>
 +      * progmodes/etags.el (complete-tag): Revert last change.
  
 -      * net/rcirc.el (rcirc-add-or-remove): Accept a list of elements.
 -      (ignore, bright, dim, keyword): Split list of nicknames before
 -      passing to rcirc-add-or-remove (Bug#6894).
 +2010-04-29  Alan Mackenzie  <acm@muc.de>
  
 -2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/cc-mode.el (c-extend-region-for-CPP): Fix an
 +      off-by-one error (in end of macro position).
  
 -      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
 +2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-08-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +      * net/browse-url.el (browse-url-firefox-program): Use iceweasel if
 +      firefox is absent.  Don't autoload.
 +      (browse-url-galeon-program): Don't autoload.
  
 -      * whitespace.el: Fix slow cursor movement (Bug#6172).  Reported by
 -      Christoph Groth <cwg@falma.de> and Liu Xin <x_liu@neusoft.com>.
 -      New version 13.0.
 -      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp):
 -      Adjust initialization.
 -      (whitespace-bob-marker, whitespace-eob-marker)
 -      (whitespace-buffer-changed): New vars.
 -      (whitespace-cleanup, whitespace-color-on, whitespace-color-off)
 -      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp)
 -      (whitespace-post-command-hook, whitespace-display-char-on):
 -      Adjust code.
 -      (whitespace-looking-back, whitespace-buffer-changed): New funs.
 -      (whitespace-space-regexp, whitespace-tab-regexp): Eliminate funs.
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-21  Leo  <sdl.web@gmail.com>
 +      * bindings.el (complete-symbol): Move into minibuffer.el.
  
 -      Fix buffer-list rename&refresh after killing a buffer in ido.
 -      * lisp/ido.el: Revert Óscar's.
 -      (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
 -      Remember the buffers at head, rather than their name.
 -      * lisp/iswitchb.el (iswitchb-kill-buffer): Re-make the list.
 +      * minibuffer.el (complete-tag): Move from etags.el.  If tags
 +      completion cannot be performed, return nil instead of signalling
 +      an error.
 +      (completion-at-point): Make it an alias for complete-symbol.
 +      (complete-symbol): Move from bindings.el, and replace with the
 +      body of completion-at-point.
  
 -2010-08-21  Kirk Kelsey  <kirk.kelsey@0x4b.net>  (tiny change)
 -            Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/etags.el (complete-tag): Move to minibuffer.el.
  
 -      * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
 -      extra backslash added to each line (bug#6890).
 +2010-04-28  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/tramp.el (tramp-remote-selinux-p): New defun.
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context): Use it.
  
 -      * subr.el (read-key): Don't echo keystrokes (bug#6883).
 +2010-04-28  Sam Steingold  <sds@gnu.org>
  
 -2010-08-21  Glenn Morris  <rgm@gnu.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format): Mark as
 +      `safe-local-variable' if the value is a string or a symbol with
 +      the property `bug-reference-url-format'.
  
 -      * menu-bar.el (menu-bar-games-menu): Add landmark.
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-20  Glenn Morris  <rgm@gnu.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format):
 +      Revert 2010-04-27 change due to security risk.
  
 -      * align.el (align-regexp): Make group and spacing arguments
 -      use the interactive defaults when non-interactive.  (Bug#6698)
 +2010-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * mail/rmail.el (rmail-forward): Replace mail-text-start with its
 -      expansion, so as not to need sendmail.
 -      (mail-text-start): Remove declaration.
 -      (rmail-retry-failure): Require sendmail.
 +      Make it possible to locally disable a globally enabled mode.
 +      * simple.el (fundamental-mode): Run fundamental-mode-hook.
 +      * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode
 +      rather than kill-all-local-variables so it runs fundamental-mode-hook.
 +      * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
 +      Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so
 +      that subsequent hooks get a chance to disable it.
  
 -2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
 +      * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
 +      Avoid re-enabling a minor mode after the user turned the minor mode
 +      off if MODE-enable-in-buffers is run twice (typically once from
 +      fundamental-mode's after-change-major-mode-hook and a second time from
 +      run-mode-hook's own after-change-major-mode-hook).
  
 -2010-08-18  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/lisp.el (lisp-complete-symbol): Fail gracefully.
  
 -      * progmodes/flymake.el (flymake-start-syntax-check-process):
 -      Use `start-file-process' in order to let it run also on remote hosts.
 +2010-04-27  Sam Steingold  <sds@gnu.org>
  
 -2010-08-18  Kenichi Handa  <handa@m17n.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format): Mark as
 +      `safe-local-variable' if the value is a string or a function, as
 +      documented and implemented on 2010-04-02.
  
 -      * files.el: Add `word-wrap' as safe local variable.
 +2010-04-27  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-08-18  Glenn Morris  <rgm@gnu.org>
 +      * ido.el (ido-buffer-internal): Bind `ido-use-virtual-buffers' to nil
 +      when method is 'kill.
  
 -      * woman.el (woman-translate): Case matters.  (Bug#6849)
 +2010-04-27  Agustín Martín  <agustin.martin@hispalinux.es>
  
 -2010-08-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * textmodes/ispell.el (ispell-init-process): Fix personal dictionary
 +      condition in default directory check.
 +      (ispell-init-process,ispell-kill-ispell,kill-buffer-hook):
 +      Kill ispell process when killing its associated buffer.
  
 -      * simple.el (kill-region): Doc fix (Bug#6787).
 +2010-04-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-08-14  Glenn Morris  <rgm@gnu.org>
 +      * desktop.el (desktop-kill): ask-if-new: Ask if desktop file exists,
 +      but we aren't using it.
  
 -      * calendar/diary-lib.el (diary-header-line-format):
 -      Fit it to the window, not the frame.
 +2010-04-25  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-08-11  Andreas Schwab  <schwab@linux-m68k.org>
 +      * tool-bar.el (tool-bar-local-item-from-menu): Revert unintended
 +      checkin in 2010-04-23T16:26:11Z!monnier@iro.umontreal.ca.
  
 -      * subr.el (ignore-errors): Add debug declaration.
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
  
 -2010-08-09  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
 +      * emacs-lisp/authors.el (authors-obsolete-files-regexps):
 +      Ignore VCS-ignore files, and deleted nextstep preferences files.
 +      (authors-ignored-files): Ignore deleted cedet test files, and "*.el".
 +      (authors-ambiguous-files): New list.
 +      (authors-valid-file-names): Add some deleted files.
 +      (authors-renamed-files-alist): Add font-setting.el, edt-user.doc.
 +      (authors-disambiguate-file-name): New function.  (Bug#5501)
 +      (authors-canonical-file-name): Doc fix.
 +      Don't warn about obsolete files.
 +      (authors-canonical-file-name, authors-scan-el):
 +      Use authors-disambiguate-file-name.
  
 -      * whitespace.el (whitespace-color-off): Remove post-command-hook
 -      locally.
 +      * hfy-cmap.el (htmlfontify-load-rgb-file, hfy-fallback-colour-values):
 +      Add autoload cookies.
 +      (htmlfontify-unload-rgb-file, hfy-fallback-colour-values): Add docs.
 +      (generated-autoload-file): Set file-local value to "htmlfontify.el".
 +      * htmlfontify.el (caddr, cadddr): Remove fallback definitions.
 +      They have definitions / compiler macros in cl.el.
 +      (htmlfontify-load-rgb-file, hfy-fallback-colour-values):
 +      Replace manual autoloads with generated ones.
 +      (htmlfontify-unload-rgb-file): Remove autoload.
 +      * Makefile.in (autoloads): Ensure htmlfontify.el is writable.
  
 -2010-08-08  Johan Bockgård  <bojohan@gnu.org>
 +2010-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * replace.el (replace-highlight): Bind isearch-forward and
 -      isearch-error, ensuring that highlighting is updated if the user
 -      switches the search direction (Bug#6808).
 +      * emacs-lisp/bytecomp.el (byte-compile-set-default): New function.
 +      (byte-compile-setq-default): Optimize for the
 +      single-var case and don't call byte-compile-form in this case to avoid
 +      inf-loop with byte-compile-set-default.
  
 -      * isearch.el (isearch-lazy-highlight-forward): New var.
 -      (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
 -      (isearch-lazy-highlight-update): Use it.
 +      * progmodes/compile.el (compilation-start): Abbreviate default directory.
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +2010-04-23  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * international/mule.el (define-charset): Store NAME as :base property.
 -      (ctext-non-standard-encodings-table): Pay attention to charset aliases.
 -      (ctext-pre-write-conversion): Sort ctext-standard-encodings by the
 -      current priority.  Force using the designation of the specific
 -      charset by adding `charset' text property.  Improve the whole
 -      algorithm.
 +      Implement SELINUX backends.
  
 -2010-08-05  Juanma Barranquero  <lekktu@gmail.com>
 +      * net/tramp.el (tramp-file-name-handler-alist):
 +      Add `file-selinux-context' and `set-file-selinux-context'.
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context): New defuns.
 +      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 +      Handle PRESERVE-SELINUX-CONTEXT.
  
 -      * emulation/pc-select.el (pc-selection-mode-hook)
 -      (copy-region-as-kill-nomark, beginning-of-buffer-mark)
 -      (pc-selection-mode): Fix typos in docstrings.
 +      * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
 +      Add `file-selinux-context' and `set-file-selinux-context'.
 +      (tramp-gvfs-handle-file-selinux-context)
 +      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 +      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
  
 -2010-08-04  Kenichi Handa  <handa@m17n.org>
 +      * net/ange-ftp.el (ange-ftp-copy-file):
 +      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 +      * net/tramp-imap.el (tramp-imap-handle-copy-file):
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 +      Add PRESERVE-SELINUX-CONTEXT.
  
 -      * language/cyrillic.el: Don't add "microsoft-cp1251" to
 -      ctext-non-standard-encodings-alist here.
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * international/mule.el (ctext-non-standard-encodings-alist):
 -      Add "koi8-r" and "microsoft-cp1251".
 -      (ctext-standard-encodings): New variable.
 -      (ctext-non-standard-encodings-table): List only elements for
 -      non-standard encodings.
 -      (ctext-pre-write-conversion): Adjust for the above change.
 -      Check ctext-standard-encodings.
 +      Synchronize with Tramp repository.
  
 -      * international/mule-conf.el (compound-text): Doc fix.
 -      (ctext-no-compositions): Doc fix.
 -      (compound-text-with-extensions): Doc fix.
 +      * net/tramp.el (with-connection-property, tramp-completion-mode-p)
 +      (tramp-action-process-alive, tramp-action-out-of-band)
 +      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 +      (tramp-exists-file-name-handler): Fix docstring.
 +      (with-progress-reporter): New defmacro.
 +      (tramp-do-copy-or-rename-file, tramp-handle-dired-compress-file)
 +      (tramp-maybe-open-connection): Use it.
  
 -2010-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-22  Noah Lavine  <noah549@gmail.com>  (tiny change)
  
 -      * simple.el (exchange-dot-and-mark): Mark obsolete, finally.
 +      Detect ssh 'ControlMaster' argument automatically in some cases.
  
 -2010-08-03  Juanma Barranquero  <lekktu@gmail.com>
 +      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 +      (tramp-default-method): Use it.
  
 -      * progmodes/which-func.el (which-func-format): Split help-echo text
 -      into lines, like other mode-line tooltips.
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * server.el (server-start): When using TCP sockets, force IPv4
 -      and use a literal 127.0.0.1 for localhost.  (Related to bug#6781.)
 +      * net/tramp.el (tramp-handle-copy-file): Add new optional
 +      parameter `preserve-selinux-context'.
 +      (tramp-file-name-for-operation): Add `set-file-selinux-context'.
  
 -2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * bindings.el (complete-symbol): Run completion-at-point as a fallback.
 +      * net/tramp.el (tramp-completion-handle-file-name-all-completions):
 +      Ensure, that non remote files are still checked.  Oops.
  
 -2010-08-02  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * term.el (term-delimiter-argument-list): Reflow docstring.
 -      (term-read-input-ring, term-write-input-ring, term-send-input)
 -      (term-bol, term-erase-in-display, serial-supported-or-barf):
 -      Fix typos in docstrings.
 +      Fix Bug#5840.
  
 -2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * icomplete.el (icomplete-completions): Use `non-essential'.
  
 -      * bindings.el (function-key-map): Add a S-tab => backtab fallback.
 +      * net/tramp.el (tramp-connectable-p): New defun.
 +      (tramp-handle-expand-file-name)
 +      (tramp-completion-handle-file-name-all-completions)
 +      (tramp-completion-handle-file-name-completion): Use it.
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * dabbrev.el (dabbrev-completion): Fix typo in docstring.
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Try and handle errors.
  
 -2010-08-01  MON KEY  <monkey@sandpframing.com>  (tiny change)
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * emacs-lisp/syntax.el (syntax-ppss-toplevel-pos):
 -      Fix typo in docstring (bug#6747).
 +      * vc-dir.el (vc-dir-tool-bar-map): Add :label on some tool bar items.
  
 -2010-07-30  Leo  <sdl.web@gmail.com>
 +      * tool-bar.el (tool-bar-setup): Add :label on some tool bar items.
  
 -      * eshell/esh-io.el (eshell-get-target): Better detection of
 -      read-only file (Bug#6762).
 +      * loadup.el: Load dynamic-setting.el if feature dynamic-setting
 +      is present.
  
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 +      * info.el (info-tool-bar-map): Add labels.
  
 -      * align.el (align-default-spacing): Doc fix.
 -      (align-region-heuristic, align-regexp): Fix typos in docstrings.
 +      * cus-start.el (all): Add tool-bar-style and tool-bar-max-label-size.
  
 -2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +      * cus-edit.el (custom-commands): Add labels for tool bar.
 +      (custom-buffer-create-internal, Custom-mode): Adjust for
 +      labels in custom-commands.
  
 -      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
 +      * dynamic-setting.el: Renamed from font-setting.el.
  
 -2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  John Wiegley  <jwiegley@gmail.com>
  
 -      * time.el (display-time-day-and-date): Remove spurious * in docstring.
 -      (display-time-world-buffer-name, display-time-world-mode-map):
 -      Fix typos in docstrings.
 +      * ido.el (ido-init-completion-maps): For ido-switch-buffer, C-o
 +      toggles the use of virtual buffers.
 +      (ido-buffer-internal): Guard `ido-use-virtual-buffers' global value.
 +      (ido-toggle-virtual-buffers): New function.
  
 -2010-07-17  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
 +2010-04-21  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * image-mode.el (image-display-size): New function.
 -      (image-forward-hscroll, image-next-line, image-eol, image-eob)
 -      (image-mode-fit-frame): Use it (Bug#6639).
 +      Use `define-derived-mode'; fix window selection; doc fixes.
 +      * play/tetris.el (tetris, tetris-update-speed-function)
 +      (tetris-tty-colors, tetris-x-colors, tetris-move-bottom)
 +      (tetris-move-left, tetris-move-right, tetris-rotate-prev)
 +      (tetris-rotate-next, tetris-end-game, tetris-start-game)
 +      (tetris-pause-game): Fix typos in docstrings.
 +      (tetris-mode-map, tetris-null-map):
 +      Move initialization into declaration.
 +      (tetris-mode): Define with `define-derived-mode';
 +      set show-trailing-whitespace to nil.
 +      (tetris): Prefer window already displaying the "*Tetris*" buffer.
  
 -2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
  
 -      * dired.el (dired-buffers-for-dir): Handle list values of
 -      dired-directory (Bug#6636).
 +      * files.el (backup-buffer): Handle SELinux context, and return it
 +      if a backup was made by renaming.
 +      (backup-buffer-copy): Set SELinux context to the target file.
 +      (basic-save-buffer): Set SELinux context of the newly written file.
 +      (basic-save-buffer-1): Now it also returns any SELinux context.
 +      (basic-save-buffer-2): Set SELinux context of the newly created file,
 +      and return it.
 +      * net/tramp.el (tramp-file-name-for-operation):
 +      Add file-selinux-context.
  
 -2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
 +2010-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc.el (vc-coding-system-inherit-eol): New defvar.
 -      (vc-coding-system-for-diff): Use it to decide whether to inherit
 -      from the file the EOL format for reading the diffs of that file.
 -      (Bug#4451)
 +      Make the log-edit comments use RFC822 format throughout.
  
 -2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +      * vc.el (vc-checkin, vc-modify-change-comment):
 +      Adjust to new vc-start/finish-logentry.
 +      (vc-find-conflicted-file): New command.
 +      (vc-transfer-file): Adjust to new vc-checkin.
 +      (vc-next-action): Improve scoping.
  
 -      * mail/rmailmm.el (rmail-mime-save): Make the temp buffer
 -      unibyte, so compressed attachments are not compressed again.
 +      * vc-hg.el (vc-hg-log-edit-mode): Remove.
 +      (vc-hg-checkin): Remove extra arg.  Use log-edit-extract-headers.
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +      * vc-git.el (vc-git-log-edit-mode): Remove.
 +      (vc-git-checkin): Remove extra arg.  Use log-edit-extract-headers.
 +      (vc-git-commits-coding-system): Rename from git-commits-coding-system.
  
 -      * xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
 -      now that unicode is used (Bug#6594).
 +      * vc-dispatcher.el (vc-log-edit): Shorten names for log-edit-show-files.
 +      (vc-start-logentry): Remove argument `extra'.
 +      (vc-finish-logentry): Remove extra args.
  
 -2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-bzr.el (vc-bzr-log-edit-mode): Remove.
 +      (vc-bzr-checkin): Remove extra arg.  Use log-edit-extract-headers.
 +      (vc-bzr-conflicted-files): New function.
  
 -      * simple.el (push-mark-command): Set the selection if
 -      select-active-regions is non-nil.
 +      * log-edit.el (log-edit-extra-flags)
 +      (log-edit-before-checkin-process): Remove.
 +      (log-edit-summary, log-edit-header, log-edit-unknown-header): New faces.
 +      (log-edit-headers-alist): New var.
 +      (log-edit-header-contents-regexp): New const.
 +      (log-edit-match-to-eoh): New function.
 +      (log-edit-font-lock-keywords): Use them.
 +      (log-edit): Insert a "Summary:" header as default.
 +      (log-edit-mode): Mark font-lock rules as case-insensitive.
 +      (log-edit-done): Cleanup headers.
 +      (log-view-process-buffer): Remove.
 +      (log-edit-extract-headers): New function to replace it.
  
 -2010-07-10  Glenn Morris  <rgm@gnu.org>
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * calendar/calendar.el (calendar-week-end-day): New function.
 -      * calendar/cal-tex.el (cal-tex-cursor-month): Remove unused vars.
 -      Respect calendar-week-start-day.  (Bug#6606)
 -      (cal-tex-insert-day-names, cal-tex-insert-blank-days)
 -      (cal-tex-insert-blank-days-at-end): Respect calendar-week-start-day.
 -      (cal-tex-first-blank-p, cal-tex-last-blank-p): Simplify, and
 -      respect calendar-week-start-day.
 +      * subr.el (default-direction-reversed): Remove obsolescence info.
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * simple.el (use-region-p): Doc fix (Bug#6607).
 +      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with the
 +      windows/frames.
  
 -2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Complete around point.
 +      I.e. include text after point in the completion region.
 +      Also, return nil when we're not after/in a symbol.
  
 -      * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
 -      builtins (BufferError, BytesWarning, WindowsError; callables
 -      bin, bytearray, bytes, format, memoryview, next, print; __package__).
 +      * international/mule-cmds.el (view-hello-file): Don't fiddle with the
 +      default enable-multibyte-characters.
  
 -2010-07-07  Glenn Morris  <rgm@gnu.org>
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * play/zone.el (zone-fall-through-ws): Fix next-line ->
 -      forward-line fallout.
 +      * international/mule.el: Help the user choose a valid coding-system.
 +      (read-buffer-file-coding-system): New function.
 +      (set-buffer-file-coding-system): Use it.  Prompt the user if the
 +      coding-system cannot encode all the chars.
  
 -2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-bzr.el: Use standard *vc* and *vc-diff* buffers.
 +      (vc-bzr-shelve-show, vc-bzr-shelve-apply)
 +      (vc-bzr-shelve-apply-and-keep, vc-bzr-shelve-snapshot):
 +      Don't use *vc-bzr-shelve*.
  
 -      * mouse.el (mouse-appearance-menu): Add docstring.
 +2010-04-19  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * help.el (describe-key): Print up-event using key-description.
 +      Fix the version number for added files.
 +      * vc-hg.el (vc-hg-working-revision): Check if the file is
 +      registered after hg parent fails (Bug#5961).
  
 -2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * net/zeroconf.el (zeroconf-resolve-service)
 -      (zeroconf-service-resolver-handler): Use `dbus-byte-array-to-string'.
 -      (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
 +      * htmlfontify.el (htmlfontify-buffer)
 +      (htmlfontify-copy-and-link-dir): Autoload entry points.
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +2010-04-19  Magnus Henoch  <magnus.henoch@gmail.com>
  
 -      * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
 +      * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
 +      name relative to the project root (Bug#5960).
  
 -2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      Avoid displaying files with a nil state in vc-dir.
 -      * vc-dir.el (vc-dir-update): Obey the noinsert argument in all
 -      cases that cause insertion.
 -      (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
 -      with a nil state.
 +      * vc-git.el (vc-git-print-log): Doc fix.
  
 -2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-19  Óscar Fuentes  <ofv@wanadoo.es>
  
 -      * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
 +      * ido.el (ido-file-internal): Fix 2009-12-02 change.
  
 -2010-06-29  Leo  <sdl.web@gmail.com>
 +2010-04-19  Christoph  <cschol2112@googlemail.com>  (tiny change)
  
 -      * emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
 +      * progmodes/grep.el (grep-compute-defaults): Fix handling of host
 +      default settings (Bug#5928).
  
 -2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * generic-x.el (bat-generic-mode): Fix regexp for command line
 -      switches (Bug#5719).
 +      * progmodes/fortran.el (fortran-match-and-skip-declaration):
 +      New function.
 +      (fortran-font-lock-keywords-3): Use it.  (Bug#1385)
  
 -2010-06-27  Masatake YAMATO  <yamato@redhat.com>
 +2010-04-19  Kenichi Handa  <handa@m17n.org>
  
 -      * htmlfontify.el (hfy-face-attr-for-class): Use append instead
 -      of nconc to avoid pure storage error (Bug#6239).
 +      * language/indian.el (malayalam-composable-pattern): Fix previous
 +      change (add U+0D4D "SIGN VIRAMA").
 +      (oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
 +      (tamil-composable-pattern): Fix typo in the regexp.
 +      (telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
 +      (kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
 +      (malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
  
 -2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
 -      (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
 -      bindings of bookmark-automatically-show-annotations (Bug#6515).
 +      * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
 +      paragraph-separate (Bug#5821).
  
 -2010-06-25  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-19  Juri Linkov  <juri@jurta.org>
  
 -      * arc-mode.el (archive-zip-extract): Don't quote the file name on
 -      MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
 +      Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
  
 -2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +      * info.el (Info-find-node-2): Comment out code that skips
 +      breadcrumbs line.
 +      (Info-mouse-follow-link): New command.
 +      (Info-link-keymap): New keymap.
 +      (Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
 +      Return a string with links instead of inserting breadcrumbs
 +      to the Info buffer.
 +      (Info-fontify-node): Comment out code that inserts breadcrumbs.
 +      Instead of putting the `invisible' text property over the Info
 +      header, make an overlay over the Info header with the `invisible'
 +      property and `after-string' set to the string returned by
 +      `Info-breadcrumbs'.
  
 -      * comint.el (make-comint, make-comint-in-buffer): Mention return
 -      value in the docstrings.  (Bug#6498)
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
 +      * help.el (help-window-setup-finish): Doc fix (Bug#5830).
 +      Reported by monkey@sandpframing.com.
  
 -      * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
 -      since it is not present when using some non-default switches.
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-23  Karl Fogel  <kfogel@red-bean.com>
 +      * tmm.el (tmm-prompt): Remove obsolete call to x-popup-menu.
 +      (tmm-get-keymap): Add key-binding shortcuts now that they're not
 +      available in the "keyseq cache" any more.
  
 -      * simple.el (compose-mail): Fix doc string to refer to
 -      `compose-mail-user-agent-warnings', instead of to the
 -      nonexistent `compose-mail-check-user-agent'.
 +      * custom.el (defcustom): Add edebug spec.
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-18  Juri Linkov  <juri@jurta.org>
  
 -      Fix vc-annotate for renamed files when using Git.
 -      * vc-git.el (vc-git-find-revision): Deal with empty results from
 -      ls-files.  Doe not pass the object as a file name to cat-file, it
 -      is not a file name.
 -      (vc-git-annotate-command): Pass the file name using -- to avoid
 -      ambiguity with the revision.
 -      (vc-git-previous-revision): Pass a relative file name.
 +      Test for special mode-class in view-buffer instead of view-file (bug#5513).
  
 -2010-06-22  Glenn Morris  <rgm@gnu.org>
 +      * view.el (view-file, view-buffer): Move test for special mode-class
 +      from view-file to view-buffer.
  
 -      * progmodes/js.el (js-mode-map): Use standard capitalization and
 -      ellipses for menu entries.
 +      * tar-mode.el (tar-extract): Turn if's into one cond
 +      like in arc-mode.el.
  
 -      * wid-edit.el (widget-complete): Doc fix.
 +2010-04-18  Juri Linkov  <juri@jurta.org>
  
 -2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
 +      Add 7z archive format support (bug#5475).
  
 -      * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
 +      * arc-mode.el (archive-zip-extract): Try to find 7z executable.
 +      (archive-7z-extract): New defcustom.
 +      (archive-find-type): Add magic string for 7z.
 +      (archive-extract-by-stdout): Add new optional arg `stderr-file'.
 +      If `stderr-file' is non-nil, use `(t stderr-file)' for the
 +      `buffer' arg of `call-process'.
 +      (archive-zip-extract): Check `archive-zip-extract' for "7z" and
 +      call the function `archive-7z-extract' with the variable
 +      `archive-7z-extract' let-bound to `archive-zip-extract'.
 +      (archive-7z-summarize, archive-7z-extract): New functions.
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * international/mule.el (auto-coding-alist):
 +      * files.el (auto-mode-alist): Add 7z file extension.
  
 -      Fix annotating other revisions for renamed files in vc-annotate.
 -      * vc-annotate.el (vc-annotate): Add an optional argument for the
 -      VC backend.  Use it when non-nil.
 -      (vc-annotate-warp-revision): Pass the VC backend to vc-annotate
 -      (Bug#6487).
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Fix vc-annotate-show-changeset-diff-revision-at-line for git.
 -      * vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
 -      Do not pass the file name to the 'previous-revision call when we
 -      don't want a file diff.  (Bug#6489)
 +      * loadup.el: Setup hash-cons for pure data.
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +      Fix duplicate entries in cedet's loaddefs.el files.
 +      * emacs-lisp/autoload.el (autoload-file-load-name): Be more clever.
 +      Should make most file-local generated-autoload-file unnecessary.
 +      (print-readably): Silence warnings.
 +      (autoload-find-destination): Take load-name as an arg to make sure
 +      it's the same as the one that will be in the file.
 +      (autoload-generate-file-autoloads): Adjust to above changes.
 +      Try to make the dataflow a bit simpler.
  
 -      Fix finding revisions for renamed files in vc-annotate.
 -      * vc.el (vc-find-revision): Add an optional argument for
 -      the VC backend.  Use it when non-nil.
 -      * vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
 -      backend to vc-find-revision.  (Bug#6487)
 +      * cvs-status.el (cvs-refontify): Remove unused.
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -      Fix reading file names in Git annotate buffers.
 -      * vc-git.el (vc-git-annotate-extract-revision-at-line):
 -      Remove trailing whitespace.  Suggested by Eric Hanchrow.  (Bug#6481)
 +      * calc/calc.el (calc-mode-map): Bind "O" to `calc-missing-key'.
  
 -2010-06-20  Alan Mackenzie  <acm@muc.de>
 +      * calc/calc-bin.el (calc-radix): Have the "O" option turn on
 +      twos-complement mode.
  
 -      * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
 -      in file local variables, set it first.
 +2010-04-17  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -2010-06-19  Glenn Morris  <rgm@gnu.org>
 +      * calc/calc-ext.el (calc-init-extensions): Add keybinding for
 +      'calc-option'.  Add `calc-option-prefix-help' to calc-help autoloads.
 +      (calc-inverse): Add "Option" to message, as appropriate.
 +      (calc-hyperbolic): Add "Option" to message, as appropriate.
 +      (calc-option, calc-is-option): New functions.
  
 -      * descr-text.el (describe-char-unicode-data): Insert separating
 -      space when needed.  (Bug#6422)
 +      * calc/calc-help.el (calc-full-help): Add `calc-option-help'.
 +      (calc-option-prefix-help): New function.
  
 -      * progmodes/idlwave.el (idlwave-action-and-binding):
 -      Fix typo in 2009-12-03 change.  (Bug#6450)
 +      * calc/calc-misc.el (calc-help): Add "Option" entry.
  
 -2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * calc/calc.el (calc-local-var-list): Add `calc-option-flag'.
 +      (calc-option-flag): New variable.
 +      (calc-do): Set `calc-option-flag to nil.
 +      (calc-set-mode-line): Add "Opt " as appropriate.
  
 -      * subr.el (read-quoted-char): Fix up last change (bug#6290).
 +2010-04-16  Juri Linkov  <juri@jurta.org>
  
 -2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Move scrolling commands from simple.el to window.el
 +      because their primitives are implemented in window.c.
  
 -      * font-lock.el (font-lock-major-mode): Rename from
 -      font-lock-mode-major-mode to distinguish it from
 -      global-font-lock-mode's own font-lock-mode-major-mode (bug#6135).
 -      (font-lock-set-defaults):
 -      * font-core.el (font-lock-default-function): Adjust users.
 -      (font-lock-mode): Don't set it at all.
 +      * simple.el (scroll-error-top-bottom)
 +      (scroll-up-command, scroll-down-command, scroll-up-line)
 +      (scroll-down-line, scroll-other-window-down)
 +      (beginning-of-buffer-other-window, end-of-buffer-other-window):
 +      * window.el (scroll-error-top-bottom)
 +      (scroll-up-command, scroll-down-command, scroll-up-line)
 +      (scroll-down-line, scroll-other-window-down)
 +      (beginning-of-buffer-other-window, end-of-buffer-other-window):
 +      Move from simple.el to window.el because their primitives are
 +      implemented in window.c.
  
 -2010-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-16  Juri Linkov  <juri@jurta.org>
  
 -      * vc-annotate.el (vc-annotate): Use vc-read-revision.
 +      * isearch.el (isearch-lookup-scroll-key): Check both
 +      `isearch-scroll' and `scroll-command' properties.
 +      (scroll-up, scroll-down): Remove `isearch-scroll' property.
  
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 +      * mwheel.el (mwheel-scroll): Remove `isearch-scroll' property.
  
 -      * calendar/appt.el (appt-time-msg-list): Doc fix.
 -      (appt-check): Let-bind appt-warn-time.
 -      (appt-add): Make the 3rd argument optional.
 -      Simplify argument names.  Doc fix.  Check for integer WARNTIME.
 -      Only add WARNTIME to the output list if non-nil.
 +      * simple.el (scroll-up-command, scroll-down-command)
 +      (scroll-up-line, scroll-down-line): Remove `isearch-scroll' property.
  
 -2010-06-15  Ivan Kanis  <apple@kanis.eu>
 +2010-04-15  Juri Linkov  <juri@jurta.org>
  
 -      * calendar/appt.el (appt-check): Let the 3rd element of
 -      appt-time-msg-list specify the warning time.
 -      (appt-add): Add new argument with the warning time.  (Bug#5176)
 +      * simple.el (scroll-up-command, scroll-down-command)
 +      (scroll-up-line, scroll-down-line): Put `scroll-command'
 +      property on the these symbols.  Remove them from
 +      `scroll-preserve-screen-position-commands'.
  
 -2010-06-12  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
 +      * mwheel.el (mwheel-scroll): Put `scroll-command' and
 +      `isearch-scroll' properties on the `mwheel-scroll' symbol.
 +      Remove it from `scroll-preserve-screen-position-commands'.
  
 -      * vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
 -      older than version 1.6.  (Bug#6361)
 +      * isearch.el (isearch-allow-scroll): Doc fix.
  
 -2010-06-12  Helmut Eller  <eller.helmut@gmail.com>
 +2010-04-15  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
 -      used by cl-do-arglist.  (Bug#6408)
 +      * net/tramp.el (tramp-error-with-buffer): Don't show the
 +      connection buffer when we are in completion mode.
 +      (tramp-file-name-handler): Catch the error for some operations
 +      when we are in completion mode.  This gives the user the chance to
 +      correct the file name in the minibuffer.
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-15  Glenn Morris  <rgm@gnu.org>
  
 -      * emacs-lisp/advice.el (ad-compile-function):
 -      Define warning-suppress-types before we let-bind it (bug#6275).
 +      * progmodes/verilog-mode.el (verilog-forward-sexp): Avoid free variable.
  
 -      * vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
 -      declare it, make it buffer-local and permanent-local (bug#6324).
 -      (vc-resynch-window): Adjust name.
 -      * vc-hooks.el (vc-find-file-hook): Adjust name.
 +2010-04-15  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-06-07  Jonathan Rockway  <jon@jrock.us>
 +      Simplify by using `define-derived-mode'.
 +      * info.el (Info-mode):
 +      * calendar/todo-mode.el (todo-mode):
 +      * play/gomoku.el (gomoku-mode): Define with `define-derived-mode'.
 +      (gomoku-mode-map): Move initialization into declaration.
  
 -      * net/rcirc.el: Add support for password authentication.
 -      (rcirc-server-alist): Add :password keyword.
 -      (rcirc): Ask for a password, or get it from the server's alist.
 -      (rcirc-connect): Add password argument.  Pass it to server.
 +2010-04-14  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +      Fix Bug#5840.
 +      * ido.el (ido-file-name-all-completions-1):
 +      * minibuffer.el (minibuffer-completion-help):
 +      * net/tramp.el (tramp-completion-mode-p): Use `non-essential'.
  
 -      * net/dbus.el (dbus-register-method): Declare function.
 -      (dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
 -      (dbus-introspect): Doc fix.
 -      (dbus-event-bus-name, dbus-introspect-get-interface)
 -      (dbus-introspect-get-argument): Reflow docstrings.
 +2010-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
 +      * simple.el (non-essential): New var.
  
 -      * term/common-win.el (x-colors): Add "dark green" and "dark
 -      turquoise" (Bug#6332).
 +      Add a new field `location' to bookmarks for non-file bookmarks.
 +      * bookmark.el (bookmark-location): Use the new field, if present.
 +      (bookmark-insert-location): Undo last change, not needed any more.
 +      * man.el (Man-bookmark-make-record):
 +      * woman.el (woman-bookmark-make-record): Add `location' field.
  
 -2010-06-03  Glenn Morris  <rgm@gnu.org>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * desktop.el (desktop-clear-preserve-buffers):
 -      Add "*Warnings*" buffer.  (Bug#6336)
 +      * simple.el (scroll-error-top-bottom): New defcustom.
 +      (scroll-up-command, scroll-down-command): Use it.  Doc fix.
  
 -2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * emulation/pc-select.el (pc-select-override-scroll-error):
 +      Obsolete in favor of `scroll-error-top-bottom'.
  
 -      * vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * tutorial.el (tutorial--default-keys): Rebind `C-v' to
 +      `scroll-up-command' and `M-v' to `scroll-down-command'.
  
 -      * vc-bzr.el (vc-bzr-revision-completion-table): Apply
 -      `file-directory-p' to the filename part rather than to the whole text.
 +      * emulation/cua-rect.el (cua--init-rectangles):
 +      * forms.el (forms--change-commands):
 +      * image-mode.el (image-mode-map):
 +      Remap scroll-down-command and scroll-up-command
 +      in addition to scroll-down and scroll-up.
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * man.el (Man-completion-table): Let the user type "-k " (bug#6319).
 +      * mwheel.el (scroll-preserve-screen-position-commands):
 +      Add mwheel-scroll to this list of commands.
  
 -2010-05-31  Drew Adams  <drew.adams@oracle.com>
 +      * simple.el (scroll-preserve-screen-position-commands):
 +      Add scroll-up-command, scroll-down-command, scroll-up-line,
 +      scroll-down-line to this list of commands.
  
 -      * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
 +      * obsolete/complete.el: Move from lisp/complete.el.
  
 -      * subr.el (momentary-string-display): Just use read-event to read
 -      the exit event (Bug#6238).
 +      * pcomplete.el (pcomplete-here*): Fix mistaken change (bug#5935).
  
 -2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Passing a nil argument
 +      to the minor mode function now turns the mode ON unconditionally.
  
 -      * ansi-color.el: Delete unused escape sequences (Bug#6085).
 -      (ansi-color-drop-regexp): New constant.
 -      (ansi-color-apply, ansi-color-filter-region)
 -      (ansi-color-apply-on-region): Delete unrecognized control sequences.
 -      (ansi-color-apply): Build string list before calling concat.
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-dir.el (vc-dir-kill-line): New command.
 +      (vc-dir-mode-map): Bind it to C-k.
  
 -      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 -      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +      * bookmark.el (bookmark-insert-location): Handle a nil filename.
 +
 +      * woman.el: Add bookmark declarations to silence the compiler.
 +      (bookmark-prop-get): Use `man-args' rather than `filename' as a first
 +      step to compatibility between man and woman bookmarks.
 +      Adjust for Man-default-bookmark-title renaming.
 +      (woman-bookmark-jump): Adjust accordingly.  Don't forget to autoload.
 +
 +      * man.el: Add bookmark declarations to silence the compiler.
 +      (Man-name-local-regexp): Make it match NAME as well.
 +      (Man-getpage-in-background): Return the buffer.
 +      (Man-notify-when-ready): Use `case'.
 +      (man-set-default-bookmark-title): Rename to Man-default-bookmark-title.
 +      Don't hardcode "NAME".  Simplify.
 +      (Man-bookmark-make-record): Use Man-arguments rather than buffer-name.
 +      Rename from Man-bookmark-make-record.
 +      (Man-bookmark-jump): Rename from man-bookmark-jump.  Simplify now that
 +      we have the actual man-args.  Use Man-getpage-in-background rather
 +      than `man' since the arg is already processed.  Let bookmark.el do the
 +      window handling.  Only wait for the relevant process.
 +      Don't forget to autoload.
 +
 +      * bookmark.el (bookmark-default-file): Use locate-user-emacs-file.
 +
 +2010-04-12  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * woman.el (woman-bookmark-make-record, woman-bookmark-jump):
 +      New functions.
 +      (woman-mode): Setup bookmark support.
  
 -2010-05-27  Masatake YAMATO  <yamato@redhat.com>
 +      * man.el (man-set-default-bookmark-title, man-bookmark-make-record)
 +      (man-bookmark-jump): New functions.
 +      (Man-mode): Setup bookmark support.
  
 -      * htmlfontify.el (hfy-face-resolve-face): New function.
 -      (hfy-face-to-style): Use it (Bug#6279).
 +2010-04-10  Jari Aalto  <jari.aalto@cante.net>
  
 -2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * comint.el (comint-password-prompt-regexp): Use regexp-opt, and
 +      recognize ssh-keygen prompt (Bug#2817).
  
 -      * epa.el (epa--select-keys): Don't explicitly delete the window since
 -      that can fail (e.g. sole window in frame).  Use dedication instead.
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-05-19  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
 +      * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter.
  
 -      * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Synchronize with Tramp repository.
  
 -      * subr.el (read-quoted-char): Resolve modifiers after key
 -      remapping (bug#6212).
 +      * net/tramp.el (tramp-completion-function-alist)
 +      (tramp-file-name-regexp, tramp-chunksize)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands):
 +      Fix docstring.
 +      (tramp-remote-process-environment): Use `format' instead of `concat'.
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-get-remote-path): Use `copy-tree'.
 +      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 +      compatibility: Use `completion-ignore-case' if
 +      `read-file-name-completion-ignore-case' does not exist.
 +      (tramp-do-copy-or-rename-file-directly): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-do-copy-or-rename-file-out-of-band):
 +      Use `tramp-compat-delete-directory'.
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 +      Use `format-spec-make'.
 +      (tramp-find-foreign-file-name-handler)
 +      (tramp-advice-make-auto-save-file-name)
 +      (tramp-set-auto-save-file-modes): Remove superfluous check for
 +      `stringp'.  This is done inside `tramp-tramp-file-p'.
 +      (tramp-debug-outline-regexp): New defconst.
 +      (tramp-get-debug-buffer): Use it.
 +      (tramp-check-for-regexp): Use (forward-line 1).
 +      (tramp-set-auto-save-file-modes): Adapt version check.
  
 -2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/tramp-compat.el (tramp-advice-file-expand-wildcards):
 +      Wrap call of `featurep' for 2nd argument.
 +      (tramp-compat-make-temp-file): Simplify fallback implementation.
 +      (tramp-compat-copy-tree): Remove function.
 +      (tramp-compat-delete-directory): Provide implementation for older
 +      Emacsen.
  
 -      * tmm.el (tmm-prompt): Don't try to precompute bindings.
 -      (tmm-get-keymap): Compute shortcuts (bug#6171).
 +      * net/tramp-fish.el (tramp-fish-handle-directory-files-and-attributes):
 +      Do not use `tramp-fish-handle-file-attributes.
  
 -2010-05-10  Glenn Morris  <rgm@gnu.org>
 +      * net/trampver.el: Update release number.
  
 -      * desktop.el (desktop-save-buffer-p): Don't mistakenly include
 -      all dired buffers, even tramp ones.  (Bug#5755)  [Backport from trunk]
 +2010-04-10  Glenn Morris  <rgm@gnu.org>
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Add missing :version tag.
  
 -      * Version 23.2 released.
 +2010-04-09  Sam Steingold  <sds@gnu.org>
  
 -2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Remove the "autoload" cookie.
  
 -      * international/mule.el (auto-coding-alist): Only purecopy
 -      car of each item, not the whole list (Bug#6083).
 +      * progmodes/bug-reference.el (turn-on-bug-reference-mode)
 +      (turn-on-bug-reference-prog-mode): Remove, `bug-reference-mode'
 +      and `bug-reference-prog-mode' can be used in hooks directly.
  
 -2010-05-02  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * progmodes/js.el (js-mode): Make paragraph variables local before
 -      calling c-setup-paragraph-variables (Bug#6071).
 +      Add --author support to git commit.
 +      * vc-git.el (vc-git-checkin): Pass extra-args to the commit command.
 +      (vc-git-log-edit-mode): New minor mode.
 +      (log-edit-mode, log-edit-extra-flags, log-edit-mode):
 +      New declarations.
  
 -2010-05-01  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-09  Eric Raymond  <esr@snark.thyrsus.com>
  
 -      * composite.el (compose-region, reference-point-alist): Fix typos
 -      in the doc strings.
 +      * vc-hooks.el, vc-git.el: Improve documentation comments.
  
 -2010-04-28  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +2010-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * calc/calc-graph.el (calc-graph-plot): Use the proper form for
 -      gnuplot's "set" command.
 +      Fix some of the problems in defsubst* (bug#5728).
 +      * emacs-lisp/cl-macs.el (defsubst*): Don't substitute non-trivial args.
 +      (cl-defsubst-expand): Do the substitutions simultaneously (bug#5728).
  
 -2010-04-26  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Sam Steingold  <sds@gnu.org>
  
 -      * abbrev.el (last-abbrev-text): Doc fix.
 -      (abbrev-prefix-mark): Don't escape parenthesis.
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      New custom variable.
 +      (compile, recompile): Pass it to `save-some-buffers'.
  
 -2010-04-24  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * composite.el (find-composition): Doc fix.
 +      * wid-edit.el (widget-choose): Move cursor to the second line of
 +      the buffer (Bug#5695).
  
 -2010-04-24  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * progmodes/sql.el (sql-electric-stuff): Fix typo in tag.
 -      (sql-oracle-program, sql-sqlite-options)
 -      (sql-query-placeholders-and-send): Doc fixes.
 -      (sql-set-product, sql-interactive-mode): Reflow docstrings.
 -      (sql-imenu-generic-expression, sql-buffer)
 -      (sql-mode-ansi-font-lock-keywords, sql-mode-oracle-font-lock-keywords)
 -      (sql-mode-postgres-font-lock-keywords, sql-mode-ms-font-lock-keywords)
 -      (sql-mode-sybase-font-lock-keywords)
 -      (sql-mode-informix-font-lock-keywords)
 -      (sql-mode-interbase-font-lock-keywords)
 -      (sql-mode-ingres-font-lock-keywords, sql-mode-solid-font-lock-keywords)
 -      (sql-mode-mysql-font-lock-keywords, sql-mode-sqlite-font-lock-keywords)
 -      (sql-mode-db2-font-lock-keywords, sql-mode-font-lock-keywords)
 -      (sql-product-feature, sql-highlight-product)
 -      (comint-line-beginning-position, sql-rename-buffer)
 -      (sql-toggle-pop-to-buffer-after-send-region)
 -      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql, sql-solid)
 -      (sql-ingres, sql-ms, sql-postgres, sql-interbase, sql-db2, sql-linter):
 -      Fix typos in docstrings.
 +      Add new VC methods: vc-log-incoming and vc-log-outgoing.
 +      * vc.el (vc-print-log-setup-buttons): New function split out from
 +      vc-print-log-internal.
 +      (vc-log-internal-common): New function, a parametrized version of
 +      vc-print-log-internal.
 +      (vc-print-log-internal): Just call vc-log-internal-common with the
 +      right arguments.
 +      (vc-incoming-outgoing-internal):
 +      (vc-log-incoming, vc-log-outgoing): New functions.
 +      (vc-log-view-type): New permanent local variable.
  
 -2010-04-23  Juri Linkov  <juri@jurta.org>
 +      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
  
 -      * info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
 -      property instead of `invisible' and `after-string' (bug#5998).
 +      * vc-bzr.el (vc-bzr-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.
 +      (vc-bzr-log-incoming, vc-bzr-log-outgoing): New functions.
  
 -2010-04-23  Juri Linkov  <juri@jurta.org>
 +      * vc-git.el (vc-git-log-outgoing): New function.
 +      (vc-git-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.
  
 -      * image-mode.el (image-mode-as-text): Fix typo in docstring.
 +      * vc-hg.el (vc-hg-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.  Highlight the tag.
 +      (vc-hg-log-incoming, vc-hg-log-outgoing): New functions.
 +      (vc-hg-outgoing, vc-hg-incoming, vc-hg-outgoing-mode):
 +      (vc-hg-incoming-mode): Remove.
 +      (vc-hg-extra-menu-map): Do not bind vc-hg-incoming and vc-hg-outgoing.
  
 -2010-04-23  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * filecache.el (file-cache-add-directory-list)
 -      (file-cache-add-directory-recursively): Fix typos in docstrings.
 +      Fix default-directory for vc-root-diff.
 +      * vc.el (vc-root-diff): Bind default-directory to the root
 +      directory for the diff command.
  
 -2010-04-22  Kenichi Handa  <handa@m17n.org>
 +2010-04-07  Michael McNamara  <mac@mail.brushroad.com>
 +
 +      * progmodes/verilog-mode.el (verilog-forward-sexp):
 +      (verilog-calc-1): Support "disable fork" and "fork wait" multi
 +      word keywords, suggested by Steve Pearlmutter.
 +      (verilog-pretty-declarations): Support lineup of declarations in
 +      port lists.
 +      (verilog-skip-backward-comments, verilog-skip-forward-comment-p):
 +      fix bug for /* / comments.
 +      (verilog-backward-syntactic-ws, verilog-forward-syntactic-ws):
 +      Speed up and simplfy as this is never called with a bound.
 +      (verilog-pretty-declarations): Enhance to line up declarations
 +      inside a parameter list, suggested by Alan Morgan.
 +      (verilog-pretty-expr): Tune assignment regular expression match
 +      string for corner cases; also use markers instead of character
 +      number as indent changes the later.
 +
 +2010-04-07  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown
 +      as missing keyword.
 +      (verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE
 +      causing truncation of AUTOWIRE signals.  Reported by Bruce Tennant.
 +      (verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for
 +      AUTO_TEMPLATEs needing multiple array bits.  Suggested by Bruce
 +      Tennant.
 +      (verilog-keywords):
 +      (verilog-1800-2005-keywords, verilog-1800-2009-keywords): Add IEEE
 +      1800-2009 keywords, including "global.".
 +
 +2010-04-06  John Wiegley  <jwiegley@gmail.com>
 +
 +      * ido.el (ido-add-virtual-buffers-to-list): Fix duplicated names
 +      appearing in buffer list (if a live buffer name matched a recentf
 +      file basename).  Should use uniquify to offer a real solution.
 +
 +2010-04-06  John Wiegley  <jwiegley@gmail.com>
 +
 +      * ido.el (ido-use-virtual-buffers, ido-virtual): Move a ChangeLog
 +      comment to code, and add a :version tag.
 +      (ido-virtual-buffers): Move defvar to fix byte-compiler warning.
 +
 +2010-04-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Enable recentf-mode if using virtual buffers.
 +      * ido.el (recentf-list): Declare for byte-compiler.
 +      (ido-virtual-buffers): Move up to silence byte-compiler.  Add docstring.
 +      (ido-make-buffer-list): Simplify.
 +      (ido-add-virtual-buffers-to-list): Simplify.  Enable recentf-mode.
  
 -      * language/indian.el (gurmukhi-composable-pattern): Fix typo.
 -      (gujarati-composable-pattern): Fix typo.
 +2010-04-05  Juri Linkov  <juri@jurta.org>
  
 -2010-04-20  Kenichi Handa  <handa@m17n.org>
 +      Scrolling commands which scroll a line instead of full screen.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01452.html
  
 -      * language/indian.el (oriya-composable-pattern)
 -      (tamil-composable-pattern, malayalam-composable-pattern):
 -      Add two-part vowels to "v" (vowel sign).
 +      * simple.el (scroll-up-line, scroll-down-line): New commands.
 +      Put property isearch-scroll=t on them.
  
 -2010-04-20  Chong Yidong  <cyd@stupidchicken.com>
 +      * emulation/ws-mode.el (scroll-down-line, scroll-up-line):
 +      Remove commands.
  
 -      * files.el (copy-directory): Handle symlinks (Bug#5982).
 +2010-04-05  Juri Linkov  <juri@jurta.org>
  
 -      * progmodes/compile.el (compilation-next-error-function):
 -      Revert 2009-10-12 change (Bug#5983).
 +      Scrolling commands which do not signal errors at top/bottom.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01452.html
  
 -2010-04-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * simple.el (scroll-up-command, scroll-down-command): New commands.
 +      Put property isearch-scroll=t on them.
  
 -      * vc-hg.el (vc-hg-state): Use HGRCPATH, not HGRC.
 -      (vc-hg-working-revision): Likewise.  Use hg parents, not hg parent
 -      (Bug#5846).
 +      * bindings.el (global-map): Rebind [prior] from `scroll-down' to
 +      `scroll-down-command' and [next] from `scroll-up' to
 +      `scroll-up-command'.
  
 -2010-04-20  Glenn Morris  <rgm@gnu.org>
 +      * emulation/cua-base.el: Put property CUA=move on
 +      `scroll-up-command' and `scroll-down-command'.
 +      (cua--init-keymaps): Remap `scroll-up-command' to `cua-scroll-up'
 +      and `scroll-down-command' to `cua-scroll-down'.
  
 -      * emacs-lisp/lisp.el (lisp-completion-at-point): Give it a doc string.
 +2010-04-05  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * minibuffer.el (completion-at-point): Doc fix.
 +      * help.el (describe-mode): Return nil.
  
 -2010-04-17  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-04  John Wiegley  <jwiegley@gmail.com>
  
 -      Fix the version number for added files.
 -      * vc-hg.el (vc-hg-working-revision): Check if the file is
 -      registered after hg parent fails (Bug#5961).
 +      * ido.el (ido-use-virtual-buffers): New variable to indicate
 +      whether "virtual buffer" support is enabled for IDO.
 +      (ido-virtual): Face used to indicate virtual buffers in the list.
 +      (ido-buffer-internal): If a buffer is chosen, and no such buffer
 +      exists, but a virtual buffer of that name does (which would be why
 +      it was in the list), recreate the buffer by reopening the file.
 +      (ido-make-buffer-list): If virtual buffers are being used, call
 +      `ido-add-virtual-buffers-to-list' before the make list hook.
 +      (ido-virtual-buffers): New variable which contains a copy of the
 +      current contents of the `recentf-list', albeit pared down for the
 +      sake of speed, and with proper faces applied.
 +      (ido-add-virtual-buffers-to-list): Using the `recentf-list',
 +      create a list of "virtual buffers" to present to the user in
 +      addition to the currently open set.  Note that this logic could
 +      get rather slow if that list is too large.  With the default
 +      `recentf-max-saved-items' of 200, there is little speed penalty.
  
 -2010-04-17  Glenn Morris  <rgm@gnu.org>
 +2010-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * htmlfontify.el (htmlfontify-buffer)
 -      (htmlfontify-copy-and-link-dir): Autoload entry points.
 +      * font-lock.el: Require CL when compiling.
 +      (font-lock-turn-on-thing-lock): Use `case'.
  
 -2010-04-17  Magnus Henoch  <magnus.henoch@gmail.com>
 +2010-04-03  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
 -      name relative to the project root (Bug#5960).
 +      * emacs-lisp/authors.el (authors-fixed-entries): Add entry for Eli
 +      Zaretskii.
  
 -2010-04-16  Glenn Morris  <rgm@gnu.org>
 +2010-04-02  Juri Linkov  <juri@jurta.org>
  
 -      * vc-git.el (vc-git-print-log): Doc fix.
 +      * ehelp.el (electric-help-orig-major-mode):
 +      New buffer-local variable.
 +      (electric-help-mode): Set it to original major-mode.  Doc fix.
 +      (with-electric-help): Use `electric-help-orig-major-mode' instead
 +      of (default-value 'major-mode).  Doc fix.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00069.html
  
 -2010-04-14  Óscar Fuentes  <ofv@wanadoo.es>
 +2010-04-02  Sam Steingold  <sds@gnu.org>
  
 -      * ido.el (ido-file-internal): Fix 2009-12-02 change.
 +      * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
 +      `vc-hg-command' with a list of flags.
  
 -2010-04-14  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +      * progmodes/bug-reference.el (bug-reference-bug-regexp):
 +      Also accept "patch" and "RFE".
 +      (bug-reference-fontify): `bug-reference-url-format' can also be a
 +      function to be able to handle the bug kind.
 +      (turn-on-bug-reference-mode, turn-on-bug-reference-prog-mode): Add.
  
 -      * progmodes/grep.el (grep-compute-defaults): Fix handling of host
 -      default settings (Bug#5928).
 +2010-04-02  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-04-10  Glenn Morris  <rgm@gnu.org>
 +      * tmm.el (tmm-get-keymap): Check with symbolp before passing
 +      value to fboundp, it may not be a symbol.
  
 -      * progmodes/fortran.el (fortran-match-and-skip-declaration):
 -      New function.
 -      (fortran-font-lock-keywords-3): Use it.  (Bug#1385)
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-04-07  Kenichi Handa  <handa@m17n.org>
 +      * cus-edit.el (custom-buffer-sort-alphabetically): Update :version.
  
 -      * language/indian.el (malayalam-composable-pattern): Fix previous
 -      change (add U+0D4D "SIGN VIRAMA").
 -      (oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
 -      (tamil-composable-pattern): Fix typo in the regexp.
 -      (telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
 -      (kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
 -      (malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -2010-04-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * simple.el (next-line, previous-line): Re-throw a signal
 +      with `signal' instead of using `ding'.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01432.html
  
 -      * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
 -      paragraph-separate (Bug#5821).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -2010-04-05  Juri Linkov  <juri@jurta.org>
 +      * simple.el (keyboard-escape-quit): Raise deselecting the active
 +      region higher than exiting the minibuffer.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00904.html
  
 -      Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -      * info.el (Info-find-node-2): Comment out code that skips
 -      breadcrumbs line.
 -      (Info-mouse-follow-link): New command.
 -      (Info-link-keymap): New keymap.
 -      (Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
 -      Return a string with links instead of inserting breadcrumbs
 -      to the Info buffer.
 -      (Info-fontify-node): Comment out code that inserts breadcrumbs.
 -      Instead of putting the `invisible' text property over the Info
 -      header, make an overlay over the Info header with the `invisible'
 -      property and `after-string' set to the string returned by
 -      `Info-breadcrumbs'.
 +      * image.el (image-animated-p): Use `image-metadata' instead of
 +      `image-extension-data'.  Get GIF extenstion data from metadata
 +      property `extension-data'.
  
 -2010-04-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * help.el (help-window-setup-finish): Doc fix (Bug#5830).
 -      Reported by monkey@sandpframing.com.
 +      * simple.el (append-to-buffer): Simplify.
  
 -2010-03-30  Tomas Abrahamsson  <tab@lysator.liu.se>
 +2010-03-31  Tomas Abrahamsson  <tab@lysator.liu.se>
  
        * textmodes/artist.el (artist-mode): Fix typo in docstring.
        Reported by Alex Schröder <kensanata@gmail.com>.  (Bug#5807)
  
 -2010-03-30  Kenichi Handa  <handa@m17n.org>
 +2010-03-31  Kenichi Handa  <handa@m17n.org>
  
        * language/sinhala.el (composition-function-table): Fix regexp for
        the new Unicode specification.
        (telugu-composable-pattern): New variables to cope with the new
        Unicode specification.  Use them in composition-function-table.
  
 -2010-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        Make tmm-menubar work for the Buffers menu again (bug#5726).
        * tmm.el (tmm-prompt): Also handle keymap entries in the form of
        vectors rather than cons cells, as used in menu-bar-update-buffers.
  
 -2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * progmodes/js.el (js-auto-indent-flag, js-mode-map)
        (js-insert-and-indent): Revert 2009-08-15 change, restoring
  
        * mail/sendmail.el (mail-default-directory): Doc fix.
  
 -2010-03-27  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * mail/sendmail.el (mail-default-directory): Doc fix.
  
 -2010-03-27  Eli Zaretskii  <eliz@gnu.org>
 +2010-03-31  Eli Zaretskii  <eliz@gnu.org>
  
        * subr.el (version-regexp-alist, version-to-list)
        (version-list-<, version-list-=, version-list-<=)
        (version-list-not-zero, version<, version<=, version=): Doc fix.
        (Bug#5744).
  
 -2010-03-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -            Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * progmodes/gdb-ui.el (gdb-apple-test): New function.
 -      (gdb-init-1): Use it.
 -
 -2010-02-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-02-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
        * vc.el (vc-root-diff): Doc fix.
  
 -2010-03-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * vc.el (vc-print-log, vc-print-root-log): Doc fix.
  
        * simple.el (append-to-buffer): Fix last change.
  
 -2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * simple.el (append-to-buffer): Ensure that point is preserved if
        BUFFER is the current buffer.  Suggested by YAMAMOTO Mitsuharu.
        (Bug#5749)
  
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (auto-mode-case-fold): Change default to t.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * dired-x.el (dired-omit-mode): Doc fix.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines): Move occur-engine related
 +      functions `occur-accumulate-lines' and `occur-engine-add-prefix'
 +      to be located after `occur-engine'.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      Make occur handle multi-line matches cleanly with context.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01280.html
 +
 +      * replace.el (occur-accumulate-lines): Add optional arg `pt'.
 +      (occur-engine): Add local variables `ret', `prev-after-lines',
 +      `prev-lines'.  Use more arguments for `occur-context-lines'.
 +      Set first elem of its returned list to `data', and the second elem
 +      to `prev-after-lines'.  Don't print the separator line.
 +      In the end, print remaining context after-lines.
 +      (occur-context-lines): Add new arguments `begpt', `endpt',
 +      `lines', `prev-lines', `prev-after-lines'.  Rewrite to combine
 +      after-lines of the previous match with before-lines of the
 +      current match and not overlap them.  Return a list with two
 +      values: the output line and the list of context after-lines.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines): Fix a bug where the first
 +      context line at the beginning of the buffer was missing.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el: Make bidi-display-reordering safe variable for boolean
 +      values.
 +
 +2010-03-29  Phil Hagelberg  <phil@evri.com>
 +            Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el: Extend progress reporters to perform "spinning".
 +      (progress-reporter-update, progress-reporter-do-update):
 +      Handle non-numeric value arguments.
 +      (progress-reporter--pulse-characters): New var.
 +
 +2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-start): Fix regexp detection
 +      of initial cd command (Bug#5771).
 +
 +2010-03-28  Stefan Guath  <stefan@automata.se>  (tiny change)
 +
 +      * find-dired.el (find-dired): Use read-directory-name (Bug#5777).
 +
 +2010-03-27  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      Restore GDB/MI fuctionality removed by 2009-12-29T07:15:34Z!nickrob@snap.net.nz.
 +      * progmodes/gdb-mi.el: Restore.
 +      * progmodes/gdb-ui.el: Remove.
 +      * progmodes/gud.el: Re-accommodate for gdb-mi.el.
 +
 +2010-03-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-save-buffer-p): Don't mistakenly include
 +      all dired buffers, even tramp ones.  (Bug#5755)
 +
 +2010-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add "union tags" in mpc.el.
 +      * mpc.el: Remove backward compatibility code.
 +      (mpc-browser-tags): Change default.
 +      (mpc--find-memoize-union-tags): New var.
 +      (mpc-cmd-flush, mpc-cmd-special-tag-p): New fun.
 +      (mpc-cmd-find): Handle the case where the playlist does not exist.
 +      Handle union-tags.
 +      (mpc-cmd-list): Use mpc-cmd-special-tag-p.  Handle union-tags.
 +      (mpc-cmd-add): Use mpc-cmd-flush.
 +      (mpc-tagbrowser-tag-name): New fun.
 +      (mpc-tagbrowser-buf): Use it.
 +      (mpc-songs-refresh): Use cond.  Move to point-min as a fallback.
 +
  2010-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 +      Misc cleanup.
 +      * progmodes/make-mode.el (makefile-bsdmake-rule-action-regex):
 +      Use replace-regexp-in-string.
 +      (makefile-mode-abbrev-table): Merge defvar and define-abbrev-table.
 +      (makefile-imake-mode-syntax-table): Move init into defvar.
 +      (makefile-mode): Use define-derived-mode.
 +
        * progmodes/make-mode.el (makefile-rule-action-regex): Backtrack less.
        (makefile-make-font-lock-keywords): Adjust rule since submatch 1 may
        not be present any more.
        * faces.el (set-face-attribute): Fix typo in docstring.
        (face-valid-attribute-values): Reflow docstring.
  
 -2010-03-23  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * textmodes/flyspell.el (sgml-lexical-context): Autoload it (Bug#5752).
  
 -2010-03-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * indent.el (indent-for-tab-command): Doc fix.
  
 -2010-03-22  Juanma Barranquero  <lekktu@gmail.com>
 +2010-03-24  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-remove-stale-state-cache):
 +      Fix off-by-one error.  Fixes bug #5747.
 +
 +2010-03-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * image-dired.el (image-dired-display-thumbs): Fix typo in docstring.
        (image-dired-read-comment): Doc fix.
        (reftex-cite-punctuation, reftex-search-unrecursed-path-first)
        (reftex-highlight-selection): Fix typos in docstrings.
  
 -2010-03-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-03-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * minibuffer.el (completion-in-region-functions): Fix docstring typos.
  
 -2010-03-18  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * mail/rmail.el (rmail-highlight-face): Restore option deleted
        2008-02-13 without comment; mark it obsolete.
        (rmail-highlight-headers): Use rmail-highlight-face once more.
  
 -2010-03-16  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * woman.el (woman2-process-escapes): Only consume the newline if
        the filler character is on a line by itself (Bug#5729).
  
 -2010-03-16  Kenichi Handa  <handa@m17n.org>
 +2010-03-24  Kenichi Handa  <handa@m17n.org>
  
        * language/indian.el (devanagari-composable-pattern): Add more
        consonants.
  
 -2010-03-14  Michael Albinus  <michael.albinus@gmx.de>
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/trampver.el: Update release number.
  
 -2010-03-13  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (ELCFILES): Add cedet/semantic/imenu.el.
 -
 -2010-03-13  Michael Albinus  <michael.albinus@gmx.de>
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-find-executable):
        Use `tramp-get-connection-buffer'.  Make the regexp for checking
        (tramp-open-connection-setup-interactive-shell): Remove workaround
        for OpenSolaris bug, it is not needed anymore.
  
 -2010-03-12  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/cl-macs.el (defsubst*): Add autoload cookie.  (Bug#4427)
  
 -2010-03-11  Wilson Snyder  <wsnyder@wsnyder.org>
 +2010-03-24  Wilson Snyder  <wsnyder@wsnyder.org>
  
        * files.el (auto-mode-alist): Accept more verilog file patterns.
  
 +2010-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-dir.el (vc-dir-headers): Abbreviate the working dir.
 +
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to
 +      log-edit-before-checkin-process.
 +
 +      * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry.
 +
 +      * vc.el, vc-bzr.el, vc-hg.el (log-edit-mode): Declare.
 +
 +      * vc-dispatcher.el (vc-start-logentry): Doc fix.
 +      (log-view-process-buffer, log-edit-extra-flags): Declare.
 +
 +      * log-edit.el (log-edit-before-checkin-process): Doc fix.
 +
 +2010-03-23  Sam Steingold  <sds@gnu.org>
 +
 +      Fix bug#5620: recalculate all markers on compilation buffer
 +      modifications, not on file modifications.
 +      * progmodes/compile.el (compilation-buffer-modtime): New buffer-local
 +      variable: the buffer modification time, for buffers not associated with
 +      files.
 +      (compilation-mode): Create it.
 +      (compilation-filter): Update it.
 +      (compilation-next-error-function): Use it instead of
 +      `visited-file-modtime' for timestamp.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      Implement Occur multi-line matches.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01044.html
 +
 +      * replace.el (occur): Doc fix.
 +      (occur-engine): Set `begpt' to the beginning of the first line.
 +      Set `endpt' to the end of the last match line.  At first, count
 +      line numbers between `origpt' and `begpt'.  Split out code from
 +      `out-line' variable to new let-bindings `match-prefix' and
 +      `match-str'.  In `out-line' add non-numeric prefix to all
 +      non-first lines of multi-line matches.  Finally, count lines
 +      between `begpt' and `endpt' and add to `lines'.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines, occur-engine):
 +      Use `occur-engine-line' instead of duplicate code.
 +      (occur-engine-line): New function created from duplicate code
 +      in `occur-accumulate-lines' and `occur-engine'.
 +
 +      * replace.el (occur-engine-line): Add optional arg `keep-props'.
 +      (occur-accumulate-lines, occur-engine): Add arg `keep-props'.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el: Remove TODO tasks.
 +
 +      * info.el (Info-finder-find-node): Add node "all"
 +      with all package info.  Handle a list of multiple keywords
 +      separated by comma.
 +      (info-finder): In interactive use with a prefix argument,
 +      use `completing-read-multiple' to read a list of keywords
 +      separated by comma.
 +
 +2010-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add a new completion style `substring'.
 +      * minibuffer.el (completion-basic--pattern): New function.
 +      (completion-basic-try-completion, completion-basic-all-completions):
 +      Use it.
 +      (completion-substring--all-completions)
 +      (completion-substring-try-completion)
 +      (completion-substring-all-completions): New functions.
 +      (completion-styles-alist): New style `substring'.
 +
 +2010-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Get rid of .elc files after removal of the corresponding .el.
 +      * Makefile.in (compile-clean): New target.
 +      (compile-main): Use it.
 +
 +2010-03-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * Makefile.in (compile-main): cd to $(lisp) in a sub-shell, so we
 +      don't do make there.  When compiling with separate object dir, there
 +      is no Makefile there.
 +
 +2010-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Get rid of the ELCFILES abomination, again.
 +      * Makefile.in (update-elclist, ELCFILES, compile-last): Remove.
 +      (all, compile): Don't call compile-last.
 +      (compile-main): Build the "elcfiles" list dynamically.
 +      (compile-targets): New (internal) target.
 +
 +2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (top_srcdir): Define.
 +      (abs_top_builddir): Define.
 +      (srcdir): Don't append `/..'.
 +      (EMACS): Use ${abs_top_builddir}.
 +      (all, compile, compile-always, compile-last): Don't set emacswd.
 +      (update-subdirs, update-authors): Use $(top_srcdir) instead of
 +      $(srcdir).
 +      (lisp): Use $(srcdir) instead of @srcdir@.
 +
 +2010-03-21  Juri Linkov  <juri@jurta.org>
 +
 +      Fix message of multi-line occur regexps and multi-buffer header lines.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00457.html
 +
 +      * replace.el (occur-1): Don't display regexp if it is longer
 +      than window-width.  Use `query-replace-descr' to display regexp.
 +      (occur-engine): Don't display regexp in the buffer header for
 +      multi-buffer occur.  Display a separate header line with total
 +      match count and regexp for multi-buffer occur.
 +      Use `query-replace-descr' to display regexp.
 +
 +2010-03-20  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/secrets.el: Fix parenthesis.
 +      (secrets-enabled): Fix parenthesis.
 +
 +2010-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use more relative file and directory names.
 +      * Makefile.in (EMACS): Arrange for it to work when we chdir.
 +      (setwins, setwins_almost, setwins_for_subdirs):
 +      Don't `cd'; output relative names.
 +      (all, compile, compile-always, compile-last): Set emacswd.
 +      (custom-deps, finder-data, autoloads, update-subdirs, compile-last):
 +      Just cd to the lisp source dir so we can use relative file names.
 +
 +      * outline.el (hide-sublevels): Unfix the paren non-typo! (bug#5738).
 +
 +2010-03-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/rst.el: Use faces for font-lock customization, and make the
 +      old -face variables obsolete.
 +      (rst-block, rst-external, rst-definition, rst-directive, rst-comment)
 +      (rst-emphasis1, rst-emphasis2, rst-literal, rst-reference): New faces.
 +      (rst-block-face, rst-external-face, rst-definition-face)
 +      (rst-directive-face, rst-comment-face, rst-emphasis1-face)
 +      (rst-emphasis2-face, rst-literal-face, rst-reference-face):
 +      Make obsolete.
 +      (rst-font-lock-keywords-function): Update for above changes.
 +
 +2010-03-20  Juri Linkov  <juri@jurta.org>
 +
 +      * s-region.el:
 +      * obsolete/s-region.el: Move to obsolete.
 +
 +2010-03-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * vc-dispatcher.el (vc-do-command): Remove reference to `vc-path'.
 +
 +2010-03-19  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc-hooks.el (vc-path): Remove variable and obsolete declaration.
 +
 +2010-03-19  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add special markup processing for commit logs.
 +      * log-edit.el (log-edit-extra-flags): New variable.
 +      (log-edit): Add new argument MODE.  Use that mode when non-nil
 +      instead of the log-view-mode.
 +      (log-view-process-buffer): New function.
 +
 +      * vc.el: Document that the checkin method takes optional
 +      arguments.  Document new backend specific method: log-view-mode.
 +      (vc-default-log-edit-mode): New function.
 +      (vc-checkin): Use a backend specific log-view-mode.
 +      Pass extra arguments to the checkin method.
 +      (vc-modify-change-comment): Pass a dummy extra argument.
 +
 +      * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to
 +      log-edit.
 +      (vc-start-logentry): Add a mode argument, pass it to vc-log-edit.
 +      (vc-finish-logentry): Process the log buffer before passing it
 +      down.  Pass log-edit-extra-flags.
 +
 +      * vc-bzr.el (vc-bzr-checkin): Pass extra arguments to the commit
 +      command.
 +      (log-edit-extra-flags, log-edit-before-checkin-process):
 +      New declarations.
 +
 +      * vc-hg.el (vc-hg-checkin): Pass extra arguments to the commit
 +      command.
 +      (log-edit-extra-flags, log-edit-before-checkin-process):
 +      New declarations.
 +      (vc-hg-log-edit-mode): New derived mode.
 +
 +      * vc-arch.el (vc-arch-checkin):
 +      * vc-cvs.el (vc-cvs-checkin):
 +      * vc-git.el (vc-git-checkin):
 +      * vc-mtn.el (vc-mtn-checkin):
 +      * vc-rcs.el (vc-rcs-checkin):
 +      * vc-sccs.el (vc-sccs-checkin):
 +      * vc-svn.el (vc-svn-checkin): Add an optional ignored argument.
 +
 +2010-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * outline.el (hide-sublevels): Don't hide trailing newline (and fix
 +      parent typo).
 +
 +2010-03-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * password-cache.el (password-cache, password-cache-expiry): Autoload.
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/autoload.el (autoload-rubric): Doc fix.
 +
 +      * replace.el (query-replace-history): Give it a doc string.
 +      (map-query-replace-regexp): Use query-replace-from-history-variable
 +      and query-replace-to-history-variable.
 +
 +      * mail/hashcash.el (declare-function): Remove duplicate definition.
 +
 +      * mail/emacsbug.el (report-emacs-bug-pretest-address):
 +      Make it an obsolete alias for report-emacs-bug-address.
 +      (message-strip-special-text-properties): Declare.
 +      (report-emacs-bug): Remove test for a pretest bug address.
 +      Combine message-mode-specific code.
 +
 +      * mail/supercite.el: Don't require sendmail.
 +      (mh-in-header-p): Declare rather than using with-no-warnings.
 +      (sc-no-blank-line-or-header): Use rfc822-goto-eoh rather than
 +      mail-header-end.  Don't bind mysterious variable `kill-lines-magic'.
 +
 +      * calendar/cal-french.el: Convert to utf-8.
 +
 +      * files.el (interpreter-mode-alist): Use emacs-lisp-mode for
 +      Emacs scripts.
 +
 +2010-03-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/secrets.el (secrets-enabled): New variable.  Use it instead
 +      of a subfeature.
 +
 +2010-03-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/secrets.el (top): Register the D-Bus signals only when the
 +      service "org.freedesktop.secrets" can be pinged.
 +      Provide subfeature `enabled'.
 +
 +2010-03-14  Juri Linkov  <juri@jurta.org>
 +
 +      Add finder unknown keywords.
 +
 +      * finder.el (finder-unknown-keywords): New function.
 +
 +      * info.el (Info-finder-find-node): Use `finder-unknown-keywords'
 +      to create a Finder node with unknown keywords.
 +
 +2010-03-14  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el (finder-compile-keywords): Replace `princ' with
 +      `prin1' on a list of symbols interned from keyword strings.
 +
 +      * emacs-lisp/lisp-mnt.el (lm-keywords-list): If `keywords' contains
 +      a comma, then split keywords using a comma and optional whitespace.
 +      Otherwise, split by whitespace.
 +
 +      * complete.el:
 +      * face-remap.el:
 +      * log-view.el:
 +      * net/hmac-def.el:
 +      * net/hmac-md5.el:
 +      * net/netrc.el:
 +      * progmodes/mixal-mode.el: Fix keywords.
 +
 +2010-03-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * Makefile.in (ELCFILES): Add net/secrets.elc.
 +
 +      * net/secrets.el: New file.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * facemenu.el (list-colors-display, list-colors-print): New arg
 +      callback.  Use it to allow selecting colors.
 +
 +      * wid-edit.el (widget-image-insert): Insert image prop even if the
 +      current display is non-graphic.
 +      (widget-field-value-set): New fun.
 +      (editable-field): Use it.
 +      (widget-field-value-get): Clean up unused var.
 +      (widget-color-value-create, widget-color--choose-action):
 +      New funs.  Allow using list-colors-display to choose color.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el: Resort topmost custom groups.
 +      (custom-buffer-sort-alphabetically): Default to t.
 +      (customize-apropos): Use apropos-parse-pattern.
 +      (custom-search-field): New var.
 +      (custom-buffer-create-internal): Add custom-apropos search field.
 +      (custom-add-parent-links): Don't display parent doc.
 +      (custom-group-value-create): Don't sort top-level custom group.
 +      (custom-magic-value-create): Show visibility button before option name.
 +
 +      (custom-variable-state): New fun, from custom-variable-state-set.
 +      (custom-variable-state-set): Use it.
 +      (custom-group-value-create): Hide options with standard values
 +      using the :hidden-states property.  Use progress reporter.
 +
 +      (custom-show): Simplify.
 +      (custom-visibility): Disable images by default.
 +      (custom-variable): New property :hidden-states.
 +      (custom-variable-value-create): Enable images for
 +      custom-visibility widgets.  Use :hidden-states property to
 +      determine initial visibility.
 +
 +      * wid-edit.el (widget-image-find): Give images center ascent.
 +      (visibility): Add :on-image and :off-image properties.
 +      (widget-visibility-value-create): Use them.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (processes): Remove from development group.
 +      (oop, hypermedia): Delete group.
 +      (comm): Promote to top-level group.
 +
 +      * net/browse-url.el (browse-url):
 +      * net/xesam.el (xesam):
 +      * net/tramp.el (tramp):
 +      * net/goto-addr.el (goto-address):
 +      * net/ange-ftp.el (ange-ftp): Put in comm group.
 +
 +      * view.el (view): Remove from editing group.
 +
 +      * uniquify.el (uniquify): Put in files group.
 +
 +      * net/browse-url.el (browse-url):
 +      * ps-print.el (postscript): Put in external group.
 +
 +      * cus-edit.el (outlines):
 +      * textmodes/text-mode.el (text-mode-hook):
 +      * textmodes/table.el (table):
 +      * textmodes/picture.el (picture):
 +      * outline.el (outlines): Put in wp group.
 +
 +      * nxml/nxml-mode.el (nxml): Remove from wp group.
 +
 +      * net/tramp-imap.el (tramp-imap): Put in tramp group.
 +
 +      * mail/metamail.el (metamail): Remove from hypermedia group.
 +
 +      * cus-edit.el (abbrev):
 +      * whitespace.el (whitespace):
 +      * vcursor.el (vcursor):
 +      * reveal.el (reveal):
 +      * hl-line.el (hl-line): Put in convenience group.
 +
 +      * epg-config.el (epg): Put in data group.
 +
 +      * emulation/pc-select.el (pc-select): Put in emulations group.
 +
 +      * calculator.el (calculator): Put in applications group.
 +
 +2010-03-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add .dir-locals.el support for file-less buffers.
 +      * files.el (hack-local-variables): Split out code to apply local
 +      variable settings ...
 +      (hack-local-variables-apply): ... here.  New function.
 +      (hack-dir-local-variables): Use the default directory for when the
 +      buffer does not have an associated file.
 +      (hack-dir-local-variables-non-file-buffer): New function.
 +      * diff-mode.el (diff-mode):
 +      * vc-annotate.el (vc-annotate-mode):
 +      * vc-dir.el (vc-dir-mode):
 +      * log-edit.el (log-edit-mode):
 +      * log-view.el (log-view-mode): Call hack-dir-local-variables-non-file-buffer.
 +
 +2010-03-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add support for shelving snapshots and for showing shelves.
 +      * vc-bzr.el (vc-bzr-shelve-show, vc-bzr-shelve-show-at-point)
 +      (vc-bzr-shelve-apply-and-keep-at-point, vc-bzr-shelve-snapshot):
 +      New functions.
 +      (vc-bzr-shelve-map, vc-bzr-shelve-menu-map)
 +      (vc-bzr-extra-menu-map): Map them.
 +
 +2010-03-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * cus-edit.el (customize-changed-options-previous-release):
 +      Bump to 23.1.
 +
 +      * image.el (image-animate-max-time): Fix :version tag.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
 +2010-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-git.el (vc-git-revision-table): Include remote branches.
 +
 +2010-03-10  Kim F. Storm  <storm@cua.dk>
 +
 +      Animated image API.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00211.html
 +
 +      * image.el (image-animate-max-time): New defcustom.
 +      (image-animated-types): New defconst.
 +      (create-animated-image, image-animate-timer)
 +      (image-animate-start, image-animate-stop, image-animate-timeout)
 +      (image-animated-p): New functions.
 +
 +      * image-mode.el (image-toggle-display-image):
 +      Replace `create-image' with `create-animated-image'.
 +
  2010-03-09  Miles Bader  <miles@gnu.org>
  
        * vc-git.el (vc-git-print-log): Use "tformat:" for shortlog,
        * files.el (hack-local-variables-filter): For eval forms, also
        check safe-local-variable-p (Bug#5636).
  
 -2010-02-24  Eduard Wiebe  <usenet@pusto.de>
 -
 -      * javascript.el (wisent-javascript-jv-expand-tag): Avoid c(ad)ddr
 -      and use c(ad)r of cddr (Bug#5640).
 -
  2010-02-22  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Protect
  2010-02-03  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/ange-ftp.el (ange-ftp-insert-directory): Parse directory
 -      also in case of (and (not full) (not wildcard)). This is needed,
 +      also in case of (and (not full) (not wildcard)).  This is needed
        when dired is called with a list of files, which are not in
        `default-directory'.  (Bug#5478)
  
  
        * vc-bzr.el (vc-bzr-revision-table): New function.
  
 -2010-01-25  Eric Hanchrow  <eric.hanchrow@gmail.com>  (tiny change)
 +2010-01-25  Eric Hanchrow  <eric.hanchrow@gmail.com>
  
        * vc-git.el (vc-git-dir-status-goto-stage): Pass --relative to the
        diff-index command.  This requires at least git-1.5.5.  (Bug#1589).
  
  2010-01-02  Karl Fogel  <kfogel@red-bean.com>
  
 -      * bookmark.el (bookmark-bmenu-any-marks): New function
 +      * bookmark.el (bookmark-bmenu-any-marks): New function.
        (bookmark-bmenu-save): Clear buffer modification if no marks.
  
  2010-01-02  Karl Fogel  <kfogel@red-bean.com>
  
  2009-12-17  Juri Linkov  <juri@jurta.org>
  
 -      Make `dired-diff' more safe.  (Bug#5225)
 +      Make `dired-diff' safer.  (Bug#5225)
  
        * dired-aux.el (dired-diff): Signal an error when `file' equals to
        `current' or when `file' is a directory of the `current' file.
  
  2009-12-09  Vivek Dasmohapatra  <vivek@etla.org>
  
 -      Drop some properties to avoid surprises.
 +      Drop some properties to avoid surprises (bug#5002).
        * htmlfontify.el (hfy-ignored-properties): New defcustom.
        (hfy-fontify-buffer): Use it.
  
        * Makefile.in (ELCFILES): Adapt to subword.el move.
  
  2009-11-21  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 -          Stefan Monnier  <monnier@iro.umontreal.ca>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * bookmark.el (bookmark-bmenu-bookmark-column): Remove var.
        (bookmark-bmenu-list): Save name on `bookmark-name-prop' text-prop.
        (tar-header-block-tokenize): Decode the username and groupname.
        (tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730).
  
 +2009-10-17  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer
 +      contains multibyte characters, choose first applicable coding
 +      system automatically.
 +
  2009-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * international/mule-cmds.el (select-safe-coding-system): If the file
        * term/w32-win.el (setup-default-fontset, set-fontset-font):
        Remove unused declarations.
  
 +2009-09-30  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/eieio.el (boolean-p): Delete.
 +
  2009-09-30  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/authors.el (authors-ignored-files): Add "js2-mode.el".
  
        * net/tramp-imap.el: New package.
  
 +2009-09-28  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/chart.el:
 +      * emacs-lisp/eieio-base.el:
 +      * emacs-lisp/eieio-comp.el:
 +      * emacs-lisp/eieio-custom.el:
 +      * emacs-lisp/eieio-datadebug.el:
 +      * emacs-lisp/eieio-opt.el:
 +      * emacs-lisp/eieio-speedbar.el:
 +      * emacs-lisp/eieio.el: New files.
 +
  2009-09-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
        * whitespace.el (whitespace-trailing-regexp)
  
        * textmodes/fill.el: Convert to utf-8 encoding.
        (fill-french-nobreak-p): Remove redundant » and « inherited from our
 -      pre-unicode days.
 +      pre-Unicode days.
  
        * add-log.el (change-log-fill-forward-paragraph): New function.
        (change-log-mode): Use it so fill-region DTRT.
        indent buffer only if called interactively (Bug#4452).
  
  2009-09-19  Juanma Barranquero  <lekktu@gmail.com>
 -          Eli Zaretskii  <eliz@gnu.org>
 +            Eli Zaretskii  <eliz@gnu.org>
  
        This fixes bug#4197 (merged to bug#865, though not identical).
        * server.el (server-auth-dir): Add docstring note about FAT32.
        Don't call substitute-in-file-name on diary-file.
  
  2009-09-03  Eduard Wiebe  <usenet@pusto.de>
 -          Stefan Monnier  <monnier@iro.umontreal.ca>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * mail/footnote.el (footnote-prefix): Make it a defcustom.
        (footnote-mode-map): Move initialization into the declaration.
        * progmodes/hideshow.el (hs-special-modes-alist): Add js-mode entry.
  
  2009-08-14  Daniel Colascione  <dan.colascione@gmail.com>
 -          Karl Landstrom  <karl.landstrom@brgeight.se>
 +            Karl Landstrom  <karl.landstrom@brgeight.se>
  
        * progmodes/js.el: New file.
  
        XZ is the successor to LZMA: <http://tukaani.org/xz/>
  
  2009-06-22  Dmitry Dzhus  <dima@sphinx.net.ru>
 -          Nick Roberts  <nickrob@snap.net.nz>
 +            Nick Roberts  <nickrob@snap.net.nz>
  
        * progmodes/gdb-mi.el: Pull further modified changes from Dmitry's
        repository (http://sphinx.net.ru/hg/gdb-mi/).
@@@ -21538,7 -12592,7 +21586,7 @@@ See ChangeLog.14 for earlier changes
  ;; coding: utf-8
  ;; End:
  
 -  Copyright (C) 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2009-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
index c5bad3bd40f95c112c9595e68997a41f51154cd8,61daa21fcfa16d3ecbff7f2fd7afa58cdd4349c3..d5bba20b1cd0fa48d7f7e53d7848988ab5ac61fa
@@@ -1,6 -1,7 +1,6 @@@
  ;;; shadow.el --- locate Emacs Lisp file shadowings
  
 -;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
 -;;   2009, 2010, 2011  Free Software Foundation, Inc.
 +;; Copyright (C) 1995, 2001-2011  Free Software Foundation, Inc.
  
  ;; Author: Terry Jones <terry@santafe.edu>
  ;; Keywords: lisp
@@@ -115,7 -116,7 +115,7 @@@ See the documentation for `list-load-pa
          ;; FILE now contains the current file name, with no suffix.
          (unless (or (member file files-seen-this-dir)
                      ;; Ignore these files.
-                     (member file '("subdirs")))
+                     (member file '("subdirs" "leim-list")))
            ;; File has not been seen yet in this directory.
            ;; This test prevents us declaring that XXX.el shadows
            ;; XXX.elc (or vice-versa) when they are in the same directory.
                 (and (= (nth 7 (file-attributes f1))
                         (nth 7 (file-attributes f2)))
                      (eq 0 (call-process "cmp" nil nil nil "-s" f1 f2))))))))
 +
 +(defvar load-path-shadows-font-lock-keywords
 +  `((,(format "hides \\(%s.*\\)"
 +            (file-name-directory (locate-library "simple.el")))
 +     . (1 font-lock-warning-face)))
 +  "Keywords to highlight in `load-path-shadows-mode'.")
 +
 +(define-derived-mode load-path-shadows-mode fundamental-mode "LP-Shadows"
 +  "Major mode for load-path shadows buffer."
 +  (set (make-local-variable 'font-lock-defaults)
 +       '((load-path-shadows-font-lock-keywords)))
 +  (setq buffer-undo-list t
 +      buffer-read-only t))
 +
 +;; TODO use text-properties instead, a la dired.
 +(require 'button)
 +(define-button-type 'load-path-shadows-find-file
 +  'follow-link t
 +;;  'face 'default
 +  'action (lambda (button)
 +          (let ((file (concat (button-get button 'shadow-file) ".el")))
 +            (or (file-exists-p file)
 +                (setq file (concat file ".gz")))
 +            (if (file-readable-p file)
 +                (pop-to-buffer (find-file-noselect file))
 +              (error "Cannot read file"))))
 +  'help-echo "mouse-2, RET: find this file")
 +
  \f
  ;;;###autoload
  (defun list-load-path-shadows (&optional stringp)
@@@ -267,21 -240,14 +267,21 @@@ function, `load-path-shadows-find'.
              ;; Create the *Shadows* buffer and display shadowings there.
              (let ((string (buffer-string)))
                (with-current-buffer (get-buffer-create "*Shadows*")
 -                  (fundamental-mode)    ;run after-change-major-mode-hook.
                  (display-buffer (current-buffer))
 -                (setq buffer-undo-list t
 -                      buffer-read-only nil)
 -                (erase-buffer)
 -                (insert string)
 -                (insert msg "\n")
 -                (setq buffer-read-only t)))
 +                (load-path-shadows-mode) ; run after-change-major-mode-hook
 +                (let ((inhibit-read-only t))
 +                  (erase-buffer)
 +                  (insert string)
 +                  (insert msg "\n")
 +                  (while (re-search-backward "\\(^.*\\) hides \\(.*$\\)"
 +                                             nil t)
 +                    (dotimes (i 2)
 +                      (make-button (match-beginning (1+ i))
 +                                   (match-end (1+ i))
 +                                   'type 'load-path-shadows-find-file
 +                                   'shadow-file
 +                                   (match-string (1+ i)))))
 +                  (goto-char (point-max)))))
            ;; We are non-interactive, print shadows via message.
            (unless (zerop n)
              (message "This site has duplicate Lisp libraries with the same name.
@@@ -299,4 -265,5 +299,4 @@@ version unless you know what you are do
  
  (provide 'shadow)
  
 -;; arch-tag: 0480e8a7-62ed-4a12-a9f6-f44ded9b0830
  ;;; shadow.el ends here
diff --combined lisp/erc/ChangeLog
index 879dd2285622afe647b80e0db311aad4352d5686,fb05e6f9d1f7bdb546b0a663edd68cb572ee4405..ee81bc486935e788052f149e357a17adf66977fe
@@@ -1,55 -1,23 +1,60 @@@
 -2010-10-23  Julien Danjou  <julien@danjou.info>
+ 2011-01-31  Antoine Levitt  <antoine.levitt@gmail.com>  (tiny change)
+       * erc-track.el (track): Don't reset erc-modified-channels-object
+       each time erc-track-mode is activated.
 +2011-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * erc.el (erc-mode):
 +      * erc-dcc.el (erc-dcc-chat-mode): Use define-derived-mode.
 +
 +2010-11-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * erc-lang.el (erc-cmd-LANG): Fix what may have been a typo.
 +
 +2010-11-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * erc-backend.el (erc-coding-system-precedence): New variable.
 +      (erc-decode-string-from-target): Use it.
 +
 +2010-10-24  Julien Danjou  <julien@danjou.info>
  
        * erc-backend.el (erc-server-JOIN): Set the correct target list on join.
  
        * erc-backend.el (erc-process-sentinel): Check that buffer is alive
        before setting it as current buffer.
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
  
        * erc-xdcc.el (erc-xdcc-help-text): Fix typo in docstring.
  
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * erc-list.el (erc-list-menu-mode-map): Declare and define in one step.
 +
 +2010-08-14  Vivek Dasmohapatra  <vivek@etla.org>
 +
 +      * erc-join.el (erc-autojoin-timing, erc-autojoin-delay): New vars.
 +      (erc-autojoin-channels-delayed, erc-autojoin-after-ident):
 +      New functions.
 +      (erc-autojoin-channels): Allow autojoining after ident (Bug#5521).
 +
 +2010-08-08  Fran Litterio  <flitterio@gmail.com>
 +
 +      * erc-backend.el (erc-server-filter-function):
 +      Call erc-log-irc-protocol.
 +
 +      * erc.el (erc-toggle-debug-irc-protocol):
 +      Bind erc-toggle-debug-irc-protocol to t.
 +
  2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
  
        * Version 23.2 released.
  
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-02-07  Vivek Dasmohapatra  <vivek@etla.org>
  
        * erc-services.el (erc-nickserv-alist): Fix defcustom type (Bug#5520).
@@@ -60,8 -28,8 +65,8 @@@
        (erc-server-reconnect): Use it to reconnect via old
        connector (Bug#4958).
  
 -      * erc.el (erc-determine-parameters): Save
 -      erc-server-connect-function to erc-session-connector.
 +      * erc.el (erc-determine-parameters):
 +      Save erc-server-connect-function to erc-session-connector.
  
  2009-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
  
  See ChangeLog.08 for earlier changes.
  
 -    Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 +      Copyright (C) 2009-2011 Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  ;; add-log-time-zone-rule: t
  ;; End:
  
 -;; arch-tag: d4703244-4a8d-49b1-ab34-ad0d56600ef8
diff --combined lisp/erc/erc-track.el
index b15cdb023a6712c56a05fdec2fa694c4069a2f31,b78880e86b438a0927823618eda7c671aad4a293..de920eb9c33cd18407d6737c14bbf1d16f144c54
@@@ -1,6 -1,7 +1,6 @@@
  ;;; erc-track.el --- Track modified channel buffers
  
 -;; Copyright (C) 2002, 2003, 2004, 2005, 2006,
 -;;   2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +;; Copyright (C) 2002-2011 Free Software Foundation, Inc.
  
  ;; Author: Mario Lang <mlang@delysid.org>
  ;; Keywords: comm, faces
@@@ -648,7 -649,6 +648,6 @@@ module, otherwise the keybindings will 
           (add-hook 'erc-send-completed-hook 'erc-user-is-active)
           (add-hook 'erc-server-001-functions 'erc-user-is-active))
         (erc-track-add-to-mode-line erc-track-position-in-mode-line)
-        (setq erc-modified-channels-object (erc-modified-channels-object nil))
         (erc-update-mode-line)
         (if (featurep 'xemacs)
           (defadvice switch-to-buffer (after erc-update (&rest args) activate)
@@@ -1067,3 -1067,4 +1066,3 @@@ switch back to the last non-ERC buffer 
  ;; tab-width: 8
  ;; End:
  
 -;; arch-tag: 11b439f5-e5d7-4c6c-bb3f-eda98f9b0ac1
diff --combined lisp/files.el
index 7abf5361bb46d94eabd427c4252d0f29be0ff34f,d896020b27bc2d146fc4dab551fbed2a4dc43747..8b42eaaddb8342dca9055ce2df147aec92fd3851
@@@ -1,9 -1,10 +1,9 @@@
  ;;; files.el --- file input and output commands for Emacs
  
 -;; Copyright (C) 1985, 1986, 1987, 1992, 1993, 1994, 1995, 1996,
 -;;   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
 -;;   2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +;; Copyright (C) 1985-1987, 1992-2011 Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -116,14 -117,13 +116,14 @@@ This variable is relevant only if `back
    :type 'boolean
    :group 'backup)
  
 -(defcustom backup-by-copying-when-mismatch nil
 +(defcustom backup-by-copying-when-mismatch t
    "Non-nil means create backups by copying if this preserves owner or group.
  Renaming may still be used (subject to control of other variables)
  when it would not result in changing the owner or group of the file;
  that is, for files which are owned by you and whose group matches
  the default for a new file created there by you.
  This variable is relevant only if `backup-by-copying' is nil."
 +  :version "24.1"
    :type 'boolean
    :group 'backup)
  (put 'backup-by-copying-when-mismatch 'permanent-local t)
@@@ -191,6 -191,17 +191,6 @@@ If the buffer is visiting a new file, t
    "Non-nil if visited file was read-only when visited.")
  (make-variable-buffer-local 'buffer-file-read-only)
  
 -(defcustom temporary-file-directory
 -  (file-name-as-directory
 -   (cond ((memq system-type '(ms-dos windows-nt))
 -        (or (getenv "TEMP") (getenv "TMPDIR") (getenv "TMP") "c:/temp"))
 -       (t
 -        (or (getenv "TMPDIR") (getenv "TMP") (getenv "TEMP") "/tmp"))))
 -  "The directory for writing temporary files."
 -  :group 'files
 -  :initialize 'custom-initialize-delay
 -  :type 'directory)
 -
  (defcustom small-temporary-file-directory
    (if (eq system-type 'ms-dos) (getenv "TMPDIR"))
    "The directory for writing small temporary files.
@@@ -567,9 -578,6 +567,9 @@@ Runs the usual ange-ftp hook, but only 
          (inhibit-file-name-operation op))
        (apply op args))))
  
 +(declare-function dos-convert-standard-filename "dos-fns.el" (filename))
 +(declare-function w32-convert-standard-filename "w32-fns.el" (filename))
 +
  (defun convert-standard-filename (filename)
    "Convert a standard file's name to something suitable for the OS.
  This means to guarantee valid names and perhaps to canonicalize
@@@ -587,20 -595,15 +587,20 @@@ and also turn slashes into backslashes 
  `w32-shell-dos-semantics').
  
  See Info node `(elisp)Standard File Names' for more details."
 -  (if (eq system-type 'cygwin)
 -      (let ((name (copy-sequence filename))
 -          (start 0))
 -      ;; Replace invalid filename characters with !
 -      (while (string-match "[?*:<>|\"\000-\037]" name start)
 -             (aset name (match-beginning 0) ?!)
 -        (setq start (match-end 0)))
 -      name)
 -    filename))
 +  (cond
 +   ((eq system-type 'cygwin)
 +    (let ((name (copy-sequence filename))
 +        (start 0))
 +      ;; Replace invalid filename characters with !
 +      (while (string-match "[?*:<>|\"\000-\037]" name start)
 +      (aset name (match-beginning 0) ?!)
 +      (setq start (match-end 0)))
 +      name))
 +   ((eq system-type 'windows-nt)
 +    (w32-convert-standard-filename filename))
 +   ((eq system-type 'ms-dos)
 +    (dos-convert-standard-filename filename))
 +   (t filename)))
  
  (defun read-directory-name (prompt &optional dir default-dirname mustmatch initial)
    "Read directory name, prompting with PROMPT and completing in directory DIR.
@@@ -750,45 -753,21 +750,45 @@@ one or more of those symbols.
               (let ((x (file-name-directory suffix)))
                 (if x (1- (length x)) (length suffix))))))
     (t
 -    (let ((names nil)
 +    (let ((names '())
 +          ;; If we have files like "foo.el" and "foo.elc", we could load one of
 +          ;; them with "foo.el", "foo.elc", or "foo", where just "foo" is the
 +          ;; preferred way.  So if we list all 3, that gives a lot of redundant
 +          ;; entries for the poor soul looking just for "foo".  OTOH, sometimes
 +          ;; the user does want to pay attention to the extension.  We try to
 +          ;; diffuse this tension by stripping the suffix, except when the
 +          ;; result is a single element (i.e. usually we only list "foo" unless
 +          ;; it's the only remaining element in the list, in which case we do
 +          ;; list "foo", "foo.elc" and "foo.el").
 +          (fullnames '())
          (suffix (concat (regexp-opt suffixes t) "\\'"))
          (string-dir (file-name-directory string))
            (string-file (file-name-nondirectory string)))
        (dolist (dir dirs)
 -      (unless dir
 -        (setq dir default-directory))
 -      (if string-dir (setq dir (expand-file-name string-dir dir)))
 -      (when (file-directory-p dir)
 -        (dolist (file (file-name-all-completions
 -                       string-file dir))
 -          (push file names)
 -          (when (string-match suffix file)
 -            (setq file (substring file 0 (match-beginning 0)))
 -              (push file names)))))
 +        (unless dir
 +          (setq dir default-directory))
 +        (if string-dir (setq dir (expand-file-name string-dir dir)))
 +        (when (file-directory-p dir)
 +          (dolist (file (file-name-all-completions
 +                         string-file dir))
 +            (if (not (string-match suffix file))
 +                (push file names)
 +              (push file fullnames)
 +              (push (substring file 0 (match-beginning 0)) names)))))
 +      ;; Switching from names to names+fullnames creates a non-monotonicity
 +      ;; which can cause problems with things like partial-completion.
 +      ;; To minimize the problem, filter out completion-regexp-list, so that
 +      ;; M-x load-library RET t/x.e TAB finds some files.  Also remove elements
 +      ;; from `names' which only matched `string' when they still had
 +      ;; their suffix.
 +      (setq names (all-completions string names))
 +      ;; Remove duplicates of the first element, so that we can easily check
 +      ;; if `names' really only contains a single element.
 +      (when (cdr names) (setcdr names (delete (car names) (cdr names))))
 +      (unless (cdr names)
 +        ;; There's no more than one matching non-suffixed element, so expand
 +        ;; the list by adding the suffixed elements as well.
 +        (setq names (nconc names fullnames)))
        (completion-table-with-context
         string-dir names string-file pred action)))))
  
@@@ -927,36 -906,6 +927,36 @@@ to that remote system
        (funcall handler 'file-remote-p file identification connected)
        nil)))
  
 +(defcustom remote-file-name-inhibit-cache 10
 +  "Whether to use the remote file-name cache for read access.
 +
 +When `nil', always use the cached values.
 +When `t', never use them.
 +A number means use them for that amount of seconds since they were
 +cached.
 +
 +File attributes of remote files are cached for better performance.
 +If they are changed out of Emacs' control, the cached values
 +become invalid, and must be invalidated.
 +
 +In case a remote file is checked regularly, it might be
 +reasonable to let-bind this variable to a value less then the
 +time period between two checks.
 +Example:
 +
 +  \(defun display-time-file-nonempty-p \(file)
 +    \(let \(\(remote-file-name-inhibit-cache \(- display-time-interval 5)))
 +      \(and \(file-exists-p file)
 +           \(< 0 \(nth 7 \(file-attributes \(file-chase-links file)))))))"
 +  :group 'files
 +  :version "24.1"
 +  :type `(choice
 +        (const   :tag "Do not inhibit file name cache" nil)
 +        (const   :tag "Do not use file name cache" t)
 +        (integer :tag "Do not use file name cache"
 +                 :format "Do not use file name cache older then %v seconds"
 +                 :value 10)))
 +
  (defun file-local-copy (file)
    "Copy the file FILE into a temporary file on this machine.
  Returns the name of the local copy, or nil, if FILE is directly
@@@ -1557,7 -1506,7 +1557,7 @@@ killed.
      (error "Aborted"))
    (when (and (buffer-modified-p) buffer-file-name)
      (if (yes-or-no-p (format "Buffer %s is modified; save it first? "
 -                             (buffer-name)))
 +                           (buffer-name)))
          (save-buffer)
        (unless (yes-or-no-p "Kill and replace the buffer without saving it? ")
          (error "Aborted"))))
@@@ -1759,11 -1708,12 +1759,11 @@@ When nil, never request confirmation.
    "If file SIZE larger than `large-file-warning-threshold', allow user to abort.
  OP-TYPE specifies the file operation being performed (for message to user)."
    (when (and large-file-warning-threshold size
 -         (> size large-file-warning-threshold)
 -         (not (y-or-n-p
 -               (format "File %s is large (%dMB), really %s? "
 -                       (file-name-nondirectory filename)
 -                       (/ size 1048576) op-type))))
 -        (error "Aborted")))
 +           (> size large-file-warning-threshold)
 +           (not (y-or-n-p (format "File %s is large (%dMB), really %s? "
 +                                  (file-name-nondirectory filename)
 +                                  (/ size 1048576) op-type))))
 +    (error "Aborted")))
  
  (defun find-file-noselect (filename &optional nowarn rawfile wildcards)
    "Read file FILENAME into a buffer and return the buffer.
@@@ -2213,7 -2163,7 +2213,7 @@@ in that case, this function acts as if 
    (if (fboundp 'ucs-set-table-for-input) ; don't lose when building
        (ucs-set-table-for-input)))
  
 -(defcustom auto-mode-case-fold nil
 +(defcustom auto-mode-case-fold t
    "Non-nil means to try second pass through `auto-mode-alist'.
  This means that if the first case-sensitive search through the alist fails
  to find a matching major mode, a second case-insensitive search is made.
@@@ -2232,16 -2182,7 +2232,16 @@@ since only a single case-insensitive se
     (lambda (elt)
       (cons (purecopy (car elt)) (cdr elt)))
     `(;; do this first, so that .html.pl is Polish html, not Perl
 -     ("\\.s?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mode)
 +     ("\\.[sx]?html?\\(\\.[a-zA-Z_]+\\)?\\'" . html-mode)
 +     ("\\.svgz?\\'" . image-mode)
 +     ("\\.svgz?\\'" . xml-mode)
 +     ("\\.x[bp]m\\'" . image-mode)
 +     ("\\.x[bp]m\\'" . c-mode)
 +     ("\\.p[bpgn]m\\'" . image-mode)
 +     ("\\.tiff?\\'" . image-mode)
 +     ("\\.gif\\'" . image-mode)
 +     ("\\.png\\'" . image-mode)
 +     ("\\.jpe?g\\'" . image-mode)
       ("\\.te?xt\\'" . text-mode)
       ("\\.[tT]e[xX]\\'" . tex-mode)
       ("\\.ins\\'" . tex-mode)         ;Installation files for TeX packages.
       ("\\.te?xi\\'" . texinfo-mode)
       ("\\.[sS]\\'" . asm-mode)
       ("\\.asm\\'" . asm-mode)
 +     ("\\.css\\'" . css-mode)
 +     ("\\.mixal\\'" . mixal-mode)
 +     ("\\.gcov\\'" . compilation-mode)
 +     ;; Besides .gdbinit, gdb documents other names to be usable for init
 +     ;; files, cross-debuggers can use something like
 +     ;; .PROCESSORNAME-gdbinit so that the host and target gdbinit files
 +     ;; don't interfere with each other.
 +     ("/\\.[a-z0-9-]*gdbinit" . gdb-script-mode)
       ("[cC]hange\\.?[lL]og?\\'" . change-log-mode)
       ("[cC]hange[lL]og[-.][0-9]+\\'" . change-log-mode)
       ("\\$CHANGE_LOG\\$\\.TXT" . change-log-mode)
       ("\\.cl[so]\\'" . latex-mode)            ;LaTeX 2e class option
       ("\\.bbl\\'" . latex-mode)
       ("\\.bib\\'" . bibtex-mode)
 +     ("\\.bst\\'" . bibtex-style-mode)
       ("\\.sql\\'" . sql-mode)
       ("\\.m[4c]\\'" . m4-mode)
       ("\\.mf\\'" . metafont-mode)
       ;; The list of archive file extensions should be in sync with
       ;; `auto-coding-alist' with `no-conversion' coding system.
       ("\\.\\(\
 -arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|\
 -ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\)\\'" . archive-mode)
 +arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|rar\\|7z\\|\
 +ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|RAR\\|7Z\\)\\'" . archive-mode)
       ("\\.\\(sx[dmicw]\\|od[fgpst]\\|oxt\\)\\'" . archive-mode) ;OpenOffice.org
       ("\\.\\(deb\\|[oi]pk\\)\\'" . archive-mode) ; Debian/Opkg packages.
       ;; Mailer puts message to be edited in
       ;; /tmp/Re.... or Message
       ("\\`/tmp/Re" . text-mode)
       ("/Message[0-9]*\\'" . text-mode)
 -     ("\\.zone\\'" . zone-mode)
       ;; some news reader is reported to use this
       ("\\`/tmp/fol/" . text-mode)
       ("\\.oak\\'" . scheme-mode)
       ("[:/]_emacs\\'" . emacs-lisp-mode)
       ("/crontab\\.X*[0-9]+\\'" . shell-script-mode)
       ("\\.ml\\'" . lisp-mode)
 +     ;; Linux-2.6.9 uses some different suffix for linker scripts:
 +     ;; "ld", "lds", "lds.S", "lds.in", "ld.script", and "ld.script.balo".
 +     ;; eCos uses "ld" and "ldi".  Netbsd uses "ldscript.*".
 +     ("\\.ld[si]?\\'" . ld-script-mode)
 +     ("ld\\.?script\\'" . ld-script-mode)
 +     ;; .xs is also used for ld scripts, but seems to be more commonly
 +     ;; associated with Perl .xs files (C with Perl bindings).  (Bug#7071)
 +     ("\\.xs\\'" . c-mode)
 +     ;; Explained in binutils ld/genscripts.sh.  Eg:
 +     ;; A .x script file is the default script.
 +     ;; A .xr script is for linking without relocation (-r flag).  Etc.
 +     ("\\.x[abdsru]?[cnw]?\\'" . ld-script-mode)
 +     ("\\.zone\\'" . dns-mode)
 +     ("\\.soa\\'" . dns-mode)
       ;; Common Lisp ASDF package system.
       ("\\.asd\\'" . lisp-mode)
       ("\\.\\(asn\\|mib\\|smi\\)\\'" . snmp-mode)
       ("\\.\\(diffs?\\|patch\\|rej\\)\\'" . diff-mode)
       ("\\.\\(dif\\|pat\\)\\'" . diff-mode) ; for MSDOG
       ("\\.[eE]?[pP][sS]\\'" . ps-mode)
 -     ("\\.\\(?:PDF\\|DVI\\|pdf\\|dvi\\)\\'" . doc-view-mode)
 +     ("\\.\\(?:PDF\\|DVI\\|OD[FGPST]\\|DOCX?\\|XLSX?\\|PPTX?\\|pdf\\|dvi\\|od[fgpst]\\|docx?\\|xlsx?\\|pptx?\\)\\'" . doc-view-mode-maybe)
       ("configure\\.\\(ac\\|in\\)\\'" . autoconf-mode)
       ("\\.s\\(v\\|iv\\|ieve\\)\\'" . sieve-mode)
       ("BROWSE\\'" . ebrowse-tree-mode)
       ("#\\*mail\\*" . mail-mode)
       ("\\.g\\'" . antlr-mode)
       ("\\.ses\\'" . ses-mode)
 -     ("\\.\\(soa\\|zone\\)\\'" . dns-mode)
       ("\\.docbook\\'" . sgml-mode)
       ("\\.com\\'" . dcl-mode)
       ("/config\\.\\(?:bat\\|log\\)\\'" . fundamental-mode)
@@@ -2489,8 -2409,7 +2489,8 @@@ and `magic-mode-alist', which determine
       ("pg" . text-mode)
       ("make" . makefile-gmake-mode)           ; Debian uses this
       ("guile" . scheme-mode)
 -     ("clisp" . lisp-mode)))
 +     ("clisp" . lisp-mode)
 +     ("emacs" . emacs-lisp-mode)))
    "Alist mapping interpreter names to major modes.
  This is used for files whose first lines match `auto-mode-interpreter-regexp'.
  Each element looks like (INTERPRETER . MODE).
@@@ -2853,19 -2772,15 +2853,19 @@@ asking you for confirmation.
  
  (mapc (lambda (pair)
        (put (car pair) 'safe-local-variable (cdr pair)))
 -      '((buffer-read-only     . booleanp)   ;; C source code
 -      (default-directory    . stringp)    ;; C source code
 -      (fill-column          . integerp)   ;; C source code
 -      (indent-tabs-mode     . booleanp)   ;; C source code
 -      (left-margin          . integerp)   ;; C source code
 -      (no-update-autoloads  . booleanp)
 -      (tab-width            . integerp)   ;; C source code
 -      (truncate-lines       . booleanp)   ;; C source code
 -      (word-wrap            . booleanp))) ;; C source code
 +      '((buffer-read-only        . booleanp)   ;; C source code
 +      (default-directory       . stringp)    ;; C source code
 +      (fill-column             . integerp)   ;; C source code
 +      (indent-tabs-mode        . booleanp)   ;; C source code
 +      (left-margin             . integerp)   ;; C source code
 +      (no-update-autoloads     . booleanp)
 +      (tab-width               . integerp)   ;; C source code
 +      (truncate-lines          . booleanp)   ;; C source code
 +      (word-wrap               . booleanp) ;; C source code
 +      (bidi-display-reordering . booleanp))) ;; C source code
 +
 +(put 'bidi-paragraph-direction 'safe-local-variable
 +     (lambda (v) (memq v '(nil right-to-left left-to-right))))
  
  (put 'c-set-style 'safe-local-eval-function t)
  
@@@ -2906,80 -2821,91 +2906,80 @@@ DIR-NAME is a directory name if these s
  directory-local variables, or nil otherwise."
    (if noninteractive
        nil
 -    (let ((name (or dir-name
 -                  (if buffer-file-name
 -                      (file-name-nondirectory buffer-file-name)
 -                    (concat "buffer " (buffer-name)))))
 -        (offer-save (and (eq enable-local-variables t) unsafe-vars))
 -        prompt char)
 -      (save-window-excursion
 -      (let ((buf (get-buffer-create "*Local Variables*")))
 -        (pop-to-buffer buf)
 -        (set (make-local-variable 'cursor-type) nil)
 -        (erase-buffer)
 -        (if unsafe-vars
 -            (insert "The local variables list in " name
 -                    "\ncontains values that may not be safe (*)"
 -                    (if risky-vars
 -                        ", and variables that are risky (**)."
 -                      "."))
 -          (if risky-vars
 -              (insert "The local variables list in " name
 -                      "\ncontains variables that are risky (**).")
 -            (insert "A local variables list is specified in " name ".")))
 -        (insert "\n\nDo you want to apply it?  You can type
 +    (save-window-excursion
 +      (let* ((name (or dir-name
 +                     (if buffer-file-name
 +                         (file-name-nondirectory buffer-file-name)
 +                       (concat "buffer " (buffer-name)))))
 +           (offer-save (and (eq enable-local-variables t)
 +                            unsafe-vars))
 +           (exit-chars
 +            (if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
 +           (buf (pop-to-buffer "*Local Variables*"))
 +           prompt char)
 +      (set (make-local-variable 'cursor-type) nil)
 +      (erase-buffer)
 +      (cond
 +       (unsafe-vars
 +        (insert "The local variables list in " name
 +                "\ncontains values that may not be safe (*)"
 +                (if risky-vars
 +                    ", and variables that are risky (**)."
 +                  ".")))
 +       (risky-vars
 +        (insert "The local variables list in " name
 +                "\ncontains variables that are risky (**)."))
 +       (t
 +        (insert "A local variables list is specified in " name ".")))
 +      (insert "\n\nDo you want to apply it?  You can type
  y  -- to apply the local variables list.
  n  -- to ignore the local variables list.")
 -        (if offer-save
 -            (insert "
 +      (if offer-save
 +          (insert "
  !  -- to apply the local variables list, and permanently mark these
        values (*) as safe (in the future, they will be set automatically.)\n\n")
 -          (insert "\n\n"))
 -        (dolist (elt all-vars)
 -          (cond ((member elt unsafe-vars)
 -                 (insert "  * "))
 -                ((member elt risky-vars)
 -                 (insert " ** "))
 -                (t
 -                 (insert "    ")))
 -          (princ (car elt) buf)
 -          (insert " : ")
 -            ;; Make strings with embedded whitespace easier to read.
 -            (let ((print-escape-newlines t))
 -              (prin1 (cdr elt) buf))
 -          (insert "\n"))
 -        (setq prompt
 -              (format "Please type %s%s: "
 -                      (if offer-save "y, n, or !" "y or n")
 -                      (if (< (line-number-at-pos) (window-body-height))
 -                          ""
 -                        ", or C-v to scroll")))
 -        (goto-char (point-min))
 -        (let ((cursor-in-echo-area t)
 -              (executing-kbd-macro executing-kbd-macro)
 -              (exit-chars
 -               (if offer-save '(?! ?y ?n ?\s ?\C-g) '(?y ?n ?\s ?\C-g)))
 -              done)
 -          (while (not done)
 -            (message "%s" prompt)
 -            (setq char (read-event))
 -            (if (numberp char)
 -                (cond ((eq char ?\C-v)
 -                       (condition-case nil
 -                           (scroll-up)
 -                         (error (goto-char (point-min)))))
 -                      ;; read-event returns -1 if we are in a kbd
 -                      ;; macro and there are no more events in the
 -                      ;; macro.  In that case, attempt to get an
 -                      ;; event interactively.
 -                      ((and executing-kbd-macro (= char -1))
 -                       (setq executing-kbd-macro nil))
 -                      (t (setq done (memq (downcase char) exit-chars)))))))
 -        (setq char (downcase char))
 -        (when (and offer-save (= char ?!) unsafe-vars)
 -          (dolist (elt unsafe-vars)
 -            (add-to-list 'safe-local-variable-values elt))
 -          ;; When this is called from desktop-restore-file-buffer,
 -          ;; coding-system-for-read may be non-nil.  Reset it before
 -          ;; writing to .emacs.
 -          (if (or custom-file user-init-file)
 -              (let ((coding-system-for-read nil))
 -                (customize-save-variable
 -                 'safe-local-variable-values
 -                 safe-local-variable-values))))
 -        (kill-buffer buf)
 -        (or (= char ?!)
 -            (= char ?\s)
 -            (= char ?y)))))))
 +        (insert "\n\n"))
 +      (dolist (elt all-vars)
 +        (cond ((member elt unsafe-vars)
 +               (insert "  * "))
 +              ((member elt risky-vars)
 +               (insert " ** "))
 +              (t
 +               (insert "    ")))
 +        (princ (car elt) buf)
 +        (insert " : ")
 +        ;; Make strings with embedded whitespace easier to read.
 +        (let ((print-escape-newlines t))
 +          (prin1 (cdr elt) buf))
 +        (insert "\n"))
 +      (setq prompt
 +            (format "Please type %s%s: "
 +                    (if offer-save "y, n, or !" "y or n")
 +                    (if (< (line-number-at-pos) (window-body-height))
 +                        ""
 +                      (push ?\C-v exit-chars)
 +                      ", or C-v to scroll")))
 +      (goto-char (point-min))
 +      (while (null char)
 +        (setq char (read-char-choice prompt exit-chars t))
 +        (when (eq char ?\C-v)
 +          (condition-case nil
 +              (scroll-up)
 +            (error (goto-char (point-min))))
 +          (setq char nil)))
 +      (kill-buffer buf)
 +      (when (and offer-save (= char ?!) unsafe-vars)
 +        (dolist (elt unsafe-vars)
 +          (add-to-list 'safe-local-variable-values elt))
 +        ;; When this is called from desktop-restore-file-buffer,
 +        ;; coding-system-for-read may be non-nil.  Reset it before
 +        ;; writing to .emacs.
 +        (if (or custom-file user-init-file)
 +            (let ((coding-system-for-read nil))
 +              (customize-save-variable
 +               'safe-local-variable-values
 +               safe-local-variable-values))))
 +      (memq char '(?! ?\s ?y))))))
  
  (defun hack-local-variables-prop-line (&optional mode-only)
    "Return local variables specified in the -*- line.
@@@ -3193,17 -3119,14 +3193,17 @@@ is specified, returning t if it is spec
          ;; Otherwise, set the variables.
          (enable-local-variables
           (hack-local-variables-filter result nil)
 -         (when file-local-variables-alist
 -           ;; Any 'evals must run in the Right sequence.
 -           (setq file-local-variables-alist
 -                 (nreverse file-local-variables-alist))
 -           (run-hooks 'before-hack-local-variables-hook)
 -           (dolist (elt file-local-variables-alist)
 -             (hack-one-local-variable (car elt) (cdr elt))))
 -         (run-hooks 'hack-local-variables-hook)))))
 +         (hack-local-variables-apply)))))
 +
 +(defun hack-local-variables-apply ()
 +  (when file-local-variables-alist
 +    ;; Any 'evals must run in the Right sequence.
 +    (setq file-local-variables-alist
 +        (nreverse file-local-variables-alist))
 +    (run-hooks 'before-hack-local-variables-hook)
 +    (dolist (elt file-local-variables-alist)
 +      (hack-one-local-variable (car elt) (cdr elt))))
 +  (run-hooks 'hack-local-variables-hook))
  
  (defun safe-local-variable-p (sym val)
    "Non-nil if SYM is safe as a file-local variable with value VAL.
@@@ -3361,29 -3284,22 +3361,29 @@@ ROOT is the root directory of the proje
  Return the new variables list."
    (let* ((file-name (buffer-file-name))
         (sub-file-name (if file-name
 +                            ;; FIXME: Why not use file-relative-name?
                            (substring file-name (length root)))))
 -    (dolist (entry class-variables variables)
 -      (let ((key (car entry)))
 -      (cond
 -       ((stringp key)
 -        ;; Don't include this in the previous condition, because we
 -        ;; want to filter all strings before the next condition.
 -        (when (and sub-file-name
 -                   (>= (length sub-file-name) (length key))
 -                   (string= key (substring sub-file-name 0 (length key))))
 -          (setq variables (dir-locals-collect-variables
 -                           (cdr entry) root variables))))
 -       ((or (not key)
 -            (derived-mode-p key))
 -        (setq variables (dir-locals-collect-mode-variables
 -                         (cdr entry) variables))))))))
 +    (condition-case err
 +        (dolist (entry class-variables variables)
 +          (let ((key (car entry)))
 +            (cond
 +             ((stringp key)
 +              ;; Don't include this in the previous condition, because we
 +              ;; want to filter all strings before the next condition.
 +              (when (and sub-file-name
 +                         (>= (length sub-file-name) (length key))
 +                         (string-prefix-p key sub-file-name))
 +                (setq variables (dir-locals-collect-variables
 +                                 (cdr entry) root variables))))
 +             ((or (not key)
 +                  (derived-mode-p key))
 +              (setq variables (dir-locals-collect-mode-variables
 +                               (cdr entry) variables))))))
 +      (error
 +       ;; The file's content might be invalid (e.g. have a merge conflict), but
 +       ;; that shouldn't prevent the user from opening the file.
 +       (message ".dir-locals error: %s" (error-message-string err))
 +       nil))))
  
  (defun dir-locals-set-directory-class (directory class &optional mtime)
    "Declare that the DIRECTORY root is an instance of CLASS.
@@@ -3507,16 -3423,15 +3507,16 @@@ is found.  Returns the new class name.
  Store the directory-local variables in `dir-local-variables-alist'
  and `file-local-variables-alist', without applying them."
    (when (and enable-local-variables
 -           (buffer-file-name)
 -           (not (file-remote-p (buffer-file-name))))
 +           (not (file-remote-p (or (buffer-file-name) default-directory))))
      ;; Find the variables file.
 -    (let ((variables-file (dir-locals-find-file (buffer-file-name)))
 +    (let ((variables-file (dir-locals-find-file (or (buffer-file-name) default-directory)))
          (class nil)
          (dir-name nil))
        (cond
         ((stringp variables-file)
 -      (setq dir-name (file-name-directory (buffer-file-name)))
 +      (setq dir-name (if (buffer-file-name)
 +                           (file-name-directory (buffer-file-name))
 +                         default-directory))
        (setq class (dir-locals-read-from-file variables-file)))
         ((consp variables-file)
        (setq dir-name (nth 0 variables-file))
              (push elt dir-local-variables-alist))
            (hack-local-variables-filter variables dir-name)))))))
  
 +(defun hack-dir-local-variables-non-file-buffer ()
 +  (hack-dir-local-variables)
 +  (hack-local-variables-apply))
 +
  \f
  (defcustom change-major-mode-with-file-name t
    "Non-nil means \\[write-file] should set the major mode from the file name.
@@@ -3583,7 -3494,7 +3583,7 @@@ the old visited file has been renamed t
        (and buffer (not (eq buffer (current-buffer)))
           (not no-query)
           (not (y-or-n-p (format "A buffer is visiting %s; proceed? "
 -                                  filename)))
 +                                filename)))
           (error "Aborted")))
      (or (equal filename buffer-file-name)
        (progn
@@@ -3716,13 -3627,10 +3716,13 @@@ variable `make-backup-files'.  If it's 
  no longer accessible under its old name.
  
  The value is non-nil after a backup was made by renaming.
 -It has the form (MODES . BACKUPNAME).
 +It has the form (MODES SELINUXCONTEXT BACKUPNAME).
  MODES is the result of `file-modes' on the original
  file; this means that the caller, after saving the buffer, should change
  the modes of the new file to agree with the old modes.
 +SELINUXCONTEXT is the result of `file-selinux-context' on the original
 +file; this means that the caller, after saving the buffer, should change
 +the SELinux context of the new file to agree with the old context.
  BACKUPNAME is the backup file name, which is the old file renamed."
    (if (and make-backup-files (not backup-inhibited)
           (not buffer-backed-up)
                            (or delete-old-versions
                                (y-or-n-p (format "Delete excess backup versions of %s? "
                                                  real-file-name)))))
 -                    (modes (file-modes buffer-file-name)))
 +                    (modes (file-modes buffer-file-name))
 +                    (context (file-selinux-context buffer-file-name)))
                  ;; Actually write the back up file.
                  (condition-case ()
                      (if (or file-precious-flag
                                                   (<= (nth 2 attr) backup-by-copying-when-privileged-mismatch)))
                                          (or (nth 9 attr)
                                              (not (file-ownership-preserved-p real-file-name)))))))
 -                        (backup-buffer-copy real-file-name backupname modes)
 +                        (backup-buffer-copy real-file-name backupname modes context)
                        ;; rename-file should delete old backup.
                        (rename-file real-file-name backupname t)
 -                      (setq setmodes (cons modes backupname)))
 +                      (setq setmodes (list modes context backupname)))
                    (file-error
                     ;; If trouble writing the backup, write it in
                     ;; .emacs.d/%backup%.
                     (message "Cannot write backup file; backing up in %s"
                              backupname)
                     (sleep-for 1)
 -                   (backup-buffer-copy real-file-name backupname modes)))
 +                   (backup-buffer-copy real-file-name backupname modes context)))
                  (setq buffer-backed-up t)
                  ;; Now delete the old versions, if desired.
                  (if delete-old-versions
                  setmodes)
            (file-error nil))))))
  
 -(defun backup-buffer-copy (from-name to-name modes)
 +(defun backup-buffer-copy (from-name to-name modes context)
    (let ((umask (default-file-modes)))
      (unwind-protect
        (progn
        ;; Reset the umask.
        (set-default-file-modes umask)))
    (and modes
 -       (set-file-modes to-name (logand modes #o1777))))
 +       (set-file-modes to-name (logand modes #o1777)))
 +  (and context
 +       (set-file-selinux-context to-name context)))
 +
 +(defvar file-name-version-regexp
 +  "\\(?:~\\|\\.~[-[:alnum:]:#@^._]+~\\)"
 +  "Regular expression matching the backup/version part of a file name.
 +Used by `file-name-sans-versions'.")
  
  (defun file-name-sans-versions (name &optional keep-backup-version)
    "Return file NAME sans backup versions or strings.
  This is a separate procedure so your site-init or startup file can
  redefine it.
  If the optional argument KEEP-BACKUP-VERSION is non-nil,
 -we do not remove backup version numbers, only true file version numbers."
 +we do not remove backup version numbers, only true file version numbers.
 +See also `file-name-version-regexp'."
    (let ((handler (find-file-name-handler name 'file-name-sans-versions)))
      (if handler
        (funcall handler 'file-name-sans-versions name keep-backup-version)
        (substring name 0
 -               (if keep-backup-version
 -                   (length name)
 -                 (or (string-match "\\.~[-[:alnum:]:#@^._]+~\\'" name)
 -                     (string-match "~\\'" name)
 -                     (length name)))))))
 +               (unless keep-backup-version
 +                   (string-match (concat file-name-version-regexp "\\'")
 +                                 name))))))
  
  (defun file-ownership-preserved-p (file)
    "Return t if deleting FILE and rewriting it would preserve the owner."
@@@ -4336,9 -4237,8 +4336,9 @@@ Before and after saving the buffer, thi
          (or (verify-visited-file-modtime (current-buffer))
              (not (file-exists-p buffer-file-name))
              (yes-or-no-p
 -             (format "%s has changed since visited or saved.  Save anyway? "
 -                     (file-name-nondirectory buffer-file-name)))
 +             (format
 +              "%s has changed since visited or saved.  Save anyway? "
 +              (file-name-nondirectory buffer-file-name)))
              (error "Save not confirmed"))
          (save-restriction
            (widen)
                  (nthcdr 10 (file-attributes buffer-file-name)))
            (if setmodes
                (condition-case ()
 -                  (set-file-modes buffer-file-name (car setmodes))
 +                  (progn
 +                    (set-file-modes buffer-file-name (car setmodes))
 +                    (set-file-selinux-context buffer-file-name (nth 1 setmodes)))
                  (error nil))))
          ;; If the auto-save file was recent before this command,
          ;; delete it now.
  ;; This does the "real job" of writing a buffer into its visited file
  ;; and making a backup file.  This is what is normally done
  ;; but inhibited if one of write-file-functions returns non-nil.
 -;; It returns a value (MODES . BACKUPNAME), like backup-buffer.
 +;; It returns a value (MODES SELINUXCONTEXT BACKUPNAME), like backup-buffer.
  (defun basic-save-buffer-1 ()
    (prog1
        (if save-buffer-coding-system
        (setq buffer-file-coding-system-explicit
            (cons last-coding-system-used nil)))))
  
 -;; This returns a value (MODES . BACKUPNAME), like backup-buffer.
 +;; This returns a value (MODES SELINUXCONTEXT BACKUPNAME), like backup-buffer.
  (defun basic-save-buffer-2 ()
    (let (tempsetmodes setmodes)
      (if (not (file-writable-p buffer-file-name))
            (if (not (file-exists-p buffer-file-name))
                (error "Directory %s write-protected" dir)
              (if (yes-or-no-p
 -                 (format "File %s is write-protected; try to save anyway? "
 -                         (file-name-nondirectory
 -                          buffer-file-name)))
 +                 (format
 +                  "File %s is write-protected; try to save anyway? "
 +                  (file-name-nondirectory
 +                   buffer-file-name)))
                  (setq tempsetmodes t)
                (error "Attempt to save to a file which you aren't allowed to write"))))))
      (or buffer-backed-up
            ;; Since we have created an entirely new file,
            ;; make sure it gets the right permission bits set.
            (setq setmodes (or setmodes
 -                             (cons (or (file-modes buffer-file-name)
 +                             (list (or (file-modes buffer-file-name)
                                         (logand ?\666 umask))
 +                                   (file-selinux-context buffer-file-name)
                                     buffer-file-name)))
            ;; We succeeded in writing the temp file,
            ;; so rename it.
        ;; (setmodes is set) because that says we're superseding.
        (cond ((and tempsetmodes (not setmodes))
               ;; Change the mode back, after writing.
 -             (setq setmodes (cons (file-modes buffer-file-name) buffer-file-name))
 -             (set-file-modes buffer-file-name (logior (car setmodes) 128))))
 +             (setq setmodes (list (file-modes buffer-file-name)
 +                                  (file-selinux-context buffer-file-name)
 +                                  buffer-file-name))
 +             (set-file-modes buffer-file-name (logior (car setmodes) 128))
 +             (set-file-selinux-context buffer-file-name (nth 1 setmodes)))))
        (let (success)
          (unwind-protect
              (progn
            ;; the backup by renaming, undo the backing-up.
            (and setmodes (not success)
                 (progn
 -                 (rename-file (cdr setmodes) buffer-file-name t)
 -                 (setq buffer-backed-up nil)))))))
 +                 (rename-file (nth 2 setmodes) buffer-file-name t)
 +                 (setq buffer-backed-up nil))))))
      setmodes))
  
 -(defun diff-buffer-with-file (&optional buffer)
 -  "View the differences between BUFFER and its associated file.
 -This requires the external program `diff' to be in your `exec-path'."
 -  (interactive "bBuffer: ")
 -  (with-current-buffer (get-buffer (or buffer (current-buffer)))
 -    (if (and buffer-file-name
 -           (file-exists-p buffer-file-name))
 -      (let ((tempfile (make-temp-file "buffer-content-")))
 -        (unwind-protect
 -            (progn
 -              (write-region nil nil tempfile nil 'nomessage)
 -              (diff buffer-file-name tempfile nil t)
 -              (sit-for 0))
 -          (when (file-exists-p tempfile)
 -            (delete-file tempfile))))
 -      (message "Buffer %s has no associated file on disc" (buffer-name))
 -      ;; Display that message for 1 second so that user can read it
 -      ;; in the minibuffer.
 -      (sit-for 1)))
 -  ;; return always nil, so that save-buffers-kill-emacs will not move
 -  ;; over to the next unsaved buffer when calling `d'.
 -  nil)
 +(declare-function diff-no-select "diff"
 +                (old new &optional switches no-async buf))
  
  (defvar save-some-buffers-action-alist
    `((?\C-r
      (?d ,(lambda (buf)
             (if (null (buffer-file-name buf))
                 (message "Not applicable: no file")
 -             (save-window-excursion (diff-buffer-with-file buf))
 -             (if (not enable-recursive-minibuffers)
 -                 (progn (display-buffer (get-buffer-create "*Diff*"))
 -                        (setq other-window-scroll-buffer "*Diff*"))
 -               (view-buffer (get-buffer-create "*Diff*")
 -                            (lambda (_) (exit-recursive-edit)))
 -               (recursive-edit)))
 +             (require 'diff)            ;for diff-no-select.
 +             (let ((diffbuf (diff-no-select (buffer-file-name buf) buf
 +                                            nil 'noasync)))
 +               (if (not enable-recursive-minibuffers)
 +                   (progn (display-buffer diffbuf)
 +                          (setq other-window-scroll-buffer diffbuf))
 +                 (view-buffer diffbuf (lambda (_) (exit-recursive-edit)))
 +                 (recursive-edit))))
             ;; Return nil to ask about BUF again.
             nil)
        ,(purecopy "view changes in this buffer")))
@@@ -4609,7 -4521,8 +4609,7 @@@ change the additional actions you can t
           (progn
             (if (or arg
                     (eq save-abbrevs 'silently)
 -                   (y-or-n-p (format "Save abbrevs in %s? "
 -                                     abbrev-file-name)))
 +                   (y-or-n-p (format "Save abbrevs in %s? " abbrev-file-name)))
                 (write-abbrev-file nil))
             ;; Don't keep bothering user if he says no.
             (setq abbrevs-changed nil)
@@@ -4723,17 -4636,16 +4723,17 @@@ or multiple mail buffers, etc.
        (force-mode-line-update))))
  
  (defun make-directory (dir &optional parents)
 -  "Create the directory DIR and any nonexistent parent dirs.
 -If DIR already exists as a directory, signal an error, unless PARENTS is set.
 +  "Create the directory DIR and optionally any nonexistent parent dirs.
 +If DIR already exists as a directory, signal an error, unless
 +PARENTS is non-nil.
  
 -Interactively, the default choice of directory to create
 -is the current default directory for file names.
 -That is useful when you have visited a file in a nonexistent directory.
 +Interactively, the default choice of directory to create is the
 +current buffer's default directory.  That is useful when you have
 +visited a file in a nonexistent directory.
  
 -Noninteractively, the second (optional) argument PARENTS says whether
 -to create parent directories if they don't exist.  Interactively,
 -this happens by default."
 +Noninteractively, the second (optional) argument PARENTS, if
 +non-nil, says whether to create parent directories that don't
 +exist.  Interactively, this happens by default."
    (interactive
     (list (read-file-name "Make directory: " default-directory default-directory
                         nil nil)
    "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
    "Regexp matching any file name except \".\" and \"..\".")
  
 -(defun delete-directory (directory &optional recursive)
 +(defun delete-directory (directory &optional recursive trash)
    "Delete the directory named DIRECTORY.  Does not follow symlinks.
 -If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well."
 +If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well.
 +TRASH non-nil means to trash the directory instead, provided
 +`delete-by-moving-to-trash' is non-nil.
 +
 +When called interactively, TRASH is t if no prefix argument is
 +given.  With a prefix argument, TRASH is nil."
    (interactive
 -   (let ((dir (expand-file-name
 -             (read-file-name
 -              "Delete directory: "
 -              default-directory default-directory nil nil))))
 +   (let* ((trashing (and delete-by-moving-to-trash
 +                       (null current-prefix-arg)))
 +        (dir (expand-file-name
 +              (read-file-name
 +               (if trashing
 +                   "Move directory to trash: "
 +                 "Delete directory: ")
 +               default-directory default-directory nil nil))))
       (list dir
           (if (directory-files dir nil directory-files-no-dot-files-regexp)
               (y-or-n-p
 -              (format "Directory `%s' is not empty, really delete? " dir))
 -           nil))))
 +              (format "Directory `%s' is not empty, really %s? "
 +                      dir (if trashing "trash" "delete")))
 +           nil)
 +         (null current-prefix-arg))))
    ;; If default-directory is a remote directory, make sure we find its
    ;; delete-directory handler.
    (setq directory (directory-file-name (expand-file-name directory)))
      (cond
       (handler
        (funcall handler 'delete-directory directory recursive))
 -     (delete-by-moving-to-trash
 +     ((and delete-by-moving-to-trash trash)
        ;; Only move non-empty dir to trash if recursive deletion was
        ;; requested.  This mimics the non-`delete-by-moving-to-trash'
        ;; case, where the operation fails in delete-directory-internal.
                  ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
                  ;; but more efficient
                  (if (eq t (car (file-attributes file)))
 -                    (delete-directory file recursive)
 -                  (delete-file file)))
 +                    (delete-directory file recursive nil)
 +                  (delete-file file nil)))
                ;; We do not want to delete "." and "..".
                (directory-files
                 directory 'full directory-files-no-dot-files-regexp)))
@@@ -4855,22 -4756,35 +4855,35 @@@ this happens by default.
        ;; Compute target name.
        (setq directory (directory-file-name (expand-file-name directory))
            newname   (directory-file-name (expand-file-name newname)))
-       (if (not (file-directory-p newname)) (make-directory newname parents))
+       (if (not (file-directory-p newname))
+         ;; If NEWNAME is not an existing directory, create it; that
+         ;; is where we will copy the files of DIRECTORY.
+         (make-directory newname parents)
+       ;; If NEWNAME is an existing directory, we will copy into
+       ;; NEWNAME/[DIRECTORY-BASENAME].
+       (setq newname (expand-file-name
+                      (file-name-nondirectory
+                       (directory-file-name directory))
+                      newname))
+       (and (file-exists-p newname)
+            (not (file-directory-p newname))
+            (error "Cannot overwrite non-directory %s with a directory"
+                   newname))
+       (make-directory newname t))
  
        ;; Copy recursively.
-       (mapc
-        (lambda (file)
-        (let ((target (expand-file-name
-                       (file-name-nondirectory file) newname))
-              (attrs (file-attributes file)))
-          (cond ((file-directory-p file)
-                 (copy-directory file target keep-time parents))
-                ((stringp (car attrs)) ; Symbolic link
-                 (make-symbolic-link (car attrs) target t))
-                (t
-                 (copy-file file target t keep-time)))))
-        ;; We do not want to copy "." and "..".
-        (directory-files       directory 'full directory-files-no-dot-files-regexp))
+       (dolist (file
+              ;; We do not want to copy "." and "..".
+              (directory-files directory 'full
+                               directory-files-no-dot-files-regexp))
+       (if (file-directory-p file)
+           (copy-directory file newname keep-time parents)
+         (let ((target (expand-file-name (file-name-nondirectory file) newname))
+               (attrs (file-attributes file)))
+           (if (stringp (car attrs)) ; Symbolic link
+               (make-symbolic-link (car attrs) target t)
+             (copy-file file target t keep-time)))))
  
        ;; Set directory attributes.
        (set-file-modes newname (file-modes directory))
@@@ -5225,10 -5139,10 +5238,10 @@@ This command is used in the special Dir
  
  (defun kill-buffer-ask (buffer)
    "Kill BUFFER if confirmed."
 -  (when (yes-or-no-p
 -         (format "Buffer %s %s.  Kill? " (buffer-name buffer)
 -                 (if (buffer-modified-p buffer)
 -                     "HAS BEEN EDITED" "is unmodified")))
 +  (when (yes-or-no-p (format "Buffer %s %s.  Kill? "
 +                           (buffer-name buffer)
 +                           (if (buffer-modified-p buffer)
 +                               "HAS BEEN EDITED" "is unmodified")))
      (kill-buffer buffer)))
  
  (defun kill-some-buffers (&optional list)
@@@ -5260,6 -5174,30 +5273,6 @@@ The optional second argument indicates 
          (kill-buffer-ask buffer)))))
  
  \f
 -(defun auto-save-mode (arg)
 -  "Toggle auto-saving of contents of current buffer.
 -With prefix argument ARG, turn auto-saving on if positive, else off."
 -  (interactive "P")
 -  (setq buffer-auto-save-file-name
 -        (and (if (null arg)
 -               (or (not buffer-auto-save-file-name)
 -                   ;; If auto-save is off because buffer has shrunk,
 -                   ;; then toggling should turn it on.
 -                   (< buffer-saved-size 0))
 -             (or (eq arg t) (listp arg) (and (integerp arg) (> arg 0))))
 -           (if (and buffer-file-name auto-save-visited-file-name
 -                    (not buffer-read-only))
 -               buffer-file-name
 -             (make-auto-save-file-name))))
 -  ;; If -1 was stored here, to temporarily turn off saving,
 -  ;; turn it back on.
 -  (and (< buffer-saved-size 0)
 -       (setq buffer-saved-size 0))
 -  (if (called-interactively-p 'interactive)
 -      (message "Auto-save %s (in this buffer)"
 -             (if buffer-auto-save-file-name "on" "off")))
 -  buffer-auto-save-file-name)
 -
  (defun rename-auto-save-file ()
    "Adjust current buffer's auto save file name for current conditions.
  Also rename any existing auto save file, if it was made in this session."
@@@ -5623,14 -5561,12 +5636,14 @@@ preference to the program given by thi
  
  (defun get-free-disk-space (dir)
    "Return the amount of free space on directory DIR's file system.
 -The result is a string that gives the number of free 1KB blocks,
 -or nil if the system call or the program which retrieve the information
 -fail.  It returns also nil when DIR is a remote directory.
 -
 -This function calls `file-system-info' if it is available, or invokes the
 -program specified by `directory-free-space-program' if that is non-nil."
 +The return value is a string describing the amount of free
 +space (normally, the number of free 1KB blocks).
 +
 +This function calls `file-system-info' if it is available, or
 +invokes the program specified by `directory-free-space-program'
 +and `directory-free-space-args'.  If the system call or program
 +is unsuccessful, or if DIR is a remote directory, this function
 +returns nil."
    (unless (file-remote-p dir)
      ;; Try to find the number of free blocks.  Non-Posix systems don't
      ;; always have df, but might have an equivalent system call.
                                         directory-free-space-args
                                         dir)
                           0)))
 -          ;; Usual format is a header line followed by a line of
 -          ;; numbers.
 +          ;; Assume that the "available" column is before the
 +          ;; "capacity" column.  Find the "%" and scan backward.
            (goto-char (point-min))
            (forward-line 1)
 -          (if (not (eobp))
 -              (progn
 -                ;; Move to the end of the "available blocks" number.
 -                (skip-chars-forward "^ \t")
 -                (forward-word 3)
 -                ;; Copy it into AVAILABLE.
 -                (let ((end (point)))
 -                  (forward-word -1)
 -                  (buffer-substring (point) end))))))))))
 +          (when (re-search-forward
 +                 "[[:space:]]+[^[:space:]]+%[^%]*$"
 +                 (line-end-position) t)
 +            (goto-char (match-beginning 0))
 +            (let ((endpt (point)))
 +              (skip-chars-backward "^[:space:]")
 +              (buffer-substring-no-properties (point) endpt)))))))))
  
  ;; The following expression replaces `dired-move-to-filename-regexp'.
  (defvar directory-listing-before-filename-regexp
@@@ -6449,4 -6387,5 +6462,4 @@@ Otherwise, trash FILENAME using the fre
  (define-key ctl-x-5-map "r" 'find-file-read-only-other-frame)
  (define-key ctl-x-5-map "\C-o" 'display-buffer-other-frame)
  
 -;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f
  ;;; files.el ends here
diff --combined lisp/image-dired.el
index 8c26b699568b159886ad9b8644bf6a89cc00ebdb,489195837fc8f134bf57264da5de7a6994ce5e2e..8fa6963b3d7601ea8afcd4e637ba723ec58a9e46
@@@ -1,6 -1,6 +1,6 @@@
  ;;; image-dired.el --- use dired to browse and manipulate your images
  ;;
 -;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +;; Copyright (C) 2005-2011 Free Software Foundation, Inc.
  ;;
  ;; Version: 0.4.11
  ;; Keywords: multimedia
  (require 'widget)
  
  (eval-when-compile
 +  (require 'cl)
    (require 'wid-edit))
  
  (defgroup image-dired nil
@@@ -633,32 -632,26 +633,32 @@@ according to the Thumbnail Managing Sta
      (call-process shell-file-name nil nil nil shell-command-switch command)))
  
  ;;;###autoload
 -(defun image-dired-dired-insert-marked-thumbs ()
 -  "Insert thumbnails before file names of marked files in the dired buffer."
 -  (interactive)
 +(defun image-dired-dired-toggle-marked-thumbs (&optional arg)
 +  "Toggle thumbnails in front of file names in the dired buffer.
 +If no marked file could be found, insert or hide thumbnails on the
 +current line.  ARG, if non-nil, specifies the files to use instead
 +of the marked files.  If ARG is an integer, use the next ARG (or
 +previous -ARG, if ARG<0) files."
 +  (interactive "P")
    (dired-map-over-marks
 -   (let* ((image-pos (dired-move-to-filename))
 -          (image-file (dired-get-filename))
 -          (thumb-file (image-dired-get-thumbnail-image image-file))
 +   (let* ((image-pos  (dired-move-to-filename))
 +          (image-file (dired-get-filename nil t))
 +          thumb-file
            overlay)
 -     ;; If image is not already added, then add it.
 -     (unless (delq nil (mapcar (lambda (o) (overlay-get o 'put-image))
 -                               ;; Can't use (overlays-at (point)), BUG?
 -                               (overlays-in (point) (1+ (point)))))
 -       (put-image thumb-file image-pos)
 -       (setq
 -      overlay
 -      (car (delq nil (mapcar (lambda (o) (and (overlay-get o 'put-image) o))
 -                             (overlays-in (point) (1+ (point)))))))
 -       (overlay-put overlay 'image-file image-file)
 -       (overlay-put overlay 'thumb-file thumb-file)))
 -   nil)
 +     (when (and image-file (string-match-p (image-file-name-regexp) image-file))
 +       (setq thumb-file (image-dired-get-thumbnail-image image-file))
 +       ;; If image is not already added, then add it.
 +       (let ((cur-ov (overlays-in (point) (1+ (point)))))
 +         (if cur-ov
 +             (delete-overlay (car cur-ov))
 +         (put-image thumb-file image-pos)
 +         (setq overlay (loop for o in (overlays-in (point) (1+ (point)))
 +                             when (overlay-get o 'put-image) collect o into ov
 +                             finally return (car ov)))
 +         (overlay-put overlay 'image-file image-file)
 +         (overlay-put overlay 'thumb-file thumb-file)))))
 +   arg             ; Show or hide image on ARG next files.
 +   'show-progress) ; Update dired display after each image is updated.
    (add-hook 'dired-after-readin-hook 'image-dired-dired-after-readin-hook nil t))
  
  (defun image-dired-dired-after-readin-hook ()
@@@ -944,7 -937,7 +944,7 @@@ FILE-TAGS is an alist in the following 
                 ;; If on empty line at end of buffer
                 (when (and (eobp)
                            (looking-at "^$"))
 -                 (delete-backward-char 1))))))
 +                 (delete-char -1))))))
         files)
        (save-buffer)
        (kill-buffer buf))))
@@@ -2194,15 -2187,15 +2194,15 @@@ matching tag will be marked in the dire
  Track this in associated dired buffer if `image-dired-track-movement' is
  non-nil."
    (interactive "e")
-   (let (file)
-     (mouse-set-point event)
-     (goto-char (posn-point (event-end event)))
-     (setq file (image-dired-original-file-name))
-     (if image-dired-track-movement
-         (image-dired-track-original-file))
-     (image-dired-create-display-image-buffer)
-     (display-buffer image-dired-display-image-buffer)
-     (image-dired-display-image file)))
+   (mouse-set-point event)
+   (goto-char (posn-point (event-end event)))
+   (let ((file (image-dired-original-file-name)))
+     (when file
+       (if image-dired-track-movement
+         (image-dired-track-original-file))
+       (image-dired-create-display-image-buffer)
+       (display-buffer image-dired-display-image-buffer)
+       (image-dired-display-image file))))
  
  (defun image-dired-mouse-select-thumbnail (event)
    "Use mouse EVENT to select thumbnail image.
@@@ -2622,4 -2615,5 +2622,4 @@@ tags to their respective image file.  I
  
  (provide 'image-dired)
  
 -;; arch-tag: 9d11411d-331f-4380-8b44-8adfe3a0343e
  ;;; image-dired.el ends here
index c5842740dbf1a554646a2d7b2679a21efe9ee99e,c1cd8fd6e4563ccbfc3c32870d878331a340e3a3..2174beb19c94f89a3f583338e4a5b30c67713dc9
@@@ -1,6 -1,7 +1,6 @@@
  ;;; quail.el --- provides simple input method for multilingual text
  
 -;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
 -;;   2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +;; Copyright (C) 1997-1998, 2000-2011  Free Software Foundation, Inc.
  ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
  ;;   2005, 2006, 2007, 2008, 2009, 2010, 2011
  ;;   National Institute of Advanced Industrial Science and Technology (AIST)
@@@ -662,7 -663,7 +662,7 @@@ This layout is almost the same as that 
                                ")
     '("pc105-uk" . "\
                                \
- `\2541!2\"3\2434$5%6^7&8*9(0)-_=+     \
+ `\2541!2\"3\2434$5%6^7&8*9(0)-_=+    \
    qQwWeErRtTyYuUiIoOpP[{]}    \
    aAsSdDfFgGhHjJkKlL;:'@#~    \
  \\|zZxXcCvVbBnNmM,<.>/?        \
@@@ -810,7 -811,7 +810,7 @@@ The format of KBD-LAYOUT is the same a
                      (setq translation (aref (cdr translation) 0))
                    (setq translation " ")))
              (setq done-list (cons translation done-list)))
 -        (setq translation ch))
 +        (setq translation (aref kbd-layout i)))
        (aset layout i translation))
        (setq i (1+ i)))
  
@@@ -3076,4 -3077,5 +3076,4 @@@ call it with one argument STRING.
  ;;
  (provide 'quail)
  
 -;; arch-tag: 46d7db54-5467-42c4-a2a9-53ca90a1e886
  ;;; quail.el ends here
diff --combined lisp/mouse.el
index c572263f3ba6ae83c2c043cf609c2070762c6a74,bed4776c13590a4bfb0d7acaa8f13b0413282844..c0b86d450288f670f5440cd482fd0f42ebcb4e91
@@@ -1,10 -1,10 +1,10 @@@
  ;;; mouse.el --- window system-independent mouse support
  
 -;; Copyright (C) 1993, 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004,
 -;;   2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +;; Copyright (C) 1993-1995, 1999-2011  Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
  ;; Keywords: hardware, mouse
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
    :type 'boolean
    :group 'mouse)
  
 -(defcustom mouse-drag-copy-region t
 -  "If non-nil, mouse drag copies region to kill-ring."
 +(defcustom mouse-drag-copy-region nil
 +  "If non-nil, copy to kill-ring upon mouse adjustments of the region.
 +
 +This affects `mouse-save-then-kill' (\\[mouse-save-then-kill]) in
 +addition to mouse drags."
    :type 'boolean
 -  :version "22.1"
 +  :version "24.1"
    :group 'mouse)
  
  (defcustom mouse-1-click-follows-link 450
@@@ -201,9 -198,9 +201,9 @@@ items `Turn Off' and `Help'.
      newmap))
  
  (defun mouse-menu-non-singleton (menubar)
-   "Given menu keymap,
if it defines exactly one submenu, return just that submenu.
- Otherwise return the whole menu."
+   "Return menu keybar MENUBAR, or a lone submenu inside it.
If MENUBAR defines exactly one submenu, return just that submenu.
+ Otherwise, return MENUBAR."
    (if menubar
        (let (submap)
          (map-keymap
@@@ -702,6 -699,9 +702,6 @@@ This should be bound to a mouse drag ev
        (window-system)
        (sit-for 1))
      (push-mark)
 -    ;; If `select-active-regions' is non-nil, `set-mark' sets the
 -    ;; primary selection to the buffer's region, overriding the role
 -    ;; of `copy-region-as-kill'; that's why we did the copy first.
      (set-mark (point))
      (if (numberp end) (goto-char end))
      (mouse-set-region-1)))
@@@ -774,6 -774,13 +774,6 @@@ Upon exit, point is at the far edge of 
      (or (eq window (selected-window))
        (goto-char opoint))))
  
 -;; Create an overlay and immediately delete it, to get "overlay in no buffer".
 -(defconst mouse-drag-overlay
 -  (let ((ol (make-overlay (point-min) (point-min))))
 -    (delete-overlay ol)
 -    (overlay-put ol 'face 'region)
 -    ol))
 -
  (defvar mouse-selection-click-count 0)
  
  (defvar mouse-selection-click-count-buffer nil)
@@@ -899,14 -906,33 +899,14 @@@ at the same position.
                    "mouse-1" (substring msg 7)))))))
    msg)
  
 -(defun mouse-move-drag-overlay (ol start end mode)
 -  (unless (= start end)
 -    ;; Go to START first, so that when we move to END, if it's in the middle
 -    ;; of intangible text, point jumps in the direction away from START.
 -    ;; Don't do it if START=END otherwise a single click risks selecting
 -    ;; a region if it's on intangible text.  This exception was originally
 -    ;; only applied on entry to mouse-drag-region, which had the problem
 -    ;; that a tiny move during a single-click would cause the intangible
 -    ;; text to be selected.
 -    (goto-char start)
 -    (goto-char end)
 -    (setq end (point)))
 -  (let ((range (mouse-start-end start end mode)))
 -    (move-overlay ol (car range) (nth 1 range))))
 -
  (defun mouse-drag-track (start-event  &optional
                                      do-mouse-drag-region-post-process)
      "Track mouse drags by highlighting area between point and cursor.
 -The region will be defined with mark and point, and the overlay
 -will be deleted after return.  DO-MOUSE-DRAG-REGION-POST-PROCESS
 -should only be used by mouse-drag-region."
 +The region will be defined with mark and point.
 +DO-MOUSE-DRAG-REGION-POST-PROCESS should only be used by
 +`mouse-drag-region'."
    (mouse-minibuffer-check start-event)
    (setq mouse-selection-click-count-buffer (current-buffer))
 -  ;; We must call deactivate-mark before repositioning point.
 -  ;; Otherwise, for select-active-regions non-nil, we get the wrong
 -  ;; selection if the user drags a region, clicks elsewhere to
 -  ;; reposition point, then middle-clicks to paste the selection.
    (deactivate-mark)
    (let* ((original-window (selected-window))
           ;; We've recorded what we needed from the current buffer and
         ;; Suppress automatic hscrolling, because that is a nuisance
         ;; when setting point near the right fringe (but see below).
         (automatic-hscrolling-saved automatic-hscrolling)
 -       (automatic-hscrolling nil))
 +       (automatic-hscrolling nil)
 +       event end end-point)
 +
      (setq mouse-selection-click-count click-count)
      ;; In case the down click is in the middle of some intangible text,
      ;; use the end of that text, and put it in START-POINT.
      (if (< (point) start-point)
        (goto-char start-point))
      (setq start-point (point))
 -    (if remap-double-click ;; Don't expand mouse overlay in links
 +    (if remap-double-click
        (setq click-count 0))
 -    (mouse-move-drag-overlay mouse-drag-overlay start-point start-point
 -                             click-count)
 -    (overlay-put mouse-drag-overlay 'window start-window)
 -    (let (event end end-point last-end-point)
 -      (track-mouse
 -      (while (progn
 -               (setq event (read-event))
 -                 (or (mouse-movement-p event)
 -                     (memq (car-safe event) '(switch-frame select-window))))
 -          (if (memq (car-safe event) '(switch-frame select-window))
 -            nil
 -          ;; Automatic hscrolling did not occur during the call to
 -          ;; `read-event'; but if the user subsequently drags the
 -          ;; mouse, go ahead and hscroll.
 -          (let ((automatic-hscrolling automatic-hscrolling-saved))
 -            (redisplay))
 -          (setq end (event-end event)
 -                end-point (posn-point end))
 -          (if (numberp end-point)
 -              (setq last-end-point end-point))
 -
 -          (cond
 -           ;; Are we moving within the original window?
 -           ((and (eq (posn-window end) start-window)
 +
 +    ;; Activate the region, using `mouse-start-end' to determine where
 +    ;; to put point and mark (e.g., double-click will select a word).
 +    (setq transient-mark-mode
 +        (if (eq transient-mark-mode 'lambda)
 +            '(only)
 +          (cons 'only transient-mark-mode)))
 +    (let ((range (mouse-start-end start-point start-point click-count)))
 +      (push-mark (nth 0 range) t t)
 +      (goto-char (nth 1 range)))
 +
 +    ;; Track the mouse until we get a non-movement event.
 +    (track-mouse
 +      (while (progn
 +             (setq event (read-event))
 +             (or (mouse-movement-p event)
 +                 (memq (car-safe event) '(switch-frame select-window))))
 +      (unless (memq (car-safe event) '(switch-frame select-window))
 +        ;; Automatic hscrolling did not occur during the call to
 +        ;; `read-event'; but if the user subsequently drags the
 +        ;; mouse, go ahead and hscroll.
 +        (let ((automatic-hscrolling automatic-hscrolling-saved))
 +          (redisplay))
 +        (setq end (event-end event)
 +              end-point (posn-point end))
 +        (if (and (eq (posn-window end) start-window)
                   (integer-or-marker-p end-point))
 -              (mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count))
 -
 -           (t
 -            (let ((mouse-row (cdr (cdr (mouse-position)))))
 -                (cond
 -                 ((null mouse-row))
 -                 ((< mouse-row top)
 -                  (mouse-scroll-subr start-window (- mouse-row top)
 -                                     mouse-drag-overlay start-point))
 -                 ((>= mouse-row bottom)
 -                  (mouse-scroll-subr start-window (1+ (- mouse-row bottom))
 -                                     mouse-drag-overlay start-point)))))))))
 -
 -      ;; In case we did not get a mouse-motion event
 -      ;; for the final move of the mouse before a drag event
 -      ;; pretend that we did get one.
 -      (when (and (memq 'drag (event-modifiers (car-safe event)))
 -                 (setq end (event-end event)
 -                     end-point (posn-point end))
 +            (mouse--drag-set-mark-and-point start-point
 +                                            end-point click-count)
 +          (let ((mouse-row (cdr (cdr (mouse-position)))))
 +            (cond
 +             ((null mouse-row))
 +             ((< mouse-row top)
 +              (mouse-scroll-subr start-window (- mouse-row top)
 +                                 nil start-point))
 +             ((>= mouse-row bottom)
 +              (mouse-scroll-subr start-window (1+ (- mouse-row bottom))
 +                                 nil start-point))))))))
 +
 +    ;; Handle the terminating event if possible.
 +    (when (consp event)
 +      ;; Ensure that point is on the end of the last event.
 +      (when (and (setq end-point (posn-point (event-end event)))
                 (eq (posn-window end) start-window)
 -               (integer-or-marker-p end-point))
 -        (mouse-move-drag-overlay mouse-drag-overlay start-point end-point click-count))
 -
 -      ;; Handle the terminating event
 -      (if (consp event)
 -        (let* ((fun (key-binding (vector (car event))))
 -               (do-multi-click   (and (> (event-click-count event) 0)
 -                                      (functionp fun)
 -                                      (not (memq fun
 -                                                 '(mouse-set-point
 -                                                   mouse-set-region))))))
 -          ;; Run the binding of the terminating up-event, if possible.
 -          (if (and (not (= (overlay-start mouse-drag-overlay)
 -                           (overlay-end mouse-drag-overlay)))
 -                   (not do-multi-click))
 -              (let* ((stop-point
 -                      (if (numberp (posn-point (event-end event)))
 -                          (posn-point (event-end event))
 -                        last-end-point))
 -                     ;; The end that comes from where we ended the drag.
 -                     ;; Point goes here.
 -                     (region-termination
 -                      (if (and stop-point (< stop-point start-point))
 -                          (overlay-start mouse-drag-overlay)
 -                        (overlay-end mouse-drag-overlay)))
 -                     ;; The end that comes from where we started the drag.
 -                     ;; Mark goes there.
 -                     (region-commencement
 -                      (- (+ (overlay-end mouse-drag-overlay)
 -                            (overlay-start mouse-drag-overlay))
 -                         region-termination))
 -                     last-command this-command)
 -                ;; We copy the region before setting the mark so
 -                ;; that `select-active-regions' can override
 -                ;; `copy-region-as-kill'.
 -                (and mouse-drag-copy-region
 -                     do-mouse-drag-region-post-process
 -                     (let (deactivate-mark)
 -                       (copy-region-as-kill region-commencement
 -                                            region-termination)))
 -                (push-mark region-commencement t t)
 -                (goto-char region-termination)
 -                (if (not do-mouse-drag-region-post-process)
 -                    ;; Skip all post-event handling, return immediately.
 -                    (delete-overlay mouse-drag-overlay)
 -                  (let ((buffer (current-buffer)))
 -                    (mouse-show-mark)
 -                    ;; mouse-show-mark can call read-event,
 -                    ;; and that means the Emacs server could switch buffers
 -                    ;; under us.  If that happened,
 -                    ;; avoid trying to use the region.
 -                    (and (mark t) mark-active
 -                         (eq buffer (current-buffer))
 -                         (mouse-set-region-1)))))
 -              ;; Run the binding of the terminating up-event.
 -            ;; If a multiple click is not bound to mouse-set-point,
 -            ;; cancel the effects of mouse-move-drag-overlay to
 -            ;; avoid producing wrong results.
 -            (if do-multi-click (goto-char start-point))
 -              (delete-overlay mouse-drag-overlay)
 -              (when (and (functionp fun)
 -                       (= start-hscroll (window-hscroll start-window))
 -                       ;; Don't run the up-event handler if the
 -                       ;; window start changed in a redisplay after
 -                       ;; the mouse-set-point for the down-mouse
 -                       ;; event at the beginning of this function.
 -                       ;; When the window start has changed, the
 -                       ;; up-mouse event will contain a different
 -                       ;; position due to the new window contents,
 -                       ;; and point is set again.
 -                       (or end-point
 -                           (= (window-start start-window)
 -                              start-window-start)))
 -              (when (and on-link
 -                         (or (not end-point) (= end-point start-point))
 -                         (consp event)
 -                         (or remap-double-click
 -                             (and
 -                              (not (eq mouse-1-click-follows-link 'double))
 -                              (= click-count 0)
 -                              (= (event-click-count event) 1)
 -                              (or (not (integerp mouse-1-click-follows-link))
 -                                  (let ((t0 (posn-timestamp (event-start start-event)))
 -                                        (t1 (posn-timestamp (event-end event))))
 -                                    (and (integerp t0) (integerp t1)
 -                                         (if (> mouse-1-click-follows-link 0)
 -                                             (<= (- t1 t0) mouse-1-click-follows-link)
 -                                           (< (- t0 t1) mouse-1-click-follows-link))))))))
 -                ;; If we rebind to mouse-2, reselect previous selected window,
 -                ;; so that the mouse-2 event runs in the same
 -                ;; situation as if user had clicked it directly.
 -                ;; Fixes the bug reported by juri@jurta.org on 2005-12-27.
 -                (if (or (vectorp on-link) (stringp on-link))
 -                    (setq event (aref on-link 0))
 -                  (select-window original-window)
 -                  (setcar event 'mouse-2)
 -                  ;; If this mouse click has never been done by
 -                  ;; the user, it doesn't have the necessary
 -                  ;; property to be interpreted correctly.
 -                  (put 'mouse-2 'event-kind 'mouse-click)))
 -              (push event unread-command-events))))
 -
 -        ;; Case where the end-event is not a cons cell (it's just a boring
 -        ;; char-key-press).
 -      (delete-overlay mouse-drag-overlay)))))
 +               (integer-or-marker-p end-point)
 +               (/= start-point end-point))
 +      (mouse--drag-set-mark-and-point start-point
 +                                      end-point click-count))
 +
 +      ;; Find its binding.
 +      (let* ((fun (key-binding (vector (car event))))
 +           (do-multi-click (and (> (event-click-count event) 0)
 +                                (functionp fun)
 +                                (not (memq fun '(mouse-set-point
 +                                                 mouse-set-region))))))
 +      (if (and (/= (mark) (point))
 +               (not do-multi-click))
 +
 +          ;; If point has moved, finish the drag.
 +          (let* (last-command this-command)
 +            (and mouse-drag-copy-region
 +                 do-mouse-drag-region-post-process
 +                 (let (deactivate-mark)
 +                   (copy-region-as-kill (mark) (point)))))
 +
 +        ;; If point hasn't moved, run the binding of the
 +        ;; terminating up-event.
 +        (if do-multi-click
 +            (goto-char start-point)
 +          (deactivate-mark))
 +        (when (and (functionp fun)
 +                   (= start-hscroll (window-hscroll start-window))
 +                   ;; Don't run the up-event handler if the window
 +                   ;; start changed in a redisplay after the
 +                   ;; mouse-set-point for the down-mouse event at
 +                   ;; the beginning of this function.  When the
 +                   ;; window start has changed, the up-mouse event
 +                   ;; contains a different position due to the new
 +                   ;; window contents, and point is set again.
 +                   (or end-point
 +                       (= (window-start start-window)
 +                          start-window-start)))
 +          (when (and on-link
 +                     (= start-point (point))
 +                     (mouse--remap-link-click-p start-event event))
 +            ;; If we rebind to mouse-2, reselect previous selected
 +            ;; window, so that the mouse-2 event runs in the same
 +            ;; situation as if user had clicked it directly.  Fixes
 +            ;; the bug reported by juri@jurta.org on 2005-12-27.
 +            (if (or (vectorp on-link) (stringp on-link))
 +                (setq event (aref on-link 0))
 +              (select-window original-window)
 +              (setcar event 'mouse-2)
 +              ;; If this mouse click has never been done by the
 +              ;; user, it doesn't have the necessary property to be
 +              ;; interpreted correctly.
 +              (put 'mouse-2 'event-kind 'mouse-click)))
 +          (push event unread-command-events)))))))
 +
 +(defun mouse--drag-set-mark-and-point (start click click-count)
 +  (let* ((range (mouse-start-end start click click-count))
 +       (beg (nth 0 range))
 +       (end (nth 1 range)))
 +    (cond ((eq (mark) beg)
 +         (goto-char end))
 +        ((eq (mark) end)
 +         (goto-char beg))
 +        ((< click (mark))
 +         (set-mark end)
 +         (goto-char beg))
 +        (t
 +         (set-mark beg)
 +         (goto-char end)))))
 +
 +(defun mouse--remap-link-click-p (start-event end-event)
 +  (or (and (eq mouse-1-click-follows-link 'double)
 +         (= (event-click-count start-event) 2))
 +      (and
 +       (not (eq mouse-1-click-follows-link 'double))
 +       (= (event-click-count start-event) 1)
 +       (= (event-click-count end-event) 1)
 +       (or (not (integerp mouse-1-click-follows-link))
 +         (let ((t0 (posn-timestamp (event-start start-event)))
 +               (t1 (posn-timestamp (event-end   end-event))))
 +           (and (integerp t0) (integerp t1)
 +                (if (> mouse-1-click-follows-link 0)
 +                    (<= (- t1 t0) mouse-1-click-follows-link)
 +                  (< (- t0 t1) mouse-1-click-follows-link))))))))
 +
  \f
  ;; Commands to handle xterm-style multiple clicks.
  (defun mouse-skip-word (dir)
@@@ -1180,7 -1225,8 +1180,7 @@@ If MODE is 2 then do the same for lines
          ((= mode 2)
         (list (save-excursion
                 (goto-char start)
 -               (beginning-of-line 1)
 -               (point))
 +               (line-beginning-position 1))
               (save-excursion
                 (goto-char end)
                 (forward-line 1)
  
  ;; Momentarily show where the mark is, if highlighting doesn't show it.
  
 -(defcustom mouse-region-delete-keys '([delete] [deletechar] [backspace])
 -  "List of keys that should cause the mouse region to be deleted."
 -  :group 'mouse
 -  :type '(repeat key-sequence))
 -
 -(defun mouse-show-mark ()
 -  (let ((inhibit-quit t)
 -      (echo-keystrokes 0)
 -      event events key ignore
 -      (x-lost-selection-functions
 -       (when (boundp 'x-lost-selection-functions)
 -           (copy-sequence x-lost-selection-functions))))
 -    (add-hook 'x-lost-selection-functions
 -            (lambda (seltype)
 -              (when (eq seltype 'PRIMARY)
 -                  (setq ignore t)
 -                  (throw 'mouse-show-mark t))))
 -    (if transient-mark-mode
 -      (delete-overlay mouse-drag-overlay)
 -      (move-overlay mouse-drag-overlay (point) (mark t)))
 -    (catch 'mouse-show-mark
 -      ;; In this loop, execute scroll bar and switch-frame events.
 -      ;; Should we similarly handle `select-window' events?  --Stef
 -      ;; Also ignore down-events that are undefined.
 -      (while (progn (setq event (read-event))
 -                  (setq events (append events (list event)))
 -                  (setq key (apply 'vector events))
 -                  (or (and (consp event)
 -                           (eq (car event) 'switch-frame))
 -                      (and (consp event)
 -                           (eq (posn-point (event-end event))
 -                               'vertical-scroll-bar))
 -                      (and (memq 'down (event-modifiers event))
 -                           (not (key-binding key))
 -                           (not (mouse-undouble-last-event events))
 -                           (not (member key mouse-region-delete-keys)))))
 -      (and (consp event)
 -           (or (eq (car event) 'switch-frame)
 -               (eq (posn-point (event-end event))
 -                   'vertical-scroll-bar))
 -           (let ((keys (vector 'vertical-scroll-bar event)))
 -             (and (key-binding keys)
 -                  (progn
 -                    (call-interactively (key-binding keys)
 -                                        nil keys)
 -                    (setq events nil)))))))
 -    ;; If we lost the selection, just turn off the highlighting.
 -    (unless ignore
 -      ;; For certain special keys, delete the region.
 -      (if (member key mouse-region-delete-keys)
 -        (progn
 -          ;; Since notionally this is a separate command,
 -          ;; run all the hooks that would be run if it were
 -          ;; executed separately.
 -          (run-hooks 'post-command-hook)
 -          (setq last-command this-command)
 -          (setq this-original-command 'delete-region)
 -          (setq this-command (or (command-remapping this-original-command)
 -                                 this-original-command))
 -          (run-hooks 'pre-command-hook)
 -          (call-interactively this-command))
 -      ;; Otherwise, unread the key so it gets executed normally.
 -      (setq unread-command-events
 -            (nconc events unread-command-events))))
 -    (setq quit-flag nil)
 -    (unless transient-mark-mode
 -      (delete-overlay mouse-drag-overlay))))
 -
  (defun mouse-set-mark (click)
    "Set mark at the position clicked on with the mouse.
  Display cursor at that position for a second.
@@@ -1252,7 -1366,9 +1252,7 @@@ Also move point to one end of the text 
  and set mark at the beginning.
  Prefix arguments are interpreted as with \\[yank].
  If `mouse-yank-at-point' is non-nil, insert at point
 -regardless of where you click.
 -If `select-active-regions' is non-nil, the mark is deactivated
 -before inserting the text."
 +regardless of where you click."
    (interactive "e\nP")
    ;; Give temporary modes such as isearch a chance to turn off.
    (run-hooks 'mouse-leave-buffer-hook)
@@@ -1273,32 -1389,15 +1273,32 @@@ regardless of where you click.
    (interactive "e")
    ;; Give temporary modes such as isearch a chance to turn off.
    (run-hooks 'mouse-leave-buffer-hook)
 +  ;; Without this, confusing things happen upon e.g. inserting into
 +  ;; the middle of an active region.
    (when select-active-regions
 -    ;; Without this, confusing things happen upon e.g. inserting into
 -    ;; the middle of an active region.
 -    (deactivate-mark))
 +    (let (select-active-regions)
 +      (deactivate-mark)))
    (or mouse-yank-at-point (mouse-set-point click))
 -  (let ((primary (x-get-selection 'PRIMARY)))
 +  (let ((primary
 +       (cond
 +        ((eq system-type 'windows-nt)
 +         ;; MS-Windows emulates PRIMARY in x-get-selection, but not
 +         ;; in x-get-selection-value (the latter only accesses the
 +         ;; clipboard).  So try PRIMARY first, in case they selected
 +         ;; something with the mouse in the current Emacs session.
 +         (or (x-get-selection 'PRIMARY)
 +             (x-get-selection-value)))
 +        ((fboundp 'x-get-selection-value) ; MS-DOS and X.
 +         ;; On X, x-get-selection-value supports more formats and
 +         ;; encodings, so use it in preference to x-get-selection.
 +         (or (x-get-selection-value)
 +             (x-get-selection 'PRIMARY)))
 +        ;; FIXME: What about xterm-mouse-mode etc.?
 +        (t
 +         (x-get-selection 'PRIMARY)))))
      (if primary
 -        (insert (x-get-selection 'PRIMARY))
 -      (error "No primary selection"))))
 +        (insert primary)
 +      (error "No selection is available"))))
  
  (defun mouse-kill-ring-save (click)
    "Copy the region between point and the mouse click in the kill ring.
@@@ -1306,13 -1405,15 +1306,13 @@@ This does not delete the region; it act
    (interactive "e")
    (mouse-set-mark-fast click)
    (let (this-command last-command)
 -    (kill-ring-save (point) (mark t)))
 -  (mouse-show-mark))
 +    (kill-ring-save (point) (mark t))))
  
  ;; This function used to delete the text between point and the mouse
  ;; whenever it was equal to the front of the kill ring, but some
  ;; people found that confusing.
  
 -;; A list (TEXT START END), describing the text and position of the last
 -;; invocation of mouse-save-then-kill.
 +;; The position of the last invocation of `mouse-save-then-kill'.
  (defvar mouse-save-then-kill-posn nil)
  
  (defun mouse-save-then-kill-delete-region (beg end)
    (undo-boundary))
  
  (defun mouse-save-then-kill (click)
 -  "Save text to point in kill ring; the second time, kill the text.
 -If the text between point and the mouse is the same as what's
 -at the front of the kill ring, this deletes the text.
 -Otherwise, it adds the text to the kill ring, like \\[kill-ring-save],
 -which prepares for a second click to delete the text.
 -
 -If you have selected words or lines, this command extends the
 -selection through the word or line clicked on.  If you do this
 -again in a different position, it extends the selection again.
 -If you do this twice in the same position, the selection is killed."
 +  "Set the region according to CLICK; the second time, kill it.
 +CLICK should be a mouse click event.
 +
 +If the region is inactive, activate it temporarily.  Set mark at
 +the original point, and move point to the position of CLICK.
 +
 +If the region is already active, adjust it.  Normally, do this by
 +moving point or mark, whichever is closer, to CLICK.  But if you
 +have selected whole words or lines, move point or mark to the
 +word or line boundary closest to CLICK instead.
 +
 +If `mouse-drag-copy-region' is non-nil, this command also saves the
 +new region to the kill ring (replacing the previous kill if the
 +previous region was just saved to the kill ring).
 +
 +If this command is called a second consecutive time with the same
 +CLICK position, kill the region (or delete it
 +if `mouse-drag-copy-region' is non-nil)"
    (interactive "e")
 -  (let ((before-scroll
 -       (with-current-buffer (window-buffer (posn-window (event-start click)))
 -         point-before-scroll)))
 -    (mouse-minibuffer-check click)
 -    (let ((click-posn (posn-point (event-start click)))
 -        ;; Don't let a subsequent kill command append to this one:
 -        ;; prevent setting this-command to kill-region.
 -        (this-command this-command))
 -      (if (and (with-current-buffer
 -                   (window-buffer (posn-window (event-start click)))
 -               (and (mark t) (> (mod mouse-selection-click-count 3) 0)
 -                    ;; Don't be fooled by a recent click in some other buffer.
 -                    (eq mouse-selection-click-count-buffer
 -                        (current-buffer)))))
 -        (if (not (and (eq last-command 'mouse-save-then-kill)
 -                      (equal click-posn
 -                             (car (cdr-safe (cdr-safe mouse-save-then-kill-posn))))))
 -            ;; Find both ends of the object selected by this click.
 -            (let* ((range
 -                    (mouse-start-end click-posn click-posn
 -                                     mouse-selection-click-count)))
 -              ;; Move whichever end is closer to the click.
 -              ;; That's what xterm does, and it seems reasonable.
 -              (if (< (abs (- click-posn (mark t)))
 -                     (abs (- click-posn (point))))
 -                  (set-mark (car range))
 -                (goto-char (nth 1 range)))
 -              ;; We have already put the old region in the kill ring.
 -              ;; Replace it with the extended region.
 -              ;; (It would be annoying to make a separate entry.)
 -              (kill-new (buffer-substring (point) (mark t)) t)
 -              (mouse-set-region-1)
 -              ;; Arrange for a repeated mouse-3 to kill this region.
 -              (setq mouse-save-then-kill-posn
 -                    (list (car kill-ring) (point) click-posn))
 -              (mouse-show-mark))
 -          ;; If we click this button again without moving it,
 -          ;; that time kill.
 -          (mouse-save-then-kill-delete-region (mark) (point))
 -          (setq mouse-selection-click-count 0)
 -          (setq mouse-save-then-kill-posn nil))
 -      (if (and (eq last-command 'mouse-save-then-kill)
 -               mouse-save-then-kill-posn
 -               (eq (car mouse-save-then-kill-posn) (car kill-ring))
 -               (equal (cdr mouse-save-then-kill-posn) (list (point) click-posn)))
 -          ;; If this is the second time we've called
 -          ;; mouse-save-then-kill, delete the text from the buffer.
 -          (progn
 -            (mouse-save-then-kill-delete-region (point) (mark))
 -            ;; After we kill, another click counts as "the first time".
 -            (setq mouse-save-then-kill-posn nil))
 -        ;; This is not a repetition.
 -        ;; We are adjusting an old selection or creating a new one.
 -        (if (or (and (eq last-command 'mouse-save-then-kill)
 -                     mouse-save-then-kill-posn)
 -                (and mark-active transient-mark-mode)
 -                (and (memq last-command
 -                           '(mouse-drag-region mouse-set-region))
 -                     (or mark-even-if-inactive
 -                         (not transient-mark-mode))))
 -            ;; We have a selection or suitable region, so adjust it.
 -            (let* ((posn (event-start click))
 -                   (new (posn-point posn)))
 -              (select-window (posn-window posn))
 -              (if (numberp new)
 -                  (progn
 -                    ;; Move whichever end of the region is closer to the click.
 -                    ;; That is what xterm does, and it seems reasonable.
 -                    (if (<= (abs (- new (point))) (abs (- new (mark t))))
 -                        (goto-char new)
 -                      (set-mark new))
 -                    (setq deactivate-mark nil)))
 -              (kill-new (buffer-substring (point) (mark t)) t))
 -          ;; Set the mark where point is, then move where clicked.
 -          (mouse-set-mark-fast click)
 -          (if before-scroll
 -              (goto-char before-scroll))
 -          (exchange-point-and-mark)   ;Why??? --Stef
 -          (kill-new (buffer-substring (point) (mark t))))
 -          (mouse-show-mark)
 -        (mouse-set-region-1)
 -        (setq mouse-save-then-kill-posn
 -              (list (car kill-ring) (point) click-posn)))))))
 +  (mouse-minibuffer-check click)
 +  (let* ((posn     (event-start click))
 +       (click-pt (posn-point posn))
 +       (window   (posn-window posn))
 +       (buf      (window-buffer window))
 +       ;; Don't let a subsequent kill command append to this one.
 +       (this-command this-command)
 +       ;; Check if the user has multi-clicked to select words/lines.
 +       (click-count
 +        (if (and (eq mouse-selection-click-count-buffer buf)
 +                 (with-current-buffer buf (mark t)))
 +            mouse-selection-click-count
 +          0)))
 +    (cond
 +     ((not (numberp click-pt)) nil)
 +     ;; If the user clicked without moving point, kill the region.
 +     ;; This also resets `mouse-selection-click-count'.
 +     ((and (eq last-command 'mouse-save-then-kill)
 +         (eq click-pt mouse-save-then-kill-posn)
 +         (eq window (selected-window)))
 +      (if mouse-drag-copy-region
 +          ;; Region already saved in the previous click;
 +          ;; don't make a duplicate entry, just delete.
 +          (delete-region (mark t) (point))
 +        (kill-region (mark t) (point)))
 +      (setq mouse-selection-click-count 0)
 +      (setq mouse-save-then-kill-posn nil))
 +
 +     ;; Otherwise, if there is a suitable region, adjust it by moving
 +     ;; one end (whichever is closer) to CLICK-PT.
 +     ((or (with-current-buffer buf (region-active-p))
 +        (and (eq window (selected-window))
 +             (mark t)
 +             (or (and (eq last-command 'mouse-save-then-kill)
 +                      mouse-save-then-kill-posn)
 +                 (and (memq last-command '(mouse-drag-region
 +                                           mouse-set-region))
 +                      (or mark-even-if-inactive
 +                          (not transient-mark-mode))))))
 +      (select-window window)
 +      (let* ((range (mouse-start-end click-pt click-pt click-count)))
 +      (if (< (abs (- click-pt (mark t)))
 +             (abs (- click-pt (point))))
 +          (set-mark (car range))
 +        (goto-char (nth 1 range)))
 +      (setq deactivate-mark nil)
 +      (mouse-set-region-1)
 +        (when mouse-drag-copy-region
 +          ;; Region already copied to kill-ring once, so replace.
 +          (kill-new (filter-buffer-substring (mark t) (point)) t))
 +      ;; Arrange for a repeated mouse-3 to kill the region.
 +      (setq mouse-save-then-kill-posn click-pt)))
 +
 +     ;; Otherwise, set the mark where point is and move to CLICK-PT.
 +     (t
 +      (select-window window)
 +      (mouse-set-mark-fast click)
 +      (let ((before-scroll (with-current-buffer buf point-before-scroll)))
 +      (if before-scroll (goto-char before-scroll)))
 +      (exchange-point-and-mark)
 +      (mouse-set-region-1)
 +      (when mouse-drag-copy-region
 +        (kill-new (filter-buffer-substring (mark t) (point))))
 +      (setq mouse-save-then-kill-posn click-pt)))))
 +
  \f
  (global-set-key [M-mouse-1] 'mouse-start-secondary)
  (global-set-key [M-drag-mouse-1] 'mouse-set-secondary)
@@@ -1513,6 -1624,9 +1513,6 @@@ The function returns a non-nil value i
          ;; of one word or line.
          (let ((range (mouse-start-end start-point start-point click-count)))
            (set-marker mouse-secondary-start nil)
 -            ;; Why the double move?  --Stef
 -          ;; (move-overlay mouse-secondary-overlay 1 1
 -          ;;            (window-buffer start-window))
            (move-overlay mouse-secondary-overlay (car range) (nth 1 range)
                          (window-buffer start-window)))
        ;; Single-press: cancel any preexisting secondary selection.
@@@ -1580,7 -1694,7 +1580,7 @@@ regardless of where you click.
    (or mouse-yank-at-point (mouse-set-point click))
    (let ((secondary (x-get-selection 'SECONDARY)))
      (if secondary
 -        (insert (x-get-selection 'SECONDARY))
 +        (insert secondary)
        (error "No secondary selection"))))
  
  (defun mouse-kill-secondary ()
@@@ -1606,99 -1720,117 +1606,99 @@@ is to prevent accidents.
    (delete-overlay mouse-secondary-overlay))
  
  (defun mouse-secondary-save-then-kill (click)
 -  "Save text to point in kill ring; the second time, kill the text.
 -You must use this in a buffer where you have recently done \\[mouse-start-secondary].
 -If the text between where you did \\[mouse-start-secondary] and where
 -you use this command matches the text at the front of the kill ring,
 -this command deletes the text.
 -Otherwise, it adds the text to the kill ring, like \\[kill-ring-save],
 -which prepares for a second click with this command to delete the text.
 -
 -If you have already made a secondary selection in that buffer,
 -this command extends or retracts the selection to where you click.
 -If you do this again in a different position, it extends or retracts
 -again.  If you do this twice in the same position, it kills the selection."
 +  "Set the secondary selection and save it to the kill ring.
 +The second time, kill it.  CLICK should be a mouse click event.
 +
 +If you have not called `mouse-start-secondary' in the clicked
 +buffer, activate the secondary selection and set it between point
 +and the click position CLICK.
 +
 +Otherwise, adjust the bounds of the secondary selection.
 +Normally, do this by moving its beginning or end, whichever is
 +closer, to CLICK.  But if you have selected whole words or lines,
 +adjust to the word or line boundary closest to CLICK instead.
 +
 +If this command is called a second consecutive time with the same
 +CLICK position, kill the secondary selection."
    (interactive "e")
    (mouse-minibuffer-check click)
 -  (let ((posn (event-start click))
 -      (click-posn (posn-point (event-start click)))
 -      ;; Don't let a subsequent kill command append to this one:
 -      ;; prevent setting this-command to kill-region.
 -      (this-command this-command))
 -    (or (eq (window-buffer (posn-window posn))
 -          (or (overlay-buffer mouse-secondary-overlay)
 -              (if mouse-secondary-start
 -                  (marker-buffer mouse-secondary-start))))
 -      (error "Wrong buffer"))
 -    (with-current-buffer (window-buffer (posn-window posn))
 -      (if (> (mod mouse-secondary-click-count 3) 0)
 -        (if (not (and (eq last-command 'mouse-secondary-save-then-kill)
 -                      (equal click-posn
 -                             (car (cdr-safe (cdr-safe mouse-save-then-kill-posn))))))
 -            ;; Find both ends of the object selected by this click.
 -            (let* ((range
 -                    (mouse-start-end click-posn click-posn
 -                                     mouse-secondary-click-count)))
 -              ;; Move whichever end is closer to the click.
 -              ;; That's what xterm does, and it seems reasonable.
 -              (if (< (abs (- click-posn (overlay-start mouse-secondary-overlay)))
 -                     (abs (- click-posn (overlay-end mouse-secondary-overlay))))
 -                  (move-overlay mouse-secondary-overlay (car range)
 -                                (overlay-end mouse-secondary-overlay))
 -                (move-overlay mouse-secondary-overlay
 -                              (overlay-start mouse-secondary-overlay)
 -                              (nth 1 range)))
 -              ;; We have already put the old region in the kill ring.
 -              ;; Replace it with the extended region.
 -              ;; (It would be annoying to make a separate entry.)
 -              (kill-new (buffer-substring
 -                         (overlay-start mouse-secondary-overlay)
 -                         (overlay-end mouse-secondary-overlay)) t)
 -              ;; Arrange for a repeated mouse-3 to kill this region.
 -              (setq mouse-save-then-kill-posn
 -                    (list (car kill-ring) (point) click-posn)))
 -          ;; If we click this button again without moving it,
 -          ;; that time kill.
 -          (progn
 -            (mouse-save-then-kill-delete-region
 -             (overlay-start mouse-secondary-overlay)
 -             (overlay-end mouse-secondary-overlay))
 -            (setq mouse-save-then-kill-posn nil)
 -            (setq mouse-secondary-click-count 0)
 -            (delete-overlay mouse-secondary-overlay)))
 -      (if (and (eq last-command 'mouse-secondary-save-then-kill)
 -               mouse-save-then-kill-posn
 -               (eq (car mouse-save-then-kill-posn) (car kill-ring))
 -               (equal (cdr mouse-save-then-kill-posn) (list (point) click-posn)))
 -          ;; If this is the second time we've called
 -          ;; mouse-secondary-save-then-kill, delete the text from the buffer.
 -          (progn
 -            (mouse-save-then-kill-delete-region
 -             (overlay-start mouse-secondary-overlay)
 -             (overlay-end mouse-secondary-overlay))
 -            (setq mouse-save-then-kill-posn nil)
 -            (delete-overlay mouse-secondary-overlay))
 -        (if (overlay-start mouse-secondary-overlay)
 -            ;; We have a selection, so adjust it.
 -            (progn
 -              (if (numberp click-posn)
 -                  (progn
 -                    ;; Move whichever end of the region is closer to the click.
 -                    ;; That is what xterm does, and it seems reasonable.
 -                    (if (< (abs (- click-posn (overlay-start mouse-secondary-overlay)))
 -                           (abs (- click-posn (overlay-end mouse-secondary-overlay))))
 -                        (move-overlay mouse-secondary-overlay click-posn
 -                                      (overlay-end mouse-secondary-overlay))
 -                      (move-overlay mouse-secondary-overlay
 -                                    (overlay-start mouse-secondary-overlay)
 -                                    click-posn))
 -                    (setq deactivate-mark nil)))
 -              (if (eq last-command 'mouse-secondary-save-then-kill)
 -                  ;; If the front of the kill ring comes from
 -                  ;; an immediately previous use of this command,
 -                  ;; replace it with the extended region.
 -                  ;; (It would be annoying to make a separate entry.)
 -                  (kill-new (buffer-substring
 -                             (overlay-start mouse-secondary-overlay)
 -                             (overlay-end mouse-secondary-overlay)) t)
 -                (let (deactivate-mark)
 -                  (copy-region-as-kill (overlay-start mouse-secondary-overlay)
 -                                       (overlay-end mouse-secondary-overlay)))))
 -          (if mouse-secondary-start
 -              ;; All we have is one end of a selection,
 -              ;; so put the other end here.
 -              (let ((start (+ 0 mouse-secondary-start)))
 -                (kill-ring-save start click-posn)
 -                  (move-overlay mouse-secondary-overlay start click-posn))))
 -        (setq mouse-save-then-kill-posn
 -              (list (car kill-ring) (point) click-posn))))
 -      (if (overlay-buffer mouse-secondary-overlay)
 -        (x-set-selection 'SECONDARY
 -                         (buffer-substring
 -                          (overlay-start mouse-secondary-overlay)
 -                          (overlay-end mouse-secondary-overlay)))))))
 +  (let* ((posn     (event-start click))
 +       (click-pt (posn-point posn))
 +       (window   (posn-window posn))
 +       (buf      (window-buffer window))
 +       ;; Don't let a subsequent kill command append to this one.
 +       (this-command this-command)
 +       ;; Check if the user has multi-clicked to select words/lines.
 +       (click-count
 +        (if (eq (overlay-buffer mouse-secondary-overlay) buf)
 +            mouse-secondary-click-count
 +          0))
 +       (beg (overlay-start mouse-secondary-overlay))
 +       (end (overlay-end mouse-secondary-overlay)))
 +
 +    (cond
 +     ((not (numberp click-pt)) nil)
 +
 +     ;; If the secondary selection is not active in BUF, activate it.
 +     ((not (eq buf (or (overlay-buffer mouse-secondary-overlay)
 +                     (if mouse-secondary-start
 +                         (marker-buffer mouse-secondary-start)))))
 +      (select-window window)
 +      (setq mouse-secondary-start (make-marker))
 +      (move-marker mouse-secondary-start (point))
 +      (move-overlay mouse-secondary-overlay (point) click-pt buf)
 +      (kill-ring-save (point) click-pt))
 +
 +     ;; If the user clicked without moving point, delete the secondary
 +     ;; selection.  This also resets `mouse-secondary-click-count'.
 +     ((and (eq last-command 'mouse-secondary-save-then-kill)
 +         (eq click-pt mouse-save-then-kill-posn)
 +         (eq window (selected-window)))
 +      (mouse-save-then-kill-delete-region beg end)
 +      (delete-overlay mouse-secondary-overlay)
 +      (setq mouse-secondary-click-count 0)
 +      (setq mouse-save-then-kill-posn nil))
 +
 +     ;; Otherwise, if there is a suitable secondary selection overlay,
 +     ;; adjust it by moving one end (whichever is closer) to CLICK-PT.
 +     ((and beg (eq buf (overlay-buffer mouse-secondary-overlay)))
 +      (let* ((range (mouse-start-end click-pt click-pt click-count)))
 +      (if (< (abs (- click-pt beg))
 +             (abs (- click-pt end)))
 +          (move-overlay mouse-secondary-overlay (car range) end)
 +        (move-overlay mouse-secondary-overlay beg (nth 1 range))))
 +      (setq deactivate-mark nil)
 +      (if (eq last-command 'mouse-secondary-save-then-kill)
 +        ;; If the front of the kill ring comes from an immediately
 +        ;; previous use of this command, replace the entry.
 +        (kill-new
 +         (buffer-substring (overlay-start mouse-secondary-overlay)
 +                           (overlay-end mouse-secondary-overlay))
 +         t)
 +      (let (deactivate-mark)
 +        (copy-region-as-kill (overlay-start mouse-secondary-overlay)
 +                             (overlay-end mouse-secondary-overlay))))
 +      (setq mouse-save-then-kill-posn click-pt))
 +
 +     ;; Otherwise, set the secondary selection overlay.
 +     (t
 +      (select-window window)
 +      (if mouse-secondary-start
 +        ;; All we have is one end of a selection, so put the other
 +        ;; end here.
 +        (let ((start (+ 0 mouse-secondary-start)))
 +          (kill-ring-save start click-pt)
 +          (move-overlay mouse-secondary-overlay start click-pt)))
 +      (setq mouse-save-then-kill-posn click-pt))))
 +
 +  ;; Finally, set the window system's secondary selection.
 +  (let (str)
 +    (and (overlay-buffer mouse-secondary-overlay)
 +       (setq str (buffer-substring (overlay-start mouse-secondary-overlay)
 +                                   (overlay-end mouse-secondary-overlay)))
 +       (> (length str) 0)
 +       (x-set-selection 'SECONDARY str))))
 +
  \f
  (defcustom mouse-buffer-menu-maxlen 20
    "Number of buffers in one pane (submenu) of the buffer menu.
@@@ -1879,6 -2011,332 +1879,6 @@@ and selects that window.
      ;; Few buffers--put them all in one pane.
      (list (cons title alist))))
  \f
 -;; These need to be rewritten for the new scroll bar implementation.
 -
 -;;!! ;; Commands for the scroll bar.
 -;;!!
 -;;!! (defun mouse-scroll-down (click)
 -;;!!   (interactive "@e")
 -;;!!   (scroll-down (1+ (cdr (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-up (click)
 -;;!!   (interactive "@e")
 -;;!!   (scroll-up (1+ (cdr (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-down-full ()
 -;;!!   (interactive "@")
 -;;!!   (scroll-down nil))
 -;;!!
 -;;!! (defun mouse-scroll-up-full ()
 -;;!!   (interactive "@")
 -;;!!   (scroll-up nil))
 -;;!!
 -;;!! (defun mouse-scroll-move-cursor (click)
 -;;!!   (interactive "@e")
 -;;!!   (move-to-window-line (1+ (cdr (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-absolute (event)
 -;;!!   (interactive "@e")
 -;;!!   (let* ((pos (car event))
 -;;!!   (position (car pos))
 -;;!!   (length (car (cdr pos))))
 -;;!!     (if (<= length 0) (setq length 1))
 -;;!!     (let* ((scale-factor (max 1 (/ length (/ 8000000 (buffer-size)))))
 -;;!!     (newpos (* (/ (* (/ (buffer-size) scale-factor)
 -;;!!                      position)
 -;;!!                   length)
 -;;!!                scale-factor)))
 -;;!!       (goto-char newpos)
 -;;!!       (recenter '(4)))))
 -;;!!
 -;;!! (defun mouse-scroll-left (click)
 -;;!!   (interactive "@e")
 -;;!!   (scroll-left (1+ (car (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-right (click)
 -;;!!   (interactive "@e")
 -;;!!   (scroll-right (1+ (car (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-left-full ()
 -;;!!   (interactive "@")
 -;;!!   (scroll-left nil))
 -;;!!
 -;;!! (defun mouse-scroll-right-full ()
 -;;!!   (interactive "@")
 -;;!!   (scroll-right nil))
 -;;!!
 -;;!! (defun mouse-scroll-move-cursor-horizontally (click)
 -;;!!   (interactive "@e")
 -;;!!   (move-to-column (1+ (car (mouse-coords click)))))
 -;;!!
 -;;!! (defun mouse-scroll-absolute-horizontally (event)
 -;;!!   (interactive "@e")
 -;;!!   (let* ((pos (car event))
 -;;!!   (position (car pos))
 -;;!!   (length (car (cdr pos))))
 -;;!!   (set-window-hscroll (selected-window) 33)))
 -;;!!
 -;;!! (global-set-key [scroll-bar mouse-1] 'mouse-scroll-up)
 -;;!! (global-set-key [scroll-bar mouse-2] 'mouse-scroll-absolute)
 -;;!! (global-set-key [scroll-bar mouse-3] 'mouse-scroll-down)
 -;;!!
 -;;!! (global-set-key [vertical-slider mouse-1] 'mouse-scroll-move-cursor)
 -;;!! (global-set-key [vertical-slider mouse-2] 'mouse-scroll-move-cursor)
 -;;!! (global-set-key [vertical-slider mouse-3] 'mouse-scroll-move-cursor)
 -;;!!
 -;;!! (global-set-key [thumbup mouse-1] 'mouse-scroll-up-full)
 -;;!! (global-set-key [thumbup mouse-2] 'mouse-scroll-up-full)
 -;;!! (global-set-key [thumbup mouse-3] 'mouse-scroll-up-full)
 -;;!!
 -;;!! (global-set-key [thumbdown mouse-1] 'mouse-scroll-down-full)
 -;;!! (global-set-key [thumbdown mouse-2] 'mouse-scroll-down-full)
 -;;!! (global-set-key [thumbdown mouse-3] 'mouse-scroll-down-full)
 -;;!!
 -;;!! (global-set-key [horizontal-scroll-bar mouse-1] 'mouse-scroll-left)
 -;;!! (global-set-key [horizontal-scroll-bar mouse-2]
 -;;!!          'mouse-scroll-absolute-horizontally)
 -;;!! (global-set-key [horizontal-scroll-bar mouse-3] 'mouse-scroll-right)
 -;;!!
 -;;!! (global-set-key [horizontal-slider mouse-1]
 -;;!!          'mouse-scroll-move-cursor-horizontally)
 -;;!! (global-set-key [horizontal-slider mouse-2]
 -;;!!          'mouse-scroll-move-cursor-horizontally)
 -;;!! (global-set-key [horizontal-slider mouse-3]
 -;;!!          'mouse-scroll-move-cursor-horizontally)
 -;;!!
 -;;!! (global-set-key [thumbleft mouse-1] 'mouse-scroll-left-full)
 -;;!! (global-set-key [thumbleft mouse-2] 'mouse-scroll-left-full)
 -;;!! (global-set-key [thumbleft mouse-3] 'mouse-scroll-left-full)
 -;;!!
 -;;!! (global-set-key [thumbright mouse-1] 'mouse-scroll-right-full)
 -;;!! (global-set-key [thumbright mouse-2] 'mouse-scroll-right-full)
 -;;!! (global-set-key [thumbright mouse-3] 'mouse-scroll-right-full)
 -;;!!
 -;;!! (global-set-key [horizontal-scroll-bar S-mouse-2]
 -;;!!          'mouse-split-window-horizontally)
 -;;!! (global-set-key [mode-line S-mouse-2]
 -;;!!          'mouse-split-window-horizontally)
 -;;!! (global-set-key [vertical-scroll-bar S-mouse-2]
 -;;!!          'mouse-split-window)
 -\f
 -;;!! ;;;;
 -;;!! ;;;; Here are experimental things being tested.  Mouse events
 -;;!! ;;;; are of the form:
 -;;!! ;;;;     ((x y) window screen-part key-sequence timestamp)
 -;;!! ;;
 -;;!! ;;;;
 -;;!! ;;;; Dynamically track mouse coordinates
 -;;!! ;;;;
 -;;!! ;;
 -;;!! ;;(defun track-mouse (event)
 -;;!! ;;  "Track the coordinates, absolute and relative, of the mouse."
 -;;!! ;;  (interactive "@e")
 -;;!! ;;  (while mouse-grabbed
 -;;!! ;;    (let* ((pos (read-mouse-position (selected-screen)))
 -;;!! ;;          (abs-x (car pos))
 -;;!! ;;          (abs-y (cdr pos))
 -;;!! ;;          (relative-coordinate (coordinates-in-window-p
 -;;!! ;;                                (list (car pos) (cdr pos))
 -;;!! ;;                                (selected-window))))
 -;;!! ;;      (if (consp relative-coordinate)
 -;;!! ;;         (message "mouse: [%d %d], (%d %d)" abs-x abs-y
 -;;!! ;;                  (car relative-coordinate)
 -;;!! ;;                  (car (cdr relative-coordinate)))
 -;;!! ;;       (message "mouse: [%d %d]" abs-x abs-y)))))
 -;;!!
 -;;!! ;;
 -;;!! ;; Dynamically put a box around the line indicated by point
 -;;!! ;;
 -;;!! ;;
 -;;!! ;;(require 'backquote)
 -;;!! ;;
 -;;!! ;;(defun mouse-select-buffer-line (event)
 -;;!! ;;  (interactive "@e")
 -;;!! ;;  (let ((relative-coordinate
 -;;!! ;;        (coordinates-in-window-p (car event) (selected-window)))
 -;;!! ;;       (abs-y (car (cdr (car event)))))
 -;;!! ;;    (if (consp relative-coordinate)
 -;;!! ;;       (progn
 -;;!! ;;         (save-excursion
 -;;!! ;;           (move-to-window-line (car (cdr relative-coordinate)))
 -;;!! ;;           (x-draw-rectangle
 -;;!! ;;            (selected-screen)
 -;;!! ;;            abs-y 0
 -;;!! ;;            (save-excursion
 -;;!! ;;                (move-to-window-line (car (cdr relative-coordinate)))
 -;;!! ;;                (end-of-line)
 -;;!! ;;                (push-mark nil t)
 -;;!! ;;                (beginning-of-line)
 -;;!! ;;                (- (region-end) (region-beginning))) 1))
 -;;!! ;;         (sit-for 1)
 -;;!! ;;         (x-erase-rectangle (selected-screen))))))
 -;;!! ;;
 -;;!! ;;(defvar last-line-drawn nil)
 -;;!! ;;(defvar begin-delim "[^ \t]")
 -;;!! ;;(defvar end-delim   "[^ \t]")
 -;;!! ;;
 -;;!! ;;(defun mouse-boxing (event)
 -;;!! ;;  (interactive "@e")
 -;;!! ;;  (save-excursion
 -;;!! ;;    (let ((screen (selected-screen)))
 -;;!! ;;      (while (= (x-mouse-events) 0)
 -;;!! ;;       (let* ((pos (read-mouse-position screen))
 -;;!! ;;              (abs-x (car pos))
 -;;!! ;;              (abs-y (cdr pos))
 -;;!! ;;              (relative-coordinate
 -;;!! ;;               (coordinates-in-window-p `(,abs-x ,abs-y)
 -;;!! ;;                                        (selected-window)))
 -;;!! ;;              (begin-reg nil)
 -;;!! ;;              (end-reg nil)
 -;;!! ;;              (end-column nil)
 -;;!! ;;              (begin-column nil))
 -;;!! ;;         (if (and (consp relative-coordinate)
 -;;!! ;;                  (or (not last-line-drawn)
 -;;!! ;;                      (not (= last-line-drawn abs-y))))
 -;;!! ;;             (progn
 -;;!! ;;               (move-to-window-line (car (cdr relative-coordinate)))
 -;;!! ;;               (if (= (following-char) 10)
 -;;!! ;;                   ()
 -;;!! ;;                 (progn
 -;;!! ;;                   (setq begin-reg (1- (re-search-forward end-delim)))
 -;;!! ;;                   (setq begin-column (1- (current-column)))
 -;;!! ;;                   (end-of-line)
 -;;!! ;;                   (setq end-reg (1+ (re-search-backward begin-delim)))
 -;;!! ;;                   (setq end-column (1+ (current-column)))
 -;;!! ;;                   (message "%s" (buffer-substring begin-reg end-reg))
 -;;!! ;;                   (x-draw-rectangle screen
 -;;!! ;;                                     (setq last-line-drawn abs-y)
 -;;!! ;;                                     begin-column
 -;;!! ;;                                     (- end-column begin-column) 1))))))))))
 -;;!! ;;
 -;;!! ;;(defun mouse-erase-box ()
 -;;!! ;;  (interactive)
 -;;!! ;;  (if last-line-drawn
 -;;!! ;;      (progn
 -;;!! ;;       (x-erase-rectangle (selected-screen))
 -;;!! ;;       (setq last-line-drawn nil))))
 -;;!!
 -;;!! ;;; (defun test-x-rectangle ()
 -;;!! ;;;   (use-local-mouse-map (setq rectangle-test-map (make-sparse-keymap)))
 -;;!! ;;;   (define-key rectangle-test-map mouse-motion-button-left 'mouse-boxing)
 -;;!! ;;;   (define-key rectangle-test-map mouse-button-left-up 'mouse-erase-box))
 -;;!!
 -;;!! ;;
 -;;!! ;; Here is how to do double clicking in lisp.  About to change.
 -;;!! ;;
 -;;!!
 -;;!! (defvar double-start nil)
 -;;!! (defconst double-click-interval 300
 -;;!!   "Max ticks between clicks")
 -;;!!
 -;;!! (defun double-down (event)
 -;;!!   (interactive "@e")
 -;;!!   (if double-start
 -;;!!       (let ((interval (- (nth 4 event) double-start)))
 -;;!!  (if (< interval double-click-interval)
 -;;!!      (progn
 -;;!!        (backward-up-list 1)
 -;;!!        ;;      (message "Interval %d" interval)
 -;;!!        (sleep-for 1)))
 -;;!!  (setq double-start nil))
 -;;!!     (setq double-start (nth 4 event))))
 -;;!!
 -;;!! (defun double-up (event)
 -;;!!   (interactive "@e")
 -;;!!   (and double-start
 -;;!!        (> (- (nth 4 event ) double-start) double-click-interval)
 -;;!!        (setq double-start nil)))
 -;;!!
 -;;!! ;;; (defun x-test-doubleclick ()
 -;;!! ;;;   (use-local-mouse-map (setq doubleclick-test-map (make-sparse-keymap)))
 -;;!! ;;;   (define-key doubleclick-test-map mouse-button-left 'double-down)
 -;;!! ;;;   (define-key doubleclick-test-map mouse-button-left-up 'double-up))
 -;;!!
 -;;!! ;;
 -;;!! ;; This scrolls while button is depressed.  Use preferable in scroll bar.
 -;;!! ;;
 -;;!!
 -;;!! (defvar scrolled-lines 0)
 -;;!! (defconst scroll-speed 1)
 -;;!!
 -;;!! (defun incr-scroll-down (event)
 -;;!!   (interactive "@e")
 -;;!!   (setq scrolled-lines 0)
 -;;!!   (incremental-scroll scroll-speed))
 -;;!!
 -;;!! (defun incr-scroll-up (event)
 -;;!!   (interactive "@e")
 -;;!!   (setq scrolled-lines 0)
 -;;!!   (incremental-scroll (- scroll-speed)))
 -;;!!
 -;;!! (defun incremental-scroll (n)
 -;;!!   (while (= (x-mouse-events) 0)
 -;;!!     (setq scrolled-lines (1+ (* scroll-speed scrolled-lines)))
 -;;!!     (scroll-down n)
 -;;!!     (sit-for 300 t)))
 -;;!!
 -;;!! (defun incr-scroll-stop (event)
 -;;!!   (interactive "@e")
 -;;!!   (message "Scrolled %d lines" scrolled-lines)
 -;;!!   (setq scrolled-lines 0)
 -;;!!   (sleep-for 1))
 -;;!!
 -;;!! ;;; (defun x-testing-scroll ()
 -;;!! ;;;   (let ((scrolling-map (function mouse-vertical-scroll-bar-prefix)))
 -;;!! ;;;     (define-key scrolling-map mouse-button-left 'incr-scroll-down)
 -;;!! ;;;     (define-key scrolling-map mouse-button-right 'incr-scroll-up)
 -;;!! ;;;     (define-key scrolling-map mouse-button-left-up 'incr-scroll-stop)
 -;;!! ;;;     (define-key scrolling-map mouse-button-right-up 'incr-scroll-stop)))
 -;;!!
 -;;!! ;;
 -;;!! ;; Some playthings suitable for picture mode?  They need work.
 -;;!! ;;
 -;;!!
 -;;!! (defun mouse-kill-rectangle (event)
 -;;!!   "Kill the rectangle between point and the mouse cursor."
 -;;!!   (interactive "@e")
 -;;!!   (let ((point-save (point)))
 -;;!!     (save-excursion
 -;;!!       (mouse-set-point event)
 -;;!!       (push-mark nil t)
 -;;!!       (if (> point-save (point))
 -;;!!    (kill-rectangle (point) point-save)
 -;;!!  (kill-rectangle point-save (point))))))
 -;;!!
 -;;!! (defun mouse-open-rectangle (event)
 -;;!!   "Kill the rectangle between point and the mouse cursor."
 -;;!!   (interactive "@e")
 -;;!!   (let ((point-save (point)))
 -;;!!     (save-excursion
 -;;!!       (mouse-set-point event)
 -;;!!       (push-mark nil t)
 -;;!!       (if (> point-save (point))
 -;;!!    (open-rectangle (point) point-save)
 -;;!!  (open-rectangle point-save (point))))))
 -;;!!
 -;;!! ;; Must be a better way to do this.
 -;;!!
 -;;!! (defun mouse-multiple-insert (n char)
 -;;!!   (while (> n 0)
 -;;!!     (insert char)
 -;;!!     (setq n (1- n))))
 -;;!!
 -;;!! ;; What this could do is not finalize until button was released.
 -;;!!
 -;;!! (defun mouse-move-text (event)
 -;;!!   "Move text from point to cursor position, inserting spaces."
 -;;!!   (interactive "@e")
 -;;!!   (let* ((relative-coordinate
 -;;!!    (coordinates-in-window-p (car event) (selected-window))))
 -;;!!     (if (consp relative-coordinate)
 -;;!!  (cond ((> (current-column) (car relative-coordinate))
 -;;!!         (delete-char
 -;;!!          (- (car relative-coordinate) (current-column))))
 -;;!!        ((< (current-column) (car relative-coordinate))
 -;;!!         (mouse-multiple-insert
 -;;!!          (- (car relative-coordinate) (current-column)) " "))
 -;;!!        ((= (current-column) (car relative-coordinate)) (ding))))))
 -\f
  (define-obsolete-function-alias
    'mouse-choose-completion 'choose-completion "23.2")
  
@@@ -2100,7 -2558,7 +2100,7 @@@ choose a font.
  (global-set-key [left-fringe mouse-1] 'mouse-set-point)
  (global-set-key [right-fringe mouse-1]        'mouse-set-point)
  
 -(global-set-key [mouse-2]     'mouse-yank-at-click)
 +(global-set-key [mouse-2]     'mouse-yank-primary)
  ;; Allow yanking also when the corresponding cursor is "in the fringe".
  (global-set-key [right-fringe mouse-2] 'mouse-yank-at-click)
  (global-set-key [left-fringe mouse-2] 'mouse-yank-at-click)
                    (mouse-menu-bar-map)
                  (mouse-menu-major-mode-map)))))
  
 -
 -;; Replaced with dragging mouse-1
 -;; (global-set-key [S-mouse-1]        'mouse-set-mark)
 -
  ;; Binding mouse-1 to mouse-select-window when on mode-, header-, or
  ;; vertical-line prevents Emacs from signaling an error when the mouse
  ;; button is released after dragging these lines, on non-toolkit
  
  (provide 'mouse)
  
 -;; This file contains the functionality of the old mldrag.el.
 -(defalias 'mldrag-drag-mode-line 'mouse-drag-mode-line)
 -(defalias 'mldrag-drag-vertical-line 'mouse-drag-vertical-line)
 -(make-obsolete 'mldrag-drag-mode-line 'mouse-drag-mode-line "21.1")
 -(make-obsolete 'mldrag-drag-vertical-line 'mouse-drag-vertical-line "21.1")
 -(provide 'mldrag)
 -
  ;;; mouse.el ends here
diff --combined lisp/msb.el
index fb9de914abfee847b116f5a9f8d467e0bd3f77f5,0517d8a54781ebc66f62fa45a8fa17f413e89fdb..1f84ef78164ae3db9bd2ac3104eeb41fe7dc949b
@@@ -1,6 -1,7 +1,6 @@@
  ;;; msb.el --- customizable buffer-selection with multiple menus
  
 -;; Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, 2002,
 -;;   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +;; Copyright (C) 1993-1995, 1997-2011 Free Software Foundation, Inc.
  
  ;; Author: Lars Lindberg <lars.lindberg@home.se>
  ;; Maintainer: FSF
@@@ -364,9 -365,6 +364,9 @@@ This is instead of the groups in `msb-m
    :set 'msb-custom-set
    :group 'msb)
  
 +(define-obsolete-variable-alias 'msb-after-load-hooks
 +  'msb-after-load-hook "24.1")
 +
  (defcustom msb-after-load-hook nil
    "Hook run after the msb package has been loaded."
    :type 'hook
@@@ -1114,7 -1112,8 +1114,8 @@@ variable `msb-menu-cond'.
                     (list (frame-parameter frame 'name)
                           (frame-parameter frame 'name)
                           (cons nil nil))
-                    'menu-bar-select-frame))
+                      `(lambda ()
+                         (interactive) (menu-bar-select-frame ,frame))))
                  frames)))))
        (setcdr global-buffers-menu-map
              (if (and buffers-menu frames-menu)
@@@ -1154,6 -1153,7 +1155,6 @@@ different buffer menu using the functio
    nil)
  
  (provide 'msb)
 -(eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks))
 +(run-hooks 'msb-after-load-hook)
  
 -;; arch-tag: 403f9e82-b92e-4e7a-a797-5d6d9b76da36
  ;;; msb.el ends here
index 327ebea40ccff32eb279ad6aaf1c9dc260c93004,3f719aedb62e651b11e9c3a25692a4f4de46daab..ec913e05c7e52b8639b6baa1f937cdec130231a8
@@@ -1,6 -1,8 +1,6 @@@
  ;;; cc-cmds.el --- user level commands for CC Mode
  
 -;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 -;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -;;   Free Software Foundation, Inc.
 +;; Copyright (C) 1985, 1987, 1992-2011  Free Software Foundation, Inc.
  
  ;; Authors:    2003- Alan Mackenzie
  ;;             1998- Martin Stjernholm
@@@ -10,8 -12,8 +10,8 @@@
  ;;             1985 Richard M. Stallman
  ;; Maintainer: bug-cc-mode@gnu.org
  ;; Created:    22-Apr-1997 (split from cc-mode.el)
 -;; Version:    See cc-mode.el
 -;; Keywords:   c languages oop
 +;; Keywords:   c languages
 +;; Package:    cc-mode
  
  ;; This file is part of GNU Emacs.
  
@@@ -264,10 -266,8 +264,10 @@@ With universal argument, inserts the an
                          (symbol-value 'subword-mode))
                         "w"
                       "")))
 +        ;; FIXME: Derived modes might want to use something else
 +        ;; than a string for `mode-name'.
        (bare-mode-name (if (string-match "\\(^[^/]*\\)/" mode-name)
 -                          (substring mode-name (match-beginning 1) (match-end 1))
 +                          (match-string 1 mode-name)
                          mode-name)))
  ;;     (setq c-submode-indicators
  ;;      (if (> (length fmt) 1)
@@@ -1086,76 -1086,104 +1086,76 @@@ numeric argument is supplied, or the po
  
    (interactive "*P")
    (let ((c-echo-syntactic-information-p nil)
 -      final-pos close-paren-inserted)
 +      final-pos close-paren-inserted found-delim)
  
      (self-insert-command (prefix-numeric-value arg))
      (setq final-pos (point))
  
 -    (c-save-buffer-state (c-parse-and-markup-<>-arglists
 -                        c-restricted-<>-arglists
 -                        <-pos)
 +;;;; 2010-01-31: There used to be code here to put a syntax-table text
 +;;;; property on the new < or > and its mate (if any) when they are template
 +;;;; parens.  This is now done in an after-change function.
  
 -      (when c-recognize-<>-arglists
 -      (if (eq last-command-event ?<)
 -          (when (and (progn
 -                       (backward-char)
 -                       (= (point)
 -                          (progn
 -                            (c-beginning-of-current-token)
 -                            (point))))
 +    ;; Indent the line if appropriate.
 +    (when (and c-electric-flag c-syntactic-indentation c-recognize-<>-arglists)
 +      (setq found-delim
 +          (if (eq last-command-event ?<)
 +              ;; If a <, basically see if it's got "template" before it .....
 +              (or (and (progn
 +                         (backward-char)
 +                         (= (point)
 +                            (progn (c-beginning-of-current-token) (point))))
 +                       (progn
 +                         (c-backward-token-2)
 +                         (looking-at c-opt-<>-sexp-key)))
 +                  ;; ..... or is a C++ << operator.
 +                  (and (c-major-mode-is 'c++-mode)
 +                       (progn
 +                         (goto-char (1- final-pos))
 +                         (c-beginning-of-current-token)
 +                         (looking-at "<<"))
 +                       (>= (match-end 0) final-pos)))
 +
 +            ;; It's a >.  Either a C++ >> operator. ......
 +            (or (and (c-major-mode-is 'c++-mode)
                       (progn
 -                       (c-backward-token-2)
 -                       (looking-at c-opt-<>-sexp-key)))
 -            (c-mark-<-as-paren (1- final-pos)))
 -
 -        ;; It's a ">".  Check if there's an earlier "<" which either has
 -        ;; open paren syntax already or that can be recognized as an arglist
 -        ;; together with this ">".  Note that this won't work in cases like
 -        ;; "template <x, a < b, y>" but they ought to be rare.
 -
 -        (save-restriction
 -          ;; Narrow to avoid that `c-forward-<>-arglist' below searches past
 -          ;; our position.
 -          (narrow-to-region (point-min) final-pos)
 -
 -          (while (and
 -                  (progn
 -                    (goto-char final-pos)
 -                    (c-syntactic-skip-backward "^<;}" nil t)
 -                    (eq (char-before) ?<))
 -                  (progn
 -                    (backward-char)
 -                    ;; If the "<" already got open paren syntax we know we
 -                    ;; have the matching closer.  Handle it and exit the
 -                    ;; loop.
 -                    (if (looking-at "\\s\(")
 -                        (progn
 -                          (c-mark->-as-paren (1- final-pos))
 -                          (setq close-paren-inserted t)
 -                          nil)
 -                      t))
 +                       (goto-char (1- final-pos))
 +                       (c-beginning-of-current-token)
 +                       (looking-at ">>"))
 +                     (>= (match-end 0) final-pos))
 +                ;; ...., or search back for a < which isn't already marked as an
 +                ;; opening template delimiter.
 +                (save-restriction
 +                  (widen)
 +                  ;; Narrow to avoid `c-forward-<>-arglist' below searching past
 +                  ;; our position.
 +                  (narrow-to-region (point-min) final-pos)
 +                  (goto-char final-pos)
 +                  (while
 +                      (and
 +                       (progn
 +                         (c-syntactic-skip-backward "^<;}" nil t)
 +                         (eq (char-before) ?<))
 +                       (progn
 +                         (backward-char)
 +                         (looking-at "\\s\("))))
 +                  (and (eq (char-after) ?<)
 +                       (not (looking-at "\\s\("))
 +                       (progn (c-backward-syntactic-ws)
 +                              (c-simple-skip-symbol-backward))
 +                       (or (looking-at c-opt-<>-sexp-key)
 +                           (not (looking-at c-keywords-regexp)))))))))
  
 -                  (progn
 -                    (setq <-pos (point))
 -                    (c-backward-syntactic-ws)
 -                    (c-simple-skip-symbol-backward))
 -                  (or (looking-at c-opt-<>-sexp-key)
 -                      (not (looking-at c-keywords-regexp)))
 -
 -                  (let ((c-parse-and-markup-<>-arglists t)
 -                        c-restricted-<>-arglists
 -                        (containing-sexp
 -                         (c-most-enclosing-brace (c-parse-state))))
 -                    (when (and containing-sexp
 -                               (progn (goto-char containing-sexp)
 -                                      (eq (char-after) ?\())
 -                               (not (eq (get-text-property (point) 'c-type)
 -                                        'c-decl-arg-start)))
 -                      (setq c-restricted-<>-arglists t))
 -                    (goto-char <-pos)
 -                    (c-forward-<>-arglist nil))
 -
 -                  ;; Loop here if the "<" we found above belongs to a nested
 -                  ;; angle bracket sexp.  When we start over we'll find the
 -                  ;; previous or surrounding sexp.
 -                  (if (< (point) final-pos)
 -                      t
 -                    (setq close-paren-inserted t)
 -                    nil)))))))
      (goto-char final-pos)
 -
 -    ;; Indent the line if appropriate.
 -    (when (and c-electric-flag c-syntactic-indentation)
 -      (backward-char)
 -      (when (prog1 (or (looking-at "\\s\(\\|\\s\)")
 -                     (and (c-major-mode-is 'c++-mode)
 -                          (progn
 -                            (c-beginning-of-current-token)
 -                            (looking-at "<<\\|>>"))
 -                          (= (match-end 0) final-pos)))
 -            (goto-char final-pos))
 -      (indent-according-to-mode)))
 -
 -    (when (and close-paren-inserted
 -             (not executing-kbd-macro)
 -             blink-paren-function)
 -      ;; Note: Most paren blink functions, such as the standard
 -      ;; `blink-matching-open', currently doesn't handle paren chars
 -      ;; marked with text properties very well.  Maybe we should avoid
 -      ;; this call for the time being?
 -      (funcall blink-paren-function))))
 +    (when found-delim
 +      (indent-according-to-mode)
 +      (when (and (eq (char-before) ?>)
 +               (not executing-kbd-macro)
 +               blink-paren-function)
 +          ;; Note: Most paren blink functions, such as the standard
 +          ;; `blink-matching-open', currently doesn't handle paren chars
 +          ;; marked with text properties very well.  Maybe we should avoid
 +          ;; this call for the time being?
 +          (funcall blink-paren-function)))))
  
  (defun c-electric-paren (arg)
    "Insert a parenthesis.
@@@ -1501,11 -1529,6 +1501,11 @@@ defun.
    (interactive "p")
    (or arg (setq arg 1))
  
 +  (or (not (eq this-command 'c-beginning-of-defun))
 +      (eq last-command 'c-beginning-of-defun)
 +      (and transient-mark-mode mark-active)
 +      (push-mark))
 +
    (c-save-buffer-state
        (beginning-of-defun-function end-of-defun-function
         (start (point))
@@@ -1609,11 -1632,6 +1609,11 @@@ the open-parenthesis that starts a defu
    (interactive "p")
    (or arg (setq arg 1))
  
 +  (or (not (eq this-command 'c-end-of-defun))
 +      (eq last-command 'c-end-of-defun)
 +      (and transient-mark-mode mark-active)
 +      (push-mark))
 +
    (c-save-buffer-state
        (beginning-of-defun-function end-of-defun-function
         (start (point))
@@@ -2440,13 -2458,15 +2440,15 @@@ function does not require the declarati
          (goto-char last)
          (throw 'done '(nil . nil)))
  
-        ;; Stop if we encounter a preprocessor line.
-        ((and (not macro-end)
+        ;; Stop if we encounter a preprocessor line.  Continue if we
+        ;; hit a naked #
+        ((and c-opt-cpp-prefix
+              (not macro-end)
               (eq (char-after) ?#)
               (= (point) (c-point 'boi)))
-         (goto-char last)
-         ;(throw 'done (cons (eq (point) here) 'macro-boundary))) ; Changed 2003/3/26
-         (throw 'done '(t . macro-boundary)))
+         (if (= (point) here)          ; Not a macro, therefore naked #.
+             (forward-char)
+           (throw 'done '(t . macro-boundary))))
  
         ;; Stop after a ';', '}', or "};"
         ((looking-at ";\\|};?")
@@@ -2560,14 -2580,21 +2562,21 @@@ be more \"DWIM:ey\".
                                    (c-backward-syntactic-ws))
                                  (or (bobp) (c-after-statement-terminator-p)))))))
                ;; Are we about to move backwards into or out of a
-               ;; preprocessor command?  If so, locate it's beginning.
+               ;; preprocessor command?  If so, locate its beginning.
                (when (eq (cdr res) 'macro-boundary)
-                 (save-excursion
-                   (beginning-of-line)
-                   (setq macro-fence
-                         (and (not (bobp))
-                              (progn (c-skip-ws-backward) (c-beginning-of-macro))
-                              (point)))))
+                 (setq macro-fence
+                       (save-excursion
+                         (if macro-fence
+                             (progn
+                               (end-of-line)
+                               (and (not (eobp))
+                                    (progn (c-skip-ws-forward)
+                                           (c-beginning-of-macro))
+                                    (progn (c-end-of-macro)
+                                           (point))))
+                           (and (not (eobp))
+                                (c-beginning-of-macro)
+                                (progn (c-end-of-macro) (point)))))))
                ;; Are we about to move backwards into a literal?
                (when (memq (cdr res) '(macro-boundary literal))
                  (setq range (c-ascertain-preceding-literal)))
@@@ -3974,19 -4001,16 +3983,19 @@@ command to conveniently insert and alig
                    ;; "Invalid search bound (wrong side of point)"
                    ;; error in the subsequent re-search.  Maybe
                    ;; another fix would be needed (2007-12-08).
 -                  (and (> (- (cdr c-lit-limits) 2) (point))
 -                       (search-forward-regexp
 -                        (concat "\\=[ \t]*\\(" c-current-comment-prefix "\\)")
 -                        (- (cdr c-lit-limits) 2) t)
 -                       (not (search-forward-regexp
 -                             "\\(\\s \\|\\sw\\)"
 -                             (- (cdr c-lit-limits) 2) 'limit))
 -                           ;; The comment ender IS on its own line.  Exclude
 -                           ;; this line from the filling.
 -                       (set-marker end (c-point 'bol))))
 +;                 (or (<= (- (cdr c-lit-limits) 2) (point))
 +; 2010-10-17  Construct removed.
 +;                 (or (< (- (cdr c-lit-limits) 2) (point))
 +                  (and 
 +                   (search-forward-regexp
 +                    (concat "\\=[ \t]*\\(" c-current-comment-prefix "\\)")
 +                    (- (cdr c-lit-limits) 2) t)
 +                   (not (search-forward-regexp
 +                         "\\(\\s \\|\\sw\\)"
 +                         (- (cdr c-lit-limits) 2) 'limit))
 +                   ;; The comment ender IS on its own line.  Exclude this
 +                   ;; line from the filling.
 +                   (set-marker end (c-point 'bol))));)
  
                ;; The comment ender is hanging.  Replace all space between it
                ;; and the last word either by one or two 'x's (when
                                       (goto-char ender-start)
                                       (current-column)))
                       (point-rel (- ender-start here))
 +                     (sentence-ends-comment
 +                      (save-excursion
 +                        (goto-char ender-start)
 +                        (and (search-backward-regexp
 +                              (c-sentence-end) (c-point 'bol) t)
 +                             (goto-char (match-end 0))
 +                        (looking-at "[ \t]*")
 +                        (= (match-end 0) ender-start))))
                       spaces)
  
                  (save-excursion
                              (setq spaces
                                    (max
                                     (min spaces
 -                                        (if sentence-end-double-space 2 1))
 +                                        (if (and sentence-ends-comment
 +                                                 sentence-end-double-space)
 +                                            2 1))
                                     1)))
                          ;; Insert the filler first to keep marks right.
                          (insert-char ?x spaces t)
@@@ -4265,11 -4279,8 +4274,11 @@@ Optional prefix ARG means justify parag
    (let ((fill-paragraph-function
         ;; Avoid infinite recursion.
         (if (not (eq fill-paragraph-function 'c-fill-paragraph))
 -           fill-paragraph-function)))
 -    (c-mask-paragraph t nil 'fill-paragraph arg))
 +           fill-paragraph-function))
 +      (start-point (point-marker)))
 +    (c-mask-paragraph
 +     t nil (lambda () (fill-region-as-paragraph (point-min) (point-max) arg)))
 +    (goto-char start-point))
    ;; Always return t.  This has the effect that if filling isn't done
    ;; above, it isn't done at all, and it's therefore effectively
    ;; disabled in normal code.
@@@ -4572,4 -4583,5 +4581,4 @@@ normally bound to C-o.  See `c-context-
  \f
  (cc-provide 'cc-cmds)
  
 -;; arch-tag: bf0611dc-d1f4-449e-9e45-4ec7c6936677
  ;;; cc-cmds.el ends here
index 406ee1a91d980f575a7873073178b729aa623e07,f96cd1b5c93f1c5569c7331e5563db0afc40fbca..f90d29bf00946cb1da028ddcdfccc59d35fa291e
@@@ -1,6 -1,8 +1,6 @@@
  ;;; cc-engine.el --- core syntax guessing engine for CC mode
  
 -;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 -;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -;;   Free Software Foundation, Inc.
 +;; Copyright (C) 1985, 1987, 1992-2011  Free Software Foundation, Inc.
  
  ;; Authors:    2001- Alan Mackenzie
  ;;             1998- Martin Stjernholm
@@@ -10,8 -12,8 +10,8 @@@
  ;;             1985 Richard M. Stallman
  ;; Maintainer: bug-cc-mode@gnu.org
  ;; Created:    22-Apr-1997 (split from cc-mode.el)
 -;; Version:    See cc-mode.el
 -;; Keywords:   c languages oop
 +;; Keywords:   c languages
 +;; Package:    cc-mode
  
  ;; This file is part of GNU Emacs.
  
  ;; Note: This doc is for internal use only.  Other packages should not
  ;; assume that these text properties are used as described here.
  ;;
 +;; 'category
 +;;   Used for "indirection".  With its help, some other property can
 +;;   be cheaply and easily switched on or off everywhere it occurs.
 +;;
  ;; 'syntax-table
  ;;   Used to modify the syntax of some characters.  It is used to
  ;;   mark the "<" and ">" of angle bracket parens with paren syntax, and
@@@ -258,27 -256,6 +258,27 @@@ comment at the start of cc-engine.el fo
             (forward-char)
             t))))
  
 +(defun c-syntactic-end-of-macro ()
 +  ;; Go to the end of a CPP directive, or a "safe" pos just before.
 +  ;;
 +  ;; This is normally the end of the next non-escaped line.  A "safe"
 +  ;; position is one not within a string or comment.  (The EOL on a line
 +  ;; comment is NOT "safe").
 +  ;;
 +  ;; This function must only be called from the beginning of a CPP construct.
 +  ;;
 +  ;; Note that this function might do hidden buffer changes.  See the comment
 +  ;; at the start of cc-engine.el for more info.
 +  (let* ((here (point))
 +       (there (progn (c-end-of-macro) (point)))
 +       (s (parse-partial-sexp here there)))
 +    (while (and (or (nth 3 s)  ; in a string
 +                  (nth 4 s))   ; in a comment (maybe at end of line comment)
 +              (> there here))  ; No infinite loops, please.
 +      (setq there (1- (nth 8 s)))
 +      (setq s (parse-partial-sexp here there)))
 +    (point)))
 +
  (defun c-forward-over-cpp-define-id ()
    ;; Assuming point is at the "#" that introduces a preprocessor
    ;; directive, it's moved forward to the end of the identifier which is
@@@ -1970,18 -1947,10 +1970,18 @@@ comment at the start of cc-engine.el fo
  \f
  ;; A system for finding noteworthy parens before the point.
  
 +(defconst c-state-cache-too-far 5000)
 +;; A maximum comfortable scanning distance, e.g. between
 +;; `c-state-cache-good-pos' and "HERE" (where we call c-parse-state).  When
 +;; this distance is exceeded, we take "emergency meausures", e.g. by clearing
 +;; the cache and starting again from point-min or a beginning of defun.  This
 +;; value can be tuned for efficiency or set to a lower value for testing.
 +
  (defvar c-state-cache nil)
  (make-variable-buffer-local 'c-state-cache)
  ;; The state cache used by `c-parse-state' to cut down the amount of
 -;; searching.  It's the result from some earlier `c-parse-state' call.
 +;; searching.  It's the result from some earlier `c-parse-state' call.  See
 +;; `c-parse-state''s doc string for details of its structure.
  ;;
  ;; The use of the cached info is more effective if the next
  ;; `c-parse-state' call is on a line close by the one the cached state
  ;; most effective if `c-parse-state' is used on each line while moving
  ;; forward.
  
 -(defvar c-state-cache-start 1)
 -(make-variable-buffer-local 'c-state-cache-start)
 -;; This is (point-min) when `c-state-cache' was calculated, since a
 -;; change of narrowing is likely to affect the parens that are visible
 -;; before the point.
 -
  (defvar c-state-cache-good-pos 1)
  (make-variable-buffer-local 'c-state-cache-good-pos)
 -;; This is a position where `c-state-cache' is known to be correct.
 -;; It's a position inside one of the recorded unclosed parens or the
 -;; top level, but not further nested inside any literal or subparen
 -;; that is closed before the last recorded position.
 +;; This is a position where `c-state-cache' is known to be correct, or
 +;; nil (see below).  It's a position inside one of the recorded unclosed
 +;; parens or the top level, but not further nested inside any literal or
 +;; subparen that is closed before the last recorded position.
  ;;
  ;; The exact position is chosen to try to be close to yet earlier than
  ;; the position where `c-state-cache' will be called next.  Right now
  ;; closing paren (of any type) before the line on which
  ;; `c-parse-state' was called.  That is chosen primarily to work well
  ;; with refontification of the current line.
 +;;
 +;; 2009-07-28: When `c-state-point-min' and the last position where
 +;; `c-parse-state' or for which `c-invalidate-state-cache' was called, are
 +;; both in the same literal, there is no such "good position", and
 +;; c-state-cache-good-pos is then nil.  This is the ONLY circumstance in which
 +;; it can be nil.  In this case, `c-state-point-min-literal' will be non-nil.
 +;;
 +;; 2009-06-12: In a brace desert, c-state-cache-good-pos may also be in
 +;; the middle of the desert, as long as it is not within a brace pair
 +;; recorded in `c-state-cache' or a paren/bracket pair.
 +
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; We maintain a simple cache of positions which aren't in a literal, so as to
 +;; speed up testing for non-literality.
 +(defconst c-state-nonlit-pos-interval 10000)
 +;; The approximate interval between entries in `c-state-nonlit-pos-cache'.
 +
 +(defvar c-state-nonlit-pos-cache nil)
 +(make-variable-buffer-local 'c-state-nonlit-pos-cache)
 +;; A list of buffer positions which are known not to be in a literal.  This is
 +;; ordered with higher positions at the front of the list.  Only those which
 +;; are less than `c-state-nonlit-pos-cache-limit' are valid.
 +
 +(defvar c-state-nonlit-pos-cache-limit 1)
 +(make-variable-buffer-local 'c-state-nonlit-pos-cache-limit)
 +;; An upper limit on valid entries in `c-state-nonlit-pos-cache'.  This is
 +;; reduced by buffer changes, and increased by invocations of
 +;; `c-state-literal-at'.
 +
 +(defsubst c-state-pp-to-literal (from to)
 +  ;; Do a parse-partial-sexp from FROM to TO, returning the bounds of any
 +  ;; literal at TO as a cons, otherwise NIL.
 +  ;; FROM must not be in a literal, and the buffer should already be wide
 +  ;; enough.
 +  (save-excursion
 +    (let ((s (parse-partial-sexp from to)))
 +      (when (or (nth 3 s) (nth 4 s))  ; in a string or comment
 +      (parse-partial-sexp (point) (point-max)
 +                          nil                  ; TARGETDEPTH
 +                          nil                  ; STOPBEFORE
 +                          s                    ; OLDSTATE
 +                          'syntax-table)       ; stop at end of literal
 +      (cons (nth 8 s) (point))))))
 +
 +(defun c-state-literal-at (here)
 +  ;; If position HERE is inside a literal, return (START . END), the
 +  ;; boundaries of the literal (which may be outside the accessible bit of the
 +  ;; buffer).  Otherwise, return nil.
 +  ;;
 +  ;; This function is almost the same as `c-literal-limits'.  It differs in
 +  ;; that it is a lower level function, and that it rigourously follows the
 +  ;; syntax from BOB, whereas `c-literal-limits' uses a "local" safe position.
 +  (save-restriction
 +    (widen)
 +    (save-excursion
 +      (let ((c c-state-nonlit-pos-cache)
 +          pos npos lit)
 +      ;; Trim the cache to take account of buffer changes.
 +      (while (and c (> (car c) c-state-nonlit-pos-cache-limit))
 +        (setq c (cdr c)))
 +      (setq c-state-nonlit-pos-cache c)
 +
 +      (while (and c (> (car c) here))
 +        (setq c (cdr c)))
 +      (setq pos (or (car c) (point-min)))
 +
 +      (while (<= (setq npos (+ pos c-state-nonlit-pos-interval))
 +                 here)
 +        (setq lit (c-state-pp-to-literal pos npos))
 +        (setq pos (or (cdr lit) npos)) ; end of literal containing npos.
 +        (setq c-state-nonlit-pos-cache (cons pos c-state-nonlit-pos-cache)))
 +
 +      (if (> pos c-state-nonlit-pos-cache-limit)
 +          (setq c-state-nonlit-pos-cache-limit pos))
 +      (if (< pos here)
 +          (setq lit (c-state-pp-to-literal pos here)))
 +      lit))))
 +
 +(defsubst c-state-lit-beg (pos)
 +  ;; Return the start of the literal containing POS, or POS itself.
 +  (or (car (c-state-literal-at pos))
 +      pos))
 +
 +(defsubst c-state-cache-non-literal-place (pos state)
 +  ;; Return a position outside of a string/comment at or before POS.
 +  ;; STATE is the parse-partial-sexp state at POS.
 +  (if (or (nth 3 state)                       ; in a string?
 +        (nth 4 state))                ; in a comment?
 +      (nth 8 state)
 +    pos))
  
 -(defsubst c-invalidate-state-cache (pos)
 -  ;; Invalidate all info on `c-state-cache' that applies to the buffer
 -  ;; at POS or higher.  This is much like `c-whack-state-after', but
 -  ;; it never changes a paren pair element into an open paren element.
 -  ;; Doing that would mean that the new open paren wouldn't have the
 -  ;; required preceding paren pair element.
 -  (while (and (or c-state-cache
 -                (when (< pos c-state-cache-good-pos)
 -                  (setq c-state-cache-good-pos 1)
 -                  nil))
 -            (let ((elem (car c-state-cache)))
 -              (if (consp elem)
 -                  (or (< pos (cdr elem))
 -                      (when (< pos c-state-cache-good-pos)
 -                        (setq c-state-cache-good-pos (cdr elem))
 -                        nil))
 -                (or (<= pos elem)
 -                    (when (< pos c-state-cache-good-pos)
 -                      (setq c-state-cache-good-pos (1+ elem))
 -                      nil)))))
 -    (setq c-state-cache (cdr c-state-cache))))
 -
 -(defun c-get-fallback-start-pos (here)
 -  ;; Return the start position for building `c-state-cache' from
 -  ;; scratch.
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Stuff to do with point-min, and coping with any literal there.
 +(defvar c-state-point-min 1)
 +(make-variable-buffer-local 'c-state-point-min)
 +;; This is (point-min) when `c-state-cache' was last calculated.  A change of
 +;; narrowing is likely to affect the parens that are visible before the point.
 +
 +(defvar c-state-point-min-lit-type nil)
 +(make-variable-buffer-local 'c-state-point-min-lit-type)
 +(defvar c-state-point-min-lit-start nil)
 +(make-variable-buffer-local 'c-state-point-min-lit-start)
 +;; These two variables define the literal, if any, containing point-min.
 +;; Their values are, respectively, 'string, c, or c++, and the start of the
 +;; literal.  If there's no literal there, they're both nil.
 +
 +(defvar c-state-min-scan-pos 1)
 +(make-variable-buffer-local 'c-state-min-scan-pos)
 +;; This is the earliest buffer-pos from which scanning can be done.  It is
 +;; either the end of the literal containing point-min, or point-min itself.
 +;; It becomes nil if the buffer is changed earlier than this point.
 +(defun c-state-get-min-scan-pos ()
 +  ;; Return the lowest valid scanning pos.  This will be the end of the
 +  ;; literal enclosing point-min, or point-min itself.
 +  (or c-state-min-scan-pos
 +      (save-restriction
 +      (save-excursion
 +        (widen)
 +        (goto-char c-state-point-min-lit-start)
 +        (if (eq c-state-point-min-lit-type 'string)
 +            (forward-sexp)
 +          (forward-comment 1))
 +        (setq c-state-min-scan-pos (point))))))
 +
 +(defun c-state-mark-point-min-literal ()
 +  ;; Determine the properties of any literal containing POINT-MIN, setting the
 +  ;; variables `c-state-point-min-lit-type', `c-state-point-min-lit-start',
 +  ;; and `c-state-min-scan-pos' accordingly.  The return value is meaningless.
 +  (let ((p-min (point-min))
 +      lit)
 +    (save-restriction
 +      (widen)
 +      (setq lit (c-state-literal-at p-min))
 +      (if lit
 +        (setq c-state-point-min-lit-type
 +              (save-excursion
 +                (goto-char (car lit))
 +                (cond
 +                 ((looking-at c-block-comment-start-regexp) 'c)
 +                 ((looking-at c-line-comment-starter) 'c++)
 +                 (t 'string)))
 +              c-state-point-min-lit-start (car lit)
 +              c-state-min-scan-pos (cdr lit))
 +      (setq c-state-point-min-lit-type nil
 +            c-state-point-min-lit-start nil
 +            c-state-min-scan-pos p-min)))))
 +
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; A variable which signals a brace dessert - helpful for reducing the number
 +;; of fruitless backward scans.
 +(defvar c-state-brace-pair-desert nil)
 +(make-variable-buffer-local 'c-state-brace-pair-desert)
 +;; Used only in `c-append-lower-brace-pair-to-state-cache'.  It is set when an
 +;; that defun has searched backwards for a brace pair and not found one.  Its
 +;; value is either nil or a cons (PA . FROM), where PA is the position of the
 +;; enclosing opening paren/brace/bracket which bounds the backwards search (or
 +;; nil when at top level) and FROM is where the backward search started.  It
 +;; is reset to nil in `c-invalidate-state-cache'.
 +
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Lowish level functions/macros which work directly on `c-state-cache', or a
 +;; list of like structure.
 +(defmacro c-state-cache-top-lparen (&optional cache)
 +  ;; Return the address of the top left brace/bracket/paren recorded in CACHE
 +  ;; (default `c-state-cache') (or nil).
 +  (let ((cash (or cache 'c-state-cache)))
 +    `(if (consp (car ,cash))
 +       (caar ,cash)
 +       (car ,cash))))
 +
 +(defmacro c-state-cache-top-paren (&optional cache)
 +  ;; Return the address of the latest brace/bracket/paren (whether left or
 +  ;; right) recorded in CACHE (default `c-state-cache') or nil.
 +  (let ((cash (or cache 'c-state-cache)))
 +    `(if (consp (car ,cash))
 +       (cdar ,cash)
 +       (car ,cash))))
 +
 +(defmacro c-state-cache-after-top-paren (&optional cache)
 +  ;; Return the position just after the latest brace/bracket/paren (whether
 +  ;; left or right) recorded in CACHE (default `c-state-cache') or nil.
 +  (let ((cash (or cache 'c-state-cache)))
 +    `(if (consp (car ,cash))
 +       (cdar ,cash)
 +       (and (car ,cash)
 +          (1+ (car ,cash))))))
 +
 +(defun c-get-cache-scan-pos (here)
 +  ;; From the state-cache, determine the buffer position from which we might
 +  ;; scan forward to HERE to update this cache.  This position will be just
 +  ;; after a paren/brace/bracket recorded in the cache, if possible, otherwise
 +  ;; return the earliest position in the accessible region which isn't within
 +  ;; a literal.  If the visible portion of the buffer is entirely within a
 +  ;; literal, return NIL.
 +  (let ((c c-state-cache) elt)
 +    ;(while (>= (or (c-state-cache-top-lparen c) 1) here)
 +    (while (and c
 +              (>= (c-state-cache-top-lparen c) here))
 +      (setq c (cdr c)))
 +
 +    (setq elt (car c))
 +    (cond
 +     ((consp elt)
 +      (if (> (cdr elt) here)
 +        (1+ (car elt))
 +      (cdr elt)))
 +     (elt (1+ elt))
 +     ((<= (c-state-get-min-scan-pos) here)
 +      (c-state-get-min-scan-pos))
 +     (t nil))))
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Variables which keep track of preprocessor constructs.
 +(defvar c-state-old-cpp-beg nil)
 +(make-variable-buffer-local 'c-state-old-cpp-beg)
 +(defvar c-state-old-cpp-end nil)
 +(make-variable-buffer-local 'c-state-old-cpp-end)
 +;; These are the limits of the macro containing point at the previous call of
 +;; `c-parse-state', or nil.
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Defuns which analyse the buffer, yet don't change `c-state-cache'.
 +(defun c-get-fallback-scan-pos (here)
 +  ;; Return a start position for building `c-state-cache' from
 +  ;; scratch.  This will be at the top level, 2 defuns back.
    (save-excursion
      ;; Go back 2 bods, but ignore any bogus positions returned by
      ;; beginning-of-defun (i.e. open paren in column zero).
      (goto-char here)
      (let ((cnt 2))
        (while (not (or (bobp) (zerop cnt)))
 -      (c-beginning-of-defun-1)
 +      (c-beginning-of-defun-1)        ; Pure elisp BOD.
        (if (eq (char-after) ?\{)
            (setq cnt (1- cnt)))))
      (point)))
  
 -(defun c-parse-state ()
 -  ;; Find and record all noteworthy parens between some good point
 -  ;; earlier in the file and point.  That good point is at least the
 -  ;; beginning of the top-level construct we are in, or the beginning
 -  ;; of the preceding top-level construct if we aren't in one.
 -  ;;
 -  ;; The returned value is a list of the noteworthy parens with the
 -  ;; last one first.  If an element in the list is an integer, it's
 -  ;; the position of an open paren which has not been closed before
 -  ;; the point.  If an element is a cons, it gives the position of a
 -  ;; closed brace paren pair; the car is the start paren position and
 -  ;; the cdr is the position following the closing paren.  Only the
 -  ;; last closed brace paren pair before each open paren and before
 -  ;; the point is recorded, and thus the state never contains two cons
 -  ;; elements in succession.
 +(defun c-state-balance-parens-backwards (here- here+ top)
 +  ;; Return the position of the opening paren/brace/bracket before HERE- which
 +  ;; matches the outermost close p/b/b between HERE+ and TOP.  Except when
 +  ;; there's a macro, HERE- and HERE+ are the same.  Like this:
 +  ;;
 +  ;;    ............................................
 +  ;;    |                                          |
 +  ;;    (    [ ( .........#macro.. )      ( )  ]  )
 +  ;;    ^                 ^     ^                         ^
 +  ;;    |                 |     |                         |
 +  ;;   return           HERE- HERE+                      TOP
 +  ;;
 +  ;; If there aren't enough opening paren/brace/brackets, return the position
 +  ;; of the outermost one found, or HERE- if there are none.  If there are no
 +  ;; closeing p/b/bs between HERE+ and TOP, return HERE-.  HERE-/+ and TOP
 +  ;; must not be inside literals.  Only the accessible portion of the buffer
 +  ;; will be scanned.
 +
 +  ;; PART 1: scan from `here+' up to `top', accumulating ")"s which enclose
 +  ;; `here'.  Go round the next loop each time we pass over such a ")".        These
 +  ;; probably match "("s before `here-'.
 +  (let (pos pa ren+1 lonely-rens)
 +    (save-excursion
 +      (save-restriction
 +      (narrow-to-region (point-min) top) ; This can move point, sometimes.
 +      (setq pos here+)
 +      (c-safe
 +        (while
 +            (setq ren+1 (scan-lists pos 1 1)) ; might signal
 +          (setq lonely-rens (cons ren+1 lonely-rens)
 +                pos ren+1)))))
 +
 +      ;; PART 2: Scan back before `here-' searching for the "("s
 +      ;; matching/mismatching the ")"s found above. We only need to direct the
 +      ;; caller to scan when we've encountered unmatched right parens.
 +    (setq pos here-)
 +    (when lonely-rens
 +      (c-safe
 +      (while
 +          (and lonely-rens            ; actual values aren't used.
 +               (setq pa (scan-lists pos -1 1)))
 +        (setq pos pa)
 +        (setq lonely-rens (cdr lonely-rens)))))
 +    pos))
 +
 +(defun c-parse-state-get-strategy (here good-pos)
 +  ;; Determine the scanning strategy for adjusting `c-parse-state', attempting
 +  ;; to minimise the amount of scanning.  HERE is the pertinent position in
 +  ;; the buffer, GOOD-POS is a position where `c-state-cache' (possibly with
 +  ;; its head trimmed) is known to be good, or nil if there is no such
 +  ;; position.
 +  ;;
 +  ;; The return value is a list, one of the following:
 +  ;;
 +  ;; o - ('forward CACHE-POS START-POINT) - scan forward from START-POINT,
 +  ;;                                        which is not less than CACHE-POS.
 +  ;; o - ('backward CACHE-POS nil) - scan backwards (from HERE).
 +  ;; o - ('BOD nil START-POINT) - scan forwards from START-POINT, which is at the
 +  ;;   top level.
 +  ;; o - ('IN-LIT nil nil) - point is inside the literal containing point-min.
 +  ;; , where CACHE-POS is the highest position recorded in `c-state-cache' at
 +  ;; or below HERE.
 +  (let ((cache-pos (c-get-cache-scan-pos here))       ; highest position below HERE in cache (or 1)
 +      BOD-pos             ; position of 2nd BOD before HERE.
 +      strategy            ; 'forward, 'backward, 'BOD, or 'IN-LIT.
 +      start-point
 +      how-far)                        ; putative scanning distance.
 +    (setq good-pos (or good-pos (c-state-get-min-scan-pos)))
 +    (cond
 +     ((< here (c-state-get-min-scan-pos))
 +      (setq strategy 'IN-LIT
 +          start-point nil
 +          cache-pos nil
 +          how-far 0))
 +     ((<= good-pos here)
 +      (setq strategy 'forward
 +          start-point (max good-pos cache-pos)
 +          how-far (- here start-point)))
 +     ((< (- good-pos here) (- here cache-pos)) ; FIXME!!! ; apply some sort of weighting.
 +      (setq strategy 'backward
 +          how-far (- good-pos here)))
 +     (t
 +      (setq strategy 'forward
 +            how-far (- here cache-pos)
 +            start-point cache-pos)))
 +
 +    ;; Might we be better off starting from the top level, two defuns back,
 +    ;; instead?
 +    (when (> how-far c-state-cache-too-far)
 +      (setq BOD-pos (c-get-fallback-scan-pos here)) ; somewhat EXPENSIVE!!!
 +      (if (< (- here BOD-pos) how-far)
 +        (setq strategy 'BOD
 +              start-point BOD-pos)))
 +
 +    (list
 +     strategy
 +     (and (memq strategy '(forward backward)) cache-pos)
 +     (and (memq strategy '(forward BOD)) start-point))))
 +
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Routines which change `c-state-cache' and associated values.
 +(defun c-renarrow-state-cache ()
 +  ;; The region (more precisely, point-min) has changed since we
 +  ;; calculated `c-state-cache'.  Amend `c-state-cache' accordingly.
 +  (if (< (point-min) c-state-point-min)
 +      ;; If point-min has MOVED BACKWARDS then we drop the state completely.
 +      ;; It would be possible to do a better job here and recalculate the top
 +      ;; only.
 +      (progn
 +      (c-state-mark-point-min-literal)
 +      (setq c-state-cache nil
 +            c-state-cache-good-pos c-state-min-scan-pos
 +            c-state-brace-pair-desert nil))
 +
 +    ;; point-min has MOVED FORWARD.
 +
 +    ;; Is the new point-min inside a (different) literal?
 +    (unless (and c-state-point-min-lit-start ; at prev. point-min
 +               (< (point-min) (c-state-get-min-scan-pos)))
 +      (c-state-mark-point-min-literal))
 +
 +    ;; Cut off a bit of the tail from `c-state-cache'.
 +    (let ((ptr (cons nil c-state-cache))
 +        pa)
 +      (while (and (setq pa (c-state-cache-top-lparen (cdr ptr)))
 +                (>= pa (point-min)))
 +      (setq ptr (cdr ptr)))
 +
 +      (when (consp ptr)
 +      (if (eq (cdr ptr) c-state-cache)
 +          (setq c-state-cache nil
 +                c-state-cache-good-pos c-state-min-scan-pos)
 +        (setcdr ptr nil)
 +        (setq c-state-cache-good-pos (1+ (c-state-cache-top-lparen))))
 +      )))
 +
 +  (setq c-state-point-min (point-min)))
 +
 +(defun c-append-lower-brace-pair-to-state-cache (from &optional upper-lim)
 +  ;; If there is a brace pair preceding FROM in the buffer (not necessarily
 +  ;; immediately preceding), push a cons onto `c-state-cache' to represent it.
 +  ;; FROM must not be inside a literal.  If UPPER-LIM is non-nil, we append
 +  ;; the highest brace pair whose "}" is below UPPER-LIM.
 +  ;;
 +  ;; Return non-nil when this has been done.
 +  ;;
 +  ;; This routine should be fast.  Since it can get called a LOT, we maintain
 +  ;; `c-state-brace-pair-desert', a small cache of "failures", such that we
 +  ;; reduce the time wasted in repeated fruitless searches in brace deserts.
 +  (save-excursion
 +    (save-restriction
 +      (let ((bra from) ce             ; Positions of "{" and "}".
 +          new-cons
 +          (cache-pos (c-state-cache-top-lparen)) ; might be nil.
 +          (macro-start-or-from
 +           (progn (goto-char from)
 +                  (c-beginning-of-macro)
 +                  (point))))
 +      (or upper-lim (setq upper-lim from))
 +
 +      ;; If we're essentially repeating a fruitless search, just give up.
 +      (unless (and c-state-brace-pair-desert
 +                   (eq cache-pos (car c-state-brace-pair-desert))
 +                   (<= from (cdr c-state-brace-pair-desert)))
 +        ;; Only search what we absolutely need to:
 +        (if (and c-state-brace-pair-desert
 +                 (> from (cdr c-state-brace-pair-desert)))
 +            (narrow-to-region (cdr c-state-brace-pair-desert) (point-max)))
 +
 +        ;; In the next pair of nested loops, the inner one moves back past a
 +        ;; pair of (mis-)matching parens or brackets; the outer one moves
 +        ;; back over a sequence of unmatched close brace/paren/bracket each
 +        ;; time round.
 +        (while
 +            (progn
 +              (c-safe
 +                (while
 +                    (and (setq ce (scan-lists bra -1 -1)) ; back past )/]/}; might signal
 +                         (setq bra (scan-lists ce -1 1)) ; back past (/[/{; might signal
 +                         (or (> ce upper-lim)
 +                             (not (eq (char-after bra) ?\{))
 +                             (and (goto-char bra)
 +                                  (c-beginning-of-macro)
 +                                  (< (point) macro-start-or-from))))))
 +              (and ce (< ce bra)))
 +          (setq bra ce))      ; If we just backed over an unbalanced closing
 +                                      ; brace, ignore it.
 +
 +        (if (and ce (< bra ce) (eq (char-after bra) ?\{))
 +            ;; We've found the desired brace-pair.
 +            (progn
 +              (setq new-cons (cons bra (1+ ce)))
 +              (cond
 +               ((consp (car c-state-cache))
 +                (setcar c-state-cache new-cons))
 +               ((and (numberp (car c-state-cache)) ; probably never happens
 +                     (< ce (car c-state-cache)))
 +                (setcdr c-state-cache
 +                        (cons new-cons (cdr c-state-cache))))
 +               (t (setq c-state-cache (cons new-cons c-state-cache)))))
 +
 +          ;; We haven't found a brace pair.  Record this.
 +          (setq c-state-brace-pair-desert (cons cache-pos from))))))))
 +
 +(defsubst c-state-push-any-brace-pair (bra+1 macro-start-or-here)
 +  ;; If BRA+1 is nil, do nothing.  Otherwise, BRA+1 is the buffer position
 +  ;; following a {, and that brace has a (mis-)matching } (or ]), and we
 +  ;; "push" "a" brace pair onto `c-state-cache'.
 +  ;;
 +  ;; Here "push" means overwrite the top element if it's itself a brace-pair,
 +  ;; otherwise push it normally.
 +  ;;
 +  ;; The brace pair we push is normally the one surrounding BRA+1, but if the
 +  ;; latter is inside a macro, not being a macro containing
 +  ;; MACRO-START-OR-HERE, we scan backwards through the buffer for a non-macro
 +  ;; base pair.  This latter case is assumed to be rare.
 +  ;;
 +  ;; Note: POINT is not preserved in this routine.
 +  (if bra+1
 +      (if (or (> bra+1 macro-start-or-here)
 +            (progn (goto-char bra+1)
 +                   (not (c-beginning-of-macro))))
 +        (setq c-state-cache
 +              (cons (cons (1- bra+1)
 +                          (scan-lists bra+1 1 1))
 +                    (if (consp (car c-state-cache))
 +                        (cdr c-state-cache)
 +                      c-state-cache)))
 +      ;; N.B.  This defsubst codes one method for the simple, normal case,
 +      ;; and a more sophisticated, slower way for the general case.  Don't
 +      ;; eliminate this defsubst - it's a speed optimisation.
 +      (c-append-lower-brace-pair-to-state-cache (1- bra+1)))))
 +
 +(defun c-append-to-state-cache (from)
 +  ;; Scan the buffer from FROM to (point-max), adding elements into
 +  ;; `c-state-cache' for braces etc.  Return a candidate for
 +  ;; `c-state-cache-good-pos'.
 +  ;;
 +  ;; FROM must be after the latest brace/paren/bracket in `c-state-cache', if
 +  ;; any.  Typically, it is immediately after it.  It must not be inside a
 +  ;; literal.
 +  (let ((here-bol (c-point 'bol (point-max)))
 +      (macro-start-or-here
 +       (save-excursion (goto-char (point-max))
 +                       (if (c-beginning-of-macro)
 +                           (point)
 +                         (point-max))))
 +      pa+1                  ; pos just after an opening PAren (or brace).
 +      (ren+1 from)          ; usually a pos just after an closing paREN etc.
 +                            ; Is actually the pos. to scan for a (/{/[ from,
 +                            ; which sometimes is after a silly )/}/].
 +      paren+1               ; Pos after some opening or closing paren.
 +      paren+1s              ; A list of `paren+1's; used to determine a
 +                            ; good-pos.
 +      bra+1 ce+1            ; just after L/R bra-ces.
 +      bra+1s                ; list of OLD values of bra+1.
 +      mstart)               ; start of a macro.
 +
 +    (save-excursion
 +      ;; Each time round the following loop, we enter a succesively deeper
 +      ;; level of brace/paren nesting.  (Except sometimes we "continue at
 +      ;; the existing level".)  `pa+1' is a pos inside an opening
 +      ;; brace/paren/bracket, usually just after it.
 +      (while
 +        (progn
 +          ;; Each time round the next loop moves forward over an opening then
 +          ;; a closing brace/bracket/paren.  This loop is white hot, so it
 +          ;; plays ugly tricks to go fast.  DON'T PUT ANYTHING INTO THIS
 +          ;; LOOP WHICH ISN'T ABSOLUTELY NECESSARY!!!  It terminates when a
 +          ;; call of `scan-lists' signals an error, which happens when there
 +          ;; are no more b/b/p's to scan.
 +          (c-safe
 +            (while t
 +              (setq pa+1 (scan-lists ren+1 1 -1) ; Into (/{/[; might signal
 +                    paren+1s (cons pa+1 paren+1s))
 +              (setq ren+1 (scan-lists pa+1 1 1)) ; Out of )/}/]; might signal
 +              (if (and (eq (char-before pa+1) ?{)) ; Check for a macro later.
 +                  (setq bra+1 pa+1))
 +              (setcar paren+1s ren+1)))
 +
 +          (if (and pa+1 (> pa+1 ren+1))
 +              ;; We've just entered a deeper nesting level.
 +              (progn
 +                ;; Insert the brace pair (if present) and the single open
 +                ;; paren/brace/bracket into `c-state-cache' It cannot be
 +                ;; inside a macro, except one around point, because of what
 +                ;; `c-neutralize-syntax-in-CPP' has done.
 +                (c-state-push-any-brace-pair bra+1 macro-start-or-here)
 +                ;; Insert the opening brace/bracket/paren position.
 +                (setq c-state-cache (cons (1- pa+1) c-state-cache))
 +                ;; Clear admin stuff for the next more nested part of the scan.
 +                (setq ren+1 pa+1  pa+1 nil  bra+1 nil  bra+1s nil)
 +                t)                    ; Carry on the loop
 +
 +            ;; All open p/b/b's at this nesting level, if any, have probably
 +            ;; been closed by matching/mismatching ones.  We're probably
 +            ;; finished - we just need to check for having found an
 +            ;; unmatched )/}/], which we ignore.  Such a )/}/] can't be in a
 +            ;; macro, due the action of `c-neutralize-syntax-in-CPP'.
 +            (c-safe (setq ren+1 (scan-lists ren+1 1 1)))))) ; acts as loop control.
 +
 +      ;; Record the final, innermost, brace-pair if there is one.
 +      (c-state-push-any-brace-pair bra+1 macro-start-or-here)
 +
 +      ;; Determine a good pos
 +      (while (and (setq paren+1 (car paren+1s))
 +                (> (if (> paren+1 macro-start-or-here)
 +                       paren+1
 +                     (goto-char paren+1)
 +                     (setq mstart (and (c-beginning-of-macro)
 +                                       (point)))
 +                     (or mstart paren+1))
 +                   here-bol))
 +      (setq paren+1s (cdr paren+1s)))
 +      (cond
 +       ((and paren+1 mstart)
 +      (min paren+1 mstart))
 +       (paren+1)
 +       (t from)))))
 +
 +(defun c-remove-stale-state-cache (good-pos pps-point)
 +  ;; Remove stale entries from the `c-cache-state', i.e. those which will
 +  ;; not be in it when it is amended for position (point-max).
 +  ;; Additionally, the "outermost" open-brace entry before (point-max)
 +  ;; will be converted to a cons if the matching close-brace is scanned.
 +  ;;
 +  ;; GOOD-POS is a "maximal" "safe position" - there must be no open
 +  ;; parens/braces/brackets between GOOD-POS and (point-max).
 +  ;;
 +  ;; As a second thing, calculate the result of parse-partial-sexp at
 +  ;; PPS-POINT, w.r.t. GOOD-POS.  The motivation here is that
 +  ;; `c-state-cache-good-pos' may become PPS-POINT, but the caller may need to
 +  ;; adjust it to get outside a string/comment.  (Sorry about this!  The code
 +  ;; needs to be FAST).
 +  ;;
 +  ;; Return a list (GOOD-POS SCAN-BACK-POS PPS-STATE), where
 +  ;; o - GOOD-POS is a position where the new value `c-state-cache' is known
 +  ;;   to be good (we aim for this to be as high as possible);
 +  ;; o - SCAN-BACK-POS, if not nil, indicates there may be a brace pair
 +  ;;   preceding POS which needs to be recorded in `c-state-cache'.  It is a
 +  ;;   position to scan backwards from.
 +  ;; o - PPS-STATE is the parse-partial-sexp state at PPS-POINT.
 +  (save-restriction
 +    (narrow-to-region 1 (point-max))
 +    (save-excursion
 +      (let* ((in-macro-start   ; start of macro containing (point-max) or nil.
 +            (save-excursion
 +              (goto-char (point-max))
 +              (and (c-beginning-of-macro)
 +                   (point))))
 +           (good-pos-actual-macro-start ; Start of macro containing good-pos
 +                                      ; or nil
 +            (and (< good-pos (point-max))
 +                 (save-excursion
 +                   (goto-char good-pos)
 +                   (and (c-beginning-of-macro)
 +                        (point)))))
 +           (good-pos-actual-macro-end ; End of this macro, (maybe
 +                                      ; (point-max)), or nil.
 +            (and good-pos-actual-macro-start
 +                 (save-excursion
 +                   (goto-char good-pos-actual-macro-start)
 +                   (c-end-of-macro)
 +                   (point))))
 +           pps-state                  ; Will be 9 or 10 elements long.
 +           pos
 +           upper-lim     ; ,beyond which `c-state-cache' entries are removed
 +           scan-back-pos
 +           pair-beg pps-point-state target-depth)
 +
 +      ;; Remove entries beyond (point-max).  Also remove any entries inside
 +      ;; a macro, unless (point-max) is in the same macro.
 +      (setq upper-lim
 +            (if (or (null c-state-old-cpp-beg)
 +                    (and (> (point-max) c-state-old-cpp-beg)
 +                         (< (point-max) c-state-old-cpp-end)))
 +                (point-max)
 +              (min (point-max) c-state-old-cpp-beg)))
 +      (while (and c-state-cache (>= (c-state-cache-top-lparen) upper-lim))
 +        (setq c-state-cache (cdr c-state-cache)))
 +      ;; If `upper-lim' is inside the last recorded brace pair, remove its
 +      ;; RBrace and indicate we'll need to search backwards for a previous
 +      ;; brace pair.
 +      (when (and c-state-cache
 +                 (consp (car c-state-cache))
 +                 (> (cdar c-state-cache) upper-lim))
 +        (setcar c-state-cache (caar c-state-cache))
 +        (setq scan-back-pos (car c-state-cache)))
 +
 +      ;; The next loop jumps forward out of a nested level of parens each
 +      ;; time round; the corresponding elements in `c-state-cache' are
 +      ;; removed.  `pos' is just after the brace-pair or the open paren at
 +      ;; (car c-state-cache).  There can be no open parens/braces/brackets
 +      ;; between `good-pos'/`good-pos-actual-macro-start' and (point-max),
 +      ;; due to the interface spec to this function.
 +      (setq pos (if (and good-pos-actual-macro-end
 +                         (not (eq good-pos-actual-macro-start
 +                                  in-macro-start)))
 +                    (1+ good-pos-actual-macro-end) ; get outside the macro as
 +                                      ; marked by a `category' text property.
 +                  good-pos))
 +      (goto-char pos)
 +      (while (and c-state-cache
 +                  (< (point) (point-max)))
 +        (cond
 +         ((null pps-state)            ; first time through
 +          (setq target-depth -1))
 +         ((eq (car pps-state) target-depth) ; found closing ),},]
 +          (setq target-depth (1- (car pps-state))))
 +         ;; Do nothing when we've merely reached pps-point.
 +         )
 +
 +        ;; Scan!
 +        (setq pps-state
 +              (parse-partial-sexp
 +               (point) (if (< (point) pps-point) pps-point (point-max))
 +               target-depth
 +               nil pps-state))
 +
 +        (if (= (point) pps-point)
 +            (setq pps-point-state pps-state))
 +
 +        (when (eq (car pps-state) target-depth)
 +          (setq pos (point))       ; POS is now just after an R-paren/brace.
 +          (cond
 +           ((and (consp (car c-state-cache))
 +                 (eq (point) (cdar c-state-cache)))
 +              ;; We've just moved out of the paren pair containing the brace-pair
 +              ;; at (car c-state-cache).  `pair-beg' is where the open paren is,
 +              ;; and is potentially where the open brace of a cons in
 +              ;; c-state-cache will be.
 +            (setq pair-beg (car-safe (cdr c-state-cache))
 +                  c-state-cache (cdr-safe (cdr c-state-cache)))) ; remove {}pair + containing Lparen.
 +           ((numberp (car c-state-cache))
 +            (setq pair-beg (car c-state-cache)
 +                  c-state-cache (cdr c-state-cache))) ; remove this
 +                                      ; containing Lparen
 +           ((numberp (cadr c-state-cache))
 +            (setq pair-beg (cadr c-state-cache)
 +                  c-state-cache (cddr c-state-cache))) ; Remove a paren pair
 +                                      ; together with enclosed brace pair.
 +           ;; (t nil)                 ; Ignore an unmated Rparen.
 +           )))
 +
 +      (if (< (point) pps-point)
 +          (setq pps-state (parse-partial-sexp (point) pps-point
 +                                              nil nil ; TARGETDEPTH, STOPBEFORE
 +                                              pps-state)))
 +
 +      ;; If the last paren pair we moved out of was actually a brace pair,
 +      ;; insert it into `c-state-cache'.
 +      (when (and pair-beg (eq (char-after pair-beg) ?{))
 +        (if (consp (car-safe c-state-cache))
 +            (setq c-state-cache (cdr c-state-cache)))
 +        (setq c-state-cache (cons (cons pair-beg pos)
 +                                  c-state-cache)))
 +
 +      (list pos scan-back-pos pps-state)))))
 +
 +(defun c-remove-stale-state-cache-backwards (here cache-pos)
 +  ;; Strip stale elements of `c-state-cache' by moving backwards through the
 +  ;; buffer, and inform the caller of the scenario detected.
 +  ;;
 +  ;; HERE is the position we're setting `c-state-cache' for.
 +  ;; CACHE-POS is just after the latest recorded position in `c-state-cache'
 +  ;;   before HERE, or a position at or near point-min which isn't in a
 +  ;;   literal.
 +  ;;
 +  ;; This function must only be called only when (> `c-state-cache-good-pos'
 +  ;; HERE).  Usually the gap between CACHE-POS and HERE is large.  It is thus
 +  ;; optimised to eliminate (or minimise) scanning between these two
 +  ;; positions.
 +  ;;
 +  ;; Return a three element list (GOOD-POS SCAN-BACK-POS FWD-FLAG), where:
 +  ;; o - GOOD-POS is a "good position", where `c-state-cache' is valid, or
 +  ;;   could become so after missing elements are inserted into
 +  ;;   `c-state-cache'.  This is JUST AFTER an opening or closing
 +  ;;   brace/paren/bracket which is already in `c-state-cache' or just before
 +  ;;   one otherwise.  exceptionally (when there's no such b/p/b handy) the BOL
 +  ;;   before `here''s line, or the start of the literal containing it.
 +  ;; o - SCAN-BACK-POS, if non-nil, indicates there may be a brace pair
 +  ;;   preceding POS which isn't recorded in `c-state-cache'.  It is a position
 +  ;;   to scan backwards from.
 +  ;; o - FWD-FLAG, if non-nil, indicates there may be parens/braces between
 +  ;;   POS and HERE which aren't recorded in `c-state-cache'.
 +  ;;
 +  ;; The comments in this defun use "paren" to mean parenthesis or square
 +  ;; bracket (as contrasted with a brace), and "(" and ")" likewise.
 +  ;;
 +  ;;    .   {..} (..) (..)  ( .. {   }  ) (...)    ( ....          .  ..)
 +  ;;    |                   |       |   |     |                    |
 +  ;;    CP                  E      here D     C                   good
 +  (let ((pos c-state-cache-good-pos)
 +      pa ren         ; positions of "(" and ")"
 +      dropped-cons ; whether the last element dropped from `c-state-cache'
 +                   ; was a cons (representing a brace-pair)
 +      good-pos                        ; see above.
 +      lit         ; (START . END) of a literal containing some point.
 +      here-lit-start here-lit-end     ; bounds of literal containing `here'
 +                                      ; or `here' itself.
 +      here- here+                  ; start/end of macro around HERE, or HERE
 +      (here-bol (c-point 'bol here))
 +      (too-far-back (max (- here c-state-cache-too-far) 1)))
 +
 +    ;; Remove completely irrelevant entries from `c-state-cache'.
 +    (while (and c-state-cache
 +              (>= (setq pa (c-state-cache-top-lparen)) here))
 +      (setq dropped-cons (consp (car c-state-cache)))
 +      (setq c-state-cache (cdr c-state-cache))
 +      (setq pos pa))
 +    ;; At this stage, (> pos here);
 +    ;; (< (c-state-cache-top-lparen) here)  (or is nil).
 +
 +    (cond
 +     ((and (consp (car c-state-cache))
 +         (> (cdar c-state-cache) here))
 +      ;; CASE 1: The top of the cache is a brace pair which now encloses
 +      ;; `here'.  As good-pos, return the address. of the "{".  Since we've no
 +      ;; knowledge of what's inside these braces, we have no alternative but
 +      ;; to direct the caller to scan the buffer from the opening brace.
 +      (setq pos (caar c-state-cache))
 +      (setcar c-state-cache pos)
 +      (list (1+ pos) pos t)) ; return value.  We've just converted a brace pair
 +                           ; entry into a { entry, so the caller needs to
 +                           ; search for a brace pair before the {.
 +
 +     ;; `here' might be inside a literal.  Check for this.
 +     ((progn
 +      (setq lit (c-state-literal-at here)
 +            here-lit-start (or (car lit) here)
 +            here-lit-end (or (cdr lit) here))
 +      ;; Has `here' just "newly entered" a macro?
 +      (save-excursion
 +        (goto-char here-lit-start)
 +        (if (and (c-beginning-of-macro)
 +                 (or (null c-state-old-cpp-beg)
 +                     (not (= (point) c-state-old-cpp-beg))))
 +            (progn
 +              (setq here- (point))
 +              (c-end-of-macro)
 +              (setq here+ (point)))
 +          (setq here- here-lit-start
 +                here+ here-lit-end)))
 +
 +      ;; `here' might be nested inside any depth of parens (or brackets but
 +      ;; not braces).  Scan backwards to find the outermost such opening
 +      ;; paren, if there is one.  This will be the scan position to return.
 +      (save-restriction
 +        (narrow-to-region cache-pos (point-max))
 +        (setq pos (c-state-balance-parens-backwards here- here+ pos)))
 +      nil))                           ; for the cond
 +
 +     ((< pos here-lit-start)
 +      ;; CASE 2: Address of outermost ( or [ which now encloses `here', but
 +      ;; didn't enclose the (previous) `c-state-cache-good-pos'.  If there is
 +      ;; a brace pair preceding this, it will already be in `c-state-cache',
 +      ;; unless there was a brace pair after it, i.e. there'll only be one to
 +      ;; scan for if we've just deleted one.
 +      (list pos (and dropped-cons pos) t)) ; Return value.
 +
 +      ;; `here' isn't enclosed in a (previously unrecorded) bracket/paren.
 +      ;; Further forward scanning isn't needed, but we still need to find a
 +      ;; GOOD-POS.  Step out of all enclosing "("s on HERE's line.
 +     ((progn
 +      (save-restriction
 +        (narrow-to-region here-bol (point-max))
 +        (setq pos here-lit-start)
 +        (c-safe (while (setq pa (scan-lists pos -1 1))
 +                  (setq pos pa))))    ; might signal
 +      nil))                           ; for the cond
 +
 +     ((setq ren (c-safe-scan-lists pos -1 -1 too-far-back))
 +       ;; CASE 3: After a }/)/] before `here''s BOL.
 +      (list (1+ ren) (and dropped-cons pos) nil)) ; Return value
 +
 +     (t
 +      ;; CASE 4; Best of a bad job: BOL before `here-bol', or beginning of
 +      ;; literal containing it.
 +      (setq good-pos (c-state-lit-beg (c-point 'bopl here-bol)))
 +      (list good-pos (and dropped-cons good-pos) nil)))))
 +
 +
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +;; Externally visible routines.
 +
 +(defun c-state-cache-init ()
 +  (setq c-state-cache nil
 +      c-state-cache-good-pos 1
 +      c-state-nonlit-pos-cache nil
 +      c-state-nonlit-pos-cache-limit 1
 +      c-state-brace-pair-desert nil
 +      c-state-point-min 1
 +      c-state-point-min-lit-type nil
 +      c-state-point-min-lit-start nil
 +      c-state-min-scan-pos 1
 +      c-state-old-cpp-beg nil
 +      c-state-old-cpp-end nil)
 +  (c-state-mark-point-min-literal))
 +
 +(defun c-invalidate-state-cache-1 (here)
 +  ;; Invalidate all info on `c-state-cache' that applies to the buffer at HERE
 +  ;; or higher and set `c-state-cache-good-pos' accordingly.  The cache is
 +  ;; left in a consistent state.
 +  ;;
 +  ;; This is much like `c-whack-state-after', but it never changes a paren
 +  ;; pair element into an open paren element.  Doing that would mean that the
 +  ;; new open paren wouldn't have the required preceding paren pair element.
 +  ;;
 +  ;; This function is called from c-after-change.
 +
 +  ;; The cache of non-literals:
 +  (if (< here c-state-nonlit-pos-cache-limit)
 +      (setq c-state-nonlit-pos-cache-limit here))
 +
 +  ;; `c-state-cache':
 +  ;; Case 1: if `here' is in a literal containing point-min, everything
 +  ;; becomes (or is already) nil.
 +  (if (or (null c-state-cache-good-pos)
 +        (< here (c-state-get-min-scan-pos)))
 +      (setq c-state-cache nil
 +          c-state-cache-good-pos nil
 +          c-state-min-scan-pos nil)
 +
 +;;; Truncate `c-state-cache' and set `c-state-cache-good-pos' to a value below
 +;;; `here'.  To maintain its consistency, we may need to insert a new brace
 +;;; pair.
 +    (let ((here-bol (c-point 'bol here))
 +        too-high-pa             ; recorded {/(/[ next above here, or nil.
 +        dropped-cons            ; was the last removed element a brace pair?
 +        pa)
 +      ;; The easy bit - knock over-the-top bits off `c-state-cache'.
 +      (while (and c-state-cache
 +                (>= (setq pa (c-state-cache-top-paren)) here))
 +      (setq dropped-cons (consp (car c-state-cache))
 +            too-high-pa (c-state-cache-top-lparen)
 +            c-state-cache (cdr c-state-cache)))
 +
 +      ;; Do we need to add in an earlier brace pair, having lopped one off?
 +      (if (and dropped-cons
 +             (< too-high-pa (+ here c-state-cache-too-far)))
 +        (c-append-lower-brace-pair-to-state-cache too-high-pa here-bol))
 +      (setq c-state-cache-good-pos (or (c-state-cache-after-top-paren)
 +                                     (c-state-get-min-scan-pos)))))
 +
 +  ;; The brace-pair desert marker:
 +  (when (car c-state-brace-pair-desert)
 +    (if (< here (car c-state-brace-pair-desert))
 +      (setq c-state-brace-pair-desert nil)
 +      (if (< here (cdr c-state-brace-pair-desert))
 +        (setcdr c-state-brace-pair-desert here)))))
 +
 +(defun c-parse-state-1 ()
 +  ;; Find and record all noteworthy parens between some good point earlier in
 +  ;; the file and point.  That good point is at least the beginning of the
 +  ;; top-level construct we are in, or the beginning of the preceding
 +  ;; top-level construct if we aren't in one.
 +  ;;
 +  ;; The returned value is a list of the noteworthy parens with the last one
 +  ;; first.  If an element in the list is an integer, it's the position of an
 +  ;; open paren (of any type) which has not been closed before the point.  If
 +  ;; an element is a cons, it gives the position of a closed BRACE paren
 +  ;; pair[*]; the car is the start brace position and the cdr is the position
 +  ;; following the closing brace.  Only the last closed brace paren pair
 +  ;; before each open paren and before the point is recorded, and thus the
 +  ;; state never contains two cons elements in succession.  When a close brace
 +  ;; has no matching open brace (e.g., the matching brace is outside the
 +  ;; visible region), it is not represented in the returned value.
 +  ;;
 +  ;; [*] N.B. The close "brace" might be a mismatching close bracket or paren.
 +  ;; This defun explicitly treats mismatching parens/braces/brackets as
 +  ;; matching.  It is the open brace which makes it a "brace" pair.
 +  ;;
 +  ;; If POINT is within a macro, open parens and brace pairs within
 +  ;; THIS macro MIGHT be recorded.  This depends on whether their
 +  ;; syntactic properties have been suppressed by
 +  ;; `c-neutralize-syntax-in-CPP'.  This might need fixing (2008-12-11).
    ;;
    ;; Currently no characters which are given paren syntax with the
    ;; syntax-table property are recorded, i.e. angle bracket arglist
    ;; parens are never present here.  Note that this might change.
    ;;
    ;; BUG: This function doesn't cope entirely well with unbalanced
 -  ;; parens in macros.  E.g. in the following case the brace before
 -  ;; the macro isn't balanced with the one after it:
 +  ;; parens in macros.  (2008-12-11: this has probably been resolved
 +  ;; by the function `c-neutralize-syntax-in-CPP'.)  E.g. in the
 +  ;; following case the brace before the macro isn't balanced with the
 +  ;; one after it:
    ;;
    ;;     {
    ;;     #define X {
    ;;     }
    ;;
 +  ;; Note to maintainers: this function DOES get called with point
 +  ;; within comments and strings, so don't assume it doesn't!
 +  ;;
    ;; This function might do hidden buffer changes.
 +  (let* ((here (point))
 +       (here-bopl (c-point 'bopl))
 +       strategy            ; 'forward, 'backward etc..
 +       ;; Candidate positions to start scanning from:
 +       cache-pos           ; highest position below HERE already existing in
 +                           ; cache (or 1).
 +       good-pos
 +       start-point
 +       bopl-state
 +       res
 +       scan-backward-pos scan-forward-p) ; used for 'backward.
 +    ;; If POINT-MIN has changed, adjust the cache
 +    (unless (= (point-min) c-state-point-min)
 +      (c-renarrow-state-cache))
 +
 +    ;; Strategy?
 +    (setq res (c-parse-state-get-strategy here c-state-cache-good-pos)
 +        strategy (car res)
 +        cache-pos (cadr res)
 +        start-point (nth 2 res))
 +
 +    (when (eq strategy 'BOD)
 +      (setq c-state-cache nil
 +          c-state-cache-good-pos start-point))
 +
 +    ;; SCAN!
 +    (save-restriction
 +      (cond
 +       ((memq strategy '(forward BOD))
 +      (narrow-to-region (point-min) here)
 +      (setq res (c-remove-stale-state-cache start-point here-bopl))
 +      (setq cache-pos (car res)
 +            scan-backward-pos (cadr res)
 +            bopl-state (car (cddr res))) ; will be nil if (< here-bopl
 +                                      ; start-point)
 +      (if scan-backward-pos
 +          (c-append-lower-brace-pair-to-state-cache scan-backward-pos))
 +      (setq good-pos
 +            (c-append-to-state-cache cache-pos))
 +      (setq c-state-cache-good-pos
 +            (if (and bopl-state
 +                     (< good-pos (- here c-state-cache-too-far)))
 +                (c-state-cache-non-literal-place here-bopl bopl-state)
 +              good-pos)))
 +
 +       ((eq strategy 'backward)
 +      (setq res (c-remove-stale-state-cache-backwards here cache-pos)
 +            good-pos (car res)
 +            scan-backward-pos (cadr res)
 +            scan-forward-p (car (cddr res)))
 +      (if scan-backward-pos
 +          (c-append-lower-brace-pair-to-state-cache
 +           scan-backward-pos))
 +      (setq c-state-cache-good-pos
 +            (if scan-forward-p
 +                (progn (narrow-to-region (point-min) here)
 +                       (c-append-to-state-cache good-pos))
 +
 +              (c-get-cache-scan-pos good-pos))))
 +
 +       (t ; (eq strategy 'IN-LIT)
 +      (setq c-state-cache nil
 +            c-state-cache-good-pos nil)))))
 +
 +  c-state-cache)
 +
 +(defun c-invalidate-state-cache (here)
 +  ;; This is a wrapper over `c-invalidate-state-cache-1'.
 +  ;;
 +  ;; It suppresses the syntactic effect of the < and > (template) brackets and
 +  ;; of all parens in preprocessor constructs, except for any such construct
 +  ;; containing point.  We can then call `c-invalidate-state-cache-1' without
 +  ;; worrying further about macros and template delimiters.
 +  (c-with-<->-as-parens-suppressed
 +   (if (and c-state-old-cpp-beg
 +          (< c-state-old-cpp-beg here))
 +       (c-with-all-but-one-cpps-commented-out
 +      c-state-old-cpp-beg
 +      (min c-state-old-cpp-end here)
 +      (c-invalidate-state-cache-1 here))
 +     (c-with-cpps-commented-out
 +      (c-invalidate-state-cache-1 here)))))
  
 -  (save-restriction
 -    (let* ((here (point))
 -         (here-bol (c-point 'bol))
 -         (c-macro-start (c-query-macro-start))
 -         (in-macro-start (or c-macro-start (point)))
 -         old-state last-pos brace-pair-open brace-pair-close
 -         pos save-pos)
 -      (c-invalidate-state-cache here)
 -
 -      ;; If the minimum position has changed due to narrowing then we
 -      ;; have to fix the tail of `c-state-cache' accordingly.
 -      (unless (= c-state-cache-start (point-min))
 -      (if (> (point-min) c-state-cache-start)
 -          ;; If point-min has moved forward then we just need to cut
 -          ;; off a bit of the tail.
 -          (let ((ptr (cons nil c-state-cache)) elem)
 -            (while (and (setq elem (car-safe (cdr ptr)))
 -                        (>= (if (consp elem) (car elem) elem)
 -                            (point-min)))
 -              (setq ptr (cdr ptr)))
 -            (when (consp ptr)
 -              (if (eq (cdr ptr) c-state-cache)
 -                  (setq c-state-cache nil
 -                        c-state-cache-good-pos 1)
 -                (setcdr ptr nil))))
 -        ;; If point-min has moved backward then we drop the state
 -        ;; completely.  It's possible to do a better job here and
 -        ;; recalculate the top only.
 -        (setq c-state-cache nil
 -              c-state-cache-good-pos 1))
 -      (setq c-state-cache-start (point-min)))
 -
 -      ;; Get the latest position we know are directly inside the
 -      ;; closest containing paren of the cached state.
 -      (setq last-pos (and c-state-cache
 -                        (if (consp (car c-state-cache))
 -                            (cdr (car c-state-cache))
 -                          (1+ (car c-state-cache)))))
 -      (if (or (not last-pos)
 -            (< last-pos c-state-cache-good-pos))
 -        (setq last-pos c-state-cache-good-pos)
 -      ;; Take the opportunity to move the cached good position
 -      ;; further down.
 -      (if (< last-pos here-bol)
 -          (setq c-state-cache-good-pos last-pos)))
 +(defun c-parse-state ()
 +  ;; This is a wrapper over `c-parse-state-1'.  See that function for a
 +  ;; description of the functionality and return value.
 +  ;;
 +  ;; It suppresses the syntactic effect of the < and > (template) brackets and
 +  ;; of all parens in preprocessor constructs, except for any such construct
 +  ;; containing point.  We can then call `c-parse-state-1' without worrying
 +  ;; further about macros and template delimiters.
 +  (let (here-cpp-beg here-cpp-end)
 +    (save-excursion
 +      (when (c-beginning-of-macro)
 +      (setq here-cpp-beg (point))
 +      (unless
 +          (> (setq here-cpp-end (c-syntactic-end-of-macro))
 +             here-cpp-beg)
 +        (setq here-cpp-beg nil  here-cpp-end nil))))
 +    ;; FIXME!!! Put in a `condition-case' here to protect the integrity of the
 +    ;; subsystem.
 +    (prog1
 +      (c-with-<->-as-parens-suppressed
 +       (if (and here-cpp-beg (> here-cpp-end here-cpp-beg))
 +           (c-with-all-but-one-cpps-commented-out
 +            here-cpp-beg here-cpp-end
 +            (c-parse-state-1))
 +         (c-with-cpps-commented-out
 +          (c-parse-state-1))))
 +      (setq c-state-old-cpp-beg (and here-cpp-beg (copy-marker here-cpp-beg t))
 +          c-state-old-cpp-end (and here-cpp-end (copy-marker here-cpp-end t)))
 +      )))
  
 -      ;; Check if `last-pos' is in a macro.  If it is, and we're not
 -      ;; in the same macro, we must discard everything on
 -      ;; `c-state-cache' that is inside the macro before using it.
 -      (save-excursion
 -      (goto-char last-pos)
 -      (when (and (c-beginning-of-macro)
 -                 (/= (point) in-macro-start))
 -        (c-invalidate-state-cache (point))
 -        ;; Set `last-pos' again just like above except that there's
 -        ;; no use looking at `c-state-cache-good-pos' here.
 -        (setq last-pos (if c-state-cache
 -                           (if (consp (car c-state-cache))
 -                               (cdr (car c-state-cache))
 -                             (1+ (car c-state-cache)))
 -                         1))))
 -
 -      ;; If we've moved very far from the last cached position then
 -      ;; it's probably better to redo it from scratch, otherwise we
 -      ;; might spend a lot of time searching from `last-pos' down to
 -      ;; here.
 -      (when (< last-pos (- here 20000))
 -      ;; First get the fallback start position.  If it turns out
 -      ;; that it's so far back that the cached state is closer then
 -      ;; we'll keep it afterall.
 -      (setq pos (c-get-fallback-start-pos here))
 -      (if (<= pos last-pos)
 -          (setq pos nil)
 -        (setq last-pos nil
 -              c-state-cache nil
 -              c-state-cache-good-pos 1)))
 -
 -      ;; Find the start position for the forward search.  (Can't
 -      ;; search in the backward direction since the point might be in
 -      ;; some kind of literal.)
 -
 -      (unless pos
 -      (setq old-state c-state-cache)
 -
 -      ;; There's a cached state with a containing paren.  Pop off
 -      ;; the stale containing sexps from it by going forward out of
 -      ;; parens as far as possible.
 -      (narrow-to-region (point-min) here)
 -      (let (placeholder pair-beg)
 -        (while (and c-state-cache
 -                    (setq placeholder
 -                          (c-up-list-forward last-pos)))
 -          (setq last-pos placeholder)
 -          (if (consp (car c-state-cache))
 -              (setq pair-beg (car-safe (cdr c-state-cache))
 -                    c-state-cache (cdr-safe (cdr c-state-cache)))
 -            (setq pair-beg (car c-state-cache)
 -                  c-state-cache (cdr c-state-cache))))
 -
 -        (when (and pair-beg (eq (char-after pair-beg) ?{))
 -          ;; The last paren pair we moved out from was a brace
 -          ;; pair.  Modify the state to record this as a closed
 -          ;; pair now.
 -          (if (consp (car-safe c-state-cache))
 -              (setq c-state-cache (cdr c-state-cache)))
 -          (setq c-state-cache (cons (cons pair-beg last-pos)
 -                                    c-state-cache))))
 -
 -      ;; Check if the preceding balanced paren is within a
 -      ;; macro; it should be ignored if we're outside the
 -      ;; macro.  There's no need to check any further upwards;
 -      ;; if the macro contains an unbalanced opening paren then
 -      ;; we're smoked anyway.
 -      (when (and (<= (point) in-macro-start)
 -                 (consp (car c-state-cache)))
 -        (save-excursion
 -          (goto-char (car (car c-state-cache)))
 -          (when (c-beginning-of-macro)
 -            (setq here (point)
 -                  c-state-cache (cdr c-state-cache)))))
 -
 -      (unless (eq c-state-cache old-state)
 -        ;; Have to adjust the cached good position if state has been
 -        ;; popped off.
 -        (setq c-state-cache-good-pos
 -              (if c-state-cache
 -                  (if (consp (car c-state-cache))
 -                      (cdr (car c-state-cache))
 -                    (1+ (car c-state-cache)))
 -                1)
 -              old-state c-state-cache))
 -
 -      (when c-state-cache
 -        (setq pos last-pos)))
 -
 -      ;; Get the fallback start position.
 -      (unless pos
 -      (setq pos (c-get-fallback-start-pos here)
 -            c-state-cache nil
 -            c-state-cache-good-pos 1))
 -
 -      (narrow-to-region (point-min) here)
 -
 -      (while pos
 -      (setq save-pos pos
 -            brace-pair-open nil)
 -
 -      ;; Find the balanced brace pairs.  This loop is hot, so it
 -      ;; does ugly tricks to go faster.
 -      (c-safe
 -        (let (set-good-pos set-brace-pair)
 -          (while t
 -            (setq last-pos nil
 -                  last-pos (scan-lists pos 1 -1)) ; Might signal.
 -            (setq pos (scan-lists last-pos 1 1) ; Might signal.
 -                  set-good-pos (< pos here-bol)
 -                  set-brace-pair (eq (char-before last-pos) ?{))
 -
 -            ;; Update the cached good position and record the brace
 -            ;; pair, whichever is applicable for the paren we've
 -            ;; just jumped over.  But first check that it isn't
 -            ;; inside a macro and the point isn't inside the same
 -            ;; one.
 -            (when (and (or set-good-pos set-brace-pair)
 -                       (or (>= pos in-macro-start)
 -                           (save-excursion
 -                             (goto-char pos)
 -                             (not (c-beginning-of-macro)))))
 -              (if set-good-pos
 -                  (setq c-state-cache-good-pos pos))
 -              (if set-brace-pair
 -                  (setq brace-pair-open last-pos
 -                        brace-pair-close pos))))))
 -
 -      ;; Record the last brace pair.
 -      (when brace-pair-open
 -        (let ((head (car-safe c-state-cache)))
 -          (if (consp head)
 -              (progn
 -                (setcar head (1- brace-pair-open))
 -                (setcdr head brace-pair-close))
 -            (setq c-state-cache (cons (cons (1- brace-pair-open)
 -                                            brace-pair-close)
 -                                      c-state-cache)))))
 -
 -      (if last-pos
 -          ;; Prepare to loop, but record the open paren only if it's
 -          ;; outside a macro or within the same macro as point, and
 -          ;; if it is a legitimate open paren and not some character
 -          ;; that got an open paren syntax-table property.
 -          (progn
 -            (setq pos last-pos)
 -            (when (and (or (>= last-pos in-macro-start)
 -                           (save-excursion
 -                             (goto-char last-pos)
 -                             (not (c-beginning-of-macro))))
 -                       ;; Check for known types of parens that we
 -                       ;; want to record.  The syntax table is not to
 -                       ;; be trusted here since the caller might be
 -                       ;; using e.g. `c++-template-syntax-table'.
 -                       (memq (char-before last-pos) '(?{ ?\( ?\[)))
 -              (if (< last-pos here-bol)
 -                  (setq c-state-cache-good-pos last-pos))
 -              (setq c-state-cache (cons (1- last-pos) c-state-cache))))
 -
 -        (if (setq last-pos (c-up-list-forward pos))
 -            ;; Found a close paren without a corresponding opening
 -            ;; one.  Maybe we didn't go back far enough, so try to
 -            ;; scan backward for the start paren and then start over.
 -            (progn
 -              (setq pos (c-up-list-backward pos)
 -                    c-state-cache nil
 -                    c-state-cache-good-pos c-state-cache-start)
 -              (when (or (not pos)
 -                        ;; Emacs (up to at least 21.2) can get confused by
 -                        ;; open parens in column zero inside comments: The
 -                        ;; sexp functions can then misbehave and bring us
 -                        ;; back to the same point again.  Check this so that
 -                        ;; we don't get an infinite loop.
 -                        (>= pos save-pos))
 -                (setq pos last-pos
 -                      c-parsing-error
 -                      (format "Unbalanced close paren at line %d"
 -                              (1+ (count-lines (point-min)
 -                                               (c-point 'bol last-pos)))))))
 -          (setq pos nil))))
 -
 -      ;;(message "c-parse-state: %S end: %S" c-state-cache c-state-cache-good-pos)
 -      c-state-cache)))
 -
 -;; Debug tool to catch cache inconsistencies.
 +;; Debug tool to catch cache inconsistencies.  This is called from
 +;; 000tests.el.
  (defvar c-debug-parse-state nil)
  (unless (fboundp 'c-real-parse-state)
    (fset 'c-real-parse-state (symbol-function 'c-parse-state)))
  (cc-bytecomp-defun c-real-parse-state)
  (defun c-debug-parse-state ()
 -  (let ((res1 (c-real-parse-state)) res2)
 +  (let ((here (point)) (res1 (c-real-parse-state)) res2)
      (let ((c-state-cache nil)
 -        (c-state-cache-start 1)
 -        (c-state-cache-good-pos 1))
 +        (c-state-cache-good-pos 1)
 +        (c-state-nonlit-pos-cache nil)
 +        (c-state-nonlit-pos-cache-limit 1)
 +        (c-state-brace-pair-desert nil)
 +        (c-state-point-min 1)
 +        (c-state-point-min-lit-type nil)
 +        (c-state-point-min-lit-start nil)
 +        (c-state-min-scan-pos 1)
 +        (c-state-old-cpp-beg nil)
 +        (c-state-old-cpp-end nil))
        (setq res2 (c-real-parse-state)))
      (unless (equal res1 res2)
        ;; The cache can actually go further back due to the ad-hoc way
        (while (not (or (bobp) (eq (char-after) ?{)))
          (c-beginning-of-defun-1))
        (unless (equal (c-whack-state-before (point) res1) res2)
 -        (message (concat "c-parse-state inconsistency: "
 +        (message (concat "c-parse-state inconsistency at %s: "
                           "using cache: %s, from scratch: %s")
 -                 res1 res2))))
 +                 here res1 res2))))
      res1))
 +
  (defun c-toggle-parse-state-debug (&optional arg)
    (interactive "P")
    (setq c-debug-parse-state (c-calculate-state arg c-debug-parse-state))
  (when c-debug-parse-state
    (c-toggle-parse-state-debug 1))
  
 +\f
  (defun c-whack-state-before (bufpos paren-state)
    ;; Whack off any state information from PAREN-STATE which lies
    ;; before BUFPOS.  Not destructive on PAREN-STATE.
@@@ -4897,190 -4109,7 +4897,190 @@@ comment at the start of cc-engine.el fo
        )))
  
  \f
 -;; Handling of small scale constructs like types and names.
 +;; Setting and removing syntax properties on < and > in languages (C++
 +;; and Java) where they can be template/generic delimiters as well as
 +;; their normal meaning of "less/greater than".
 +
 +;; Normally, < and > have syntax 'punctuation'.  When they are found to
 +;; be delimiters, they are marked as such with the category properties
 +;; c-<-as-paren-syntax, c->-as-paren-syntax respectively.
 +
 +;; STRATEGY:
 +;;
 +;; It is impossible to determine with certainty whether a <..> pair in
 +;; C++ is two comparison operators or is template delimiters, unless
 +;; one duplicates a lot of a C++ compiler.  For example, the following
 +;; code fragment:
 +;;
 +;;     foo (a < b, c > d) ;
 +;;
 +;; could be a function call with two integer parameters (each a
 +;; relational expression), or it could be a constructor for class foo
 +;; taking one parameter d of templated type "a < b, c >".  They are
 +;; somewhat easier to distinguish in Java.
 +;;
 +;; The strategy now (2010-01) adopted is to mark and unmark < and
 +;; > IN MATCHING PAIRS ONLY.  [Previously, they were marked
 +;; individually when their context so indicated.  This gave rise to
 +;; intractible problems when one of a matching pair was deleted, or
 +;; pulled into a literal.]
 +;;
 +;; At each buffer change, the syntax-table properties are removed in a
 +;; before-change function and reapplied, when needed, in an
 +;; after-change function.  It is far more important that the
 +;; properties get removed when they they are spurious than that they
 +;; be present when wanted.
 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 +(defun c-clear-<-pair-props (&optional pos)
 +  ;; POS (default point) is at a < character.  If it is marked with
 +  ;; open paren syntax-table text property, remove the property,
 +  ;; together with the close paren property on the matching > (if
 +  ;; any).
 +  (save-excursion
 +    (if pos
 +      (goto-char pos)
 +      (setq pos (point)))
 +    (when (equal (c-get-char-property (point) 'syntax-table)
 +               c-<-as-paren-syntax)
 +      (with-syntax-table c-no-parens-syntax-table ; ignore unbalanced [,{,(,..
 +      (c-go-list-forward))
 +      (when (equal (c-get-char-property (1- (point)) 'syntax-table)
 +                 c->-as-paren-syntax) ; should always be true.
 +      (c-clear-char-property (1- (point)) 'category))
 +      (c-clear-char-property pos 'category))))
 +
 +(defun c-clear->-pair-props (&optional pos)
 +  ;; POS (default point) is at a > character.  If it is marked with
 +  ;; close paren syntax-table property, remove the property, together
 +  ;; with the open paren property on the matching < (if any).
 +  (save-excursion
 +    (if pos
 +      (goto-char pos)
 +      (setq pos (point)))
 +    (when (equal (c-get-char-property (point) 'syntax-table)
 +               c->-as-paren-syntax)
 +      (with-syntax-table c-no-parens-syntax-table ; ignore unbalanced [,{,(,..
 +      (c-go-up-list-backward))
 +      (when (equal (c-get-char-property (point) 'syntax-table)
 +                      c-<-as-paren-syntax) ; should always be true.
 +      (c-clear-char-property (point) 'category))
 +      (c-clear-char-property pos 'category))))
 +
 +(defun c-clear-<>-pair-props (&optional pos)
 +  ;; POS (default point) is at a < or > character.  If it has an
 +  ;; open/close paren syntax-table property, remove this property both
 +  ;; from the current character and its partner (which will also be
 +  ;; thusly marked).
 +  (cond
 +   ((eq (char-after) ?\<)
 +    (c-clear-<-pair-props pos))
 +   ((eq (char-after) ?\>)
 +    (c-clear->-pair-props pos))
 +   (t (c-benign-error
 +       "c-clear-<>-pair-props called from wrong position"))))
 +
 +(defun c-clear-<-pair-props-if-match-after (lim &optional pos)
 +  ;; POS (default point) is at a < character.  If it is both marked
 +  ;; with open/close paren syntax-table property, and has a matching >
 +  ;; (also marked) which is after LIM, remove the property both from
 +  ;; the current > and its partner.  Return t when this happens, nil
 +  ;; when it doesn't.
 +  (save-excursion
 +    (if pos
 +      (goto-char pos)
 +      (setq pos (point)))
 +    (when (equal (c-get-char-property (point) 'syntax-table)
 +               c-<-as-paren-syntax)
 +      (with-syntax-table c-no-parens-syntax-table ; ignore unbalanced [,{,(,..
 +      (c-go-list-forward))
 +      (when (and (>= (point) lim)
 +               (equal (c-get-char-property (1- (point)) 'syntax-table)
 +                      c->-as-paren-syntax)) ; should always be true.
 +      (c-unmark-<->-as-paren (1- (point)))
 +      (c-unmark-<->-as-paren pos))
 +      t)))
 +
 +(defun c-clear->-pair-props-if-match-before (lim &optional pos)
 +  ;; POS (default point) is at a > character.  If it is both marked
 +  ;; with open/close paren syntax-table property, and has a matching <
 +  ;; (also marked) which is before LIM, remove the property both from
 +  ;; the current < and its partner.  Return t when this happens, nil
 +  ;; when it doesn't.
 +  (save-excursion
 +    (if pos
 +      (goto-char pos)
 +      (setq pos (point)))
 +    (when (equal (c-get-char-property (point) 'syntax-table)
 +               c->-as-paren-syntax)
 +      (with-syntax-table c-no-parens-syntax-table ; ignore unbalanced [,{,(,..
 +      (c-go-up-list-backward))
 +      (when (and (<= (point) lim)
 +               (equal (c-get-char-property (point) 'syntax-table)
 +                      c-<-as-paren-syntax)) ; should always be true.
 +      (c-unmark-<->-as-paren (point))
 +      (c-unmark-<->-as-paren pos))
 +      t)))
 +
 +;; Set by c-common-init in cc-mode.el.
 +(defvar c-new-BEG)
 +(defvar c-new-END)
 +
 +(defun c-before-change-check-<>-operators (beg end)
 +  ;; Unmark certain pairs of "< .... >" which are currently marked as
 +  ;; template/generic delimiters.  (This marking is via syntax-table
 +  ;; text properties).
 +  ;;
 +  ;; These pairs are those which are in the current "statement" (i.e.,
 +  ;; the region between the {, }, or ; before BEG and the one after
 +  ;; END), and which enclose any part of the interval (BEG END).
 +  ;;
 +  ;; Note that in C++ (?and Java), template/generic parens cannot
 +  ;; enclose a brace or semicolon, so we use these as bounds on the
 +  ;; region we must work on.
 +  ;;
 +  ;; This function is called from before-change-functions (via
 +  ;; c-get-state-before-change-functions).  Thus the buffer is widened,
 +  ;; and point is undefined, both at entry and exit.
 +  ;;
 +  ;; FIXME!!!  This routine ignores the possibility of macros entirely.
 +  ;; 2010-01-29.
 +  (save-excursion
 +    (let ((beg-lit-limits (progn (goto-char beg) (c-literal-limits)))
 +        (end-lit-limits (progn (goto-char end) (c-literal-limits)))
 +        new-beg new-end need-new-beg need-new-end)
 +      ;; Locate the barrier before the changed region
 +      (goto-char  (if beg-lit-limits (car beg-lit-limits) beg))
 +      (c-syntactic-skip-backward "^;{}" (max (- beg 2048) (point-min)))
 +      (setq new-beg (point))
 +
 +      ;; Remove the syntax-table properties from each pertinent <...> pair.
 +      ;; Firsly, the ones with the < before beg and > after beg.
 +      (while (c-search-forward-char-property 'category 'c-<-as-paren-syntax beg)
 +      (if (c-clear-<-pair-props-if-match-after beg (1- (point)))
 +          (setq need-new-beg t)))
 +
 +      ;; Locate the barrier after END.
 +      (goto-char (if end-lit-limits (cdr end-lit-limits) end))
 +      (c-syntactic-re-search-forward "[;{}]"
 +                                   (min (+ end 2048) (point-max)) 'end)
 +      (setq new-end (point))
 +
 +      ;; Remove syntax-table properties from the remaining pertinent <...>
 +      ;; pairs, those with a > after end and < before end.
 +      (while (c-search-backward-char-property 'category 'c->-as-paren-syntax end)
 +      (if (c-clear->-pair-props-if-match-before end)
 +          (setq need-new-end t)))
 +
 +      ;; Extend the fontification region, if needed.
 +      (when need-new-beg
 +      (goto-char new-beg)
 +      (c-forward-syntactic-ws)
 +      (and (< (point) c-new-BEG) (setq c-new-BEG (point))))
 +
 +      (when need-new-end
 +      (and (> new-end c-new-END) (setq c-new-END new-end))))))
 +
 +
  
  (defun c-after-change-check-<>-operators (beg end)
    ;; This is called from `after-change-functions' when
                 (< beg (setq beg (match-end 0))))
        (while (progn (skip-chars-forward "^<>" beg)
                      (< (point) beg))
 -        (c-clear-char-property (point) 'syntax-table)
 +        (c-clear-<>-pair-props)
          (forward-char))))
  
      (when (< beg end)
                   (< end (setq end (match-end 0))))
          (while (progn (skip-chars-forward "^<>" end)
                        (< (point) end))
 -          (c-clear-char-property (point) 'syntax-table)
 +          (c-clear-<>-pair-props)
            (forward-char)))))))
  
 +
 +\f
 +;; Handling of small scale constructs like types and names.
 +
  ;; Dynamically bound variable that instructs `c-forward-type' to also
  ;; treat possible types (i.e. those that it normally returns 'maybe or
  ;; 'found for) as actual types (and always return 'found for them).
        (goto-char safe-pos)
        t)))
  
 +;; cc-mode requires cc-fonts.
 +(declare-function c-fontify-recorded-types-and-refs "cc-fonts" ())
 +
+ (defvar c-forward-<>-arglist-recur-depth)
  (defun c-forward-<>-arglist (all-types)
    ;; The point is assumed to be at a "<".  Try to treat it as the open
    ;; paren of an angle bracket arglist and move forward to the
        ;; If `c-record-type-identifiers' is set then activate
        ;; recording of any found types that constitute an argument in
        ;; the arglist.
-       (c-record-found-types (if c-record-type-identifiers t)))
+       (c-record-found-types (if c-record-type-identifiers t))
+       (c-forward-<>-arglist-recur--depth 0))
      (if (catch 'angle-bracket-arglist-escape
          (setq c-record-found-types
                (c-forward-<>-arglist-recur all-types)))
                  ;; `nconc' doesn't mind that the tail of
                  ;; `c-record-found-types' is t.
                  (nconc c-record-found-types c-record-type-identifiers)))
 +          (if (c-major-mode-is 'java-mode) (c-fontify-recorded-types-and-refs))
          t)
  
        (goto-char start)
        nil)))
  
  (defun c-forward-<>-arglist-recur (all-types)
+   ;; Temporary workaround for Bug#7722.
+   (when (boundp 'c-forward-<>-arglist-recur--depth)
+     (if (> c-forward-<>-arglist-recur--depth 200)
+       (error "Max recursion depth reached in <> arglist")
+       (setq c-forward-<>-arglist-recur--depth
+           (1+ c-forward-<>-arglist-recur--depth))))
    ;; Recursive part of `c-forward-<>-arglist'.
    ;;
    ;; This function might do hidden buffer changes.
        ;; List that collects the positions after the argument
        ;; separating ',' in the arglist.
        arg-start-pos)
 -
      ;; If the '<' has paren open syntax then we've marked it as an angle
      ;; bracket arglist before, so skip to the end.
      (if (and (not c-parse-and-markup-<>-arglists)
          (if (and (c-go-up-list-forward)
                   (eq (char-before) ?>))
              t
 -
            ;; Got unmatched paren angle brackets.  We don't clear the paren
            ;; syntax properties and retry, on the basis that it's very
            ;; unlikely that paren angle brackets become operators by code
            nil))
  
        (forward-char)
 +
        (unless (looking-at c-<-op-cont-regexp)
        (while (and
                (progn
 -
 -                (when c-record-type-identifiers
 -                  (if all-types
 -
 -                      ;; All encountered identifiers are types, so set the
 -                      ;; promote flag and parse the type.
 -                      (progn
 -                        (c-forward-syntactic-ws)
 +                (c-forward-syntactic-ws)
 +                (let ((orig-record-found-types c-record-found-types))
 +                  (when (or (and c-record-type-identifiers all-types)
 +                            (c-major-mode-is 'java-mode))
 +                    ;; All encountered identifiers are types, so set the
 +                    ;; promote flag and parse the type.
 +                    (progn
 +                      (c-forward-syntactic-ws)
 +                      (if (looking-at "\\?")
 +                          (forward-char)
                          (when (looking-at c-identifier-start)
 -                          (let ((c-promote-possible-types t))
 +                          (let ((c-promote-possible-types t)
 +                                (c-record-found-types t))
                              (c-forward-type))))
  
 -                    ;; Check if this arglist argument is a sole type.  If
 -                    ;; it's known then it's recorded in
 -                    ;; `c-record-type-identifiers'.  If it only is found
 -                    ;; then it's recorded in `c-record-found-types' which we
 -                    ;; might roll back if it turns out that this isn't an
 -                    ;; angle bracket arglist afterall.
 -                    (when (memq (char-before) '(?, ?<))
 -                      (let ((orig-record-found-types c-record-found-types))
 +                      (c-forward-syntactic-ws)
 +
 +                      (when (or (looking-at "extends")
 +                                (looking-at "super"))
 +                        (forward-word)
                          (c-forward-syntactic-ws)
 -                        (and (memq (c-forward-type) '(known found))
 -                             (not (looking-at "[,>]"))
 -                             ;; A found type was recorded but it's not the
 -                             ;; only thing in the arglist argument, so reset
 -                             ;; `c-record-found-types'.
 -                             (setq c-record-found-types
 -                                   orig-record-found-types))))))
 +                        (let ((c-promote-possible-types t)
 +                              (c-record-found-types t))
 +                          (c-forward-type)
 +                          (c-forward-syntactic-ws))))))
  
                  (setq pos (point))
 -                (or (when (eq (char-after) ?>)
 -                      ;; Must check for '>' at the very start separately,
 -                      ;; since the regexp below has to avoid ">>" without
 -                      ;; using \\=.
 -                      (forward-char)
 -                      t)
 -
 -                    ;; Note: These regexps exploit the match order in \| so
 -                    ;; that "<>" is matched by "<" rather than "[^>:-]>".
 -                    (c-syntactic-re-search-forward
 -                     (if c-restricted-<>-arglists
 -                         ;; Stop on ',', '|', '&', '+' and '-' to catch
 -                         ;; common binary operators that could be between
 -                         ;; two comparison expressions "a<b" and "c>d".
 -                         "[<;{},|&+-]\\|\\([^>:-]>\\)"
 -                       ;; Otherwise we still stop on ',' to find the
 -                       ;; argument start positions.
 -                       "[<;{},]\\|\\([^>:-]>\\)")
 -                     nil 'move t t 1)
 -
 -                    ;; If the arglist starter has lost its open paren
 -                    ;; syntax but not the closer, we won't find the
 -                    ;; closer above since we only search in the
 -                    ;; balanced sexp.  In that case we stop just short
 -                    ;; of it so check if the following char is the closer.
 -                    (when (eq (char-after) ?>)
 -                      (forward-char)
 -                      t)))
 +
 +                ;; Note: These regexps exploit the match order in \| so
 +                ;; that "<>" is matched by "<" rather than "[^>:-]>".
 +                (c-syntactic-re-search-forward
 +                 ;; Stop on ',', '|', '&', '+' and '-' to catch
 +                 ;; common binary operators that could be between
 +                 ;; two comparison expressions "a<b" and "c>d".
 +                 "[<;{},|+&-]\\|[>)]"
 +                 nil t t))
  
                (cond
                 ((eq (char-before) ?>)
  
                 ((eq (char-before) ?<)
                  ;; Either an operator starting with '<' or a nested arglist.
 -
                  (setq pos (point))
                  (let (id-start id-end subres keyword-match)
                    (if (if (looking-at c-<-op-cont-regexp)
                                (setq id-start (point))))
  
                            (setq subres
 -                                (let ((c-record-type-identifiers nil)
 -                                      (c-record-found-types nil))
 +                                (let ((c-promote-possible-types t)
 +                                      (c-record-found-types t))
                                    (c-forward-<>-arglist-recur
                                     (and keyword-match
                                          (c-keyword-member
                          (c-record-type-id (cons id-start id-end))))))
                  t)
  
 -               ((and (eq (char-before) ?,)
 -                     (not c-restricted-<>-arglists))
 -                ;; Just another argument.  Record the position.  The
 +               ((and (not c-restricted-<>-arglists)
 +                     (or (and (eq (char-before) ?&)
 +                              (not (eq (char-after) ?&)))
 +                         (eq (char-before) ?,)))
 +                ;; Just another argument.      Record the position.  The
                  ;; type check stuff that made us stop at it is at
                  ;; the top of the loop.
                  (setq arg-start-pos (cons (point) arg-start-pos)))
                  ;; it's useless to try to find a surrounding arglist
                  ;; if we're nested.
                  (throw 'angle-bracket-arglist-escape nil))))))
 -
        (if res
          (or c-record-found-types t)))))
  
  
  (defun c-forward-name ()
    ;; Move forward over a complete name if at the beginning of one,
 -  ;; stopping at the next following token.  If the point is not at
 -  ;; something that are recognized as name then it stays put.  A name
 -  ;; could be something as simple as "foo" in C or something as
 +  ;; stopping at the next following token.  A keyword, as such,
 +  ;; doesn't count as a name.  If the point is not at something that
 +  ;; is recognized as a name then it stays put.
 +  ;;
 +  ;; A name could be something as simple as "foo" in C or something as
    ;; complex as "X<Y<class A<int>::B, BIT_MAX >> b>, ::operator<> ::
    ;; Z<(a>b)> :: operator const X<&foo>::T Q::G<unsigned short
    ;; int>::*volatile const" in C++ (this function is actually little
    ;; more than a `looking-at' call in all modes except those that,
 -  ;; like C++, have `c-recognize-<>-arglists' set).  Return nil if no
 -  ;; name is found, 'template if it's an identifier ending with an
 -  ;; angle bracket arglist, 'operator of it's an operator identifier,
 -  ;; or t if it's some other kind of name.
 +  ;; like C++, have `c-recognize-<>-arglists' set).
 +  ;;
 +  ;; Return
 +  ;; o - nil if no name is found;
 +  ;; o - 'template if it's an identifier ending with an angle bracket
 +  ;;   arglist;
 +  ;; o - 'operator of it's an operator identifier;
 +  ;; o - t if it's some other kind of name.
    ;;
    ;; This function records identifier ranges on
    ;; `c-record-type-identifiers' and `c-record-ref-identifiers' if
              ((and c-recognize-<>-arglists
                    (eq (char-after) ?<))
               ;; Maybe an angle bracket arglist.
 -
 -             (when (let (c-record-type-identifiers
 -                         c-record-found-types)
 +             (when (let ((c-record-type-identifiers t)
 +                         (c-record-found-types t))
                       (c-forward-<>-arglist nil))
  
                 (c-add-type start (1+ pos))
      (goto-char pos)
      res))
  
 -(defun c-forward-type ()
 +(defun c-forward-type (&optional brace-block-too)
    ;; Move forward over a type spec if at the beginning of one,
 -  ;; stopping at the next following token.  Return t if it's a known
 -  ;; type that can't be a name or other expression, 'known if it's an
 -  ;; otherwise known type (according to `*-font-lock-extra-types'),
 -  ;; 'prefix if it's a known prefix of a type, 'found if it's a type
 -  ;; that matches one in `c-found-types', 'maybe if it's an identfier
 -  ;; that might be a type, or nil if it can't be a type (the point
 -  ;; isn't moved then).  The point is assumed to be at the beginning
 -  ;; of a token.
 +  ;; stopping at the next following token.  The keyword "typedef"
 +  ;; isn't part of a type spec here.
 +  ;;
 +  ;; BRACE-BLOCK-TOO, when non-nil, means move over the brace block in
 +  ;; constructs like "struct foo {...} bar ;" or "struct {...} bar;".
 +  ;; The current (2009-03-10) intention is to convert all uses of
 +  ;; `c-forward-type' to call with this parameter set, then to
 +  ;; eliminate it.
 +  ;;
 +  ;; Return
 +  ;;   o - t if it's a known type that can't be a name or other
 +  ;;     expression;
 +  ;;   o - 'known if it's an otherwise known type (according to
 +  ;;     `*-font-lock-extra-types');
 +  ;;   o - 'prefix if it's a known prefix of a type;
 +  ;;   o - 'found if it's a type that matches one in `c-found-types';
 +  ;;   o - 'maybe if it's an identfier that might be a type; or
 +  ;;   o -  nil if it can't be a type (the point isn't moved then).
 +  ;;
 +  ;; The point is assumed to be at the beginning of a token.
    ;;
    ;; Note that this function doesn't skip past the brace definition
    ;; that might be considered part of the type, e.g.
    ;; `c-record-type-identifiers' is non-nil.
    ;;
    ;; This function might do hidden buffer changes.
 +  (when (and c-recognize-<>-arglists
 +           (looking-at "<"))
 +    (c-forward-<>-arglist t)
 +    (c-forward-syntactic-ws))
  
    (let ((start (point)) pos res name-res id-start id-end id-range)
  
      ;; Skip leading type modifiers.  If any are found we know it's a
      ;; prefix of a type.
 -    (when c-opt-type-modifier-key
 +    (when c-opt-type-modifier-key ; e.g. "const" "volatile", but NOT "typedef"
        (while (looking-at c-opt-type-modifier-key)
        (goto-char (match-end 1))
        (c-forward-syntactic-ws)
        (setq res 'prefix)))
  
      (cond
 -     ((looking-at c-type-prefix-key)
 -      ;; Looking at a keyword that prefixes a type identifier,
 -      ;; e.g. "class".
 +     ((looking-at c-type-prefix-key) ; e.g. "struct", "class", but NOT
 +                                   ; "typedef".
        (goto-char (match-end 1))
        (c-forward-syntactic-ws)
        (setq pos (point))
 -      (if (memq (setq name-res (c-forward-name)) '(t template))
 -        (progn
 -          (when (eq name-res t)
 -            ;; In many languages the name can be used without the
 -            ;; prefix, so we add it to `c-found-types'.
 -            (c-add-type pos (point))
 -            (when (and c-record-type-identifiers
 -                       c-last-identifier-range)
 -              (c-record-type-id c-last-identifier-range)))
 -          (setq res t))
 -      ;; Invalid syntax.
 -      (goto-char start)
 -      (setq res nil)))
 +
 +      (setq name-res (c-forward-name))
 +      (setq res (not (null name-res)))
 +      (when (eq name-res t)
 +      ;; In many languages the name can be used without the
 +      ;; prefix, so we add it to `c-found-types'.
 +      (c-add-type pos (point))
 +      (when (and c-record-type-identifiers
 +                 c-last-identifier-range)
 +        (c-record-type-id c-last-identifier-range)))
 +      (when (and brace-block-too
 +               (memq res '(t nil))
 +               (eq (char-after) ?\{)
 +               (save-excursion
 +                 (c-safe
 +                   (progn (c-forward-sexp)
 +                          (c-forward-syntactic-ws)
 +                          (setq pos (point))))))
 +      (goto-char pos)
 +      (setq res t))
 +      (unless res (goto-char start))) ; invalid syntax
  
       ((progn
        (setq pos nil)
             (setq res nil)))))
  
      (when res
 -      ;; Skip trailing type modifiers.  If any are found we know it's
 +      ;; Skip trailing type modifiers.        If any are found we know it's
        ;; a type.
        (when c-opt-type-modifier-key
 -      (while (looking-at c-opt-type-modifier-key)
 +      (while (looking-at c-opt-type-modifier-key) ; e.g. "const", "volatile"
          (goto-char (match-end 1))
          (c-forward-syntactic-ws)
          (setq res t)))
 -
        ;; Step over any type suffix operator.  Do not let the existence
        ;; of these alter the classification of the found type, since
        ;; these operators typically are allowed in normal expressions
          (goto-char (match-end 1))
          (c-forward-syntactic-ws)))
  
 -      (when c-opt-type-concat-key
 +      (when c-opt-type-concat-key     ; Only/mainly for pike.
        ;; Look for a trailing operator that concatenates the type
        ;; with a following one, and if so step past that one through
        ;; a recursive call.  Note that we don't record concatenated
  
      res))
  
 +(defun c-forward-annotation ()
 +  ;; Used for Java code only at the moment.  Assumes point is on the
 +  ;; @, moves forward an annotation.  returns nil if there is no
 +  ;; annotation at point.
 +  (and (looking-at "@")
 +       (progn (forward-char) t)
 +       (c-forward-type)
 +       (progn (c-forward-syntactic-ws) t)
 +       (if (looking-at "(")
 +         (c-go-list-forward)
 +         t)))
 +
  \f
  ;; Handling of large scale constructs like statements and declarations.
  
    ;;      car ^                                     ^ point
    ;;     Foo::Foo (int b) : Base (b) {}
    ;; car ^                ^ point
 -  ;;
 -  ;;   The cdr of the return value is non-nil iff a `c-typedef-decl-kwds'
 -  ;;   specifier (e.g. class, struct, enum, typedef) is found in the
 -  ;;   declaration, i.e. the declared identifier(s) are types.
 -  ;;
 +  ;; 
 +  ;;   The cdr of the return value is non-nil when a
 +  ;;   `c-typedef-decl-kwds' specifier is found in the declaration.
 +  ;;   Specifically it is a dotted pair (A . B) where B is t when a
 +  ;;   `c-typedef-kwds' ("typedef") is present, and A is t when some
 +  ;;   other `c-typedef-decl-kwds' (e.g. class, struct, enum)
 +  ;;   specifier is present.  I.e., (some of) the declared
 +  ;;   identifier(s) are types.
 +  ;; 
    ;; If a cast is parsed:
    ;;
    ;;   The point is left at the first token after the closing paren of
        ;; If `backup-at-type' is nil then the other variables have
        ;; undefined values.
        backup-at-type backup-type-start backup-id-start
 -      ;; Set if we've found a specifier that makes the defined
 -      ;; identifier(s) types.
 +      ;; Set if we've found a specifier (apart from "typedef") that makes
 +      ;; the defined identifier(s) types.
        at-type-decl
 +      ;; Set if we've a "typedef" keyword.
 +      at-typedef
        ;; Set if we've found a specifier that can start a declaration
        ;; where there's no type.
        maybe-typeless
        (save-rec-type-ids c-record-type-identifiers)
        (save-rec-ref-ids c-record-ref-identifiers))
  
 +    (while (c-forward-annotation)
 +      (c-forward-syntactic-ws))
 +
      ;; Check for a type.  Unknown symbols are treated as possible
      ;; types, but they could also be specifiers disguised through
      ;; macros like __INLINE__, so we recognize both types and known
  
          ;; Look for a specifier keyword clause.
          (when (looking-at c-prefix-spec-kwds-re)
 +          (if (looking-at c-typedef-key)
 +              (setq at-typedef t))
            (setq kwd-sym (c-keyword-sym (match-string 1)))
            (save-excursion
              (c-forward-keyword-clause 1)
              (setq kwd-clause-end (point))))
  
 -        (when (setq found-type (c-forward-type))
 +        (when (setq found-type (c-forward-type t)) ; brace-block-too
            ;; Found a known or possible type or a prefix of a known type.
  
            (when at-type
                          (setq backup-maybe-typeless t)))
  
                    (when (c-keyword-member kwd-sym 'c-typedef-decl-kwds)
 +                    ;; This test only happens after we've scanned a type.
 +                    ;; So, with valid syntax, kwd-sym can't be 'typedef.
                      (setq at-type-decl t))
                    (when (c-keyword-member kwd-sym 'c-typeless-decl-kwds)
                      (setq maybe-typeless t))
                ;; CASE 3
                (when (= (point) start)
                  ;; Got a plain list of identifiers.  If a colon follows it's
 -                ;; a valid label.  Otherwise the last one probably is the
 -                ;; declared identifier and we should back up to the previous
 -                ;; type, providing it isn't a cast.
 -                (if (eq (char-after) ?:)
 -                    ;; If we've found a specifier keyword then it's a
 -                    ;; declaration regardless.
 -                    (throw 'at-decl-or-cast (eq at-decl-or-cast t))
 +                 ;; a valid label.  Otherwise the last one probably is the
 +                 ;; declared identifier and we should back up to the previous
 +                 ;; type, providing it isn't a cast.
 +                 (if (and (eq (char-after) ?:)
 +                          (not (c-major-mode-is 'java-mode)))
 +                     ;; If we've found a specifier keyword then it's a
 +                     ;; declaration regardless.
 +                     (throw 'at-decl-or-cast (eq at-decl-or-cast t))
                    (setq backup-if-not-cast t)
                    (throw 'at-decl-or-cast t)))
  
            (goto-char type-start)
            (c-forward-type))))
  
 -      (cons id-start at-type-decl))
 +      (cons id-start
 +          (and (or at-type-decl at-typedef)
 +               (cons at-type-decl at-typedef))))
  
       (t
        ;; False alarm.  Restore the recorded ranges.
@@@ -8550,7 -7550,7 +8561,7 @@@ comment at the start of cc-engine.el fo
    ;;
    ;; This function might do hidden buffer changes.
  
 -  (let (special-brace-list)
 +  (let (special-brace-list placeholder)
      (goto-char indent-point)
      (skip-chars-forward " \t")
  
        (c-add-stmt-syntax 'func-decl-cont nil t
                         containing-sexp paren-state))
  
 +     ;;CASE F: continued statement and the only preceding items are
 +     ;;annotations.
 +     ((and (c-major-mode-is 'java-mode)
 +         (setq placeholder (point))
 +            (c-beginning-of-statement-1)
 +            (progn
 +              (while (and (c-forward-annotation)
 +                          (< (point) placeholder))
 +                (c-forward-syntactic-ws))
 +              t)
 +            (prog1
 +                (>= (point) placeholder)
 +              (goto-char placeholder)))
 +       (c-beginning-of-statement-1 containing-sexp)
 +       (c-add-syntax 'annotation-var-cont (point)))
 +
       ;; CASE D: continued statement.
       (t
        (c-beginning-of-statement-1 containing-sexp)
        (when (and containing-sexp
                   (eq (char-after containing-sexp) ?\())
          (setq c-stmt-delim-chars c-stmt-delim-chars-with-comma))
 -
        ;; cache char before and after indent point, and move point to
        ;; the most likely position to perform the majority of tests
        (goto-char indent-point)
            (c-add-syntax 'objc-method-args-cont placeholder))
  
           ;; CASE 5L: we are at the first argument of a template
 -         ;; arglist that begins on the previous line.
 -         ((and c-recognize-<>-arglists
 -               (eq (char-before) ?<)
 -               (setq placeholder (1- (point)))
 -               (not (and c-overloadable-operators-regexp
 -                         (c-after-special-operator-id lim))))
 -          (c-beginning-of-statement-1 (c-safe-position (point) paren-state))
 -          (c-add-syntax 'template-args-cont (c-point 'boi) placeholder))
 -
 -         ;; CASE 5Q: we are at a statement within a macro.
 -         (macro-start
 -          (c-beginning-of-statement-1 containing-sexp)
 -          (c-add-stmt-syntax 'statement nil t containing-sexp paren-state))
 -
 -         ;; CASE 5M: we are at a topmost continuation line
 -         (t
 -          (c-beginning-of-statement-1 (c-safe-position (point) paren-state))
 +       ;; arglist that begins on the previous line.
 +       ((and c-recognize-<>-arglists
 +             (eq (char-before) ?<)
 +             (not (and c-overloadable-operators-regexp
 +                       (c-after-special-operator-id lim))))
 +        (c-beginning-of-statement-1 (c-safe-position (point) paren-state))
 +        (c-add-syntax 'template-args-cont (c-point 'boi)))
 +
 +       ;; CASE 5Q: we are at a statement within a macro.
 +       (macro-start
 +        (c-beginning-of-statement-1 containing-sexp)
 +        (c-add-stmt-syntax 'statement nil t containing-sexp paren-state))
 +
 +     ;;CASE 5N: We are at a tompmost continuation line and the only
 +     ;;preceding items are annotations.
 +       ((and (c-major-mode-is 'java-mode)
 +             (setq placeholder (point))
 +           (c-beginning-of-statement-1)
 +           (progn
 +               (while (and (c-forward-annotation))
 +             (c-forward-syntactic-ws))
 +           t)
 +         (prog1
 +             (>= (point) placeholder)
 +             (goto-char placeholder)))
 +      (c-add-syntax 'annotation-top-cont (c-point 'boi)))
 +
 +       ;; CASE 5M: we are at a topmost continuation line
 +       (t
 +        (c-beginning-of-statement-1 (c-safe-position (point) paren-state))
            (when (c-major-mode-is 'objc-mode)
              (setq placeholder (point))
              (while (and (c-forward-objc-directive)
            (c-add-syntax 'topmost-intro-cont (c-point 'boi)))
           ))
  
 -       ;; (CASE 6 has been removed.)
  
 -       ;; CASE 19: line is an expression, not a statement, and is directly
 -       ;; contained by a template delimiter.  Most likely, we are in a
 -       ;; template arglist within a statement.  This case is based on CASE
 -       ;; 7.  At some point in the future, we may wish to create more
 -       ;; syntactic symbols such as `template-intro',
 -       ;; `template-cont-nonempty', etc., and distinguish between them as we
 -       ;; do for `arglist-intro' etc. (2009-12-07).
 -       ((and c-recognize-<>-arglists
 -             (setq containing-< (c-up-list-backward indent-point containing-sexp))
 -             (eq (char-after containing-<) ?\<))
 -        (setq placeholder (c-point 'boi containing-<))
 -        (goto-char containing-sexp)   ; Most nested Lbrace/Lparen (but not
 -                                      ; '<') before indent-point.
 -        (if (>= (point) placeholder)
 -            (progn
 -              (forward-char)
 -              (skip-chars-forward " \t"))
 -          (goto-char placeholder))
 -        (c-add-stmt-syntax 'template-args-cont (list containing-<) t
 -                           (c-most-enclosing-brace c-state-cache (point))
 -                           paren-state))
 -                           
 +       ;; (CASE 6 has been removed.)
  
 -       ;; CASE 7: line is an expression, not a statement.  Most
 -       ;; likely we are either in a function prototype or a function
 -       ;; call argument list, or a template argument list.
 -       ((not (or (and c-special-brace-lists
 -                      (save-excursion
 -                        (goto-char containing-sexp)
 -                        (c-looking-at-special-brace-list)))
 -                 (eq (char-after containing-sexp) ?{)
 -                 (eq (char-after containing-sexp) ?<)))
 -        (cond
 +       ;; CASE 7: line is an expression, not a statement.  Most
 +       ;; likely we are either in a function prototype or a function
 +       ;; call argument list
 +       ((not (or (and c-special-brace-lists
 +                    (save-excursion
 +                      (goto-char containing-sexp)
 +                      (c-looking-at-special-brace-list)))
 +               (eq (char-after containing-sexp) ?{)))
 +      (cond
  
 -         ;; CASE 7A: we are looking at the arglist closing paren.
 +       ;; CASE 7A: we are looking at the arglist closing paren.
           ;; C.f. case 7F.
           ((memq char-after-ip '(?\) ?\]))
            (goto-char containing-sexp)
                  (skip-chars-forward " \t"))
              (goto-char placeholder))
            (c-add-stmt-syntax 'arglist-close (list containing-sexp) t
 -                             (c-most-enclosing-brace paren-state (point))
 -                             paren-state))
 +                           (c-most-enclosing-brace paren-state (point))
 +                           paren-state))
  
 -         ;; CASE 7B: Looking at the opening brace of an
 -         ;; in-expression block or brace list.  C.f. cases 4, 16A
 -         ;; and 17E.
 +        ;; CASE 19: line is an expression, not a statement, and is directly
 +        ;; contained by a template delimiter. Most likely, we are in a
 +        ;; template arglist within a statement.  This case is based on CASE
 +        ;; 7. At some point in the future, we may wish to create more
 +        ;; syntactic symbols such as `template-intro',
 +        ;; `template-cont-nonempty', etc., and distinguish between them as we
 +        ;; do for `arglist-intro' etc. (2009-12-07).
 +        ((and c-recognize-<>-arglists
 +           (setq containing-< (c-up-list-backward indent-point containing-sexp))
 +           (eq (char-after containing-<) ?\<))
 +      (setq placeholder (c-point 'boi containing-<))
 +      (goto-char containing-sexp)     ; Most nested Lbrace/Lparen (but not
 +                                      ; '<') before indent-point.
 +      (if (>= (point) placeholder)
 +          (progn
 +            (forward-char)
 +            (skip-chars-forward " \t"))
 +        (goto-char placeholder))
 +      (c-add-stmt-syntax 'template-args-cont (list containing-<) t
 +                         (c-most-enclosing-brace c-state-cache (point))
 +                         paren-state))
 +
 +       ;; CASE 7B: Looking at the opening brace of an
 +       ;; in-expression block or brace list.  C.f. cases 4, 16A
 +       ;; and 17E.
           ((and (eq char-after-ip ?{)
                 (progn
                   (setq placeholder (c-inside-bracelist-p (point)
@@@ -10335,4 -9308,5 +10346,4 @@@ Cannot combine absolute offsets %S and 
  \f
  (cc-provide 'cc-engine)
  
 -;; arch-tag: 149add18-4673-4da5-ac47-6805e4eae089
  ;;; cc-engine.el ends here
diff --combined lisp/term/ns-win.el
index 6286b83258bb8d4450487826b83662989cdf52c4,6880fdb8807141d84f1529965454533e74007796..712929ecec04526997306cb5b495819784004746
@@@ -1,6 -1,7 +1,6 @@@
  ;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/MacOS X window system
  
 -;; Copyright (C) 1993, 1994, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -;;   Free Software Foundation, Inc.
 +;; Copyright (C) 1993-1994, 2005-2011  Free Software Foundation, Inc.
  
  ;; Authors: Carl Edman
  ;;    Christian Limpach
  
  ;;; Code:
  
 -
 -(if (not (featurep 'ns))
 +(or (featurep 'ns)
      (error "%s: Loading ns-win.el but not compiled for GNUstep/MacOS"
 -         (invocation-name)))
 +           (invocation-name)))
  
 -(eval-when-compile (require 'cl))
 +(eval-when-compile (require 'cl))       ; lexical-let
  
 -;; Documentation-purposes only: actually loaded in loadup.el
 +;; Documentation-purposes only: actually loaded in loadup.el.
  (require 'frame)
  (require 'mouse)
  (require 'faces)
 -(require 'easymenu)
  (require 'menu-bar)
  (require 'fontset)
  
 -;; Not needed?
 -;;(require 'ispell)
 -
  (defgroup ns nil
    "GNUstep/Mac OS X specific features."
    :group 'environment)
  
 -;; nsterm.m
 -(defvar ns-version-string)
 -(defvar ns-alternate-modifier)
 -(defvar ns-right-alternate-modifier)
 -
  ;;;; Command line argument handling.
  
 -(defvar ns-invocation-args nil)
 -(defvar ns-command-line-resources nil)
 -
 -;; Handler for switches of the form "-switch value" or "-switch".
 -(defun ns-handle-switch (switch &optional numeric)
 -  (let ((aelt (assoc switch command-line-ns-option-alist)))
 -    (if aelt
 -      (setq default-frame-alist
 -            (cons (cons (nth 3 aelt)
 -                        (if numeric
 -                            (string-to-number (pop ns-invocation-args))
 -                          (or (nth 4 aelt) (pop ns-invocation-args))))
 -                  default-frame-alist)))))
 -
 -;; Handler for switches of the form "-switch n"
 -(defun ns-handle-numeric-switch (switch)
 -  (ns-handle-switch switch t))
 -
 -;; Make -iconic apply only to the initial frame!
 -(defun ns-handle-iconic (switch)
 -  (setq initial-frame-alist
 -        (cons '(visibility . icon) initial-frame-alist)))
 -
 -;; Handle the -name option, set the name of the initial frame.
 -(defun ns-handle-name-switch (switch)
 -  (or (consp ns-invocation-args)
 -      (error "%s: missing argument to `%s' option" (invocation-name) switch))
 -  (setq initial-frame-alist (cons (cons 'name (pop ns-invocation-args))
 -                                  initial-frame-alist)))
 -
 -;; Set (but not used?) in frame.el.
 -(defvar x-display-name nil
 -  "The name of the window display on which Emacs was started.
 -On X, the display name of individual X frames is recorded in the
 -`display' frame parameter.")
 +(defvar x-invocation-args)
 +(defvar ns-command-line-resources nil)  ; FIXME unused?
  
  ;; nsterm.m.
  (defvar ns-input-file)
  
 -(defun ns-handle-nxopen (switch)
 -  (setq unread-command-events (append unread-command-events '(ns-open-file))
 -        ns-input-file (append ns-input-file (list (pop ns-invocation-args)))))
 +(defun ns-handle-nxopen (switch &optional temp)
 +  (setq unread-command-events (append unread-command-events
 +                                      (if temp '(ns-open-temp-file)
 +                                        '(ns-open-file)))
 +        ns-input-file (append ns-input-file (list (pop x-invocation-args)))))
  
  (defun ns-handle-nxopentemp (switch)
 -  (setq unread-command-events (append unread-command-events
 -                                    '(ns-open-temp-file))
 -        ns-input-file (append ns-input-file (list (pop ns-invocation-args)))))
 +  (ns-handle-nxopen switch t))
  
  (defun ns-ignore-1-arg (switch)
 -  (setq ns-invocation-args (cdr ns-invocation-args)))
 -(defun ns-ignore-2-arg (switch)
 -  (setq ns-invocation-args (cddr ns-invocation-args)))
 -
 -(defun ns-handle-args (args)
 -  "Process Nextstep-related command line options.
 -This is run before the user's startup file is loaded.
 -The options in ARGS are copied to `ns-invocation-args'.
 -The Nextstep-related settings are then applied using the handlers
 -defined in `command-line-ns-option-alist'.
 -The return value is ARGS minus the number of arguments processed."
 -  ;; We use ARGS to accumulate the args that we don't handle here, to return.
 -  (setq ns-invocation-args args
 -        args nil)
 -  (while ns-invocation-args
 -    (let* ((this-switch (pop ns-invocation-args))
 -         (orig-this-switch this-switch)
 -         completion argval aelt handler)
 -      ;; Check for long options with attached arguments
 -      ;; and separate out the attached option argument into argval.
 -      (if (string-match "^--[^=]*=" this-switch)
 -        (setq argval (substring this-switch (match-end 0))
 -              this-switch (substring this-switch 0 (1- (match-end 0)))))
 -      ;; Complete names of long options.
 -      (if (string-match "^--" this-switch)
 -        (progn
 -          (setq completion (try-completion this-switch
 -                                             command-line-ns-option-alist))
 -          (if (eq completion t)
 -              ;; Exact match for long option.
 -              nil
 -            (if (stringp completion)
 -                (let ((elt (assoc completion command-line-ns-option-alist)))
 -                  ;; Check for abbreviated long option.
 -                  (or elt
 -                      (error "Option `%s' is ambiguous" this-switch))
 -                  (setq this-switch completion))))))
 -      (setq aelt (assoc this-switch command-line-ns-option-alist))
 -      (if aelt (setq handler (nth 2 aelt)))
 -      (if handler
 -        (if argval
 -            (let ((ns-invocation-args
 -                   (cons argval ns-invocation-args)))
 -              (funcall handler this-switch))
 -          (funcall handler this-switch))
 -      (setq args (cons orig-this-switch args)))))
 -  (nreverse args))
 +  (setq x-invocation-args (cdr x-invocation-args)))
  
  (defun ns-parse-geometry (geom)
    "Parse a Nextstep-style geometry string GEOM.
@@@ -97,13 -187,28 +97,13 @@@ The properties returned may include `to
  
  ;;;; Keyboard mapping.
  
 -;; These tell read-char how to convert these special chars to ASCII.
 -(put 'S-tab 'ascii-character (logior 16 ?\t))
 -
 -(defvar ns-alternatives-map
 -  (let ((map (make-sparse-keymap)))
 -    ;; Map certain keypad keys into ASCII characters
 -    ;; that people usually expect.
 -    (define-key map [S-tab] [25])
 -    (define-key map [M-backspace] [?\M-\d])
 -    (define-key map [M-delete] [?\M-\d])
 -    (define-key map [M-tab] [?\M-\t])
 -    (define-key map [M-linefeed] [?\M-\n])
 -    (define-key map [M-clear] [?\M-\C-l])
 -    (define-key map [M-return] [?\M-\C-m])
 -    (define-key map [M-escape] [?\M-\e])
 -    map)
 -  "Keymap of alternative meanings for some keys under Nextstep.")
 +(define-obsolete-variable-alias 'ns-alternatives-map 'x-alternatives-map "24.1")
  
  ;; Here are some Nextstep-like bindings for command key sequences.
  (define-key global-map [?\s-,] 'customize)
  (define-key global-map [?\s-'] 'next-multiframe-window)
  (define-key global-map [?\s-`] 'other-frame)
 +(define-key global-map [?\s-~] 'ns-prev-frame)
  (define-key global-map [?\s--] 'center-line)
  (define-key global-map [?\s-:] 'ispell)
  (define-key global-map [?\s-\;] 'ispell-next)
  (define-key global-map [kp-prior] 'scroll-down)
  (define-key global-map [kp-next] 'scroll-up)
  
 -;;; Allow shift-clicks to work similarly to under Nextstep
 +;; Allow shift-clicks to work similarly to under Nextstep.
  (define-key global-map [S-mouse-1] 'mouse-save-then-kill)
  (global-unset-key [S-down-mouse-1])
  
 -
  ;; Special Nextstep-generated events are converted to function keys.  Here
 -;; are the bindings for them.
 +;; are the bindings for them.  Note, these keys are actually declared in
 +;; x-setup-function-keys in common-win.
  (define-key global-map [ns-power-off] 'save-buffers-kill-emacs)
  (define-key global-map [ns-open-file] 'ns-find-file)
  (define-key global-map [ns-open-temp-file] [ns-open-file])
  
  (defvaralias 'mac-allow-anti-aliasing 'ns-antialias-text)
  (defvaralias 'mac-command-modifier 'ns-command-modifier)
 +(defvaralias 'mac-right-command-modifier 'ns-right-command-modifier)
  (defvaralias 'mac-control-modifier 'ns-control-modifier)
 +(defvaralias 'mac-right-control-modifier 'ns-right-control-modifier)
  (defvaralias 'mac-option-modifier 'ns-option-modifier)
  (defvaralias 'mac-right-option-modifier 'ns-right-option-modifier)
  (defvaralias 'mac-function-modifier 'ns-function-modifier)
  (declare-function ns-do-applescript "nsfns.m" (script))
  (defalias 'do-applescript 'ns-do-applescript)
  
 -(defun x-setup-function-keys (frame)
 -  "Set up `function-key-map' on the graphical frame FRAME."
 -  (unless (terminal-parameter frame 'x-setup-function-keys)
 -    (with-selected-frame frame
 -      (setq interprogram-cut-function 'x-select-text
 -          interprogram-paste-function 'x-cut-buffer-or-selection-value)
 -      (let ((map (copy-keymap ns-alternatives-map)))
 -      (set-keymap-parent map (keymap-parent local-function-key-map))
 -      (set-keymap-parent local-function-key-map map))
 -      (setq system-key-alist
 -            (list
 -             (cons (logior (lsh 0 16)   1) 'ns-power-off)
 -             (cons (logior (lsh 0 16)   2) 'ns-open-file)
 -             (cons (logior (lsh 0 16)   3) 'ns-open-temp-file)
 -             (cons (logior (lsh 0 16)   4) 'ns-drag-file)
 -             (cons (logior (lsh 0 16)   5) 'ns-drag-color)
 -             (cons (logior (lsh 0 16)   6) 'ns-drag-text)
 -             (cons (logior (lsh 0 16)   7) 'ns-change-font)
 -             (cons (logior (lsh 0 16)   8) 'ns-open-file-line)
 -;             (cons (logior (lsh 0 16)   9) 'ns-insert-working-text)
 -;             (cons (logior (lsh 0 16)  10) 'ns-delete-working-text)
 -             (cons (logior (lsh 0 16)  11) 'ns-spi-service-call)
 -           (cons (logior (lsh 0 16)  12) 'ns-new-frame)
 -           (cons (logior (lsh 0 16)  13) 'ns-toggle-toolbar)
 -           (cons (logior (lsh 0 16)  14) 'ns-show-prefs)
 -           (cons (logior (lsh 1 16)  32) 'f1)
 -             (cons (logior (lsh 1 16)  33) 'f2)
 -             (cons (logior (lsh 1 16)  34) 'f3)
 -             (cons (logior (lsh 1 16)  35) 'f4)
 -             (cons (logior (lsh 1 16)  36) 'f5)
 -             (cons (logior (lsh 1 16)  37) 'f6)
 -             (cons (logior (lsh 1 16)  38) 'f7)
 -             (cons (logior (lsh 1 16)  39) 'f8)
 -             (cons (logior (lsh 1 16)  40) 'f9)
 -             (cons (logior (lsh 1 16)  41) 'f10)
 -             (cons (logior (lsh 1 16)  42) 'f11)
 -             (cons (logior (lsh 1 16)  43) 'f12)
 -             (cons (logior (lsh 1 16)  44) 'kp-insert)
 -             (cons (logior (lsh 1 16)  45) 'kp-delete)
 -             (cons (logior (lsh 1 16)  46) 'kp-home)
 -             (cons (logior (lsh 1 16)  47) 'kp-end)
 -             (cons (logior (lsh 1 16)  48) 'kp-prior)
 -             (cons (logior (lsh 1 16)  49) 'kp-next)
 -             (cons (logior (lsh 1 16)  50) 'print-screen)
 -             (cons (logior (lsh 1 16)  51) 'scroll-lock)
 -             (cons (logior (lsh 1 16)  52) 'pause)
 -             (cons (logior (lsh 1 16)  53) 'system)
 -             (cons (logior (lsh 1 16)  54) 'break)
 -             (cons (logior (lsh 1 16)  56) 'please-tell-carl-what-this-key-is-called-56)
 -             (cons (logior (lsh 1 16)  61) 'please-tell-carl-what-this-key-is-called-61)
 -             (cons (logior (lsh 1 16)  62) 'please-tell-carl-what-this-key-is-called-62)
 -             (cons (logior (lsh 1 16)  63) 'please-tell-carl-what-this-key-is-called-63)
 -             (cons (logior (lsh 1 16)  64) 'please-tell-carl-what-this-key-is-called-64)
 -             (cons (logior (lsh 1 16)  69) 'please-tell-carl-what-this-key-is-called-69)
 -             (cons (logior (lsh 1 16)  70) 'please-tell-carl-what-this-key-is-called-70)
 -             (cons (logior (lsh 1 16)  71) 'please-tell-carl-what-this-key-is-called-71)
 -             (cons (logior (lsh 1 16)  72) 'please-tell-carl-what-this-key-is-called-72)
 -             (cons (logior (lsh 1 16)  73) 'please-tell-carl-what-this-key-is-called-73)
 -             (cons (logior (lsh 2 16)   3) 'kp-enter)
 -             (cons (logior (lsh 2 16)   9) 'kp-tab)
 -             (cons (logior (lsh 2 16)  28) 'kp-quit)
 -             (cons (logior (lsh 2 16)  35) 'kp-hash)
 -             (cons (logior (lsh 2 16)  42) 'kp-multiply)
 -             (cons (logior (lsh 2 16)  43) 'kp-add)
 -             (cons (logior (lsh 2 16)  44) 'kp-separator)
 -             (cons (logior (lsh 2 16)  45) 'kp-subtract)
 -             (cons (logior (lsh 2 16)  46) 'kp-decimal)
 -             (cons (logior (lsh 2 16)  47) 'kp-divide)
 -             (cons (logior (lsh 2 16)  48) 'kp-0)
 -             (cons (logior (lsh 2 16)  49) 'kp-1)
 -             (cons (logior (lsh 2 16)  50) 'kp-2)
 -             (cons (logior (lsh 2 16)  51) 'kp-3)
 -             (cons (logior (lsh 2 16)  52) 'kp-4)
 -             (cons (logior (lsh 2 16)  53) 'kp-5)
 -             (cons (logior (lsh 2 16)  54) 'kp-6)
 -             (cons (logior (lsh 2 16)  55) 'kp-7)
 -             (cons (logior (lsh 2 16)  56) 'kp-8)
 -             (cons (logior (lsh 2 16)  57) 'kp-9)
 -             (cons (logior (lsh 2 16)  60) 'kp-less)
 -             (cons (logior (lsh 2 16)  61) 'kp-equal)
 -             (cons (logior (lsh 2 16)  62) 'kp-more)
 -             (cons (logior (lsh 2 16)  64) 'kp-at)
 -             (cons (logior (lsh 2 16)  92) 'kp-backslash)
 -             (cons (logior (lsh 2 16)  96) 'kp-backtick)
 -             (cons (logior (lsh 2 16) 124) 'kp-bar)
 -             (cons (logior (lsh 2 16) 126) 'kp-tilde)
 -             (cons (logior (lsh 2 16) 157) 'kp-mu)
 -             (cons (logior (lsh 2 16) 165) 'kp-yen)
 -             (cons (logior (lsh 2 16) 167) 'kp-paragraph)
 -             (cons (logior (lsh 2 16) 172) 'left)
 -             (cons (logior (lsh 2 16) 173) 'up)
 -             (cons (logior (lsh 2 16) 174) 'right)
 -             (cons (logior (lsh 2 16) 175) 'down)
 -             (cons (logior (lsh 2 16) 176) 'kp-ring)
 -             (cons (logior (lsh 2 16) 201) 'kp-square)
 -             (cons (logior (lsh 2 16) 204) 'kp-cube)
 -             (cons (logior (lsh 3 16)   8) 'backspace)
 -             (cons (logior (lsh 3 16)   9) 'tab)
 -             (cons (logior (lsh 3 16)  10) 'linefeed)
 -             (cons (logior (lsh 3 16)  11) 'clear)
 -             (cons (logior (lsh 3 16)  13) 'return)
 -             (cons (logior (lsh 3 16)  18) 'pause)
 -             (cons (logior (lsh 3 16)  25) 'S-tab)
 -             (cons (logior (lsh 3 16)  27) 'escape)
 -             (cons (logior (lsh 3 16) 127) 'delete)
 -             )))
 -    (set-terminal-parameter frame 'x-setup-function-keys t)))
 -
 -
 -;; Add a couple of menus and rearrange some others; easiest just to redo toplvl
 -;; Note keymap defns must be given last-to-first
 -(define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))
 -
 -(setq menu-bar-final-items
 -      (cond ((eq system-type 'darwin)
 -             '(buffer windows services help-menu))
 -            ;; Otherwise, GNUstep.
 -            (t
 -             '(buffer windows services hide-app quit))))
 -
 -;; Add standard top-level items to GNUstep menu.
 -(unless (eq system-type 'darwin)
 -  (define-key global-map [menu-bar quit] '("Quit" . save-buffers-kill-emacs))
 -  (define-key global-map [menu-bar hide-app] '("Hide" . ns-do-hide-emacs)))
 -
 -(define-key global-map [menu-bar services]
 -  (cons "Services" (make-sparse-keymap "Services")))
 -(define-key global-map [menu-bar buffer]
 -  (cons "Buffers" global-buffers-menu-map))
 -;;  (cons "Buffers" (make-sparse-keymap "Buffers")))
 -(define-key global-map [menu-bar tools] (cons "Tools" menu-bar-tools-menu))
 -(define-key global-map [menu-bar options] (cons "Options" menu-bar-options-menu))
 -(define-key global-map [menu-bar edit] (cons "Edit" menu-bar-edit-menu))
 -(define-key global-map [menu-bar file] (cons "File" menu-bar-file-menu))
 -
 -;; If running under GNUstep, rename "Help" to "Info"
 -(cond ((eq system-type 'darwin)
 -       (define-key global-map [menu-bar help-menu]
 -       (cons "Help" menu-bar-help-menu)))
 -      (t
 -       (let ((contents (reverse (cdr menu-bar-help-menu))))
 -       (setq menu-bar-help-menu
 -             (append (list 'keymap) (cdr contents) (list "Info"))))
 -       (define-key global-map [menu-bar help-menu]
 -       (cons "Info" menu-bar-help-menu))))
 -
 -(if (not (eq system-type 'darwin))
 -    ;; in OS X it's in the app menu already
 -    (define-key menu-bar-help-menu [info-panel]
 -      '("About Emacs..." . ns-do-emacs-info-panel)))
 -
 -;;;; Edit menu: Modify slightly
 -
 -;; Substitute a Copy function that works better under X (for GNUstep).
 -(easy-menu-remove-item global-map '("menu-bar" "edit") 'copy)
 -(define-key-after menu-bar-edit-menu [copy]
 -  '(menu-item "Copy" ns-copy-including-secondary
 -    :enable mark-active
 -    :help "Copy text in region between mark and current position")
 -  'cut)
 -
 -;; Change to same precondition as select-and-paste, as we don't have
 -;; `x-selection-exists-p'.
 -(easy-menu-remove-item global-map '("menu-bar" "edit") 'paste)
 -(define-key-after menu-bar-edit-menu [paste]
 -  '(menu-item "Paste" yank
 -    :enable (and (cdr yank-menu) (not buffer-read-only))
 -    :help "Paste (yank) text most recently cut/copied")
 -  'copy)
 -
 -;; Change text to be more consistent with surrounding menu items `paste', etc.
 -(easy-menu-remove-item global-map '("menu-bar" "edit") 'paste-from-menu)
 -(define-key-after menu-bar-edit-menu [select-paste]
 -  '(menu-item "Select and Paste" yank-menu
 -    :enable (and (cdr yank-menu) (not buffer-read-only))
 -    :help "Choose a string from the kill ring and paste it")
 -  'paste)
 -
 -;; Separate undo from cut/paste section, add spell for platform consistency.
 -(define-key-after menu-bar-edit-menu [separator-undo] '("--") 'undo)
 -(define-key-after menu-bar-edit-menu [spell] '("Spell" . ispell-menu-map) 'fill)
 -
 -
  ;;;; Services
  (declare-function ns-perform-service "nsfns.m" (service send))
  
        (t (error (concat "Service " ns-input-spi-name " not recognized")))))
  
  
 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 -
 -
 -
  ;; Composed key sequence handling for Nextstep system input methods.
  ;; (On Nextstep systems, input methods are provided for CJK
  ;; characters, etc. which require multiple keystrokes, and during
@@@ -348,24 -638,29 +348,24 @@@ See `ns-insert-working-text'.
  ;;;; OS X file system Unicode UTF-8 NFD (decomposed form) support
  ;; Lisp code based on utf-8m.el, by Seiji Zenitani, Eiji Honjoh, and
  ;; Carsten Bormann.
 -(if (eq system-type 'darwin)
 -    (progn
 -
 -      (defun ns-utf8-nfd-post-read-conversion (length)
 -      "Calls `ns-convert-utf8-nfd-to-nfc' to compose char sequences."
 -      (save-excursion
 -        (save-restriction
 -          (narrow-to-region (point) (+ (point) length))
 -          (let ((str (buffer-string)))
 -            (delete-region (point-min) (point-max))
 -            (insert (ns-convert-utf8-nfd-to-nfc str))
 -            (- (point-max) (point-min))
 -            ))))
 -
 -      (define-coding-system 'utf-8-nfd
 -      "UTF-8 NFD (decomposed) encoding."
 -      :coding-type 'utf-8
 -      :mnemonic ?U
 -      :charset-list '(unicode)
 -      :post-read-conversion 'ns-utf8-nfd-post-read-conversion)
 -      (set-file-name-coding-system 'utf-8-nfd)))
 -
 -
 +(when (eq system-type 'darwin)
 +  (defun ns-utf8-nfd-post-read-conversion (length)
 +    "Calls `ns-convert-utf8-nfd-to-nfc' to compose char sequences."
 +    (save-excursion
 +      (save-restriction
 +        (narrow-to-region (point) (+ (point) length))
 +        (let ((str (buffer-string)))
 +          (delete-region (point-min) (point-max))
 +          (insert (ns-convert-utf8-nfd-to-nfc str))
 +          (- (point-max) (point-min))))))
 +
 +  (define-coding-system 'utf-8-nfd
 +    "UTF-8 NFD (decomposed) encoding."
 +    :coding-type 'utf-8
 +    :mnemonic ?U
 +    :charset-list '(unicode)
 +    :post-read-conversion 'ns-utf8-nfd-post-read-conversion)
 +  (set-file-name-coding-system 'utf-8-nfd))
  
  ;;;; Inter-app communications support.
  
    "Insert contents of file `ns-input-file' like insert-file but with less
  prompting.  If file is a directory perform a `find-file' on it."
    (interactive)
 -  (let ((f))
 -    (setq f (car ns-input-file))
 -    (setq ns-input-file (cdr ns-input-file))
 +  (let ((f (pop ns-input-file)))
      (if (file-directory-p f)
          (find-file f)
 -      (push-mark (+ (point) (car (cdr (insert-file-contents f))))))))
 +      (push-mark (+ (point) (cadr (insert-file-contents f)))))))
  
  (defvar ns-select-overlay nil
    "Overlay used to highlight areas in files requested by Nextstep apps.")
@@@ -437,6 -734,8 +437,6 @@@ Lines are highlighted according to `ns-
  
  (add-hook 'first-change-hook 'ns-unselect-line)
  
 -
 -
  ;;;; Preferences handling.
  (declare-function ns-get-resource "nsfns.m" (owner name))
  
@@@ -487,10 -786,13 +487,12 @@@ unless the current buffer is a scratch 
  (defun ns-find-file ()
    "Do a `find-file' with the `ns-input-file' as argument."
    (interactive)
-   (let* ((f (file-truename (pop ns-input-file)))
 -  (let ((f) (file) (bufwin1) (bufwin2))
 -    (setq f (file-truename (expand-file-name (car ns-input-file)
 -                                           command-line-default-directory)))
 -    (setq ns-input-file (cdr ns-input-file))
 -    (setq file (find-file-noselect f))
 -    (setq bufwin1 (get-buffer-window file 'visible))
 -    (setq bufwin2 (get-buffer-window "*scratch*" 'visibile))
++  (let* ((f (file-truename
++           (expand-file-name (pop ns-input-file)
++                             command-line-default-directory)))
 +         (file (find-file-noselect f))
 +         (bufwin1 (get-buffer-window file 'visible))
 +         (bufwin2 (get-buffer-window "*scratch*" 'visibile)))
      (cond
       (bufwin1
        (select-frame (window-frame bufwin1))
        (ns-hide-emacs 'activate)
        (find-file f)))))
  
 -
 -
  ;;;; Frame-related functions.
  
  ;; Don't show the frame name; that's redundant with Nextstep.
  (setq-default mode-line-frame-identification '("  "))
  
 +;; nsterm.m
 +(defvar ns-alternate-modifier)
 +(defvar ns-right-alternate-modifier)
 +(defvar ns-right-command-modifier)
 +(defvar ns-right-control-modifier)
 +
  ;; You say tomAYto, I say tomAHto..
  (defvaralias 'ns-option-modifier 'ns-alternate-modifier)
  (defvaralias 'ns-right-option-modifier 'ns-right-alternate-modifier)
    (if (not tool-bar-mode) (tool-bar-mode t)))
  
  
 -
  ;;;; Dialog-related functions.
  
 -
  ;; Ask user for confirm before printing.  Due to Kevin Rodgers.
  (defun ns-print-buffer ()
    "Interactive front-end to `print-buffer': asks for user confirmation first."
          (error "Cancelled")))
      (print-buffer)))
  
 -
  ;;;; Font support.
  
  ;; Needed for font listing functions under both backend and normal
@@@ -649,16 -950,17 +651,16 @@@ come with OS X
  See the documentation of `create-fontset-from-fontset-spec' for the format.")
  
  ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles.
 -(if (fboundp 'new-fontset)
 -    (progn
 -      ;; Setup the default fontset.
 -      (create-default-fontset)
 -      ;; Create the standard fontset.
 -      (condition-case err
 -        (create-fontset-from-fontset-spec ns-standard-fontset-spec t)
 -      (error (display-warning
 -              'initialization
 -              (format "Creation of the standard fontset failed: %s" err)
 -              :error)))))
 +(when (fboundp 'new-fontset)
 +  ;; Setup the default fontset.
 +  (create-default-fontset)
 +  ;; Create the standard fontset.
 +  (condition-case err
 +      (create-fontset-from-fontset-spec ns-standard-fontset-spec t)
 +    (error (display-warning
 +            'initialization
 +            (format "Creation of the standard fontset failed: %s" err)
 +            :error))))
  
  (defvar ns-reg-to-script)               ; nsfont.m
  
  
  (defun ns-get-pasteboard ()
    "Returns the value of the pasteboard."
 -  (ns-get-cut-buffer-internal 'PRIMARY))
 +  (ns-get-cut-buffer-internal 'CLIPBOARD))
  
  (declare-function ns-store-cut-buffer-internal "nsselect.m" (buffer string))
  
    "Store STRING into the pasteboard of the Nextstep display server."
    ;; Check the data type of STRING.
    (if (not (stringp string)) (error "Nonstring given to pasteboard"))
 -  (ns-store-cut-buffer-internal 'PRIMARY string))
 +  (ns-store-cut-buffer-internal 'CLIPBOARD string))
  
  ;; We keep track of the last text selected here, so we can check the
  ;; current selection against it, and avoid passing back our own text
 -;; from x-cut-buffer-or-selection-value.
 +;; from x-selection-value.
  (defvar ns-last-selected-text nil)
  
 -(defun x-select-text (text &optional push)
 -  "Select TEXT, a string, according to the window system.
 -
 -On X, put TEXT in the primary X selection.  For backward
 -compatibility with older X applications, set the value of X cut
 -buffer 0 as well, and if the optional argument PUSH is non-nil,
 -rotate the cut buffers.  If `x-select-enable-clipboard' is
 -non-nil, copy the text to the X clipboard as well.
 -
 -On Windows, make TEXT the current selection.  If
 -`x-select-enable-clipboard' is non-nil, copy the text to the
 -clipboard as well.  The argument PUSH is ignored.
 -
 -On Nextstep, put TEXT in the pasteboard; PUSH is ignored."
 -  ;; Don't send the pasteboard too much text.
 -  ;; It becomes slow, and if really big it causes errors.
 -  (ns-set-pasteboard text)
 -  (setq ns-last-selected-text text))
 -
  ;; Return the value of the current Nextstep selection.  For
  ;; compatibility with older Nextstep applications, this checks cut
  ;; buffer 0 before retrieving the value of the primary selection.
 -(defun x-cut-buffer-or-selection-value ()
 +(defun x-selection-value ()
    (let (text)
 -
 -    ;; Consult the selection, then the cut buffer.  Treat empty strings
 -    ;; as if they were unset.
 +    ;; Consult the selection.  Treat empty strings as if they were unset.
      (or text (setq text (ns-get-pasteboard)))
      (if (string= text "") (setq text nil))
 -
      (cond
       ((not text) nil)
       ((eq text ns-last-selected-text) nil)
    (insert (ns-get-cut-buffer-internal 'SECONDARY)))
  
  
 -
  ;;;; Scrollbar handling.
  
  (global-set-key [vertical-scroll-bar down-mouse-1] 'ns-handle-scroll-bar-event)
  
  ;;;; Color support.
  
 -(declare-function ns-list-colors "nsfns.m" (&optional frame))
 -
 -(defvar x-colors (ns-list-colors)
 -  "List of basic colors available on color displays.
 -For X, the list comes from the `rgb.txt' file,v 10.41 94/02/20.
 -For Nextstep, this is a list of non-PANTONE colors returned by
 -the operating system.")
 -
 -(defun xw-defined-colors (&optional frame)
 -  "Internal function called by `defined-colors'."
 -  (or frame (setq frame (selected-frame)))
 -  (let ((all-colors x-colors)
 -      (this-color nil)
 -      (defined-colors nil))
 -    (while all-colors
 -      (setq this-color (car all-colors)
 -          all-colors (cdr all-colors))
 -      ;; (and (face-color-supported-p frame this-color t)
 -      (setq defined-colors (cons this-color defined-colors))) ;;)
 -    defined-colors))
 -
  ;; Functions for color panel + drag
  (defun ns-face-at-pos (pos)
    (let* ((frame (car pos))
    "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing."
  
    ;; PENDING: not needed?
 -  (setq command-line-args (ns-handle-args command-line-args))
 +  (setq command-line-args (x-handle-args command-line-args))
  
    (x-open-connection (system-name) nil t)
  
  
    (setq ns-initialized t))
  
 -(add-to-list 'handle-args-function-alist '(ns . ns-handle-args))
 +(add-to-list 'handle-args-function-alist '(ns . x-handle-args))
  (add-to-list 'frame-creation-function-alist '(ns . x-create-frame-with-faces))
  (add-to-list 'window-system-initialization-alist '(ns . ns-initialize-window-system))
  
  
  (provide 'ns-win)
  
 -;; arch-tag: eb138a45-4e2e-4d68-b1c9-a39665731644
  ;;; ns-win.el ends here
diff --combined src/ChangeLog
index 7c4401c1c81e5bae1f7786fd50c53db75f1b35b1,af76f670e6c488be082aeab4fb764a736b70fc83..2353116c8bd5116e4acb5791b31f651c69e7b9b7
 -2011-01-29  Andreas Schwab  <schwab@linux-m68k.org>
++2011-01-31  Andreas Schwab  <schwab@linux-m68k.org>
+       * image.c (DEF_IMGLIB_FN): Add parameter rettype, use it instead
+       of int.  All uses adjusted.
+       (PNG_JMPBUF, png_load, jpeg_load, tiff_load, gif_load)
+       (svg_load_image): Remove casts.
 -2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
++2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
+       * image.c (fn_png_longjmp, fn_png_set_longjmp_fn): New png
+       function definitions for compiling with libpng-1.5.
+       (PNG_LONGJMP, PNG_JMPBUF): New macros for libpng-1.5.
+       (my_png_error, png_load): Use them.  Suggested by Thomas Klausner
+       (Bug#7908).
 +2011-01-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * s/ms-w32.h (HAVE_STRFTIME): Don't define.
 +
 +      * makefile.w32-in (OBJ2): Remove strftime.$(O).
 +      ($(BLD)/strftime.$(O)): Remove prerequisites.
 +
 +2011-01-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      src/emacs.c now gets version number from configure.in
 +      * emacs.c (emacs_version): Set to VERSION so that it
 +      is determined automatically from ../configure.in.
 +
 +2011-01-31  Jim Meyering  <meyering@redhat.com>
 +
 +      * charset.c (load_charset_map): Don't deref NULL on failed malloc.
 +      Use xmalloc rather than malloc.
 +
 +2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      strftime: import from gnulib
 +      * Makefile.in (obj): Remove strftime.o, as gnulib now does this for us.
 +      * deps.mk (strftime.o): Remove.
 +      * editfns.c: Include <strftime.h>, supplied by gnulib.
 +      (emacs_strftimeu): Remove decl.
 +      (emacs_memftimeu): Use nstrftime (the gnulib name) rather than
 +      emacs_strftimeu.
 +      * config.in: Regenerate.
 +      * strftime.c: Remove; we now use strftime from gnulib.
 +
 +      Use SSDATA when the context wants char *.
 +      * alloc.c, buffer.c, bytecode.c, callproc.c, dired.c:
 +      * dispnew.c, doc.c, editfns.c, emacs.c, fileio.c, filelock.c:
 +      * fns.c, font.c, frame.c, image.c, indent.c, keyboard.c:
 +      * lread.c, minibuf.c, print.c, process.c, search.c, widget.c:
 +      * xdisp.c, xfaces.c, xfns.c, xml.c, xselect.c, xterm.c:
 +      Use SSDATA (not SDATA) when the context of the expression wants
 +      char * (not unsigned char *).
 +
 +2011-01-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * .gdbinit: Read global lisp variables as globals.f_V*.
 +
 +2011-01-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * font.c (PROP_MATCH): Remove parameter N and use strlen instead.
 +      All uses changed.
 +      (PROP_SAVE): Likewise.
 +
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (make_lispy_position): Fix typo in last change
 +      (Bug#7935).
 +
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * s/ms-w32.h (HAVE_MKTIME): Remove.
 +
 +      * makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
 +      (GNULIB): New variable.
 +      (LIBS): Add $(GNULIB).
 +      $(TEMACS): Depend on $(GNULIB).
 +      <top-level>: Fix font-lock disrupted by a lone `"'.
 +
 +2011-01-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m (ns_string_from_pasteboard): Get length of string
 +      and use make_string instead of build_string (Bug#7934).
 +      (ns_string_to_pasteboard_internal): Use initWithBytesNoCopy
 +      instead of stringWithUTF8String  (Bug#7934).
 +
 +2011-01-29  Anders Lindgren  <andlind@gmail.com> (tiny change)
 +
 +        * nsfont.m (nsfont_open): Ensure that fonts with inexact
 +        descenders would not become one pixel too tall (Bug#7887).
 +
  2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * m/intel386.h: Define NO_ARG_ARRAY.  Suggested by Dan Nicolaescu.
 +      * keyboard.c (make_lispy_position): For clicks on right fringe or
 +      margin, compute text position using the X coordinate relative to
 +      the left of the text area (Bug#7839).
 +
 +2011-01-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_spec_pattern): Check each extra property
 +      value.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (safe_eval_handler): Distinguish symbols and strings.
  
  2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * font.c (font_parse_fcname): Require GTK-style font sizes to
 -      occur at the end of the font string (Bug#7853).
 +      * font.c (font_parse_fcname): Undefine a temporary macro.
 +
 +2011-01-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Let the debugger continue to the normal handler (bug#7825).
 +      * eval.c (maybe_call_debugger): Declare before new use.
 +      (find_handler_clause): Don't call debugger any more.
 +      Ignore Vstack_trace_on_error.
 +      Use XCAR/XCDR.
 +      (syms_of_eval): Remove Vstack_trace_on_error.
 +      (Fsignal): Only modify handlerlist when we know we need to do it.
 +      Call the debugger when necessary.
 +      * globals.h (Vstack_trace_on_error): Remove.
  
  2011-01-26  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * font.c (font_parse_fcname): Fix typo in string length.
 +      * font.c (font_parse_fcname): Rewrite GTK font name parser.
  
 -2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * xdisp.c (handle_fontified_prop): Be careful with font-lock changing
        the buffer's point-max (bug#7876).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
        * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases.
 -      Remove unused HAVE_SHM branch (Bug#6811).
 +      Remove unused case (Bug#6811).
 +
 +2011-01-23  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2011-01-23  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 +      * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to
 +      setFrameTopLeftPoint is constrained.
  
 -      * s/hpux11.h: Set CANNOT_DUMP on IA64 (Bug#6811).
 +2011-01-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Check return values of some library calls.
 +      * emacs.c (main): Check dup result.
 +      * frame.c: Include <limits.h>, for INT_MIN and INT_MAX.
 +      (frame_name_fnn_p): Check strtol result.
 +
 +      * image.c (x_create_bitmap_from_xpm_data): Add cast to fix type clash
 +      when calling XpmCreatePixmapFromData.
 +
 +      Promote SSDATA macro from gtkutil.c and xsmfns.c to lisp.h.
 +      * lisp.h (SSDATA): New macro.
 +      All uses of (char *) SDATA (x) replaced with SSDATA (x),
 +      and all uses of (unsigned char *) SDATA (x) replaced with SDATA (x).
 +      * gtkutil.c (SSDATA): Remove, as lisp.h now defines this.
 +      * xsmfns.c (SSDATA): Likewise.
  
  2011-01-22  Martin Rudalics  <rudalics@gmx.at>
  
        (inhibit_point_swap): Variable deleted.
        (Fset_window_configuration): Call select_window directly.
  
 -2011-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (constrainFrameRect): Only constrain the first time called.
 +
 +2011-01-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (x_set_offset, windowDidMove): When calculating y, use first
 +      screen, not the window screen.
 +      (x_set_window_size): Remove constraints.
 +      Calculate origin.y only if zooming is 0 and without referring to a
 +      screen.
 +      (windowWillResize): Don't modify frameSize.
 +      (windowDidBecomeKey, mouseDown): Set dont_constrain to 1.
 +      (initFrameFromEmacs): Initialize ns_userRect.
 +      (windowShouldZoom): Set zooming to one.  Remove all other code.
 +      (windowWillUseStandardFrame): Move static ns_userRect to EmacsView.
 +      Zero it after restore.
 +      (constrainFrameRect): New method for EmacsWindow.
 +      (mouseDragged): Always post NSWindowDidResizeNotification after call to
 +      windowWillResize.
 +
 +      * nsterm.h (ns_output): Add dont_constrain and zooming.
 +      (EmacsView): Add ns_userRect.
 +
 +      * nsterm.m (keyDown): If ns_right_alternate_modifier is Qleft, check
 +      if ns_alternate_modifier is none.
 +
 +2011-01-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * unexmacosx.c: Add comment about include order.
 +
 +2011-01-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * minibuf.c (syms_of_minibuf) <read-expression-history>:
 +      Give it a doc string.
 +      * globals.h: Add Vread_expression_history.
 +
 +      * macros.c (syms_of_macros) <kbd-macro-termination-hook>:
 +      Give it a doc string.
 +      * globals.h: Add Vkbd_macro_termination_hook.
 +
 +2011-01-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Revert 2011-01-07 change, removing ARGS.
 +
 +2011-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix X11 compilation failure.
 +      * globals.h (struct emacs_globals): Document f_Vselection_alist.
 +      * xselect.c (Vselection_alist): Remove declaration, moving its
 +      documentation to globals.h.  This fixes a compilation failure
 +      induced by the earlier change to globals.h today.
 +
 +2011-01-19  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * unexmacosx.c: Include config.h before unistd.h (Bug#7859).
 +
 +      * nsterm.m (ns_input_file, ns_input_font, ns_input_fontsize)
 +      (ns_input_line, ns_input_color, ns_input_text, ns_working_text)
 +      (ns_input_spi_name, ns_input_spi_arg)
 +      (ns_alternate_modifier, ns_right_alternate_modifier)
 +      (ns_command_modifier, ns_right_command_modifier, ns_control_modifier)
 +      (ns_right_control_modifier, ns_function_modifier)
 +      (ns_antialias_text, ns_confirm_quit): Move to globals.h.
 +      (Vx_toolkit_scroll_bars, x_use_underline_position_properties)
 +      (x_underline_at_descent_line): Remove declaration.
 +      (syms_of_nsterm): Remove & from DEFVAR_LISP and DEFVAR_BOOL.
 +
 +      * nsselect.m (Vns_sent_selection_hooks, Vns_lost_selection_hooks
 +      (Vselection_alist, Vselection_converter_alist): Move to globals.h.
 +      (syms_of_nsselect): Remove & from DEFVAR_LISP.
 +
 +      * nsmenu.m (Voverriding_local_map, Voverriding_local_map_menu_flag):
 +      Remove declaration.
 +
 +      * nsfont.m (Vns_reg_to_script, ns_antialias_text): Move to
 +      globals.h.
 +      (syms_of_nsfont): Remove & from DEFVAR_LISP.
 +
 +      * nsfns.m (Vmenu_bar_mode, Vtool_bar_mode): Remove declaration.
 +      (Vns_icon_type_alist, Vns_version_string): Move to globals.h.
 +      (syms_of_nsfns): Remove & from DEFVAR_LISP calls.
 +
 +      * globals.h (struct emacs_globals): Add f_ns_input_file,
 +      f_ns_input_font, f_ns_input_fontsize, f_ns_input_line,
 +      f_ns_input_color, f_ns_input_text, f_ns_working_text,
 +      f_ns_input_spi_name, f_ns_input_spi_arg, f_ns_alternate_modifier,
 +      f_ns_right_alternate_modifier, f_ns_command_modifier,
 +      f_ns_right_command_modifier, f_ns_control_modifier,
 +      f_ns_right_control_modifier, f_ns_function_modifier,
 +      f_ns_antialias_text, f_ns_confirm_quit, f_Vns_icon_type_alist,
 +      f_Vns_version_string, f_Vns_sent_selection_hooks,
 +      f_Vns_lost_selection_hooks, f_Vselection_alist, f_Vns_reg_to_script
 +      and corresponding defines.
 +
 +
 +2011-01-19  Sam Steingold  <sds@gnu.org>
 +
 +      * w32.c (check_windows_init_file): Remove declarations of
 +      Vwindow_system, Vload_path, Qfile_exists_p to fix compilation.
 +      * w32fns.c: Fix an error introduced by the previous patch.
 +
 +2011-01-19  Tom Tromey  <tromey@redhat.com>
 +
 +      * window.c: Fix error introduced by previous patch.
 +
 +2011-01-18  Tom Tromey  <tromey@parfait>
 +
 +      * globals.h: New file.
 +      * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
 +      * window.h (Vinitial_window_system, Vminibuf_scroll_window)
 +      (Vwindow_system_version): Remove declaration.
 +      * w32term.h (Vw32_enable_palette)
 +      (Vx_pixel_size_width_font_regexp): Remove declaration.
 +      * w32menu.c (Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag): Remove declaration.
 +      * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
 +      (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
 +      (Vw32_enable_num_lock, Vw32_lwindow_modifier)
 +      (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
 +      (Vw32_phantom_key_code, Vw32_recognize_altgr)
 +      (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
 +      (w32_use_full_screen_buffer): Remove declaration.
 +      * w32.c (Vsystem_configuration, Vw32_downcase_file_names)
 +      (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
 +      (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
 +      * termopts.h (Vtruncate_partial_width_windows, inverse_video)
 +      (no_redraw_on_reenter, visible_bell): Remove declaration.
 +      * sysdep.c (Vsystem_name): Remove declaration.
 +      * syntax.h (parse_sexp_lookup_properties): Remove declaration.
 +      * menu.h (Vmenu_updating_frame): Remove declaration.
 +      * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
 +      Remove declaration.
 +      * lisp.h (Vafter_init_time, Vafter_load_alist)
 +      (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
 +      (Vcompletion_regexp_list, Vcurrent_load_list)
 +      (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
 +      (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
 +      (Vexec_directory, Vexec_path, Vexec_suffixes)
 +      (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
 +      (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
 +      (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
 +      (Vinstallation_directory, Vinvocation_directory)
 +      (Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
 +      (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
 +      (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
 +      (Vpurify_flag, Vquit_flag, Vsaved_region_selection)
 +      (Vscalable_fonts_allowed, Vselect_active_regions)
 +      (Vshell_file_name, Vstandard_input, Vstandard_output)
 +      (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
 +      (Vtop_level, Vtty_erase_char, Vundo_outer_limit)
 +      (Vuser_login_name, Vwindow_scroll_functions)
 +      (Vwindow_system_version, Vx_no_window_manager)
 +      (Vx_resource_class, Vx_resource_name, baud_rate)
 +      (completion_ignore_case, debug_on_next_call, gc_cons_threshold)
 +      (history_delete_duplicates, inhibit_x_resources)
 +      (last_nonmenu_event, load_in_progress, max_specpdl_size)
 +      (minibuffer_auto_raise, print_escape_newlines, scroll_margin)
 +      (use_dialog_box, use_file_dialog): Remove declaration.  Include
 +      globals.h.
 +      * keymap.h (Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, meta_prefix_char): Remove
 +      declaration.
 +      * keyboard.h (Vdouble_click_time, Vfunction_key_map)
 +      (Vinput_method_function, Vkey_translation_map)
 +      (Vlucid_menu_bar_dirty_flag, Vthis_original_command)
 +      (do_mouse_tracking, extra_keyboard_modifiers)
 +      (num_nonmacro_input_events): Remove declaration.
 +      * intervals.h (Vchar_property_alias_alist)
 +      (Vdefault_text_properties, Vinhibit_point_motion_hooks)
 +      (Vtext_property_default_nonsticky): Remove declaration.
 +      * gtkutil.h (x_gtk_file_dialog_help_text)
 +      (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
 +      (x_gtk_whole_detached_tool_bar): Remove declaration.
 +      * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
 +      (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
 +      (Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
 +      (focus_follows_mouse): Remove declaration.
 +      * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
 +      (Vignore_relative_composition, Votf_script_alist)
 +      (Vuse_default_ascent, Vvertical_centering_font_regexp): Remove
 +      declaration.
 +      * font.h (Vfont_log): Remove declaration.
 +      * dosfns.h (Vdos_display_scancodes, Vdos_version)
 +      (Vdos_windows_version, dos_codepage, dos_country_code)
 +      (dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
 +      (dos_keypad_mode, dos_super_key, dos_timezone_offset): Remove
 +      declaration.
 +      * disptab.h (Vglyph_table, Vstandard_display_table): Remove
 +      declaration.
 +      * dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
 +      (Vmouse_autoselect_window, Voverflow_newline_into_fringe)
 +      (Vshow_trailing_whitespace, Vtool_bar_button_margin)
 +      (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
 +      (inverse_video, mode_line_in_non_selected_windows)
 +      (tool_bar_button_relief, tool_bar_max_label_size)
 +      (underline_minimum_offset)
 +      (unibyte_display_via_language_environment, x_stretch_cursor_p):
 +      Remove declaration.
 +      * composite.h (Vauto_composition_function)
 +      (Vcomposition_function_table): Remove declaration.
 +      * commands.h (Vexecuting_kbd_macro)
 +      (Vminibuffer_local_completion_map)
 +      (Vminibuffer_local_filename_completion_map)
 +      (Vminibuffer_local_filename_must_match_map)
 +      (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
 +      (Vminibuffer_local_ns_map, Vthis_command)
 +      (Vunread_command_events, cursor_in_echo_area)
 +      (last_command_event, last_nonmenu_event, unread_command_char):
 +      Remove declaration.
 +      * coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
 +      (Vdefault_file_name_coding_system)
 +      (Vdefault_process_coding_system, Vfile_name_coding_system)
 +      (Vlast_coding_system_used, Vlocale_coding_system)
 +      (Vselect_safe_coding_system_function)
 +      (Vtranslation_table_for_input, coding_system_require_warning)
 +      (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
 +      (eol_mnemonic_unix, inherit_process_coding_system): Remove
 +      declaration.
 +      * charset.h (Vcharset_list, Vcurrent_iso639_language): Remove
 +      declaration.
 +      * character.h (Vauto_fill_chars, Vchar_direction_table)
 +      (Vchar_script_table, Vchar_width_table, Vprintable_chars)
 +      (Vscript_representative_chars, Vtranslation_table_vector)
 +      (Vunicode_category_table): Remove declaration.
 +      * ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
 +      * buffer.h (Vafter_change_functions, Vbefore_change_functions)
 +      (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
 +      (inhibit_modification_hooks): Remove declaration.
 +      * xterm.c (syms_of_xterm): Update.
 +      (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
 +      (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
 +      (x_mouse_click_focus_ignore_position)
 +      (x_underline_at_descent_line)
 +      (x_use_underline_position_properties): Remove.
 +      * xsmfns.c (syms_of_xsmfns): Update.
 +      (Vx_session_id, Vx_session_previous_id): Remove.
 +      * xsettings.c (syms_of_xsettings): Update.
 +      (Vxft_settings, use_system_font): Remove.
 +      * xselect.c (syms_of_xselect): Update.
 +      (Vselection_converter_alist, Vx_lost_selection_functions)
 +      (Vx_sent_selection_functions, x_selection_timeout): Remove.
 +      * xfns.c (syms_of_xfns): Update.
 +      (Vgtk_version_string, Vmotif_version_string)
 +      (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
 +      (Vx_max_tooltip_size, Vx_mode_pointer_shape)
 +      (Vx_no_window_manager, Vx_nontext_pointer_shape)
 +      (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
 +      (Vx_sensitive_text_pointer_shape)
 +      (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
 +      (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
 +      (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
 +      Remove.
 +      * xfaces.c (syms_of_xfaces): Update.
 +      (Vface_default_stipple, Vface_font_rescale_alist)
 +      (Vface_ignored_fonts, Vface_new_frame_defaults)
 +      (Vface_remapping_alist, Vfont_list_limit)
 +      (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
 +      * xdisp.c (syms_of_xdisp): Update.
 +      (Vauto_resize_tool_bars, Vblink_cursor_alist)
 +      (Vdisplay_pixels_per_inch, Vfontification_functions)
 +      (Vframe_title_format, Vglobal_mode_string)
 +      (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
 +      (Vicon_title_format, Vinhibit_redisplay)
 +      (Vline_number_display_limit, Vline_prefix)
 +      (Vmax_mini_window_height, Vmenu_bar_update_hook)
 +      (Vmenu_updating_frame, Vmessage_log_max)
 +      (Vmouse_autoselect_window, Vnobreak_char_display)
 +      (Voverlay_arrow_position, Voverlay_arrow_string)
 +      (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
 +      (Vresize_mini_windows, Vshow_trailing_whitespace)
 +      (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
 +      (Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
 +      (Vwindow_scroll_functions, Vwindow_size_change_functions)
 +      (Vwindow_text_change_functions, Vwrap_prefix)
 +      (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
 +      (debug_end_pos, display_hourglass_p, emacs_scroll_step)
 +      (highlight_nonselected_windows, hscroll_margin)
 +      (inhibit_eval_during_redisplay, inhibit_free_realized_faces)
 +      (inhibit_menubar_update, inhibit_try_cursor_movement)
 +      (inhibit_try_window_id, inhibit_try_window_reusing)
 +      (line_number_display_limit_width)
 +      (make_cursor_line_fully_visible_p, message_truncate_lines)
 +      (mode_line_inverse_video, multiple_frames, overline_margin)
 +      (scroll_conservatively, scroll_margin, tool_bar_button_relief)
 +      (tool_bar_max_label_size, underline_minimum_offset)
 +      (unibyte_display_via_language_environment, x_stretch_cursor_p):
 +      Remove.
 +      * window.c (syms_of_window): Update.
 +      (Vminibuf_scroll_window, Vother_window_scroll_buffer)
 +      (Vrecenter_redisplay, Vscroll_preserve_screen_position)
 +      (Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
 +      (Vwindow_point_insertion_type, auto_window_vscroll_p)
 +      (mode_line_in_non_selected_windows, next_screen_context_lines)
 +      (window_min_height, window_min_width): Remove.
 +      (scroll_margin): Remove declaration.
 +      * w32term.c (syms_of_w32term): Update.
 +      (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
 +      (Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
 +      (Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
 +      (w32_use_visible_system_caret, x_underline_at_descent_line)
 +      (x_use_underline_position_properties): Remove.
 +      (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
 +      Remove declaration.
 +      * w32select.c (syms_of_w32select): Update.
 +      (Vnext_selection_coding_system, Vselection_coding_system): Remove.
 +      * w32proc.c (syms_of_ntproc): Update.
 +      (Vw32_downcase_file_names, Vw32_generate_fake_inodes)
 +      (Vw32_get_true_file_attributes, Vw32_quote_process_args)
 +      (Vw32_start_process_inherit_error_mode)
 +      (Vw32_start_process_share_console)
 +      (Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
 +      (Vsystem_name): Remove declaration.
 +      * w32font.c (syms_of_w32font): Update.
 +      (Vw32_charset_info_alist): Remove.
 +      * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
 +      (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
 +      (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
 +      (Vw32_enable_palette, Vw32_lwindow_modifier)
 +      (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
 +      (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
 +      (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
 +      (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
 +      (Vx_max_tooltip_size, Vx_mode_pointer_shape)
 +      (Vx_no_window_manager, Vx_nontext_pointer_shape)
 +      (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
 +      (Vx_sensitive_text_pointer_shape)
 +      (Vx_window_horizontal_drag_shape, w32_ansi_code_page)
 +      (w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
 +      (w32_mouse_move_interval)
 +      (w32_pass_extra_mouse_buttons_to_system)
 +      (w32_pass_multimedia_buttons_to_system, w32_quit_key)
 +      (w32_strict_fontnames, w32_strict_painting): Remove.
 +      (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
 +      (Vw32_recognize_altgr, Vwindow_system_version)
 +      (w32_num_mouse_buttons, w32_use_visible_system_caret): Remove
 +      declaration.
 +      * w32console.c (syms_of_ntterm): Update.
 +      (w32_use_full_screen_buffer): Remove.
 +      (Vtty_defined_color_alist): Remove declaration.
 +      * w16select.c (syms_of_win16select): Update.
 +      (Vnext_selection_coding_system, Vselection_coding_system): Remove.
 +      * undo.c (syms_of_undo): Update.
 +      (Vundo_outer_limit, Vundo_outer_limit_function)
 +      (undo_inhibit_record_point, undo_limit, undo_strong_limit):
 +      Remove.
 +      * textprop.c (syms_of_textprop): Update.
 +      (Vchar_property_alias_alist, Vdefault_text_properties)
 +      (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
 +      Remove.
 +      * terminal.c (syms_of_terminal): Update.
 +      (Vdelete_terminal_functions, Vring_bell_function): Remove.
 +      * term.c (syms_of_term): Update.
 +      (Vresume_tty_functions, Vsuspend_tty_functions)
 +      (no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
 +      Remove.
 +      * syntax.c (syms_of_syntax): Update.
 +      (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
 +      (open_paren_in_column_0_is_defun_start)
 +      (parse_sexp_ignore_comments, parse_sexp_lookup_properties)
 +      (words_include_escapes): Remove.
 +      * search.c (syms_of_search): Update.
 +      (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
 +      * process.c (syms_of_process): Update.
 +      (Vprocess_adaptive_read_buffering, Vprocess_connection_type)
 +      (delete_exited_processes): Remove.
 +      * print.c (syms_of_print): Update.
 +      (Vfloat_output_format, Vprint_charset_text_property)
 +      (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
 +      (Vprint_length, Vprint_level, Vprint_number_table)
 +      (Vstandard_output, print_escape_multibyte)
 +      (print_escape_newlines, print_escape_nonascii, print_quoted):
 +      Remove.
 +      * msdos.c (syms_of_msdos): Update.
 +      (Vdos_unsupported_char_glyph): Remove.
 +      (unibyte_display_via_language_environment): Remove declaration.
 +      * minibuf.c (syms_of_minibuf): Update.
 +      (Vcompletion_regexp_list, Vhistory_add_new_input)
 +      (Vhistory_length, Vminibuffer_completing_file_name)
 +      (Vminibuffer_completion_confirm)
 +      (Vminibuffer_completion_predicate, Vminibuffer_completion_table)
 +      (Vminibuffer_exit_hook, Vminibuffer_help_form)
 +      (Vminibuffer_history_position, Vminibuffer_history_variable)
 +      (Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
 +      (Vread_buffer_function, Vread_expression_map)
 +      (completion_ignore_case, enable_recursive_minibuffers)
 +      (history_delete_duplicates, minibuffer_allow_text_properties)
 +      (minibuffer_auto_raise, read_buffer_completion_ignore_case):
 +      Remove.
 +      * marker.c (syms_of_marker): Update.
 +      (byte_debug_flag): Remove.
 +      * macros.c (syms_of_macros): Update.
 +      (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
 +      * lread.c (syms_of_lread): Update.
 +      (Vafter_load_alist, Vbyte_boolean_vars)
 +      (Vbytecomp_version_regexp, Vcurrent_load_list)
 +      (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
 +      (Vload_history, Vload_path, Vload_read_function)
 +      (Vload_source_file_function, Vload_suffixes, Vobarray)
 +      (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
 +      (Vread_symbol_positions_list, Vread_with_symbol_positions)
 +      (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
 +      (force_load_messages, load_convert_to_unibyte)
 +      (load_dangerous_libraries, load_force_doc_strings)
 +      (load_in_progress): Remove.
 +      * keymap.c (syms_of_keymap): Update.
 +      (Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
 +      (Vminibuffer_local_completion_map)
 +      (Vminibuffer_local_filename_completion_map)
 +      (Vminibuffer_local_filename_must_match_map)
 +      (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
 +      (Vminibuffer_local_ns_map, Vminor_mode_map_alist)
 +      (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
 +      Remove.
 +      * keyboard.c (syms_of_keyboard): Update.
 +      (Vauto_save_timeout, Vcommand_error_function)
 +      (Vcommand_hook_internal, Vdeactivate_mark)
 +      (Vdeferred_action_function, Vdeferred_action_list)
 +      (Vdisable_point_adjustment, Vdouble_click_time)
 +      (Vecho_keystrokes, Venable_disabled_menus_and_buttons)
 +      (Vfunction_key_map, Vglobal_disable_point_adjustment)
 +      (Vhelp_char, Vhelp_event_list, Vhelp_form)
 +      (Vinput_method_function, Vinput_method_previous_message)
 +      (Vkey_translation_map, Vlast_event_frame)
 +      (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
 +      (Vminibuffer_message_timeout, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, Vpost_command_hook)
 +      (Vpre_command_hook, Vprefix_help_command)
 +      (Vsaved_region_selection, Vselect_active_regions)
 +      (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
 +      (Vthis_command, Vthis_command_keys_shift_translated)
 +      (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
 +      (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
 +      (Vtty_erase_char, Vunread_command_events)
 +      (Vunread_input_method_events, Vunread_post_input_method_events)
 +      (auto_save_interval, cannot_suspend, do_mouse_tracking)
 +      (double_click_fuzz, extra_keyboard_modifiers)
 +      (inhibit_local_menu_bar_menus, last_command_event)
 +      (last_input_event, last_nonmenu_event, menu_prompt_more_char)
 +      (menu_prompting, meta_prefix_char, num_input_keys)
 +      (num_nonmacro_input_events, polling_period, unread_command_char):
 +      Remove.
 +      * insdel.c (syms_of_insdel): Update.
 +      (Vcombine_after_change_calls, check_markers_debug_flag): Remove.
 +      * indent.c (syms_of_indent): Update.
 +      (indent_tabs_mode): Remove.
 +      * image.c (syms_of_image): Update.
 +      (Vimage_cache_eviction_delay, Vimage_types)
 +      (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
 +      (cross_disabled_images): Remove.
 +      * fringe.c (syms_of_fringe): Update.
 +      (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
 +      * frame.c (syms_of_frame): Update.
 +      (Vdefault_frame_alist, Vdefault_frame_scroll_bars)
 +      (Vdelete_frame_functions, Vframe_alpha_lower_limit)
 +      (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
 +      (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
 +      (Vx_resource_class, Vx_resource_name, focus_follows_mouse):
 +      Remove.
 +      * fontset.c (syms_of_fontset): Update.
 +      (Valternate_fontname_alist, Vfont_encoding_charset_alist)
 +      (Vfontset_alias_alist, Vignore_relative_composition)
 +      (Votf_script_alist, Vuse_default_ascent)
 +      (Vvertical_centering_font_regexp): Remove.
 +      * font.c (syms_of_font): Update.
 +      (Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
 +      (Vfont_weight_table, Vfont_width_table): Remove.
 +      * fns.c (syms_of_fns): Update.
 +      (Vfeatures, use_dialog_box, use_file_dialog): Remove.
 +      * filelock.c (syms_of_filelock): Update.
 +      (Vtemporary_file_directory): Remove.
 +      * fileio.c (syms_of_fileio): Update.
 +      (Vafter_insert_file_functions, Vauto_save_include_big_deletions)
 +      (Vauto_save_list_file_name, Vauto_save_visited_file_name)
 +      (Vdefault_file_name_coding_system, Vfile_name_coding_system)
 +      (Vfile_name_handler_alist, Vinhibit_file_name_handlers)
 +      (Vinhibit_file_name_operation, Vset_auto_coding_function)
 +      (Vwrite_region_annotate_functions)
 +      (Vwrite_region_annotations_so_far)
 +      (Vwrite_region_post_annotation_function)
 +      (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
 +      (Vw32_get_true_file_attributes): Remove declaration.
 +      * eval.c (syms_of_eval): Update.
 +      (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
 +      (Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
 +      (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
 +      (debug_on_next_call, debug_on_quit, debugger_may_continue)
 +      (max_lisp_eval_depth, max_specpdl_size): Remove.
 +      * emacs.c (syms_of_emacs): Update.
 +      (Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
 +      (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
 +      (Vinstallation_directory, Vinvocation_directory)
 +      (Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
 +      (Vprevious_system_messages_locale, Vprevious_system_time_locale)
 +      (Vsystem_configuration, Vsystem_configuration_options)
 +      (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
 +      (inhibit_x_resources, noninteractive1): Remove.
 +      * editfns.c (syms_of_editfns): Update.
 +      (Vbuffer_access_fontified_property)
 +      (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
 +      (Voperating_system_release, Vsystem_name, Vuser_full_name)
 +      (Vuser_login_name, Vuser_real_login_name): Remove.
 +      * dosfns.c (syms_of_dosfns): Update.
 +      (Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
 +      (dos_codepage, dos_country_code, dos_decimal_point)
 +      (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
 +      (dos_super_key, dos_timezone_offset): Remove.
 +      * doc.c (syms_of_doc): Update.
 +      (Vbuild_files, Vdoc_file_name): Remove.
 +      * dispnew.c (syms_of_display): Update.
 +      (Vglyph_table, Vinitial_window_system)
 +      (Vredisplay_preemption_period, Vstandard_display_table)
 +      (Vwindow_system_version, baud_rate, cursor_in_echo_area)
 +      (inverse_video, redisplay_dont_pause, visible_bell): Remove.
 +      * dired.c (syms_of_dired): Update.
 +      (Vcompletion_ignored_extensions): Remove.
 +      (Vw32_get_true_file_attributes): Remove declaration.
 +      * dbusbind.c (syms_of_dbusbind): Update.
 +      (Vdbus_debug, Vdbus_registered_buses)
 +      (Vdbus_registered_objects_table): Remove.
 +      * data.c (syms_of_data): Update.
 +      (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
 +      * composite.c (syms_of_composite): Update.
 +      (Vauto_composition_function, Vauto_composition_mode)
 +      (Vcompose_chars_after_function, Vcomposition_function_table):
 +      Remove.
 +      * coding.c (syms_of_coding): Update.
 +      (Vcharset_revision_table, Vcoding_category_list)
 +      (Vcoding_system_alist, Vcoding_system_for_read)
 +      (Vcoding_system_for_write, Vcoding_system_list)
 +      (Vdefault_process_coding_system, Venable_character_translation)
 +      (Vfile_coding_system_alist, Vlast_code_conversion_error)
 +      (Vlast_coding_system_used, Vlatin_extra_code_table)
 +      (Vlocale_coding_system, Vnetwork_coding_system_alist)
 +      (Vprocess_coding_system_alist)
 +      (Vselect_safe_coding_system_function)
 +      (Vstandard_translation_table_for_decode)
 +      (Vstandard_translation_table_for_encode)
 +      (Vtranslation_table_for_input, coding_system_require_warning)
 +      (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
 +      (eol_mnemonic_unix, inherit_process_coding_system)
 +      (inhibit_eol_conversion, inhibit_iso_escape_detection)
 +      (inhibit_null_byte_detection): Remove.
 +      * cmds.c (syms_of_cmds): Update.
 +      (Vpost_self_insert_hook): Remove.
 +      * charset.c (syms_of_charset): Update.
 +      (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
 +      (inhibit_load_charset_map): Remove.
 +      * character.c (syms_of_character): Update.
 +      (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
 +      (Vchar_width_table, Vprintable_chars)
 +      (Vscript_representative_chars, Vtranslation_table_vector)
 +      (Vunicode_category_table): Remove.
 +      * ccl.c (syms_of_ccl): Update.
 +      (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
 +      (Vtranslation_hash_table_vector): Remove.
 +      * category.c (syms_of_category): Update.
 +      (Vword_combining_categories, Vword_separating_categories): Remove.
 +      * callproc.c (syms_of_callproc): Update.
 +      (Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
 +      (Vexec_directory, Vexec_path, Vexec_suffixes)
 +      (Vinitial_environment, Vprocess_environment)
 +      (Vshared_game_score_directory, Vshell_file_name): Remove.
 +      * callint.c (syms_of_callint): Update.
 +      (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
 +      (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
 +      * bytecode.c (syms_of_bytecode): Update.
 +      (Vbyte_code_meter, byte_metering_on): Remove.
 +      * buffer.c (syms_of_buffer): Update.
 +      (Vafter_change_functions, Vbefore_change_functions)
 +      (Vchange_major_mode_hook, Vfirst_change_hook)
 +      (Vinhibit_read_only, Vkill_buffer_query_functions)
 +      (Vtransient_mark_mode, inhibit_modification_hooks): Remove.
 +      * alloc.c (syms_of_alloc): Update.
 +      (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
 +      (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
 +      (cons_cells_consed, floats_consed, garbage_collection_messages)
 +      (gc_cons_threshold, gcs_done, intervals_consed)
 +      (misc_objects_consed, pure_bytes_used, string_chars_consed)
 +      (strings_consed, symbols_consed, vector_cells_consed): Remove.
 +
 +      * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
 +      (DEFVAR_INT): Assume global is in `globals'.
 +      * alloc.c (globals): Define.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * image.c (Vimagemagick_render_type): Remove redundant
 +      definition.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * xdisp.c (emacs_scroll_step): Rename from scroll_step.
 +      (try_scrolling): Rename argument to 'arg_scroll_conservatively'.
 +      (redisplay_window): Update.
 +      (syms_of_xdisp): Update.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * gtkutil.h (x_gtk_use_old_file_dialog, x_gtk_show_hidden_files)
 +      (x_gtk_file_dialog_help_text, x_gtk_whole_detached_tool_bar):
 +      Declare.
 +      * gtkutil.c (xg_uses_old_file_dialog):
 +      (xg_get_file_with_chooser):
 +      (xg_tool_bar_detach_callback): Don't redeclare globals.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * lisp.h (DEFVAR_BUFFER_DEFAULTS): New macro.
 +      * buffer.c (syms_of_buffer): Use DEFVAR_BUFFER_DEFAULTS.
 +
 +2011-01-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (DECL_ALIGN): Define if HAVE_ATTRIBUTE_ALIGNED, not if
 +      defined __GNUC__.  ../configure now checks for this GCC feature,
 +      which is now also supported by IBM and Oracle compilers.
 +      (USE_LSB_TAG) [defined DECL_ALIGN]: Also define if defined __sun,
 +      since Solaris malloc returns mult-of-8.
 +
 +2011-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * image.c (syms_of_image): Don't access XSYMBOL's internals directly.
  
 -2011-01-16  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Give a name FLOAT_TO_STRING_BUFSIZE to the constant 350.
 +      * lisp.h (FLOAT_TO_STRING_BUFSIZE): New macro.
 +      * data.c (Fnumber_to_string): Use it.
 +      * print.c (float_to_string, print_object): Likewise.
 +
 +      Include <unistd.h> unilaterally.
 +      * alloc.c, atimer.c, buffer.c, callproc.c, dired.c, dispnew.c, doc.c:
 +      * doprnt.c, editfns.c, emacs.c, fileio.c, filelock.c, fns.c:
 +      * getloadavg.c, getpagesize.h, gmalloc.c, image.c, keyboard.c:
 +      * lread.c, process.c, process.h, ralloc.c, regex.c, sysdep.c:
 +      * systty.h, term.c, termcap.c, xfns.c, xrdb.c, xselect.c, xsmfns.c:
 +      * xterm.c:
 +      Include <unistd.h> without worrying about HAVE_UNISTD_H, since
 +      unistd.h is always present now, possibly supplied by gnulib.
 +
 +      * mktime.c: Remove; moving to ../lib.
 +
 +      Use gnulib's mktime module.
 +      * deps.mk (mktime.o): Remove rule.
 +
 +      Use gnulib's ftoastr module.
 +      * print.c: Include ftoastr.h.
 +      (FLT_RADIX, DBL_MANT_DIG, DBL_DIG, DBL_MIN, DOUBLE_DIGITS_BOUND):
 +      Remove; no longer needed.
 +      (float_to_string): Use dtoastr rather than rolling our own code,
 +      which had an off-by-one bug on non-IEEE hosts.
 +
 +      Automate syncing from gnulib.
 +      * Makefile.in (lib): New macro.
 +      (ALL_CFLAGS): Add -I$(lib) -I$(srcdir)/../lib.
 +      ($(lib)/libgnu.a): New rule.
 +      (temacs$(EXEEXT)): Also link $(lib)/libgnu.a.
 +
 +      * xfns.c (x_real_positions): Fix signedness of local var 'ign'.
 +      XGetGeometry wants unsigned int *, not int *, for its last 4 args,
 +      so change the type of 'ign' to unsigned int from int.
 +
 +      * regex.c (analyse_first): Remove unreachable 'continue' statement.
 +
 +      * xterm.h (struct x_display_info): Remove stray semicolon.
 +      The extra semicolon didn't conform to the C standard.
 +      Problem reported by Sun cc.
  
 -      * image.c (syms_of_image): Don't use SET_SYMBOL_VALUE.  (Bug#7848)
 +      * lisp.h: Redo flags and XSET slightly to avoid overflow diagnostics.
 +      These changes make compilation easier to follow with Sun cc.
 +      (ARRAY_MARK_FLAG): Make it signed, so that it can be assigned to
 +      EMACS_INT values without provoking overflow diagnostics.
 +      (PSEUDOVECTOR_FLAG): Likewise, for consistency.
 +      (XSET) [! USE_LSB_TAG]: Use unsigned left shift to avoid overflow
 +      diagnostic with signed left shift.
 +
 +      * fileio.c (make_temp_name): Remove unreachable code.
 +
 +      * fontset.c (free_realized_fontset): Mark unreachable code with if (0).
 +      Previously it was marked by preceding it with "return;", but
 +      Sun cc complains about this.
 +
 +      * coding.c (decode_coding_emacs_mule): Remove unreachable code.
 +      This is a typo left over from 2009-03-06T07:51:52Z!handa@m17n.org,
 +      which fixed Bug#2370.  Caught by Sun cc.
  
  2011-01-15  Martin Rudalics  <rudalics@gmx.at>
  
        (Fset_window_configuration): Set inhibit_point_swap to 1 instead
        of setting selected_window to nil (Bug#7728).
  
 -2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-11  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * config.in (TERMINFO): New definition.
 +      * image.c (imagemagick_load_image, Finit_image_library):
 +      Free intermediate image after creating a MagickWand from it.
 +      Terminate MagickWand environment after image loading.
  
 -      * s/netbsd.h: Use it to choose between terminfo and termcap
 -      (Bug#7642).
 +2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2011-01-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      * dbusbind.c (Fdbus_register_service): Raise an error in case of
 +      unexpected return values.
 +      (Fdbus_register_method): Remove connection initialization.
  
 -      * coding.h (ENCODE_UTF_8): Remove "Used by ..." comment.
 +2011-01-10  Jan Moringen  <jan.moringen@uni-bielefeld.de>
  
 -      * nsfns.m (ns_set_name_iconic): Remove.
 -      (ns_get_screen): Don't assign integer to f.
 -      (ns_set_name_internal): New function (Bug#7517).
 -      (Vicon_title_format): Extern declare.
 -      (ns_set_name): Call ns_set_name_internal.
 -      (x_explicitly_set_name): Remove call to ns_set_name_iconic.
 -      (x_implicitly_set_name): Ditto.
 -      (x_set_title): Remove commet about EXPLICIT.  Call ns_set_name_internal.
 -      (ns_set_name_as_filename): Encode name with ENCODE_UTF_8.
 -      Always use buffer name for title and buffer filename only for
 -      RepresentedFilename. Handle bad UTF-8 in buffer name (Bug#7517).
 +      * dbusbind.c (QCdbus_request_name_allow_replacement): New symbol;
 +      used by Fdbus_register_service.
 +      (QCdbus_request_name_replace_existing): Likewise.
 +      (QCdbus_request_name_do_not_queue): Likewise.
 +      (QCdbus_request_name_reply_primary_owner): Likewise.
 +      (QCdbus_request_name_reply_in_queue): Likewise.
 +      (QCdbus_request_name_reply_exists): Likewise.
 +      (QCdbus_request_name_reply_already_owner): Likewise.
 +      (Fdbus_register_service): New function.
 +      (Fdbus_register_method): Use Fdbus_register_service to do the name
 +      registration.
 +      (syms_of_dbusbind): Add symbols dbus-register-service,
 +      :allow-replacement, :replace-existing, :do-not-queue,
 +      :primary-owner, :existing, :in-queue and :already-owner.
 +
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * gtkutil.c (update_frame_tool_bar): Don't advance tool-bar index
 +      when removing extra buttons.
 +
 +2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Doc fix.
 +
 +2011-01-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * fns.c (Fyes_or_no_p): Add usage.
 +
 +2011-01-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * makefile.w32-in ($(EMACS)):
 +      * Makefile.in (emacs$(EXEEXT)): -batch implies -q.
 +
 +      * xdisp.c (syms_of_xdisp) <Qrisky_local_variable>: Move from here...
 +      * emacs.c (syms_of_emacs) <Qrisky_local_variable>: ...to here.
 +
 +2011-01-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_load_image): Fix some resource leaks and
 +      error handling.
 +
 +2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Accept format string args.
 +
 +2011-01-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (no_site_lisp): New int.
 +      (USAGE1): Add --no-site-lisp, mention -Q uses it.
 +      (main): Set no_site_lisp.
 +      (standard_args): Add --no-site-lisp.
 +      * lisp.h (no_site_lisp): New int.
 +      * lread.c (init_lread): If no_site_lisp, don't re-add site-lisp
 +      directories to Vload_path.
 +
 +2011-01-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (mark_stack): Use __builtin_unwind_init if available.
 +
 +2011-01-04  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * dbusbind.c (Fdbus_register_method): Add optional parameter
 +      dont_register_service.  Updated docstring accordingly.
 +
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (emacs_copyright): Update short copyright year to 2011.
  
  2011-01-03  Eli Zaretskii  <eliz@gnu.org>
  
        * image.c (png_jmpbuf): Remove definition.
        (my_png_error, png_load): Don't use png_jmpbuf.
  
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * keyboard.c (Vselect_active_regions): Doc fix.  (Bug#7702)
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * image.c <Qlibpng_version>: New variable.
        (syms_of_image): Intern and staticpro it.  Set its value to the
        (my_png_error, png_load): Use it instead of #ifdef'ing according
        to PNG_LIBPNG_VER_MAJOR and PNG_LIBPNG_VER_MINOR.
  
 -2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * .gdbinit (xgetptr): Fix the union+lsb case.
        (xbacktrace): Fix the union case.
  
 -2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * window.c (Fmove_to_window_line): Avoid abort when called in a buffer
        different from selected-window's.
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * keyboard.c (parse_menu_item): Prepend "  " to the key sequence
        equivalent of a menu item when the key sequence is given by the
        * xdisp.c (Fformat_mode_line): Doc fix: no need to state that only
        the basic faces are supported.
  
 -2010-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-01-02  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xterm.c (x_check_fullscreen): Fix pixel/character mixup.
  
 -2010-12-17  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (Fformat_mode_line): Fix last change.
  
 -2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (Fformat_mode_line): Restrict the FACE argument to basic
        faces (Bug#7587).
  
 -2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * fileio.c (Fexpand_file_name): One more doc fix.
  
 -2010-12-12  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * fileio.c (Fexpand_file_name): Doc fix.  (Bug#7617)
 +      * gtkutil.c (xg_get_tool_bar_widgets): Use NULL for a missing
 +      image or label in the container.
 +      (xg_make_tool_item): Replace VERT_ONLY arg with HORIZ, TEXT_IMAGE.
 +      (xg_show_toolbar_item): Function deleted.
 +      (xg_tool_item_stale_p): New function.
 +      (update_frame_tool_bar): Calculate tool-bar style once per call.
 +      Instead of hiding text labels, omit them.  Don't use
 +      xg_show_toolbar_item; create new GtkToolItems from scratch if
 +      necessary, instead of trying to re-use them.  This avoids an
 +      annoying animation when changing tool-bars.
  
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-31  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * w32fns.c (Fx_show_tip): Call try_window with last argument
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE.  Delete the TODO ifdef: problem
 -      solved.  Round up the tip height to an integral multiple of the
 -      frame's line height.  Add FRAME_COLUMN_WIDTH to the tip width.
 -      (Bug#7398)
 +      * nsfns.m (ns_set_name_as_filename): Always use buffer name for
 +      title and buffer filename only for RepresentedFilename.
 +      Handle bad UTF-8 in buffer name (Bug#7517).
 +
 +2010-12-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * coding.h (ENCODE_UTF_8): Remove "Used by ..." comment.
 +
 +      * nsfns.m (ns_set_name_iconic): Remove.
 +      (ns_set_name_internal): New function (Bug#7517).
 +      (Vicon_title_format): Extern declare.
 +      (ns_set_name): Call ns_set_name_internal.
 +      (x_explicitly_set_name): Remove call to ns_set_name_iconic.
 +      (x_implicitly_set_name): Ditto.
 +      (x_set_title): Remove commet about EXPLICIT.  Call ns_set_name_internal.
 +      (ns_set_name_as_filename): Encode name with ENCODE_UTF_8 (Bug#7517).
 +
 +2010-12-29  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * window.c (syms_of_window): Add missing defsubr for
 +      window-use-time.
 +
 +2010-12-28  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.h (x_alloc_lighter_color_for_widget): Restore declaration.
 +      * xterm.c (x_alloc_lighter_color_for_widget): Restore.
 +
 +2010-12-27  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * buffer.c: Remove unused declarations.
 +      * buffer.h: Likewise.
 +      * charset.h: Likewise.
 +      * composite.h: Likewise.
 +      * dispextern.h: Likewise.
 +      * dispnew.c: Likewise.
 +      * font.h: Likewise.
 +      * fontset.c: Likewise.
 +      * fontset.h: Likewise.
 +      * intervals.h: Likewise.
 +      * keymap.h: Likewise.
 +      * lisp.h: Likewise.
 +      * syntax.c: Likewise.
 +      * syntax.h: Likewise.
 +      * termhooks.h: Likewise.
 +      * window.h: Likewise.
 +      * xsettings.h: Likewise.
 +      * xterm.c: Likewise.
 +      * xterm.h: Likewise.
 +
 +      * chartab.c (sub_char_table_ref): Make static.
 +      * dispnew.c (line_hash_code, required_matrix_height)
 +      (required_matrix_width): Likewise.
 +      * eval.c (interactive_p, apply_lambda): Likewise.
 +      * fns.c (string_make_multibyte, copy_hash_table, hash_clear):
 +      Likewise.
 +      * font.c (QCadstyle, QCregistry, font_make_spec)
 +      (font_parse_fcname, font_encode_char, font_at): Likewise.
 +      * frame.c (x_frame_get_arg): Likewise.
 +      * keymap.c (get_keyelt): Likewise.
 +      * lread.c (read_filtered_event): Likewise.
 +      * print.c (write_string_1): Likewise.
 +      * window.c (delete_window, window_height, window_width)
 +      (foreach_window): Likewise.
 +      * xrdb.c (x_get_customization_string, x_get_resource): Likewise.
 +      * xterm.c (x_scroll_bar_clear, xembed_set_info)
 +      (xembed_send_message): Likewise.
 +
 +      * eval.c (run_hook_list_with_args): Delete.
 +      * font.c (font_unparse_gtkname, font_update_lface): Likewise.
 +      * terminal.c (get_terminal_param): Likewise.
 +      * xterm.c (x_alloc_lighter_color_for_widget): Likewise.
 +
 +      * scroll.c: Fix comment.
 +
 +      * dispnew.c (add_window_display_history)
 +      (add_frame_display_history, glyph_row_slice_p)
 +      (find_glyph_row_slice, flush_stdout)
 +      (check_matrix_pointer_lossage, matrix_row)
 +      (check_matrix_invariants, check_window_matrix_pointers)
 +      (check_matrix_pointers, window_to_frame_vpos)
 +      (window_to_frame_hpos): Prototize.
 +      * textprop.c (erase_properties): Likewise.
 +
 +2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove.
 +      (print_preprocess): Fix handling of uninterned symbols in last change.
 +
 +      * print.c (print, print_preprocess, print_object): Use a hash table
 +      rather than a linear table for Vprint_number_table.
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (focus_follows_mouse): Default to 0 (Bug#7269).
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (Vtool_bar_separator_image_expression): New variable.
 +      (parse_tool_bar_item): Use it to obtain image separators for
 +      displays not using native tool-bar separators.
 +
 +      * xdisp.c (build_desired_tool_bar_string): Don't handle separators
 +      specially, since this is now done in parse_tool_bar_item.
 +
 +2010-12-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Minor clean up to silence some gcc warnings.
 +      * window.c (Fset_window_buffer):
 +      * xterm.c (x_set_frame_alpha): Restructure code to silence
 +      compiler warning.
 +      (handle_one_xevent): Remove unused var `p'.
 +      (do_ewmh_fullscreen): Remove unused var `lval'.
 +      (xembed_set_info): Remove unused var `atom'.
 +      * textprop.c (Fremove_list_of_text_properties): Add braces to silence
 +      compiler warning.
 +      * fontset.c (fontset_id_valid_p, dump_fontset):
 +      * ftfont.c (ftfont_drive_otf): Modernize k&r declaration.
 +      * eval.c (Feval, Ffuncall): Avoid unneeded gotos.
 +      * dispnew.c (update_frame, update_frame_1): Compile the `do_pause'
 +      label only when it's used.
 +      * image.c (x_create_bitmap_from_xpm_data):
 +      * dispextern.h (x_create_bitmap_from_xpm_data): Use const char** like
 +      its callers.
 +      * coding.c (detect_coding_utf_16): Remove unused vars `src_base' and
 +      `consumed_chars'.
 +      (DECODE_EMACS_MULE_21_COMPOSITION): Remove unused var `charbuf_base'.
 +      (decode_coding_emacs_mule): Remove unused label `retry'.
 +      (detect_eol): Add parens to silence compiler warning.
 +      * alloc.c (bytes_used_when_reconsidered): Move to the #ifdef where
 +      it's used to silence the compiler.
 +      (make_number): Modernize k&r declaration.
 +      (mark_char_table): Add parens to silence compiler warning.
 +
 +2010-12-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (parse_tool_bar_item): Allow menu separators in
 +      tool-bar maps.
 +      (menu_separator_name_p): New function, from gtkutil.c.
 +      (separator_names): Move from gtkutil.c.
 +
 +      * keyboard.h (menu_separator_name_p): Add prototype.
 +
 +      * gtkutil.c (XG_BIN_CHILD): New macro.
 +      (xg_get_menu_item_label, xg_update_menubar)
 +      (xg_update_menu_item, xg_tool_bar_menu_proxy)
 +      (xg_show_toolbar_item, update_frame_tool_bar): Use it.
 +      (separator_names, xg_separator_p): Move to keyboard.c.
 +      (create_menus, xg_update_submenu, update_frame_tool_bar):
 +      Use menu_separator_name_p.
 +
 +      * nsmenu.m (name_is_separator): Function deleted.
 +      (addItemWithWidgetValue): Use menu_separator_name_p.
 +
 +      * w32menu.c (name_is_separator): Function deleted.
 +      (add_menu_item): Use menu_separator_name_p.
 +
 +2010-12-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_draw_window_cursor): If the cursor color is the
 +      same as the background, use the face forground as cursor.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Fexpand_file_name): Doc fix.  (Bug#7617)
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (string_pos_nchars_ahead, c_string_pos)
        (face_before_or_after_it_pos, next_element_from_string)
        (string_char_and_length): Update commentary: MAXLEN is no longer
        needed.
  
 -2010-12-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
  
        * keyboard.c (kbd_buffer_get_event): Construct SAVE_SESSION_EVENT
        as (Qsave_session arg).
        (Fhandle_save_session): If event has Qt as argument,
        call Fkill_emacs (Bug#7552).
  
 -2010-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * buffer.c (transient-mark-mode): Doc fix (Bug#7465).
 +
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xsmfns.c (smc_die_CB): Call Fkill_emacs (Bug#7552).
  
 -2010-12-06  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * dispextern.h (struct it): New member overlay_strings_charpos.
  
        (next_overlay_string): Load overlay strings at recorded position,
        which may not be the same as the iterator's charpos (Bug#7016).
  
 -2010-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
 -      with cursor color and draw a rectangle around the image (Bug#7412).
 -
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (try_scrolling): Avoid infloop if the first line is
        obscured due to a vscroll (Bug#7537).
  
 -2010-12-02  Jan Djärv  <jhd@zeplinf.localdomain>
 +2010-12-13  Jan Djärv  <jhd@zeplinf.localdomain>
  
        * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
  
        (x_set_offset): Handle XNegative and YNegative in
        f->size_hint_flags (Bug#7510).
  
 -2010-11-25  Kenichi Handa  <handa@m17n.org>
 +2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (Fx_show_tip): Call try_window with last argument
 +      TRY_WINDOW_IGNORE_FONTS_CHANGE.  Delete the TODO ifdef: problem
 +      solved.  Round up the tip height to an integral multiple of the
 +      frame's line height.  Add FRAME_COLUMN_WIDTH to the tip width.
 +      (Bug#7398)
 +
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * fileio.c (Fverify_visited_file_modtime): Default to current buffer.
 +
 +2010-12-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (parse_region): Ignore blank HTML nodes.
 +      (make_dom): Return CDATA sections (like <style>foo</style>) as
 +      text nodes.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Allow newstyle unquote outside of backquote.
 +      Disallow old-style backquotes inside new-style backquotes.
 +      Don't count unquotes to figure out when we're "syntactically inside
 +      but semantically outside of a backquote" any more.
 +      Extend the restriction no-unescaped-commas-and-backquotes-in-symbols
 +      to all contexts.
 +
 +2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * process.c: Remove checks for HAVE_SYS_IOCTL_H (Bug#7484).
 +
 +2010-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (M_FILE): Substitute @M_FILE@ instead of @machfile@.
 +      (S_FILE): Substitute @S_FILE@ instead of @opsysfile@.
 +      * m/arm.h, m/sh3.h, m/xtensa.h: Remove files.
 +
 +2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lisp.h (union Lisp_Object): Explicitly declare signedness of
 +      bit-field.
 +      (XINT): Remove variant for EXPLICIT_SIGN_EXTEND.
 +      * m/alpha.h (EXPLICIT_SIGN_EXTEND): Don't define.
 +      * m/amdx86-64.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ia64.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ibms390.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ibms390x.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/iris4d.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/m68k.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/sparc.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/template.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/hp800.h: Remove file.
 +      * m/mips.h: Remove file.
 +
 +2010-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
 +      with cursor color and draw a rectangle around the image (Bug#7412).
 +
 +2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * frame.c (x_set_font): Remove unused variable.
 +
 +2010-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsmenu.m (update_frame_tool_bar): Remove NSLog on invalid image.
 +
 +      * nsterm.m (ns_draw_glyph_string): Switch fore- and background if
 +      drawing text under filled box cursor (Bug#7479).
 +
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
  
        * charset.c (emacs_mule_charset): Make it an array of charset ID;
        i.e. integer.
 -      (Fdefine_charset_internal): Adjusted for the above change.
 +      (Fdefine_charset_internal): Adjust for the above change.
        (init_charset_once): Likewise.
  
 -      * charset.h (emacs_mule_charset): Adjust the prototype.  Delete
 -      duplicated extern.
 +      * charset.h (emacs_mule_charset): Adjust the prototype.
 +      Delete duplicated extern.
  
        * coding.c (emacs_mule_char): Adjust for the change of
        emacs_mule_charset.
        * lread.c (read_emacs_mule_char): Adjust for the change of
        emacs_mule_charset.
  
 -2010-11-22  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-27  Eli Zaretskii  <eliz@gnu.org>
  
        * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
        of w32api >= 3.15.  (Bug#6989)  (Bug#7452)
  
 -2010-11-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-11-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * alloc.c (mark_terminals): Ensure that the image cache is marked
        even if the terminal object was marked earlier (Bug#6301).
  
        * editfns.c (Fbyte_to_string): Signal an error arg is not a byte.
  
 -2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-27  Jan Djärv  <jan.h.d@swipnet.se>
  
        * gtkutil.c (menubar_map_cb): New function (Bug#7425).
        (xg_update_frame_menubar): Connect signal map to menubar_map_cb.
        Use 23 as menubar height if 0. (Bug#7425).
  
 -2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
 +      * xdisp.c (set_message_1): Force paragraph direction in echo area
 +      be left-to-right.
  
 -      * config.in (HAVE_G_TYPE_INIT): New symbol.
 +      * keyboard.c (make_lispy_position): Put a meaningful value in yret
 +      when the click is on the header or mode line.
  
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-25  Eli Zaretskii  <eliz@gnu.org>
  
 -      * lread.c (Fload): Mention `load-in-progress' and
 -      `load-file-name'.  (Bug#7346)
 +      * xdisp.c (set_cursor_from_row): Don't forget to consider the
 +      `cursor' property of the first character in overlay strings.
 +      (Bug#7474)  (Bug#7481)
  
 -2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-24  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
 -      (kbd_buffer_store_event_hold, kbd_buffer_get_event)
 -      (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
 -      subprocesses.  Use buffer_free only ifdef subprocesses.
 +      * nsterm.m (NSLeftControlKeyMask, NSLeftCommandKeyMask)
 +      (NSLeftAlternateKeyMask): New defines.
 +      (keyDown): Parse left and right keys separately (Bug#7458).
 +      Compare Left key masks exactly (Bug#7458).
  
 -      * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
 -      the subprocesses version, not in the non-subprocesses one.
 +2010-11-23  Eli Zaretskii  <eliz@gnu.org>
  
 -      * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
 +      * intervals.c (temp_set_point_both): Define before calling, to
 +      avoid GCC warnings.
  
 -      * xfns.c (x_real_positions): Fix declaration-after-statement
 -      problem.
 +2010-11-23  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-11-05  Chong Yidong  <cyd@stupidchicken.com>
 +      * nsmenu.m: Use #include <config.h> instead of "config.h".
  
 -      * image.c (free_image): Don't garbage the frame here, since this
 -      function can be called while redisplaying (Bug#7210).
 -      (uncache_image): Garbage the frame here (Bug#6426).
 +      * term.c (Qglyphless_char,last_glyphless_glyph_frame)
 +      (last_glyphless_glyph_face_id. last_glyphless_glyph_merged_face_id):
 +      Move declarations ...
 +      * lisp.h (Qglyphless_char,last_glyphless_glyph_frame)
 +      (last_glyphless_glyph_face_id. last_glyphless_glyph_merged_face_id):
 +      ... here.
  
 -2010-11-04  Chong Yidong  <cyd@stupidchicken.com>
 +      * emacs.c (gdb_use_union, gdb_valbits,gdb_gctypebits)
 +      (gdb_data_seg_bits, gdb_array_mark_flag, PVEC_FLAG)
 +      (gdb_pvec_type):
 +      * print.c (print_output_debug_flag):
 +      * lisp.h (debug_print): Mark as EXTERNALLY_VISIBLE.
 +      (safe_debug_print): New declaration.
  
 -      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 -      Windows.
 +      * xterm.c:
 +      * systty.h:
 +      * sound.c: Include <sys/ioctl.h> unconditionally.
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-11-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 -      `connect' (Bug#5723).
 +      * alloc.c (mark_maybe_object): Return early if given a Lisp
 +      integer (Bug#6301).
  
 -2010-11-04  Helmut Eller  <eller.helmut@gmail.com>
 +2010-11-21  Ken Brown  <kbrown@cornell.edu>
  
 -      * process.c (Fmake_network_process): Call `select' for interrupted
 -      `connect' rather than creating new socket (Bug#5173).
 +      * sheap.c (STATIC_HEAP_SIZE): Revert previous change.
  
 -2010-11-04  Kenichi Handa  <handa@m17n.org>
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
 -      Don't sheck SPEC if it is nil.
 -      (font_list_entities): Call font_delete_unmatched if
 -      Vface_ignored_fonts is non-nil.
 +      * nsterm.m (ns_right_command_modifier, ns_right_control_modifier):
 +      Define (Bug#7458).
 +      (NSRightCommandKeyMask, NSRightControlKeyMask): Define (Bug#7458).
 +      (EV_MODIFIERS): Check for NSRightCommandKeyMask and
 +      NSRightControlKeyMask also (Bug#7458).
 +      (keyDown): Ditto (Bug#7458).
 +      (syms_of_nsterm): Defvar ns-right-command-modifier and
 +      ns-right-control-modifier (Bug#7458).
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-11-21  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 -      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
 +      * sysdep.c (sys_subshell): Remove SET_EMACS_PRIORITY.
 +      * emacs.c (emacs_priority, syms_of_emacs): Remove emacs_priority.
  
 -      * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
 -      Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
 -      set in FLAGS.  Callers with non-zero CHECK_MARGINS changed to use
 -      TRY_WINDOW_CHECK_MARGINS.
 +      * intervals.h (temp_set_point, temp_set_point_both):
 +      * buffer.h (offset_intervals, copy_intervals): Remove INLINE.
  
 -      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).
 +2010-11-20  Ken Brown  <kbrown@cornell.edu>
  
 -2010-11-04  Jan Djärv  <jan.h.d@swipnet.se>
 +      * sheap.c (STATIC_HEAP_SIZE): Increase to 13MB.
  
 -      * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
 -      parent is the root window.  Check this after traversing window tree.
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
 +      * term.c (produce_glyphless_glyph): Use \uNNNN, \UNNNNNN, or
 +      \xNNNNNN for hex-code display of glyphless characters.
  
 -      * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
 +2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
 -      before traversing window tree (Bug#5721).
 +      * gtkutil.c (xg_make_tool_item): Take vert_only as argument.
 +      Set important to ! vert_only.
 +      (xg_show_toolbar_item): Don't show label horizontally if
 +      tool item isn't important.
 +      (update_frame_tool_bar): Get TOOL_BAR_ITEM_VERT_ONLY and pass it to
 +      xg_make_tool_item, or update important on existing tool item.
  
 -2010-11-03  Glenn Morris  <rgm@gnu.org>
 +      * keyboard.c (QCvert_only): New variable.
 +      (parse_tool_bar_item): Check for QCvert_only.
 +      (syms_of_keyboard): Initialize QCvert_only.
  
 -      * Makefile.in (CRT_DIR): New variable, set by configure.
 -      * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
 -      Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
 +      * dispextern.h (tool_bar_item_idx): Add TOOL_BAR_ITEM_VERT_ONLY.
  
 -2010-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
  
 -      * process.c (kbd_is_on_hold): New variable.
 -      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 -      New functions.
 -      (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
 -      select on empty input mask.
 -      (init_process): Initialize kbd_is_on_hold to 0.
 +      * msdos.c (dos_rawgetc): Use gen_help_event, instead of doing the
 +      same in-line.
  
 -      * process.h (hold_keyboard_input, unhold_keyboard_input)
 -      (kbd_on_hold_p): Declare.
 +2010-11-20  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * keyboard.c (input_available_signal): Declare.
 -      (kbd_buffer_nr_stored): New function.
 -      (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
 -      more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
 -      (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
 -      returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
 -      (tty_read_avail_input): If input is on hold, return.
 -      Don't read more that free slots in kbd_buffer (Bug#6571).
 +      * xfaces.c (lookup_face): Make static.
 +      * dispnew.c (copy_row_except_pointers): Likewise.
 +      * syntax.c (dec_bytepos): Likewise.
 +      (inc_bytepos): Remove.
 +      * dispextern.h (lookup_face): Remove declaration.
  
 -2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-19  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xterm.c (x_connection_closed): Print informative error message
 -      when aborting on GTK.  This requires using shut_down_emacs
 -      directly instead of Fkill_emacs.
 +      * xdisp.c (set_cursor_from_row): Display cursor after all the
 +      glyphs that come from an overlay.  Don't overstep the last glyph
 +      when skipping glyphs from an overlay.  (Bug#6687)
  
 -2010-10-25  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-18  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * dbusbind.c (Fdbus_call_method_asynchronously)
 -      (Fdbus_register_signal, Fdbus_register_method): Check, whether
 -      `dbus-registered-objects-table' is initialized.
 +      * alloc.c (refill_memory_reserve): Move declaration ...
 +      * lisp.h (refill_memory_reserve): ... here.
  
 -2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +      * strftime.c (_strftime_copytm): Add declaration.
  
 -      * xterm.c (x_connection_closed): Kill Emacs unconditionally.
 +      * callproc.c (syms_of_callproc): Use intern_c_string.
  
 -2010-10-22  Eli Zaretskii  <eliz@gnu.org>
 +      Move declarations from .c files to .h files.
 +      * process.c (timers_run):
 +      * minibuf.c (quit_char):
 +      * lread.c (read_emacs_mule_char):
 +      * keyboard.c (minibuf_level, message_enable_multibyte)
 +      (pending_malloc_warning):
 +      * insdel.c (Vselect_active_regions, Vsaved_region_selection)
 +      (Qonly): Remove declarations.
 +      * lisp.h (pending_malloc_warning, Vsaved_region_selection)
 +      (Vselect_active_regions):
 +      * keyboard.h (timers_run):  Add declarations.
  
 -      * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
 +      * strftime.c (my_strftime_gmtime_r, my_strftime_localtime_r)
 +      (tm_diff): Convert definitions to standard C.
 +      (extra_args_spec_iso): Remove, unused.
  
 -      * dispnew.c (syms_of_display) <initial-window-system, window-system>:
 -      Deprecate use as a boolean flag.
 +2010-11-18  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-10-18  Ken Brown  <kbrown@cornell.edu>
 +      * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
  
 -      * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
 +      * config.in (HAVE_G_TYPE_INIT): New symbol.
  
 -2010-10-15  Kenichi Handa  <handa@m17n.org>
 +2010-11-18  Eli Zaretskii  <eliz@gnu.org>
  
 -      Fix incorrect font metrics when the same font is opened with
 -      different pixelsizes.
 +      * lread.c (Fload): Mention `load-in-progress' and
 +      `load-file-name'.  (Bug#7346)
  
 -      * xftfont.c: Include composite.h.
 -      (xftfont_shape): New function.
 -      (syms_of_xftfont): Set xftfont_driver.shape.
 +      * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
 +      (kbd_buffer_store_event_hold, kbd_buffer_get_event)
 +      (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
 +      subprocesses.  Use buffer_free only ifdef subprocesses.
  
 -2010-10-13  Damyan Pepper  <damyanp@gmail.com>
 +      * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
 +      the subprocesses version, not in the non-subprocesses one.
  
 -      Fix handling of font properties on Windows (bug#6303).
 -      * font.c (font_filter_properties): New function, refactored from
 -      ftfont_filter_properties.
 -      * font.h (font_filter_properties): Declare.
 -      * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
 +      * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
 +
 +2010-11-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning in empty
 +      lines on text-mode terminals.  (bug#7417)
 +
 +2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xterm.c (get_current_wm_state): Rename from get_current_vm_state.
 +      (do_ewmh_fullscreen, x_handle_net_wm_state): Update callers.
 +
 +2010-11-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (Fset_terminal_coding_system_internal): Fix previous
 +      change (set charset-ID list instead of charset-symbol list).
 +
 +2010-11-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (make_lispy_position): For text area clicks, record Y
 +      pixel position relative to the text area, excluding header line.
 +      Also change X and Y to Lisp_Objects, not pointers; don't return
 +      coordinate values via pointers.  Pass ON_TEXT_AREA coordinate to
 +      buffer_posn_from_coords counting from the start of the text area.
 +      (Fposn_at_x_y, make_lispy_event): Callers changed.
 +
 +      * window.c (coordinates_in_window): Change X and Y to ints rather
 +      than pointers; don't return coordinates via pointers.
 +      (struct check_window_data): Change X and Y from pointers to ints.
 +      (window_from_coordinates): Remove args WX and WY; don't return
 +      coordinates via pointers.
 +      (Fcoordinates_in_window_p, window_from_coordinates):
 +      (check_window_containing, Fwindow_at): Callers changed.
 +      (window_relative_x_coord): New function.
 +
 +      * window.h (window_from_coordinates, window_relative_x_coord):
 +      Update prototypes.
 +
 +      * dispnew.c (buffer_posn_from_coords): Assume that X counts from
 +      the start of the text area.
 +
 +      * xdisp.c (remember_mouse_glyph): Change window_from_coordinates
 +      call.  Use window_relative_x_coord.
 +      (note_mouse_highlight): Change window_from_coordinates call.
 +
 +      * w32term.c (w32_read_socket):
 +      * msdos.c (dos_rawgetc):
 +      * xterm.c (handle_one_xevent): Likewise.
 +
 +2010-11-16  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * strftime.c (LOCALE_PARAM_DECL): Update for standard C.
 +      (LOCALE_PARAM, LOCALE_PARAM_PROTO): Remove, unused.
 +      (memcpy_lowcase, so_week_days, extra_args_spec, emacs_strftimeu):
 +      Convert definitions to standard C.
 +      * regex.c: Do not include <stdlib.h>, config.h does it.
 +      Include unistd.h.
 +      (xrealloc, init_syntax_once, re_match, regcomp, regexec)
 +      (regerror, regfree): Convert definitions to standard C.
 +      * mktime.c (my_mktime_localtime_r, ydhms_tm_diff, ranged_convert)
 +      (__mktime_internal): Convert definitions to standard C.
 +
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * w32proc.c:
 +      * w32inevt.c:
 +      * w32heap.c:
 +      * w32.c: Remove config.h include guards.
 +
 +      * callproc.c (child_setup): Reorder code to simplify #ifdefs.
 +      No code changes.
 +
 +      * process.c: Include <sys/ioctl.h> unconditionally,
 +      keyboard.c already does it.
 +
 +      * keyboard.c (pending_malloc_warning): Add const to match
 +      definition in alloc.c.
 +      (Fset_input_interrupt_mode): Simplify #ifdefs.
 +
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Clean up systty.h macros.
 +      * systty.h (EMACS_GET_TTY_PGRP, EMACS_SET_TTY_PGRP, EMACS_GET_TTY)
 +      (EMACS_SET_TTY): Remove unneeded abstraction, instead inline the
 +      definition in all uses.
 +      (EMACS_TTY_TABS_OK): Remove, it has a single user.
 +      * sysdep.c (discard_tty_input, child_setup_tty)
 +      (init_sys_modes, tabs_safe_p, reset_sys_modes):
 +      * emacs.c (shut_down_emacs):
 +      * callproc.c (child_setup):
 +      * term.c (dissociate_if_controlling_tty): Inline removed macros.
 +
 +      * data.c (sign_extend_temp, sign_extend_lisp_int): Remove, unused.
 +
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * w32fns.c (Fx_create_frame):
 +      * nsfns.m (Fx_create_frame): Don't check for the cursorColor
 +      resource here; it's now done at startup.
 +
 +2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (set_wm_state): Add Qnil to final cons.
 +
 +      * xselect.c (x_send_client_event): Remove unused variables cons and
 +      size.
 +
 +2010-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * keyboard.c (modify_event_symbol) : Add const to array elements of
 +      arg NAME_TABLE.
 +      (lispy_accent_keys, lispy_function_keys, lispy_multimedia_keys)
 +      (lispy_kana_keys, iso_lispy_function_keys, lispy_wheel_names)
 +      (lispy_wheel_names, lispy_drag_n_drop_names, modifier_names):
 +      Add const to array elements.
 +      (scroll_bar_parts): Make static.  Fix position of const.
 +
 +      * w32fns.c (lispy_function_keys): Add const to extern.
 +
 +      * w32inevt.c (lispy_function_keys): Likewise.
 +
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame): Don't check for the cursorColor
 +      resource here; it's now done at startup.
 +
 +2010-11-13  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xmenu.c: Make it clear that ../lwlib/lwlib.h is only needed for Motif.
 +
 +      Fix compilation on Solaris.
 +      * sysdep.c: Do not #include <term.h>.
 +      (tputs): Add declaration, similar to what cm.c does.  (Bug#7178)
 +
 +      * s/ms-w32.h (HAVE_TERMIOS_H): Do not undef, not used anymore.
 +
 +2010-11-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (set_wm_state): Don't put Atom in cons, call
 +      make_fixnum_or_float on them first.
 +      (x_term_init): Initialize Xatom_net_supporting_wm_check and
 +      Xatom_net_supported correctly.
 +
 +      * xselect.c (x_send_client_event): Move CHECK_STRING ...
 +      (Fx_send_client_event): to here.
 +
 +2010-11-13  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.c (Fwindow_use_time): New function.
 +
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning on
 +      zero-width characters.
 +
 +      * .gdbinit (pgx): Adapt to latest changes in `struct glyph'.
 +
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground): Draw the
 +      box before drawing the glyphs inside it.
 +
 +      * xdisp.c (syms_of_xdisp) <glyphless-char-display>: Doc fix.
 +
 +      * dispextern.h (enum glyphless_display_method):
 +      Rename GLYPHLESS_DISPLAY_HEXA_CODE to GLYPHLESS_DISPLAY_HEX_CODE.
 +      All users changed.
 +
 +      * term.c (append_glyphless_glyph, produce_glyphless_glyph):
 +      Fix comments.
 +      (produce_glyphless_glyph): Enclose "U+nnnn" and "empty box"
 +      whitespace in "[]", to simulate a box.  Don't use uninitialized
 +      variable `width'.
 +
 +2010-11-11  Julien Danjou  <julien@danjou.info>
 +
 +      * xsettings.c (init_xsettings): Use already fetch atoms.
 +
 +      * xsmfns.c (create_client_leader_window): Use SM_CLIENT_ID atom
 +      from dpyinfo.
 +
 +      * xselect.c (Fx_send_client_event): Split and create
 +      x_send_client_event.
 +
 +      * lisp.h: Do not EXFUN Fx_send_client_event.
 +
 +      * xterm.c (x_set_frame_alpha): Use _NET_WM_WINDOW_OPACITY atom
 +      from dpyinfo.
 +      (wm_supports): Use atoms from dpyinfo.
 +      (do_ewmh_fullscreen): Use atoms from dpyinfo.
 +      (x_ewmh_activate_frame): Use atoms from dpyinfo.
 +      (xembed_set_info): Use atoms from dpyinfo.
 +      (x_term_init): Fetch _XEMBED_INFO, _NET_SUPPORTED,
 +      _NET_SUPPORTING_WM_CHECK, _NET_WM_WINDOW_OPACITY and
 +      _NET_ACTIVE_WINDOW, XSETTINGS  atoms.
 +      Get all atoms in one round-trip.
 +      (set_wm_state): Use x_send_client_event rather than
 +      Fx_send_client_event, using Atom directly.
 +      (x_ewmh_activate_frame): Ditto.
 +      (x_set_sticky): Pass atoms to set_wm_state.
 +      (do_ewmh_fullscreen): Ditto.
 +
 +
 +      * xterm.h (x_display_info): Add Xatom_net_supported,
 +      Xatom_net_supporting_wm_check, Xatom_net_active_window,
 +      Xatom_net_wm_window_opacity, Xatom_XEMBED_INFO, SM_CLIENT_ID.
 +
 +      * xfns.c (Fx_show_tip): Fix typo in docstring.
 +
 +2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cmds.c (Fself_insert_command): Don't call XFASTINT without checking
 +      it's not negative.
 +
 +2010-11-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * font.c (font_filter_properties): Add const to array elements of
 +      properties args.
 +
 +      * font.h (font_filter_properties): Likewise.
 +
 +      * ftfont.c (ftfont_booleans, ftfont_non_booleans): Add const to array
 +      elements.
 +
 +      * w32font.c (w32font_booleans, w32font_non_booleans): Likewise.
 +
 +2010-11-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (QCdbus_type_unix_fd): New Lisp object.
 +      (XD_BASIC_DBUS_TYPE, xd_symbol_to_dbus_type, xd_signature)
 +      (xd_append_arg, xd_retrieve_arg): Support DBUS_TYPE_UNIX_FD.
 +      (Fdbus_call_method): Add DBUS_TYPE_UNIX_FD type mapping to doc string.
 +      (syms_of_dbusbind): Initialize QCdbus_type_unix_fd).
 +
 +2010-11-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (syms_of_emacs) <system-type>: Doc fix.
 +
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xfns.c (x_real_positions): Fix declaration-after-statement problem.
 +
 +2010-11-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.c (free_image): Don't garbage the frame here, since this
 +      function can be called while redisplaying (Bug#7210).
 +      (uncache_image): Garbage the frame here (Bug#6426).
 +
 +2010-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
 +      parent is the root window.  Check this after traversing window tree.
 +
 +      * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
 +
 +      * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
 +
 +      * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
 +      before traversing window tree (Bug#5721).
 +
 +2010-11-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (set_machine_and_pid_properties): Let X set WM_CLIENT_MACHINE.
 +
 +      * xdisp.c (note_mode_line_or_margin_highlight):
 +      Initialize Cursor to No_Cursor for HAVE_WINDOW_SYSTEM also.
 +
 +2010-11-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xfns.c (Fx_show_tip): If any of the tool-tip text lines is R2L,
 +      adjust width of tool-tip frame to the width of text, excluding the
 +      stretch glyph at the beginning of R2L glyph rows.
 +
 +      * w32fns.c (Fx_show_tip): Likewise.
 +
 +2010-11-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfont.m: Include termchar for new mouse-highlight.
 +      (nsfont_draw): Use MOUSE_HL_INFO.
 +
 +2010-11-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Unify mouse-highlight code for all GUI and TTY sessions.
 +
 +      * term.c: Remove static mouse_face_* variables.  All users
 +      changed.
 +      (term_show_mouse_face, term_clear_mouse_face)
 +      (fast_find_position, term_mouse_highlight): Functions deleted.
 +      (tty_draw_row_with_mouse_face): New function.
 +      (term_mouse_movement): Call note_mouse_highlight instead of
 +      term_mouse_highlight.
 +
 +      * nsterm.m (ns_update_window_begin, ns_update_window_end)
 +      (ns_update_end, x_destroy_window, ns_frame_up_to_date)
 +      (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
 +      (ns_dumpglyphs_image, ns_dumpglyphs_stretch)
 +      (ns_initialize_display_info, keyDown, mouseMoved, mouseExited):
 +      Replace Display_Info with Mouse_HLInfo everywhere where
 +      mouse_face_* members were accessed for mouse highlight purposes.
 +
 +      * xterm.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, XTframe_up_to_date, x_set_mouse_face_gc)
 +      (handle_one_xevent, x_free_frame_resources, x_term_init):
 +      Replace Display_Info with Mouse_HLInfo everywhere where mouse_face_*
 +      members were accessed for mouse highlight purposes.
 +
 +      * w32term.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, w32_read_socket, x_free_frame_resources)
 +      (w32_initialize_display_info): Replace Display_Info with
 +      Mouse_HLInfo everywhere where mouse_face_* members were accessed
 +      for mouse highlight purposes.
 +
 +      * xdisp.c (show_mouse_face, note_mode_line_or_margin_highlight)
 +      (note_mouse_highlight) [HAVE_WINDOW_SYSTEM]: Don't run GUI code
 +      unless the frame is on a window-system.
 +      (get_tool_bar_item, handle_tool_bar_click)
 +      (note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
 +      (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
 +      Replace Display_Info with Mouse_HLInfo everywhere where
 +      mouse_face_* members were accessed for mouse highlight purposes.
 +      (coords_in_mouse_face_p): Move prototype out of the
 +      HAVE_WINDOW_SYSTEM conditional.
 +      (x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
 +      HAVE_WINDOW_SYSTEM block.
 +      (try_window_id) [HAVE_GPM || MSDOS]:
 +      Call x_clear_window_mouse_face.
 +      (draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
 +      systems.  Call tty_draw_row_with_mouse_face for TTY systems.
 +      (show_mouse_face): Call draw_row_with_mouse_face, instead of
 +      calling draw_glyphs directly.
 +      (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
 +      (cursor_in_mouse_face_p, rows_from_pos_range)
 +      (mouse_face_from_buffer_pos, mouse_face_from_string_pos)
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face): Move out of the
 +      HAVE_WINDOW_SYSTEM block.  Ifdef away window-system specific
 +      fragments.
 +      (note_mouse_highlight): Call popup_activated for MSDOS as well.
 +      Clear mouse highlight if pointer is over glyphs whose OBJECT is an
 +      integer.
 +      (mouse_face_from_buffer_pos): Add parentheses around && within ||.
 +      (x_consider_frame_title, tool_bar_lines_needed):
 +      Move prototypes to HAVE_WINDOW_SYSTEM-only part.
 +      (get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
 +      part.  Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
 +      (null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
 +      part.
 +
 +      * dispnew.c (mirror_make_current): Set Y coordinate of the
 +      mode-line and header-line rows.
 +      (init_display): Setup initial frame's output_data for text
 +      terminal frames.
 +
 +      * xmenu.c (popup_activated): Don't define on MSDOS, which now has
 +      its own definition on msdos.c.
 +
 +      * msdos.c (show_mouse_face, clear_mouse_face)
 +      (fast_find_position, IT_note_mode_line_highlight)
 +      (IT_note_mouse_highlight): Functions deleted.
 +      (IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
 +      instead of IT_note_mouse_highlight.
 +      (draw_row_with_mouse_face, popup_activated): New functions.
 +      (dos_set_window_size, draw_row_with_mouse_face, IT_update_begin)
 +      (IT_update_end, IT_frame_up_to_date, internal_terminal_init)
 +      (dos_rawgetc): Replace Display_Info with Mouse_HLInfo everywhere
 +      where mouse_face_* members were accessed for mouse highlight
 +      purposes.
 +
 +      * msdos.h (initialize_msdos_display): Add prototype.
 +
 +      * frame.h (MOUSE_HL_INFO): New macro.
 +
 +      * lisp.h (Mouse_HLInfo): New data type.
 +
 +      * xterm.h (struct x_display_info):
 +      * w32term.h (struct w32_display_info):
 +      * nsterm.h (struct ns_display_info):
 +      * termchar.h (struct tty_display_info): Use it instead of
 +      mouse_face_* members.
 +
 +      * dispextern.h (show_mouse_face, clear_mouse_face): Update type of
 +      1st argument.
 +      (frame_to_window_pixel_xy, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
 +      (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
 +      HAVE_WINDOW_SYSTEM conditional.
 +      (draw_row_with_mouse_face): Declare prototype.
 +      (tty_draw_row_with_mouse_face): Declare prototype.
 +
 +2010-11-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term.c (append_glyphless_glyph, produce_glyphless_glyph):
 +      Remove unused variables.
 +
 +2010-11-05  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsterm.m (EmacsView-mouseExited:): Correct error in conditional
 +      logic pointed out by Eli Zaretskii.
 +
 +2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * coding.c (coding-category-list): Refer to set-coding-system-priority
 +      instead of the obsolete set-coding-priority in the doc string.
 +
 +
 +2010-11-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsfont.m (nsfont_draw):  Correct previous patch to return
 +      correct value.
 +      * nsimage.m (EmacsImage-setXBMColor:): Correct previous patch:
 +      don't change the method signature, change the return.
 +
 +2010-11-04  Ismail Donmez  <ismail@namtrac.org>  (tiny change)
 +
 +      * nsfont.m (nsfont_draw)
 +      * nsimage.m (EmacsImage-setXBMColor:)
 +      * nsterm.m (EmacsView-performDragOperation:): Correct empty return.
 +
 +2010-11-03  Julien Danjou  <julien@danjou.info>
 +
 +      * image.c (gif_load): Add support for transparency and specified
 +      :background.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (lookup_glyphless_char_display): Extern it.
 +
 +      * termhooks.h (struct terminal): New member charset_list.
 +
 +      * coding.c (Fset_terminal_coding_system_internal): Set the
 +      `charset_list' member of struct terminal.
 +
 +      * term.c (produce_glyphs): Handle the case it->what == IT_GLYPHLESS.
 +      (append_glyphless_glyph, produce_glyphless_glyph): New functions.
 +
 +      * xdisp.c (lookup_glyphless_char_display): Make it non-static.
 +      (lookup_glyphless_char_display): Set it->what at the end.
 +      (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
 +      (last_glyphless_glyph_merged_face_id): Make them non-static.
 +
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground):
 +      Fix the arg with_background for font->driver->draw.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * w32gui.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
 +      Surround chp by parentheses.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      Implement various display methods for glyphless characters.
 +
 +      * xdisp.c (Qglyphless_char, Vglyphless_char_display)
 +      (Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space)
 +      (Qzero_width): New variables.
 +      (THIN_SPACE_WIDTH): New macro.
 +      (lookup_glyphless_char_display): New funciton.
 +      (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
 +      (last_glyphless_glyph_merged_face_id): New variables.
 +      (get_next_display_element): Check glyphless characters.
 +      (redisplay_internal): Initialize last_glyphless_glyph_frame and
 +      last_glyphless_glyph_face_id.
 +      (fill_glyphless_glyph_string): New function.
 +      (BUILD_GLYPHLESS_GLYPH_STRING): New macro.
 +      (BUILD_GLYPH_STRINGS): Handle the case GLYPHLESS_GLYPH.
 +      (append_glyphless_glyph, produce_glyphless_glyph): New functions.
 +      (x_produce_glyphs): If a suitable font is not found, produce a
 +      glyphless glyph.  Handle the case it->what == IT_GLYPHLESS.
 +      (syms_of_xdisp): Intern and staticpro Qglyphless_char,
 +      Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space, and
 +      Qzero_width.
 +      (Vglyphless_char_display): Declare it as a Lisp variable.
 +
 +      * dispextern.h (enum glyph_type): Add GLYPHLESS_GLYPH.
 +      (struct glyph): Change the size of the member "type" to 3.
 +      Add glyphless to the union slice and u.
 +      (enum display_element_type): Add IT_GLYPHLESS.
 +      (enum glyphless_display_method): New enum.
 +      (struct it): New member glyphless_method.
 +      (Vglyphless_char_display): Extern it.
 +
 +      * xterm.c (x_draw_glyphless_glyph_string_foreground): New function.
 +      (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
 +
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground): New function.
 +      (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
 +
 +      * nsterm.m (ns_draw_glyph_string): Handle the case
 +      GLYPHLESS_GLYPH (the detail is not yet implemented).
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Fix merge, maybe.
 +
 +      * frame.c (syms_of_frame) <tool-bar-mode>:
 +      Default to nil if !HAVE_WINDOW_SYSTEM.  (Bug#7299)
 +
 +2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_connection_closed): Print informative error message
 +      when aborting on GTK.  This requires using shut_down_emacs
 +      directly instead of Fkill_emacs.
 +
 +2010-10-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.c (main): Call syms_of_filelock unconditionally.
 +
 +      * filelock.c (syms_of_filelock): Move out of #ifdef CLASH_DETECTION
 +      clause, but keep part of it conditioned on CLASH_DETECTION.
 +
 +2010-10-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * nsfns.m (Fx-display-save-under, Fx-open-connection)
 +      (Fxw-color-defined-p, Fxw-display-color-p, Fx-show-tip):
 +      * w32fns.c (Fxw_color_defined_p, Fx_open_connection):
 +      * xfns.c (Fxw_color_defined_p, Fx_open_connection):
 +      Sync docs between X, W32, NS.
 +
 +      * buffer.c (syms_of_buffer) <abbrev-mode, transient-mark-mode>:
 +      * frame.c (syms_of_frame) <tool-bar-mode>: Move doc here from Lisp.
 +
 +2010-10-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * eval.c (init_eval_once): Set max_lisp_eval_depth to 600;
 +      otherwise, bootstrapping on Windows fails to compile macroexp.el.
 +
 +2010-10-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmds.c (internal_self_insert): Don't insert if argument N is
 +      zero or negative.  (Bug#7281)
 +
 +2010-10-26  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (qttip_cb): Set title to empty for ATK (Bug#7278).
 +
 +2010-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc.
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * w32fns.c (Fx_synchronize, Fx_change_window_property)
 +      (Fx_window_property, Fx_file_dialog):
 +      * xfns.c (Fx_synchronize, Fx_change_window_property)
 +      (Fx_window_property, Fx_file_dialog): Sync docs between w32 and X.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_connection_closed): Kill Emacs unconditionally.
 +
 +2010-10-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
 +
 +      * dispnew.c (syms_of_display) <initial-window-system, window-system>:
 +      Deprecate use as a boolean flag.
 +
 +2010-10-24  Jim Meyering  <jim@meyering.net>
 +
 +      * emacs.c (argmatch): Don't treat "--" as "--chdir".
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * w16select.c (syms_of_win16select) <selection-coding-system>:
 +      <next-selection-coding-system>:
 +      * w32select.c (syms_of_w32select) <selection-coding-system>:
 +      <next-selection-coding-system>:
 +      Sync docs with select.el.
 +
 +      * xfaces.c (syms_of_xfaces) <tty-defined-color-alist>: Sync doc with
 +      Lisp version.
 +
 +      * w32term.c (syms_of_w32term) <x-use-underline-position-properties>:
 +      Sync doc with the xterm.c version.
 +
 +      * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
 +      * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
 +
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * buffer.c (syms_of_buffer) <cursor-in-non-selected-windows>:
 +      * frame.c (syms_of_frame) <menu-bar-mode>:
 +      * xdisp.c (syms_of_xdisp) <auto-hscroll-mode, display-hourglass>:
 +      <hourglass-delay>: Sync docs with Lisp.
 +
 +2010-10-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement mouse highlight for bidi-reordered lines.
 +
 +      * xdisp.c (fast_find_string_pos): #ifdef away, not used anymore.
 +      (mouse_face_from_string_pos): New function, replaces
 +      fast_find_string_pos.
 +      (note_mouse_highlight): Call it instead of fast_find_string_pos.
 +      (note_mode_line_or_margin_highlight): Support bidi-reordered
 +      strings and R2L glyph rows.  Fix comments.
 +      (note_mouse_highlight): When bidi reordering is turned on in a
 +      buffer, call next-single-property-change and
 +      previous-single-property-change with last argument nil.
 +      Clear mouse highlight when mouse pointer is in a R2L row on the stretch
 +      glyph that stands for no text beyond the line end.
 +      (row_containing_pos): Don't return too early when CHARPOS is in a
 +      bidi-reordered continued line.  Return immediately when the first
 +      hit is found in a line that is not continued, or when an exact
 +      match for CHARPOS is found.
 +      (rows_from_pos_range): New function.
 +      (mouse_face_from_buffer_pos): Use it instead of calling
 +      row_containing_pos for START_CHARPOS and END_CHARPOS.  Rewrite the
 +      function to support mouse highlight in bidi-reordered lines and
 +      not to assume that START_CHARPOS is always in mouse_face_beg_row.
 +      If necessary, swap mouse_face_beg_row and mouse_face_end_row so
 +      that the former is always above the latter or identical to it.
 +      (show_mouse_face): Support drawing highlighted R2L lines.
 +      (coords_in_mouse_face_p): New function, bidi-aware.
 +      (cursor_in_mouse_face_p, note_mouse_highlight, erase_phys_cursor):
 +      Call it instead of comparing with mouse-face members of dpyinfo.
 +      (note_mode_line_or_margin_highlight): Fix confusingly swapped
 +      usage of hpos and vpos.
 +
 +2010-10-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xrdb.c: Include keyboard.h for MOTIF.
 +
 +      * xmenu.c: Revert 2010-07-27 change: lwlib.h is needed for
 +      MOTIF (Bug#7263).
 +
 +      * xfns.c: Include Xm/TextF and Xm/List.
 +      (file_dialog_cb, file_dialog_unmap_cb, clean_up_file_dialog):
 +      Make ANSI prototypes.
 +
 +2010-10-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (SOME_MACHINE_LISP): Add w32-vars.
 +      Remove ccl and duplicate mouse.
 +
 +2010-10-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Don't set
 +      saved-region-selection if modification hooks are disabled.
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cmds.c (Fdelete_char): Doc fix.
 +
 +2010-10-19  Ken Brown  <kbrown@cornell.edu>
 +
 +      * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
 +
 +2010-10-19  Kenichi Handa  <handa@m17n.org>
 +
 +      Fix incorrect font metrics when the same font is opened with
 +      different pixelsizes.
 +
 +      * xftfont.c: Include composite.h.
 +      (xftfont_shape): New function.
 +      (syms_of_xftfont): Set xftfont_driver.shape.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * frame.c (Fframe_pointer_visible_p):
 +      Add `frame-pointer-visible-p' to get the pointer visibility.
 +
 +2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_read): Return 0 if we get a
 +      non-"EAGAIN"-like error to signal to Emacs that the socket should
 +      be closed.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * unexcoff.c (make_hdr): Fix prototype according to changes in
 +      2010-10-03T13:59:56Z!dann@ics.uci.edu.
 +
 +      * image.c (tiff_load): Cast 3rd argument to avoid compiler warning.
 +
 +2010-10-15  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * Makefile.in (really-oldXMenu): Fix typo in variable name that
 +      made building the X menu fail.
 +      (really-oldXMenu): Fix my previous fix.
 +
 +2010-10-14  Damyan Pepper  <damyanp@gmail.com>
 +
 +      Fix handling of font properties on Windows (bug#6303).
 +      * font.c (font_filter_properties): New function, refactored from
 +      ftfont_filter_properties.
 +      * font.h (font_filter_properties): Declare.
 +      * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
        * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
        (w32font_filter_properties): New function.
        (w32font_driver): Add w32font_filter_properties.
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
  
        * font.c (Ffont_variation_glyphs):
        * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
  
 -2010-10-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (w32_wnd_proc, file_dialog_callback):
 +      * w32font.c (w32_generic_family):
 +      * w32inevt.c (key_event):
 +      * w32menu.c (fill_in_menu):
 +      * w32proc.c (reader_thread, w32_executable_type, compare_env)
 +      (merge_and_sort_env, int_from_hex, enum_locale_fn, enum_codepage_fn):
 +      * w32term.c (w32_read_socket): Make static.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * image.c (DEF_IMGLIB_FN): Add argument to adapt to strict
 +      prototypes; all callers changed.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (TLIB2): Rename from TLIBW32.
 +      (OBJ2): New macro.
 +      (WIN32OBJ, FONTOBJ): Remove.
 +      (OBJ1): Redistribute object files with OBJ2.
 +      (LIBS, $(TEMACS)): Use TLIB2.
 +      (make-buildobj-CMD, make-buildobj-SH): Use OBJ2.
 +      ($(TLIB2), TAGS, TAGS-LISP, TAGS-gmake): Depend on OBJ2.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs.c (Vdynamic_library_alist)
 +      (syms_of_emacs) <dynamic-library-alist>: Move from image.c and rename.
 +      Doc fix.
 +
 +      * lisp.h (Vdynamic_library_alist): Declare extern.
 +
 +      * image.c (Vimage_library_alist)
 +      (syms_of_image) <image-library-alist>: Move to emacs.c and rename.
 +      (lookup_image_type): Use Vdynamic_library_alist.
 +      (Finit_image_library): Doc fix.
 +
 +2010-10-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (lispsource, libsrc, etc, oldxmenudir, lwlibdir)
 +      (lispdir): Remove trailing /, update all uses.
 +
 +2010-10-12  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsterm.m (Qleft): Declare.
        (ns_right_alternate_modifier): New variable
        as emacs modifier for NSRightAlternateKeyMask.
        (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
  
 +2010-10-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_write): If we're trying to write before
 +      gnutls is ready, return EAGAIN as the errno.
 +
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c:
 +      * unexhp9k800.c:
 +      * unexelf.c:
 +      * unexaix.c:
 +      * termcap.c: Remove #ifdef emacs / #ifndef emacs code, unused.
 +
 +      * Makefile.in (temacs): Use $(ALL_CFLAGS) on the link line.
 +      (PROFILING_LDFLAGS): Remove, not needed anymore.
 +
 +      * Makefile.in: Use $(...) everywhere instead of ${...}
 +      (CRT_DIR): Move near potential user.
 +      (START_FILE): Move near CRT_DIR, it might use it.
 +
 +      * sysdep.c (LPASS8): Remove, unused.
 +      (emacs_ospeed): Change from being a global to a local in the only
 +      user: init_baud_rate.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (syms_of_gnutls): All the bootprops are keywords.
 +      (emacs_gnutls_write): Remove the debuggin fsync call.
 +      (emacs_gnutls_read): Return -1 if we got an error from
 +      gnutls_read.  This allows us to actually read lots of data from
 +      the GnuTLS stream.
 +      (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
 +      According to the documentation, this is correct, and it seems to
 +      make things work.
 +
 +2010-10-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_draw_relief_rect): Clear corner pixels.
 +
  2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * dbusbind.c (xd_get_dispatch_status): Return a Lisp_Object.
 -      (xd_pending_messages): Catch xd_get_dispatch_status calls.
 +      * keyboard.c: Revert last change; it was not intended to be
 +      synchronized with the trunk.
  
  2010-10-08  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (complement_process_encoding_system): Fix previous change.
  
 -2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
  
        * dbusbind.c (syms_of_dbusbind): Move putenv call ...
        (Fdbus_init_bus): ... here.  (Bug#7113)
  
 -2010-10-03  Glenn Morris  <rgm@gnu.org>
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
  
        * buffer.c (before-change-functions, after-change-functions):
        Three-year overdue doc fix following 2007-08-13 change.
  
 -2010-10-02  Kenichi Handa  <handa@m17n.org>
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (coding_inherit_eol_type): If parent doesn't specify
        eol-format, inherit from the system's default.
        (complement_process_encoding_system): Make a new coding system
        inherit the original eol-format.
  
 -2010-09-30  Kenichi Handa  <handa@m17n.org>
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (complement_process_encoding_system): New function.
  
        (send_process): Complement the coding system for encoding what
        sent to the process.
  
 -2010-09-29  Kenichi Handa  <handa@m17n.org>
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
  
        * xfont.c (xfont_open): Fix setting of font->average_width from
        :avgwidth property (Bug#7123).
  
 -2010-09-28  Michael Albinus  <michael.albinus@gmx.de>
 +2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
  
        * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
        is more portable.
        (kbd_buffer_get_event): ... here. This is needed for cygwin, which
        has not defined SIGIO.
  
 -2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
 -      (Bug#7113)
 +      * xterm.c (x_draw_relief_rect): If box width is larger than 1,
 +      draw the outermost line using the black relief, for legibility.
 +      Omit drawing the four corner pixels.
  
 -2010-09-26  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-10-04  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * xgselect.c (xg_select): Clear file descriptors not set from
 -      rfds and wfds.
 +      * keyboard.c (echo_prompt): Function moved into read_key_sequence.
 +      (read_key_sequence): Inline echo_prompt.
 +      (echo_dash): Add a dash only if key is continued (Bug#7137).
  
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-10-04  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * syntax.c (back_comment): Detect the case where a 1-char comment
 -      starter is also the 2nd char of a 2-char comment ender.
 +      Remove O_RDONLY, O_WRONLY definitions, not needed.
 +      * unexcoff.c:
 +      * lread.c:
 +      * fileio.c:
 +      * doc.c:
 +      * callproc.c:
 +      * alloc.c:
 +      * termcap.c: Remove O_RDONLY O_WRONLY definitions.
  
 -2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
 +      * gnutls.h (GNUTLS_LOG2): Convenience macro.
  
 -2010-09-12  Jan Djärv  <jan.h.d@swipnet.se>
 +      * gnutls.c: Add property list symbol holders.
 +      (emacs_gnutls_handshake): Clarify how sockets are passed to
 +      GnuTLS.
 +      (gnutls_log_function2): Convenience function using GNUTLS_LOG2.
 +      (Fgnutls_boot): Get all parameters from a plist.  Require trustfiles
 +      and keyfiles to be a list of file names.  Default to "NORMAL" for
 +      the priority string.  Improve logging.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * fileio.c (Vdirectory_sep_char): Remove.
 +
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * termhooks.h: Remove #ifdef CONSP.
 +
 +      * xterm.c (NO_INLINE, noinline): Move definitions to ../configure.in.
 +
 +      Include <fcntl.h> unconditionally.
 +      * termcap.c:
 +      * sysdep.c:
 +      * lread.c:
 +      * keyboard.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * doc.c:
 +      * callproc.c:
 +      * alloc.c: Remove include guards for <fcntl.h>, process.c already
 +      does it.
 +
 +      * process.c: Do not include <sys/wait.h>, syswait.h does it.
 +
 +      * sysdep.c (flush_pending_output): Remove code, does not do
 +      anything on any platform.
 +
 +      Remove unused code.
 +      * sysdep.c (select_alarm, sys_select, read_input_waiting):
 +      Remove select emulation, all systems support select.
 +      (set_exclusive_use): Remove, the only user is in an #if 0 block.
 +      * process.c (create_process): Remove #if 0 code.
 +
 +      Remove unused arguments for unexec.
 +      The third one is never used, and the last two are always passed as zero.
 +      * emacs.c (unexec): Add declaration.
 +      (Fdump_emacs): Only pass the first two arguments to unexec.
 +      Simplify #ifdef.
 +      * unexw32.c (unexec):
 +      * unexsol.c (unexec):
 +      * unexhp9k800.c (unexec):
 +      * unexcw.c (unexec): Remove the last 3 arguments, unused.
 +      * unexelf.c (unexec): Remove the last 3 arguments, unused.
 +      (find_section): Use const.
 +      * unexmacosx.c (unexec): Remove the last 3 arguments, unused.
 +      (unexec_error): Declare it NO_RETURN.
 +      * unexcoff.c (make_hdr): Assume bss_start is always zero, remove
 +      it as an argument, remove data_start and entry_address arguments, unused.
 +      (unexec): Remove bss_start, data_start and
 +      entry_address arguments.
 +      * unexaix.c (make_hdr): Assume bss_start is always zero, remove
 +      it as an argument, remove data_start and entry_address arguments, unused.
 +      (unexec): Remove bss_start, data_start and
 +      entry_address arguments.
 +
 +2010-10-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (TAGS, TAGS-LISP, TAGS-gmake): Add $(FONTOBJ).
 +
 +      * gnutls.c (emacs_gnutls_handshake, gnutls_make_error)
 +      (gnutls_emacs_global_init, gnutls_emacs_global_deinit): Make static.
 +      (Fgnutls_get_initstage, Fgnutls_deinit, Fgnutls_boot, Fgnutls_bye):
 +      Fix typos in docstrings.
 +      (Fgnutls_error_fatalp, Fgnutls_error_string): Doc fixes.
 +      (Fgnutls_errorp): Doc fix; use ERR for the argument name.
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Make sure the mark is really alive
 +      before using it (Bug#7044).
 +
 +2010-10-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (tags): Rename target to full-tags.
 +
 +2010-10-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.c (main): Remove !WINDOWSNT conditional.
 +      (Fkill_emacs): Don't mention exemption on MS-Windows.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * character.c (Fchar_bytes): Remove obsolete function.
 +      (syms_of_character): Remove Schar_bytes.
 +
 +      * emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT.
 +      (main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal
 +      in batch-mode.
 +      (Fkill_emacs): Doc fix.  Also run the hook in batch mode.
 +      (kill-emacs-hook): Doc fix.
 +
 +2010-10-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Flibxml_parse_xml_region, Flibxml_parse_html_region)
 +      (parse_region): Rework to take regions instead of strings, and
 +      renamed to reflect that these are the libxml functions.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term.c (init_tty) [DOS_NT]: Don't call Wcm_clear after setting
 +      screen dimensions in tty->Wcm.
 +
 +      * xdisp.c (set_cursor_from_row): When the row is truncated and
 +      point is outside the range of displayed characters, position the
 +      cursor inside the scroll margin.  (Bug#6349)
 +
 +2010-10-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Do not include stdlib.h and string.h, config.h does it.
 +      * xfont.c:
 +      * w32term.c:
 +      * w32reg.c:
 +      * w32inevt.c:
 +      * w32heap.c:
 +      * w32console.c:
 +      * w16select.c:
 +      * unexsol.c:
 +      * term.c:
 +      * sound.c:
 +      * scroll.c (m):
 +      * gtkutil.c:
 +      * font.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * dosfns.c:
 +      * dbusbind.c:
 +      * bidi.c:
 +      * callproc.c:
 +      * process.c:
 +      * msdos.c:
 +      * charset.c: Do not include stdlib.h and string.h, config.h does it.
 +
 +      * callproc.c (SIGCHLD): Remove conditional definition, syssignal.h
 +      defines it.
 +
 +      * process.c: Move #include <pty.h> earlier.
 +      (SIGCHLD): Remove conditional definition, syssignal.h defines it.
 +      (pty_name): Move definition later.
 +
 +      * nsselect.m (syms_of_nsselect):
 +      * nsmenu.m (syms_of_nsmenu):
 +      * nsfns.m (syms_of_nsfns):
 +      * msdos.c (syms_of_msdos):
 +
 +      * image.c (syms_of_image):
 +      * charset.c (syms_of_charset): Use intern_c_string instead of intern.
 +
 +      * point.h: Remove, unused.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags)
 +      (TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake)
 +      (nt-TAGS-gmake, nt-TAGS-nmake): New targets.
 +
 +2010-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xml.c (parse_string): Use const.
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eval.c (Fbacktrace): Don't overwrite print-level on exit.
 +      Also only override Vprint_level if it isn't already bound, and increase
 +      the level to 8 to produce more useful backtraces for bug reports.
 +
 +2010-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in: ecrt0.c does not exist anymore, do not mention it.
 +
 +2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32console.c (vga_stdcolor_name): Remove unused function;
 +      presumed dead after 2007-11-30T13:57:21Z!jasonr@gnu.org.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_handshake): Made into internal function.
 +      (Fgnutls_boot): Start the handshake.
 +      (emacs_gnutls_read): Perform the handshake from the reader loop.
 +      (Fgnutls_boot): Remove some debugging messages.
 +      Change indentation throughout to use the Emacs style.
 +      (emacs_gnutls_handshake): Cast the fds to something that's
 +      possibly the expected length.
 +      (emacs_gnutls_write): Return -1 if we try to write before handshake.
 +
 +      * process.h (Lisp_Process): Add a gnutls_p field to Lisp_Process.
 +
 +      * process.c (make_process): Set the gnutls_p field to zero by
 +      default.
 +      (read_process_output): Always call the gnutls_read function if the
 +      stream is a gnutls stream.
 +      (send_process): Ditto for writes.
 +
 +      * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): Refuse to read
 +      or write anything until the state is GNUTLS_STAGE_READY.
 +      (Fgnutls_boot): Mark the stream as being a gnutls stream.
 +
 +2010-09-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to
 +      NEUTRAL_DIR.
 +      (handle_invisible_prop, iterate_out_of_display_property)
 +      (next_element_from_buffer): If bidi_it.first_elt is set, call
 +      bidi_paragraph_init with NO_DEFAULT_P argument non-zero.
 +      (Bug#7128)
 +
 +      * print.c (print_object): Fix format string and argument types for
 +      printing a Lisp_Misc_Marker.
 +
 +      * xdisp.c (pos_visible_p, c_string_pos, number_of_chars)
 +      (load_overlay_strings, get_overlay_strings_1)
 +      (get_overlay_strings, forward_to_next_line_start)
 +      (back_to_previous_visible_line_start, reseat, reseat_to_string)
 +      (get_next_display_element, next_element_from_string)
 +      (next_element_from_c_string, next_element_from_buffer)
 +      (move_it_vertically_backward, move_it_by_lines, add_to_log)
 +      (message_dolog, message_log_check_duplicate, message2_nolog)
 +      (message3, message3_nolog, vmessage, set_message, set_message_1)
 +      (hscroll_window_tree, text_outside_line_unchanged_p)
 +      (set_cursor_from_row, set_vertical_scroll_bar, redisplay_window)
 +      (find_last_unchanged_at_beg_row)
 +      (find_first_unchanged_at_end_row, row_containing_pos)
 +      (trailing_whitespace_p, display_mode_element, decode_mode_spec)
 +      (display_count_lines, x_produce_glyphs, note_mouse_highlight):
 +      Use EMACS_INT for buffer and string positions.
 +
 +      * dispextern.h (struct it) <string_nchars>: Declare EMACS_INT.
 +      (row_containing_pos): Adjust prototype.
 +
 +      * lisp.h (pos_visible_p, message2, message2_nolog, message3)
 +      (message2_nolog, set_message): Adjust prototypes.
 +
 +2010-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gnutls.c (Fgnutls_boot): Remove unused vars `data' and `srp_cred'.
 +      (Fgnutls_boot): Use SDATA.
 +      (Fgnutls_handshake): Remove unused var `max_log_level'.
 +
 +2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
 +      (Bug#7113)
 +
 +2010-09-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xgselect.c (xg_select): Clear file descriptors not set from
 +      rfds and wfds.
 +
 +      * process.c (wait_reading_process_output): Add missing FD_CLR
 +      for write_mask (must mirror connect_wait_mask).
 +
 +2010-09-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.c (gnutls_log_function): Show level and "gnutls.c"
 +      prefix.
 +      (Fgnutls_boot): Use changed process members.  Use log level with a
 +      function parameter to set it.  Bring back Emacs-level debugging
 +      messages at log level 1 and 2.
 +
 +      * process.c (make_process): Initialize gnutls_log_level.
 +
 +      * process.h: Add gnutls_log_level and rename x509_cred and
 +      anon_cred to have the gnutls_ prefix for consistency.
 +
 +      * gnutls.h (GNUTLS_LOG): Add convenience macro.
 +
 +2010-09-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c (g_b_init_get_sid_identifier_authority)
 +      (GetSidIdentifierAuthority_Proc, get_sid_identifier_authority):
 +      Remove, not used.
 +      (globals_of_w32): Don't set g_b_init_get_sid_identifier_authority.
 +      (init_winsock): Remove useless assignment.
 +      (open_process_token, get_token_information, lookup_account_sid)
 +      (get_sid_sub_authority, get_sid_sub_authority_count, get_file_security)
 +      (get_security_descriptor_owner, get_security_descriptor_group)
 +      (is_valid_sid, equal_sid, get_length_sid, copy_sid)
 +      (get_native_system_info, get_system_times, init_user_info, crlf_to_lf)
 +      (is_unc_volume, GetCachedVolumeInformation, get_volume_info)
 +      (is_fat_volume, open_unc_volume, read_unc_volume, close_unc_volume)
 +      (unc_volume_file_attributes, convert_from_time_t)
 +      (create_toolhelp32_snapshot, process32_first, process32_next)
 +      (open_thread_token, impersonate_self, revert_to_self)
 +      (get_process_memory_info, get_process_working_set_size)
 +      (global_memory_status, global_memory_status_ex, socket_to_fd)
 +      (shutdown_handler): Make static.
 +
 +2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (dbus_fd_cb, xd_get_dispatch_status)
 +      (xd_pending_messages): Functions removed.
 +      (xd_read_queued_messages): Add parameters fd, *data, for_read in
 +      order to be compatible with add_read_fd.  Determine bus from data,
 +      and call xd_read_message just for this bus.
 +      (xd_add_watch): Use xd_read_queued_messages as callback function.
 +      Add data.
 +
 +      * lisp.h (xd_pending_messages, xd_read_queued_messages): Remove.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (gnutls_log_function): Add more debugging.
 +      (emacs_gnutls_read): Don't infloop while reading.
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      These changes are to remove restriction on the number of glyphs in
 +      one composition.
 +
 +      * dispextern.h (struct glyph): Change the member "slice" to union.
 +      Remove u.cmp.from and u.cmp.to.  Give more bits to u.cmp.id.
 +      (GLYPH_SLICE_EQUAL_P): Adjust for the above change.
 +
 +      * dispnew.c (buffer_posn_from_coords): Use glyph->slice.img
 +      instead of glyph->slice.
 +      (marginal_area_string): Likewise.
 +
 +      * term.c (encode_terminal_code): Use glyph->slice.cmp instead of
 +      glyph->u.cmp.
 +      (append_composite_glyph): Likewise.
 +
 +      * xdisp.c (dump_glyph): Use glyph->slice.cmp instead of
 +      glyph->u.cmp.
 +      (fill_gstring_glyph_string, x_get_glyph_overhangs)
 +      (append_composite_glyph): Likewise.
 +      (fill_image_glyph_string): Use glyph->slice.img instead of
 +      glyph->slice.
 +      (append_glyph, produce_image_glyph, append_stretch_glyph)
 +      (note_mouse_highlight): Likewise.
 +
 +2010-09-26  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * process.c (add_keyboard_wait_descriptor)
 +      (delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses.
 +      (wait_reading_process_output): Don't pass write_mask to select
 +      if SELECT_CANT_DO_WRITE_MASK is defined.
 +      (SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK.
 +
 +      * process.h (add_read_fd, delete_read_fd, add_write_fd)
 +      (delete_write_fd): Declare.
 +
 +      * process.c (gpm_wait_mask, max_gpm_desc): Remove.
 +      (write_mask): New variable.
 +      (max_input_desc): Rename from max_keyboard_desc.
 +      (fd_callback_info): New variable.
 +      (add_read_fd, delete_read_fd, add_write_fd, delete_write_fd):
 +      New functions.
 +      (Fmake_network_process): FD_SET write_mask.
 +      (deactivate_process): FD_CLR write_mask.
 +      (wait_reading_process_output): Connecting renamed to Writeok.
 +      check_connect removed.  check_write is new.  Remove references to gpm.
 +      Use Writeok/check_write unconditionally (i.e. no #ifdef
 +      NON_BLOCKING_CONNECT) instead of Connecting.
 +      Loop over file descriptors and call callbacks in fd_callback_info
 +      if file descriptor is ready for I/O.
 +      (add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
 +      (delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
 +      (keyboard_bit_set): Use max_input_desc.
 +      (add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor):
 +      Remove #ifdef subprocesses.  Use max_input_desc.
 +      (init_process): Initialize write_mask and fd_callback_info.
 +
 +      * keyboard.c (readable_events, gobble_input): Remove DBUS code.
 +
 +      * dbusbind.c: Include process.h.
 +      (dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
 +      (xd_read_message_1): New functions.
 +      (xd_add_watch, xd_remove_watch): Call xd_find_watch_fd.
 +      Handle watch for both read and write.
 +      (Fdbus_init_bus): Also register xd_toggle_watch.
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal): Remove call
 +      to dbus_connection_flush.
 +      (xd_read_message): Move most of the code to xd_read_message_1.
 +      Call xd_read_message_1 until status is COMPLETE.
 +
 +2010-09-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * term.c: Do not include sys/ioctl.h, not needed.
 +      (init_tty): Reorder code to reduce the number of #ifdefs.
 +      No code changes.
 +
 +2010-09-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * process.h: Set up GnuTLS support.
 +
 +      * process.c (make_process, Fstart_process)
 +      (read_process_output, send_process): Set up GnuTLS support for
 +      process input/output file descriptors.
 +
 +      * gnutls.h: The GnuTLS glue for Emacs, macros and enums.
 +
 +      * gnutls.c: The source code for GnuTLS support in Emacs.
 +
 +      * emacs.c: Set up GnuTLS support and call syms_of_gnutls.
 +
 +      * config.in: Set up GnuTLS support.
 +
 +      * Makefile.in (LIBGNUTLS_LIBS, LIBGNUTLS_CFLAGS, ALL_CFLAGS)
 +      (obj, LIBES): Set up GnuTLS support.
 +
 +2010-09-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c (get_emacs_configuration_options): Fix previous change.
 +
 +2010-09-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Ensure the mark marker is
 +      alive before using it (Bug#6977).
 +
 +2010-09-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xdisp.c (face_before_or_after_it_pos): EMACS_INT/int fixup.
 +
 +      * dispextern.h: EMACS_INT/int fixup.
 +
 +      * xdisp.c (string_pos_nchars_ahead, init_iterator): EMACS_INT/int
 +      fixup.
 +
 +      * xrdb.c (magic_file_p): EMACS_INT/int fixup.
 +
 +2010-09-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * window.c (Fpos_visible_in_window_p, Fdelete_other_windows)
 +      (Fselect_window, window_scroll_pixel_based)
 +      (window_scroll_line_based, Frecenter, Fset_window_configuration):
 +      Use EMACS_INT for buffer positions.
 +
 +      * textprop.c (validate_interval_range, interval_of)
 +      (property_change_between_p, Fadd_text_properties)
 +      (set_text_properties_1, Fremove_text_properties)
 +      (Fremove_list_of_text_properties, Ftext_property_any)
 +      (Ftext_property_not_all, copy_text_properties)
 +      (text_property_list, extend_property_ranges)
 +      (verify_interval_modification): Use EMACS_INT for buffer
 +      positions.
 +
 +      * term.c (fast_find_position, term_mouse_highlight): Use EMACS_INT
 +      for buffer positions.
 +
 +      * process.c (read_process_output, send_process)
 +      (Fprocess_send_region, status_notify): Use EMACS_INT for buffer
 +      and string positions and size.
 +
 +      * print.c (print_object, print_string, strout): Use EMACS_INT for
 +      string indices.
 +
 +      * minibuf.c (string_to_object): Use EMACS_INT for string position
 +      and size.
 +
 +      * marker.c (verify_bytepos): Use EMACS_INT for buffer positions.
 +
 +      * lread.c <read_from_string_index, read_from_string_index_byte>
 +      <read_from_string_limit, readchar_count>: Define EMACS_INT.
 +      (readchar, unreadchar, read_internal_start): Use EMACS_INT for
 +      buffer positions and string length.
 +
 +      * keyboard.c <last_point_position, last_non_minibuf_size>: Declare
 +      EMACS_INT.
 +      (echo_truncate, adjust_point_for_property, read_char)
 +      (gen_help_event, make_lispy_event, modify_event_symbol)
 +      (Fexecute_extended_command, stuff_buffered_input): Use EMACS_INT
 +      for buffer positions and string length.
 +
 +      * keyboard.h (gen_help_event): Adjust prototype.
 +
 +      * termhooks.h <struct input_event>: Make `code' member EMACS_INT.
 +
 +      * commands.h <last_point_position>: Declare EMACS_INT.
 +
 +      * xdisp.c <help_echo_pos>: Define as EMACS_INT.
 +      (truncate_echo_area): Accept EMACS_INT argument.
 +
 +      * dispextern.h <help_echo_pos>: Declare EMACS_INT.
 +
 +      * lisp.h (truncate_echo_area): Adjust prototype.
 +
 +      * composite.c (composition_adjust_point): Return EMACS_INT.
 +
 +      * composite.h (composition_adjust_point): Adjust prototype.
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * process.c (Fmake_network_process): When arg :host is 'local,
 +      use address 127.0.0.1, not name "localhost".  (Bug#6781)
 +
 +2010-09-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * indent.c (Fcurrent_indentation, indented_beyond_p)
 +      (compute_motion): Use EMACS_INT for buffer position variables.
 +
 +      * lisp.h (indented_beyond_p): Adjust prototype.
 +
 +      * buffer.c (overlay_strings): Return EMACS_INT.
 +
 +      * buffer.h (overlay_strings): Adjust prototype.
 +
 +      * region-cache.c (pp_cache): Adjust format to arguments.
 +
 +      * eval.c <specpdl_size, lisp_eval_depth>: Declare EMACS_INT.
 +      (call_debugger): Use EMACS_INT for specpdl_size related variables.
 +      (verror): Use EMACS_INT for size of allocated buffer.
 +
 +      * keyboard.c (make_lispy_position): Use EMACS_INT for buffer
 +      positions.
 +
 +      * xdisp.c (redisplay_internal, try_window_id)
 +      (set_cursor_from_row, find_first_unchanged_at_end_row):
 +      Use EMACS_INT for buffer positions.
 +
 +      * dispextern.h (set_cursor_from_row): Adjust prototype.
 +
 +      * dispnew.c (increment_matrix_positions)
 +      (increment_row_positions, copy_glyph_row_contents)
 +      (mode_line_string, marginal_area_string): Use EMACS_INT for buffer
 +      positions.
 +
 +      * dispextern.h (mode_line_string, marginal_area_string)
 +      (increment_matrix_positions, increment_row_positions):
 +      Adjust prototypes.
 +
 +      * data.c (Faref, Faset): Use EMACS_INT for string length and
 +      positions.
 +
 +      * cmds.c (internal_self_insert): Use EMACS_INT for the count of
 +      characters to insert.
 +
 +      * ccl.c (Fccl_execute_on_string): Use EMACS_INT for string
 +      position and size.
 +
 +      * syntax.c (scan_words, update_syntax_table)
 +      (prev_char_comend_first, back_comment, skip_chars)
 +      (skip_syntaxes, Fforward_comment, Fbackward_prefix_chars):
 +      Use EMACS_INT for buffer and string positions.
 +
 +      * syntax.h (scan_words, update_syntax_table): Adjust prototypes.
 +
 +      * casefiddle.c (operate_on_word): Use EMACS_INT for buffer
 +      positions.
 +
 +2010-09-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * scroll.c (calculate_scrolling, line_ins_del)
 +      (calculate_direct_scrolling, scroll_cost): Fix EMACS_INT/int
 +      conversion.
 +
 +      * region-cache.c (move_cache_gap, set_cache_region, pp_cache)
 +      (region_cache_backward, region_cache_forward)
 +      (revalidate_region_cache, set_cache_region): FIX EMACS_INT/int
 +      conversion.
 +
 +      * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
 +
 +      * eval.c (verror): Fix EMACS_INT/int conversion.
 +
 +      * print.c (PRINTDECLARE, PRINTPREPARE, strout, print_string)
 +      (print_preprocess, print_check_string_charset_prop)
 +      (print_object): Fix EMACS_INT/int conversion.
 +
 +      * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
 +
 +2010-09-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * callproc.c (Fcall_process): Use EMACS_INT for count of
 +      characters read from the subprocess.
 +
 +      * bidi.c (struct bidi_paragraph_info): Use EMACS_INT for buffer
 +      positions.
 +      (bidi_cache_search, bidi_cache_find): Use EMACS_INT for buffer
 +      positions.
 +
 +      * buffer.c (struct sortvec): Use EMACS_INT for buffer positions.
 +      (struct sortstrlist, overlay_str_len): Use EMACS_INT for string
 +      length.
 +      (advance_to_char_boundary, Fset_buffer_multibyte)
 +      (overlays_at, overlays_in, mouse_face_overlay_overlaps)
 +      (overlay_touches_p, record_overlay_string, overlay_strings)
 +      (recenter_overlay_lists, fix_start_end_in_overlays)
 +      (modify_overlay, Fmove_overlay, report_overlay_modification)
 +      (evaporate_overlays): Use EMACS_INT for buffer positions.
 +
 +      * lisp.h (fix_start_end_in_overlays, overlay_touches_p):
 +      Adjust prototypes.
 +
 +      * dispextern.h (struct bidi_saved_info): Use EMACS_INT for buffer
 +      positions.
 +
 +      * fns.c (Fcompare_strings, Fstring_lessp, concat)
 +      (string_make_unibyte, Fstring_as_unibyte, Fsubstring)
 +      (Fsubstring_no_properties, substring_both, Ffillarray)
 +      (Fclear_string, mapcar1, Fmapconcat, Fmapcar, Fmapc)
 +      (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
 +      (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
 +      (Fmd5): Use EMACS_INT for buffer and string positions and length
 +      variables and arguments.
 +
 +      * lisp.h (substring_both): Adjust prototype.
 +
 +2010-09-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove W32 API function pointer unused since 2005-02-15 (revno 2005-02-15T23:19:26Z!jasonr@gnu.org).
 +      * w32fns.c (clipboard_sequence_fn): Don't declare.
 +      (globals_of_w32fns): Don't initialize it.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.c (back_comment): Detect the case where a 1-char comment
 +      starter is also the 2nd char of a 2-char comment ender.
 +
 +2010-09-23  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eval.c (verror): EMACS_INT/int cleanup.
 +
 +      * lisp.h (SPECPDL_INDEX): Cast to int, since we're not going to
 +      unwind_protect more than 2GB worth of functions.
 +
 +      * editfns.c (Finsert_char): EMACS_INT/int cleanup.
 +
 +      * lisp.h: Have oblookup take EMACS_INT to allow interning big
 +      string and avoid compiler warnings.
 +      (USE_SAFE_ALLOCA): Cast to int to avoid compilation warnings in
 +      all users.
 +
 +      * lread.c (oblookup): EMACS_INT/int cleanup.
 +
 +      * cmds.c (Fforward_line, Fdelete_char): EMACS_INT/int cleanup.
 +
 +2010-09-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * editfns.c (clip_to_bounds): Return an EMACS_INT value.
 +
 +      * lisp.h (clip_to_bounds): Adjust prototype.
 +
 +      * intervals.c (adjust_for_invis_intang): Return EMACS_INT value.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * lisp.h: doprnt.c EMACS_INT/int cleanup.
 +
 +      * doprnt.c (doprnt): EMACS_INT/int cleanup.
 +
 +      * doc.c (Fsnarf_documentation, get_doc_string): EMACS_INT/int
 +      cleanup.
 +
 +      * lisp.h: Change the definition of all marker.c functions that
 +      take and return buffer stuff to be EMACS_INT instead of int.
 +
 +      * marker.c (buf_charpos_to_bytepos, CONSIDER, set_marker_both)
 +      (buf_charpos_to_bytepos, bytepos_to_charpos)
 +      (buf_bytepos_to_charpos, Fbuffer_has_markers_at)
 +      (set_marker_restricted, set_marker_both): Convert int to EMACS_INT
 +      for all buffer positions.
 +
 +2010-09-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * intervals.c (traverse_intervals, rotate_right, rotate_left)
 +      (split_interval_right, find_interval, next_interval)
 +      (delete_node, delete_interval, interval_deletion_adjustment)
 +      (adjust_intervals_for_deletion, merge_interval_right)
 +      (merge_interval_left, graft_intervals_into_buffer)
 +      (copy_intervals): Convert EMACS_UINTs to EMACS_INT.
 +
 +      * intervals.h (traverse_intervals): Update prototype.
 +
 +2010-09-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * indent.c (compute_motion): Use EMACS_INT for arguments to
 +      region_cache_forward.
 +
 +      * region-cache.c (struct boundary, struct region_cache):
 +      Use EMACS_INT for positions.
 +      (find_cache_boundary, move_cache_gap, insert_cache_boundary)
 +      (delete_cache_boundaries, set_cache_region)
 +      (invalidate_region_cache, know_region_cache)
 +      (region_cache_forward, region_cache_backward, pp_cache):
 +      Use EMACS_INT for buffer positions.
 +
 +      * region-cache.h (know_region_cache, invalidate_region_cache)
 +      (region_cache_forward, region_cache_backward): Adjust prototypes.
 +
 +      * search.c (string_match_1, fast_c_string_match_ignore_case)
 +      (looking_at_1, scan_buffer, scan_newline)
 +      (find_next_newline_no_quit, find_before_next_newline)
 +      (search_command, trivial_regexp_p, search_buffer, simple_search)
 +      (boyer_moore, wordify, Freplace_match): Use EMACS_INT for buffer
 +      and string positions and length.
 +
 +      * lisp.h (scan_buffer, scan_newline, find_next_newline_no_quit)
 +      (find_before_next_newline): Adjust prototypes.
 +
 +      * editfns.c (transpose_markers, update_buffer_properties)
 +      (buildmark, clip_to_bounds, Fgoto_char, overlays_around)
 +      (get_pos_property, Fconstrain_to_field)
 +      (Fline_beginning_position, Fline_end_position, Fprevious_char)
 +      (Fchar_after, Fchar_before, Finsert_char)
 +      (Finsert_buffer_substring, Fcompare_buffer_substrings)
 +      (Fsubst_char_in_region, Fformat, Ftranspose_regions):
 +      Use EMACS_INT for buffer and string position variables.
 +      (Finsert_char): Protect against too large insertions.
 +
 +      * lisp.h (clip_to_bounds): Adjust prototype.
 +
 +      * intervals.c (traverse_intervals, rotate_right, rotate_left)
 +      (balance_an_interval, split_interval_right, split_interval_left)
 +      (find_interval, next_interval, update_interval)
 +      (adjust_intervals_for_insertion, delete_node, delete_interval)
 +      (interval_deletion_adjustment, adjust_intervals_for_deletion)
 +      (offset_intervals, merge_interval_right, merge_interval_left)
 +      (graft_intervals_into_buffer, adjust_for_invis_intang)
 +      (move_if_not_intangible, get_local_map, copy_intervals)
 +      (copy_intervals_to_string, compare_string_intervals)
 +      (set_intervals_multibyte_1): Use EMACS_INT for buffer positions
 +      and for interval tree size.
 +
 +      * intervals.h (traverse_intervals, split_interval_right)
 +      (split_interval_left, find_interval, offset_intervals)
 +      (graft_intervals_into_buffer, copy_intervals)
 +      (copy_intervals_to_string, move_if_not_intangible, get_local_map)
 +      (update_interval): Adjust prototypes.
 +
 +      * xdisp.c (check_point_in_composition, reconsider_clip_changes):
 +      Use EMACS_INT for buffer position variables and arguments.
 +
 +      * composite.c (get_composition_id, find_composition)
 +      (run_composition_function, compose_text)
 +      (composition_gstring_width, autocmp_chars)
 +      (composition_update_it, Ffind_composition_internal): Use EMACS_INT
 +      for buffer positions and string length variables and arguments.
 +
 +      * composite.h (get_composition_id, find_composition, compose_text)
 +      (composition_gstring_width): Adjust prototypes.
 +
 +      * editfns.c (Fformat): Use EMACS_INT for string size variables.
 +
 +      * xdisp.c (store_mode_line_noprop, display_mode_element):
 +      Use EMACS_INT for string positions.
 +
 +      * intervals.c (get_property_and_range): Use EMACS_INT for buffer
 +      position arguments.
 +
 +      * intervals.h (get_property_and_range): Adjust prototype.
 +
 +      * character.c (parse_str_as_multibyte, str_as_multibyte)
 +      (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
 +      (string_count_byte8, string_escape_byte8, c_string_width)
 +      (strwidth, lisp_string_width, multibyte_chars_in_text):
 +      Use EMACS_INT for string length variables and arguments.
 +
 +      * character.h (parse_str_as_multibyte, str_as_multibyte)
 +      (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
 +      (c_string_width, strwidth, lisp_string_width):
 +      Adjust prototypes.
 +
 +      * font.c (font_intern_prop): Use EMACS_INT for string length
 +      variables.
 +
 +      * font.c (font_intern_prop): Use EMACS_INT for string length
 +      variables.
 +
 +      * fns.c (Fstring_as_multibyte): Use EMACS_INT for string length
 +      variables.
 +
 +      * alloc.c <total_string_size>: Declare as EMACS_INT, not int.
 +      (Fmake_string): Protect against too large strings.
 +      (live_string_p, live_cons_p, live_symbol_p, live_float_p)
 +      (live_misc_p): Use ptrdiff_t instead of int for pointer
 +      differences.
 +      (string_bytes, check_sblock, check_string_free_list)
 +      (allocate_string_data, compact_small_strings, Fmake_string)
 +      (Fmake_bool_vector, make_string, make_unibyte_string)
 +      (make_multibyte_string, make_string_from_bytes)
 +      (make_specified_string_string, Fmake_list, Fmake_vector):
 +      Use EMACS_INT for string length variables and arguments.
 +      (find_string_data_in_pure, make_pure_string, make_pure_c_string)
 +      (Fpurecopy): Use EMACS_INT for string size.
 +      (mark_vectorlike, mark_char_table, mark_object): Use EMACS_UINT
 +      for vector size.
 +
 +      * lisp.h (make_string, make_unibyte_string, make_multibyte_string)
 +      (make_string_from_bytes, make_specified_string_string)
 +      (make_pure_string, string_bytes, check_point_in_composition):
 +      Adjust prototypes.
 +
 +2010-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
 +      (check_translation): Use EMACS_INT for buffer positions and
 +      length.
 +
 +      * undo.c (record_marker_adjustment, record_delete)
 +      (record_change, record_point, record_insert)
 +      (record_property_change, Fprimitive_undo): Use EMACS_INT for
 +      buffer positions.
 +
 +      * lisp.h (record_marker_adjustment, record_delete)
 +      (record_change, record_point, record_insert)
 +      (record_property_change, Fprimitive_undo): Adjust prototypes.
 +
 +2010-09-22  Juanma Barranquero  <lekktu@gmail.com>
 +            Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (get_emacs_configuration_options): Fix buffer overrun.
 +
 +2010-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * minibuf.c (Fminibuffer_contents)
 +      (Fminibuffer_contents_no_properties)
 +      (Fminibuffer_completion_contents): Use EMACS_INT for minibuffer
 +      positions.
 +
 +      * keyboard.c (command_loop_1): Use EMACS_INT to compare point with
 +      mark.
 +
 +      * alloc.c (make_uninit_string, make_uninit_multibyte_string)
 +      (allocate_string_data): Accept EMACS_INT for string length.
 +
 +      * editfns.c (Ffield_string, Ffield_string_no_properties)
 +      (make_buffer_string, make_buffer_string_both, Fbuffer_substring)
 +      (Fbuffer_substring_no_properties, find_field, Fdelete_field)
 +      (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
 +      (Ffield_end): Use EMACS_INT for buffer positions.
 +
 +      * insdel.c (prepare_to_modify_buffer): Use EMACS_INT to compare
 +      point with mark.
 +
 +      * lisp.h (allocate_string_data, make_uninit_string)
 +      (make_uninit_multibyte_string, make_buffer_string)
 +      (make_buffer_string_both): Adjust prototypes.
 +
 +2010-09-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xml.c: Switch to GNU indentation.
 +      (make_dom): Change parse tree format to match xml.el.
 +      (Fxml_parse_html_string_internal): Rename from html-parse-string.
 +      (Fxml_parse_string_internal): Rename from xml-parse-string.
 +
 +2010-09-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * xdisp.c (compute_stop_pos): Call composition_compute_stop_pos
 +      only if we are not at a composition.
 +      (set_iterator_to_next): Give it->end_charpos to
 +      composition_compute_stop_pos.
 +      (set_iterator_to_next, next_element_from_buffer): Likewise.
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix position when the
 +      current display element is a grapheme cluster in bidi-reordered
 +      region.
 +
 +2010-09-21  Ari Roponen  <ari.roponen@gmail.com>  (tiny change)
 +
 +      * doc.c (Fsnarf_documentation): Use memmove instead of memcpy as
 +      the regions may overlap.
 +
 +2010-09-21  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
 +
 +2010-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs.c: Do not include sys/ioctl.h, not needed.
 +
 +      * doprnt.c: Do not include stdlib.h, config.h does it.
 +      Move #include before macro definition.
 +
 +2010-09-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (temacs): Link using $(CC) not $(LD).
 +      (LD_FIRSTFLAG): Define using autoconf.
 +      (LD): Remove.
 +
 +      Remove HAVE_TERMIOS definitions.
 +      * s/usg5-4-common.h (HAVE_TERMIOS):
 +      * s/template.h (HAVE_TERMIOS):
 +      * s/gnu-linux.h (HAVE_TERMIOS):
 +      * s/darwin.h (HAVE_TERMIOS):
 +      * s/cygwin.h (HAVE_TERMIOS):
 +      * s/bsd-common.h (HAVE_TERMIOS):
 +      * s/aix4-2.h (HAVE_TERMIOS):
 +      * s/hpux10-20.h (HAVE_TERMIOS): Do not define, it is assumed
 +      defined on all non-MS platforms.
 +      (HAVE_PSTAT_GETDYNAMIC): Do not define, autoconf does it.
 +
 +      * xterm.c (xt_action_hook): Use const.
 +
 +2010-09-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Don't make W32 code conditional on HAVE_SOCKETS, it's always defined.
 +      * w32.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
 +      (gethostname) [!HAVE_SOCKETS]: Remove.
 +      (SOCK_REPLACE_HANDLE): Remove macro.
 +      (socket_to_fd, sys_close, _sys_read_ahead, sys_read, sys_write)
 +      (term_ntproc, init_ntproc): Don't conditionalize on HAVE_SOCKETS.
 +      * w32proc.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
 +      (syms_of_ntproc): Don't conditionalize on HAVE_SOCKETS.
 +
 +2010-09-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (xml.o): Add dependencies.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction):
 +      Call bidi_paragraph_init with NO_DEFAULT_P non-zero.  (Bug#7038)
 +
 +      * bidi.c (bidi_paragraph_init): Accept an additional argument
 +      NO_DEFAULT_P; all callers changed.  If NO_DEFAULT_P is non-zero,
 +      search back until a paragraph with a strong directional character
 +      is found, and use that to determine paragraph's base direction.
 +
 +      * dispextern.h (bidi_paragraph_init): Update prototype.
 +
 +2010-09-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
 +      of w32api >= 3.15.  (Bug#6989)
 +
 +2010-09-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * process.c (wait_reading_process_output): Don't message about
 +      accept-process-output unless the time limit really is zero.
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.c (Ftool_bar_pixel_width): YAILOM (Yet another
 +      int/Lisp_Object mixup).
 +
 +2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): For QClabel, set TOOL_BAR_ITEM_LABEL
 +      not HELP.
 +
 +2010-09-17  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * frame.c (Ftool_bar_pixel_width): New function to expose tool
 +      bar's pixel width to Lisp (Bug#7048).
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
 +
 +2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_pack_tool_bar): Call gtk_handle_box_set_handle_position
 +      with argument top/left if tool bar is vertical/horizontal (Bug#7051).
 +
 +2010-09-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_check_otf): Fix previous change.
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_check_otf): Fix the case of checking just
 +      existence of GSUB or GPOS.
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
 +
 +2010-09-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (parse_buffer): Rename to parse_string(), since that's
 +      what it does.
 +      (parse_string): Return nil when the document can't be parsed.
 +
 +2010-09-14  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xterm.c (get_current_vm_state): New function.
        (do_ewmh_fullscreen): Call get_current_vm_state and compare with
        (x_handle_net_wm_state): Move code to get_current_vm_state and
        call that function.
  
 -2010-09-11  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +2010-09-14  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +
 +      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 +      we may use designation or locking-shift.
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 +      sequence when the source is multibyte.
 +
 +2010-09-14  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xml.c (Fxml_parse_string, Fxml_parse_string): Revert last change.
 +      Don't make first argument optional.  Doc fix.
 +
 +2010-09-14  Leo  <sdl.web@gmail.com>  (tiny change)
 +
 +      * xml.c (Fxml_parse_string, Fhtml_parse_string): Fix up the
 +      parameters for the doc string.
 +
 +2010-09-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Fhtml_parse_string, Fxml_parse_string): Mention BASE-URL.
 +
 +2010-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * fns.c (Fy_or_n_p): Move to lisp/subr.el.
 +      (syms_of_fns): Don't defsubr Sy_or_n_p.
 +      * lisp.h: Don't declare Fy_or_n_p.
 +      * fileio.c (barf_or_query_if_file_exists): Fy_or_n_p -> y-or-n-p.
 +
 +2010-09-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Fxml_parse_buffer): New function to parse XML files.
 +
 +2010-09-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c: New file.
 +      (Fhtml_parse_buffer): New function to interface to the libxml2
 +      html parsing function.
 +
 +2010-09-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * biditype.h: Regenerate.
 +
 +2010-09-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * nsimage.m (ns_load_image): Check argument types.
 +
 +      * image.c: Remove all uses of gcpro.
 +      (xpm_load): Check all lisp types.
 +      (pbm_load): Likewise.
 +      (png_load): Likewise.
 +      (jpeg_load): Likewise.
 +      (tiff_load): Likewise.
 +      (gif_load): Likewise.
 +      (imagemagick_load_image): Likewise.
 +      (imagemagick_load): Likewise.
 +      (svg_load): Likewise.
 +      (gs_load): Likewise.
 +
 +2010-09-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32uniscribe.c (uniscribe_shape): Update commentary.
 +      Don't try to reorder grapheme clusters, since LGSTRING should always
 +      hold them in the logical order.
 +      (uniscribe_encode_char, uniscribe_shape): Force ScriptShape to
 +      return glyph codes in the logical order.
 +
 +2010-09-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_image_p): Replace bcopy by memcpy.
 +      (imagemagick_load_image): Fix type mismatch.
 +      (Fimagemagick_types): Likewise.  Doc fix.
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (struct dpyinfo): Remove cut_buffers_initialized.
 +
 +      * xterm.c (x_term_init): Don't set dpyinfo->cut_buffers_initialized.
 +
 +      * xselect.c: Remove declaration of cut-buffer objects and functions.
 +      (symbol_to_x_atom): Remove mapping to XA_CUT_BUFFERn.
 +      (x_atom_to_symbol): Remove mapping to QCUT_BUFFERn.
 +      (Fx_get_cut_buffer_internal, Fx_store_cut_buffer_internal)
 +      (Fx_rotate_cut_buffers_internal): Remove.
 +      (syms_of_xselect): Remove defsubr of above.
 +      Remove intern of QCUT_BUFFERn.
 +
 +2010-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cmds.c (Vblink_paren_function): Remove.
 +      (internal_self_insert): Make it insert N chars at a time.
 +      Don't call blink-paren-function.
 +      (Fself_insert_command): Adjust accordingly.
 +      (syms_of_cmds): Don't declare blink-paren-function.
 +
 +2010-08-31  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 +      characters.
 +
 +      * term.c (encode_terminal_code): Fix the previous change.
 +      (produce_glyphs): Don't set it->char_to_display here.
 +      Don't handle unibyte-display-via-language-environment here.
 +      (produce_special_glyphs): Set temp_it.char_to_display before
 +      calling produce_glyphs.
 +
 +      * xdisp.c (get_next_display_element): Set it->char_to_display
 +      here.  Convert all 8-bit bytes from unibyte buffer/string to 8-bit
 +      characters.
 +      (get_overlay_arrow_glyph_row): Set it.char_to_display too before
 +      calling PRODUCE_GLYPHS.
 +      (append_space_for_newline): Save and store it->char_to_display.
 +      Set it->char_to_display before calling PRODUCE_GLYPHS.
 +      (extend_face_to_end_of_line): Set it->char_to_display before
 +      calling PRODUCE_GLYPHS.
 +      (get_glyph_face_and_encoding): Set the glyph code an 8-bit
 +      character to its byte value.
 +      (get_char_glyph_code): New function.
 +      (produce_stretch_glyph): Set it2.char_to_display too before
 +      calling x_produce_glyphs.
 +      (x_produce_glyphs): Simplify by using the same code for ASCII and
 +      non-ASCII characters.  Don't set it->char_to_display here.
 +      Don't handle unibyte-display-via-language-environment here.  For a
 +      character of no glyph, use font->space_width instead of FONT_WIDTH.
 +
 +2010-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (Fwindow_system): Fix compilation for USE_LISP_UNION_TYPE.
 +
 +2010-08-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Don't call x-set-selection on tty.
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * marker.c (Fcopy_marker): Make the first arg optional.
 +
 +2010-08-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_update_it): Fix computing of
 +      cmp_it->width.
 +
 +2010-08-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * term.c (encode_terminal_code): Encode byte chars to the
 +      corresponding bytes.
 +
 +2010-08-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_draw_window_cursor): Draw BAR_CURSOR correct for R2L.
 +
 +2010-08-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * xdisp.c (compute_stop_pos): Pay attention to bidi scan direction
 +      on calling composition_compute_stop_pos.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * fontset.c (reorder_font_vector): Prefer a font-spec specifying
 +      :otf.
 +
 +      * composite.c (composition_compute_stop_pos): Don't break
 +      composition at PT.
 +      (composition_reseat_it): Likewise.  Fix calculation of character
 +      position starting a composition.
 +      (Fcomposition_get_gstring): Don't limit the number of components
 +      for automatic composition.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_compute_stop_pos): In forward search,
 +      pay attention to the possibility that some character after ENDPOS
 +      will be composed with charactrs before ENDPOS.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Don't clobber primary selection
 +      during handle-switch-frame (Bug#6872).
 +
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c: Accept UNIX domain sockets as bus address.
 +      (Fdbus_close_bus): New function.
 +      (Vdbus_registered_buses): New variable.
 +      (xd_initialize): Implement string as bus address.
 +      (Fdbus_init_bus): Add bus to Vdbus_registered_buses).
 +      (Fdbus_get_unique_name, Fdbus_call_method)
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal)
 +      (Fdbus_register_signal, Fdbus_register_method): Remove bus type
 +      check.  This is done in xd_initialize_bus.  Adapt doc string, if
 +      necessary.
 +      (xd_pending_messages, xd_read_queued_messages): Loop over buses in
 +      Vdbus_registered_buses.
 +      (Vdbus_registered_objects_table): Create hash.
 +
 +2010-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * keyboard.c (Fexecute_extended_command): Move reading a command name
 +      with `completing-read' to a new Elisp function `read-extended-command'.
 +      Call it to read a command to `function'  (bug#5364, bug#5214).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs.c (main): Remove handling of --unibyte arg (Bug#6886).
 +
 +2010-08-22  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
 +      instead of SAFE_ALLOCA.
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 +      (Bug#6214).
 +
 +2010-08-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 +
 +2010-08-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * doc.c (Fsnarf_documentation): Initialize skip_file before
 +      build-files test.
 +
 +2010-08-22  Peter O'Gorman  <pogma@thewrittenword.com>  (tiny change)
 +
 +      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 +      New definitions.
 +      (HAVE_TERMIO): Remove.
 +
 +2010-08-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (sysdep.o, msdos.o): Depend on sysselect.h.
 +
 +      * sysselect.h [WINDOWSNT]: Don't define the FD_* and select stuff
 +      for w32.
 +
 +      * s/ms-w32.h (HAVE_SYS_TIMEB_H): Don't #undef HAVE_SYS_SELECT_H,
 +      it's done in nt/config.nt.
 +
 +      * makefile.w32-in ($(BLD)/sysdep.$(O)): Depend on sysselect.h.
 +
 +      * unexcoff.c (report_error, make_hdr, write_segment)
 +      (copy_text_and_data, copy_sym, mark_x, adjust_lnnoptrs, unexec):
 +      Convert argument lists and prototypes to ANSI C.
 +      (make_hdr, write_segment): Remove unused variables.
 +      (unexec): Remove commented-out line.  Initialize `new' to shut up
 +      compiler warnings.
 +
 +2010-08-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Simplify termio code.
 +      All non-MSDOS non-WINDOWSNT platforms define HAVE_TERMIOS, so
 +      HAVE_TERMIO code is obsolete.
 +      Replace HAVE_TERMIOS conditionals with !DOS_NT.
 +      * systty.h: Do not define HAVE_TCATTR.
 +      Remove HAVE_TERMIO, HAVE_LTCHARS and HAVE_TCHARS code.
 +      Do not define EMACS_HAVE_TTY_PGRP.  Only define
 +      EMACS_GET_TTY_PGRP for !DOS_NT.
 +      * sysdep.c: Include sysselect.h unconditionally.  Do not include
 +      sys/ioctl.h and termios.h, systty.h does it.
 +      Use HAVE_SYS_UTSNAME_H instead of USG as an include guard.
 +      (init_baud_rate): Remove HAVE_TERMIO code.
 +      (child_setup_tty): Remove HAVE_TERMIO code.
 +      (emacs_get_tty, emacs_set_tty): Remove HAVE_TERMIO, HAVE_TCHARS
 +      and HAVE_LTCHARS code.  Use !DOS_NT instead of HAVE_TCATTR.
 +      (new_ltchars, new_tchars): Remove, unused.
 +      (init_sys_modes): Remove HAVE_TERMIO, HAVE_TCHARS and HAVE_LTCHARS
 +      code.  Remove special casing for __mips__, it was a no-op.
 +      Remove HAVE_TCATTR conditional, it is implied by HAVE_TERMIOS.
 +      (init_sys_modes): Remove HPUX special case.
 +      * process.c: Include stdlib.h unconditionally.  Do not include
 +      fcntl.h, systty.h does it.  Remove conditional code for
 +      HAVE_SERIAL, it is always true.
 +      (process_send_signal): Remove HAVE_TERMIOS conditional, it's
 +      always true when SIGNALS_VIA_CHARACTERS is true.
 +      (Fcontinue_process, Fprocess_send_eof): Simplify conditionals:
 +      !WINDOWSNT means HAVE_TERMIOS.
 +      (create_process): Remove HAVE_TERMIOS, it's inside a HAVE_PTYS
 +      conditional, which is true for all HAVE_TERMIOS systems.
 +      * keyboard.c (init_keyboard): Do not use HAVE_TERMIO, use !DOS_NT
 +      instead of HAVE_TERMIOS.
 +      * emacs.c (shut_down_emacs): Use !defined DOS_NT instead of
 +      EMACS_HAVE_TTY_PGRP.
 +      * callproc.c (child_setup): Move EMACS_SET_TTY_PGRP use to the
 +      non-MSDOS, non-WINDOWSNT code, it's only defined for such systems
 +      anyway.
 +
 +2010-08-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix off-by-one error in
 +      mirroring pixel positions.
 +
 +2010-08-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c (malloc_sbrk_used, malloc_sbrk_unused): Remove,
 +      write only.
 +      (init_alloc_once): Remove writes to malloc_sbrk_unused, and
 +      malloc_sbrk_used, nothing uses them.
 +
 +      * puresize.h: Remove code assuming PNTR_COMPARISON_TYPE is not
 +      defined, unconditionally defined in lisp.h.
 +
 +      * term.c: Do not include <termios.h>, systty.h does it.
 +
 +      * s/unixware.h (HAVE_TCATTR):
 +      * s/aix4-2.h (HAVE_TCATTR): Remove definitions, not needed.
 +      systty.h defines it when HAVE_TERMIOS is defined.
 +
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix last change for text
 +      terminals: add one-character offset for R2L lines.
 +
 +      * emacs.c <emacs_version>: Add a comment regarding
 +      msdos/mainmake.v2's dependency on the syntax of this declaration.
 +
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix calculation of buffer
 +      position for R2L lines by mirroring the pixel position wrt the
 +      text are box.  Improve commentary.
 +
 +2010-08-20  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_clear_image): Remove debugging output.
 +
 +2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cmds.c (Vself_insert_face, Vself_insert_face_command): Remove.
 +      (Qpost_self_insert_hook, Vpost_self_insert_hook): New vars.
 +      (internal_self_insert): Run Qpost_self_insert_hook rather than handle
 +      self-insert-face.
 +      (syms_of_cmds): Initialize the new vars.
 +
 +2010-08-19  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32menu.c (set_frame_menubar): Remove call to undefined function.
 +
 +      * w32fns.c (w32_wnd_proc): Don't check context before initializing.
 +
 +2010-08-19  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m (nxatoms_of_nsselect): Use "Selection" and "Secondary".
 +
 +2010-08-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_bar_cursor):
 +      * w32term.c (x_draw_bar_cursor): If the character under cursor is
 +      R2L, draw the bar cursor on its right rather than on its left.
 +
 +2010-08-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Fdefmacro): Only obey one declaration.
 +
 +      * casefiddle.c (casify_region): Setup gl_state.
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_define_frame_cursor): Call x_update_cursor (Bug#6868).
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (update_frame_tool_bar): Literal strings are const char*.
 +
 +2010-08-18  David De La Harpe Golden  <david@harpegolden.net>
 +
 +      * nsselect.m (QCLIPBOARD, NXPrimaryPboard): Define.
 +      (symbol_to_nsstring): Map QCLIPBOARD => NSGeneralPboard,
 +      QPRIMARY => NXPrimaryPboard.
 +      (ns_string_to_symbol): NSGeneralPboard => QCLIPBOARD,
 +      NXPrimaryPboard => QPRIMARY.
 +      (nxatoms_of_nsselect): NXPrimaryPboard = PrimarySelection,
 +      NXSecondaryPboard = SecondarySelection.
 +      (syms_of_nsselect): Intern QCLIPBOARD (Bug#6677).
 +
 +2010-08-18  Joakim Verona  <joakim@verona.se>
 +
 +      * image.c: Add support for ImageMagick.  When HAVE_IMAGEMAGICK is
 +      defined:
 +      (imagemagick_image_p): New function to test for ImageMagic image.
 +      (imagemagick_load): New function to load ImageMagick image.
 +      (imagemagick_load_image): New function, helper for imagemagick_load.
 +      (imagemagick-types): New function.
 +      (Qimagemagick): New Lisp_object.
 +      (imagemagick-render-type): New variable, decides which renderer to use.
 +
 +2010-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gtkutil.c (update_frame_tool_bar): Don't assume TOOL_BAR_ITEM_LABEL
 +      is a string.
 +
 +2010-08-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (ns_frame_parm_handlers): Add a slot for the
 +      x_set_tool_bar_position handler.
 +
 +2010-08-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c <w32_frame_parm_handlers>: Add a slot for the
 +      x_set_tool_bar_position handler, needed to support changes from
 +      2010-07-29T16:49:59Z!jan.h.d@swipnet.se for positioning the tool bar.  (Bug#6796)
 +
 +2010-08-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m: include keyboard.h for QPRIMARY, remove its
 +      declaration (Bug#6863).
 +      (syms_of_nsselect): Don't intern QPRIMARY.
 +
 +      * xselect.c: Remove declaration of QPRIMARY (Bug#6864).
 +
 +      * keyboard.h (QPRIMARY): Declare (Bug#6864).
 +
 +2010-08-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Avoid setting selection twice,
 +      since it's done in deactivate-mark as well.
 +      (Vselect_active_regions): Change default to t.  Replace `lazy'
 +      with non-default value `only', meaning only set PRIMARY for
 +      temporarily active regions.
 +
 +      * insdel.c (prepare_to_modify_buffer): Handle `only' value of
 +      select-active-regions.
 +
 +2010-08-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): Put in a bad label if :label
 +      isn't a string.
 +
 +2010-08-15  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * keyboard.c (parse_tool_bar_item): Avoid excessive use of strlen.
 +
 +2010-08-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): malloc buf.
 +      Set TOOL_BAR_ITEM_LABEL to empty string if not set to
 +      new_lbl (Bug#6855).
 +
 +2010-08-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_stretch_glyph_string):
 +      * w32term.c (x_draw_stretch_glyph_string): In R2L rows, display
 +      the cursor on the right edge of the stretch glyph.
 +
 +      * xdisp.c (window_box_right_offset, window_box_right):
 +      Fix commentary.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction): Fix paragraph
 +      direction when point is inside a run of whitespace characters.
 +
 +      * bidi.c (bidi_at_paragraph_end): Remove obsolete comment.
 +
 +2010-08-14  Jason Rumney  <jasonr@gnu.org>
 +
 +      * keyboard.c (lispy_function_keys): Do not define VK_PACKET (bug#4836)
 +
 +2010-08-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fmake_hash_table): Doc fix (Bug#6851).
 +
 +2010-08-13  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32menu.c (simple_dialog_show): Use unicode message box if available.
 +      (MessageBoxW_Proc): New function typedef.
 +      (unicode-message-box): New function pointer.
 +      (globals_of_w32menu): Import it from user32.dll. (Bug#5629)
 +
 +2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frame.h (Qtool_bar_position): Declare.
 +
 +      * xfns.c (Fx_create_frame): Call x_default_parameter for
 +      Qtool_bar_position.
 +
 +2010-08-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * unexcoff.c: Remove the parts used when "emacs" is not defined.
 +      (report_error, report_error_1): Ditto.
 +      (write_segment): Remove "#if 0" unused code.
 +      (make_hdr): Remove code that was "#ifndef NO_REMAP" before
 +      NO_REMAP was removed (in 2010-07-29T03:25:08Z!dann@ics.uci.edu).
 +      (start_of_text): Remove unused function (was used only if NO_REMAP
 +      was NOT defined).
 +
 +      * msdos.c (IT_set_face): Fix format string to match argument
 +      types.
 +      (IT_write_glyphs, IT_note_mode_line_highlight)
 +      (IT_set_frame_parameters): Remove unused variables.
 +      (x_set_menu_bar_lines): Declare set_menu_bar_lines.
 +      (IT_set_terminal_modes): Disambiguate expression in if clause.
 +      (Fmsdos_remember_default_colors): Return Qnil.
 +      (IT_set_frame_parameters): Add parens to disambiguate boolean
 +      expression for logging the cursor type to termscript.
 +      (keyboard_layout_list, keypad_translate_map)
 +      (grey_key_translate_map): Add braces in inner initializers.
 +      (dos_rawgetc): Add parens in condition for mouse-3 button-press.
 +      (dos_rawgetc): Remove unused label.
 +      (XMenuActivate): Add braces to remove ambiguous `else'.
 +      (dos_ttraw): Always return a value.
 +      (spawnve): Declare.
 +      (run_msdos_command): Cast 3rd arg of spawnve to "char **".
 +
 +      * dosfns.h (x_set_title): Declare.
 +
 +      * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
 +      Remove unused variables.
 +
 +      * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Remove unused
 +      variables.
 +      (init_dosfns): Declare get_lim_data.
 +      (system_process_attributes): Declare Fget_internal_run_time.
 +
 +      * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Fix argument
 +      list to be consistent with menu.h.
 +
 +      * w32menu.c (add_menu_item, name_is_separator): Shut up compiler
 +      warnings due to mixing of "char *" and "const char *".
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Introduce a new comment style "c" flag.
 +      * syntax.c (SYNTAX_FLAGS_COMMENT_STYLEB)
 +      (SYNTAX_FLAGS_COMMENT_STYLEC): New macros.
 +      (SYNTAX_FLAGS_COMMENT_STYLE): Use them, add an argument.
 +      (syntax_prefix_flag_p): New function.
 +      (Fstring_to_syntax): Understand new "c" flag.
 +      (Finternal_describe_syntax_value): Recognize new flag; use the
 +      SYNTAX_FLAGS_* macros.
 +      (scan_sexps_forward, Fparse_partial_sexp): Change representation of
 +      comment style to accomodate the new styles.
 +      (back_comment, forw_comment, Fforward_comment, scan_lists)
 +      (scan_sexps_forward): Update code to obey the new comment style flag.
 +
 +      * syntax.h: Move SYNTAX_FLAGS_FOO() macros to syntax.c.
 +
 +      * casefiddle.c (casify_region): Use the new syntax_prefix_flag_p.
 +
 +2010-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_defined_color): If USE_GTK, call xg_check_special_colors
 +      first.
 +      (Fx_hide_tip): Check FRAME_LIVE_P (f) before calling xg_hide_tooltip.
 +
 +      * gtkutil.h (xg_check_special_colors): Declare.
 +
 +      * gtkutil.c (xg_check_special_colors, style_changed_cb): New functions.
 +      (xg_create_frame_widgets): Connect theme name changes to
 +      style_changed_cb.
 +
 +      * xterm.c (emacs_class): New char[] for EMACS_CLASS.
 +      (xim_open_dpy, xim_initialize, xim_close_dpy): Use emacs_class.
 +      (x_term_init): Use char[] display_opt and name_opt instead of
 +      string literal.  file is const char*.
 +
 +      * xsmfns.c (NOSPLASH_OPT): Change to char[].
 +      (smc_save_yourself_CB): Do xstrdup on all ->type and ->name for
 +      props.  Free them at the end.
 +
 +      * xselect.c (Fx_get_atom_name): Use char empty[] instead of literal "".
 +
 +      * xrdb.c (get_system_app): Make path const and use char *p for
 +      non-const char.
 +
 +      * xmenu.c (Fx_popup_dialog): error_name is const char*.
 +      (xmenu_show): error parameter is const char **.  pane_string is const
 +      char *.
 +      (button_names): Is const char *.
 +      (xdialog_show): error_name and pane_string is const.
 +
 +      * process.h (synch_process_death): Is const char*.
 +
 +      * w32menu.c (w32_menu_show):
 +      * nsmenu.m (ns_menu_show): error parameter is const char **.
 +
 +      * menu.h (w32_menu_show, ns_menu_show, xmenu_show): error parameter
 +      is const char **.
 +
 +      * menu.c (Fx_popup_menu): error_name is const.
 +
 +      * keyboard.h (_widget_value): Add defined USE_GTK.  Replace Boolean
 +      with unsigned char and XtPointer with void *.
 +
 +      * gtkutil.h: Replace widget_value with struct _widget_value.
 +      (enum button_type, struct _widget_value): Remove and use the one from
 +      keyboard.h.
 +
 +      * gtkutil.c (get_utf8_string): Always return an allocated string.
 +      Parameter is const.
 +      (create_dialog, xg_create_one_menuitem, create_menus)
 +      (xg_item_label_same_p, xg_update_menu_item): Free result from
 +      get_utf8_string.
 +      (xg_separator_p, xg_item_label_same_p): label is const.
 +
 +      * font.h (font_open_by_name): Make name const.
 +
 +      * font.c (font_open_by_name): Make name const.
 +
 +      * floatfns.c (matherr): Use a const char* variable for x->name.
 +
 +      * emacs.c (main): Pass char[] to putenv instead of literal.
 +
 +      * callproc.c (synch_process_death): Make const.
 +      (Fcall_process): Make signame const.
 +
 +      * nsterm.h (parseKeyEquiv, addSubmenuWithTitle)
 +      (addDisplayItemWithImage): Use const char*.
 +
 +      * nsmenu.m (parseKeyEquiv, addSubmenuWithTitle)
 +      (addDisplayItemWithImage, update_frame_tool_bar): Use const char*.
 +
 +      * nsfont.m (ns_descriptor_to_entity): Use const char*.
 +
 +      * keyboard.h (_widget_value): name, value and key are const char*.
 +
 +      * unexmacosx.c (unexec_error): Use const char *.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * font.h (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
 +      (font_parse_name, font_open_by_name):
 +      * font.c (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
 +      (font_parse_name, font_open_by_name): Remove const.
 +
 +2010-08-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      Use autoconf determined WORDS_BIGENDIAN instead of hardcoded
 +      definition.
 +
 +      * m/alpha.h: Don't define/undef WORDS_BIG_ENDIAN.
 +      * m/amdx86-64.h: Likewise.
 +      * m/arm.h: Likewise.
 +      * m/hp800.h: Likewise.
 +      * m/ia64.h: Likewise.
 +      * m/ibmrs6000.h: Likewise.
 +      * m/ibms390.h: Likewise.
 +      * m/intel386.h: Likewise.
 +      * m/iris4d.h: Likewise.
 +      * m/m68k.h: Likewise.
 +      * m/macppc.h: Likewise.
 +      * m/mips.h: Likewise.
 +      * m/sh3.h: Likewise.
 +      * m/sparc.h: Likewise.
 +      * m/template.h: Likewise.
 +      * m/vax.h: Likewise.
 +      * m/xtensa.h: Likewise.
 +      * fringe.c (init_fringe_bitmap): Test WORDS_BIGENDIAN instead of
 +      WORDS_BIG_ENDIAN.
 +      * lisp.h: Likewise.
 +      * md5.c: Likewise.
 +      * sound.c (le2hl, le2hs, be2hl, be2hs): Likewise.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Use const char* instead of char*.
 +      Reduce the number of warnings with -Wwrite-strings.
 +      * xrdb.c (get_environ_db, get_system_name):
 +      * unexelf.c (find_section):
 +      * term.c (string_cost, string_cost_one_line, per_line_cost)
 +      (get_named_tty, init_tty):
 +      * sysdep.c (sys_subshell):
 +      * sound.c (sound_perror, sound_warning, vox_open, vox_init)
 +      (alsa_sound_perror, alsa_open, alsa_configure, alsa_init):
 +      * search.c (Freplace_match):
 +      * process.c (Fmake_network_process, send_process, init_process):
 +      * lread.c (Fload, init_lread):
 +      * keymap.c (Fdescribe_buffer_bindings, describe_map_tree):
 +      * keyboard.c (parse_tool_bar_item, struct event_head):
 +      * gtkutil.h (xg_get_font_name):
 +      * gtkutil.c (get_dialog_title, create_dialog, xg_get_font_name)
 +      (make_widget_for_menu_item, make_menu_item, create_menus)
 +      (xg_make_tool_item):
 +      * font.c (parse_matrix, font_parse_name):
 +      * floatfns.c (rounding_driver, float_error_fn_name):
 +      * filelock.c (get_boot_time_1, lock_file_1):
 +      * fileio.c (barf_or_query_if_file_exists, check_writable):
 +      * editfns.c (get_system_name, get_operating_system_release)
 +      (Fencode_time, Fset_time_zone_rule):
 +      * dispextern.h (string_cost, per_line_cost, get_named_tty, init_tty):
 +      * buffer.c (defvar_per_buffer): Use const.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * charset.c: Include <stdlib.h>.
 +      (struct charset_sort_data): New struct.
 +      (charset_compare): New function.
 +      (Fsort_charsets): New function.
 +      (syms_of_charset): Declare Fsort_charsets as a Lisp function.
 +
 +      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 +      number in CTEXT extended segment.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
 +      * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 +      (Fhash_table_size): Fix typos in docstrings.
 +      (Fmake_hash_table): Doc fix.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 +      Doc fix (bug#5625).
 +
 +2010-08-08  Ken Brown  <kbrown@cornell.edu>
 +
 +      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 +      the MSDOS definition.
 +
 +2010-08-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Use const char* instead of char*.
 +      * xterm.c (x_create_toolkit_scroll_bar):
 +      * xfont.c (xfont_list_pattern):
 +      * xfns.c (x_default_scroll_bar_color_parameter)
 +      (xic_create_fontsetname, x_default_font_parameter)
 +      (x_screen_planes):
 +      * xdisp.c (c_string_pos, number_of_chars, reseat_to_string)
 +      (store_mode_line_string, decode_mode_spec, display_string):
 +      * menu.c (digest_single_submenu):
 +      * keymap.h (initial_define_key, initial_define_lispy_key):
 +      * keymap.c (initial_define_key, initial_define_lispy_key):
 +      * image.c (image_error, image_keyword):
 +      * gtkutil.h (xg_create_widget, xg_create_scroll_bar):
 +      * gtkutil.c (xg_create_widget, xg_create_scroll_bar):
 +      * ftfont.c (struct fc_charset_table, ftfont_spec_pattern)
 +      (ftfont_list, ftfont_match):
 +      * frame.c (frame_parm_table):
 +      * font.h (font_intern_prop, font_parse_xlfd, font_parse_fcname)
 +      (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
 +      (font_add_log, font_deferred_log):
 +      * font.c (font_intern_prop, font_parse_xlfd, font_parse_fcname)
 +      (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
 +      (font_add_log, font_deferred_log):
 +      * emacs.c (argmatch):
 +      * dispextern.h (struct it):
 +      * coding.c (ENCODE_DESIGNATION):
 +      * charset.c (define_charset_internal): Use const.
 +
 +      * s/freebsd.h (DECLARE_GETPWUID_WITH_UID_T): Remove, unused.
 +
 +      * xrdb.c: Remove include guard.
 +      Remove DECLARE_GETPWUID_WITH_UID_T conditional it had no effect.
 +      Remove #if 0 code.  Replace malloc->xmalloc, free->xfree,
 +      realloc->xrealloc instead of using #defines.
 +
 +2010-08-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmds.c (Fforward_line, Fbeginning_of_line, Fend_of_line):
 +      * editfns.c (Fline_beginning_position, Fline_end_position):
 +      State in the doc strings that start and end of line are in the
 +      logical order.
 +
 +      * xdisp.c (display_line): Move the handling of overlay arrow after
 +      the call to find_row_edges.  (Bug#6699)
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1):
 +      * insdel.c (prepare_to_modify_buffer): Don't call validate_region.
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Save active region text to
 +      Vsaved_region_selection.
 +
 +      * xselect.c (QPRIMARY): Move to keyboard.c.
 +
 +      * keyboard.c (Vselect_active_regions): Move from simple.el.
 +      (Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New vars.
 +      (command_loop_1): Set window selection prior to deactivating the mark.
 +
 +2010-08-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (lisp_malloc):
 +      * buffer.c (set_buffer_internal, set_buffer_internal_1):
 +      * charset.h (emacs_mule_charset):
 +      * dispextern.h (inhibit_free_realized_faces, redraw_frame)
 +      (redraw_garbaged_frames, scroll_cost, update_frame, scrolling)
 +      (bitch_at_user):
 +      * lisp.h (Fcheck_coding_system, Fget_text_property)
 +      (Qfunction, Qcompletion_ignore_case, QCwidth, QCsize):
 +      Remove duplicate declarations.
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * process.c: Simplify include logic.
 +
 +      * keyboard.h (quit_char): Add declaration.
 +      * process.h (QCport, QCspeed, QCprocess, QCbytesize, QCstopbits)
 +      (QCparity, Qodd, Qeven, QCflowcontrol, Qhw, Qsw, QCsummary):
 +      Add declarations.
 +      * sysdep.c:
 +      * w32.c: Remove the above declarations.
 +
 +      Remove extern declarations in .c files, .h files have them.
 +      * xterm.c:
 +      * xdisp.c:
 +      * msdos.c:
 +      * image.c:
 +      * gtkutil.c:
 +      * fileio.c:
 +      * eval.c: Remove declarations.
 +
 +      * frame.c (frame_params): Make const.
 +
 +      * lisp.h (fatal_error_signal, emacs_root_dir): Add declaration.
 +
 +      * emacs.c (emacs_copyright, emacs_version): Make static.
 +      (Vinitial_window_system, Vauto_save_list_file_name)
 +      (Vinhibit_redisplay): Remove declarations.
 +      (main): Remove HAVE_SHM code, unused.  Remove _I386 conditional
 +      for AIX.
 +
 +      Use const for some arrays and functions.
 +      * xterm.h (xg_set_icon_from_xpm_data):
 +      * xfns.c (xg_set_icon_from_xpm_data):
 +      * term.c (fkeys):
 +      * keyboard.c (lispy_accent_keys, lispy_function_keys)
 +      (lispy_multimedia_keys, lispy_kana_keys, iso_lispy_function_keys)
 +      (lispy_drag_n_drop_names, scroll_bar_parts, modify_event_symbol)
 +      (frame.c frame_parms):
 +      * emacs-icon.h (gnu_xpm_bits):
 +      * callint.c (callint_argfuns): Use const.
 +
 +2010-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * sysdep.c: Move include term.h last of includes (Bug#6812).
 +
 +2010-08-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (realloc_glyph_pool): Zero out newly allocated glyphs.
 +
 +      * msdos.c (IT_display_cursor): Log cursor position on termscript.
 +
 +      * .gdbinit (pgx): Display the avoid_cursor_p flag.
 +
 +2010-08-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/xdisp.$(O)): Update dependencies.
 +
 +2010-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (x_get_focus_frame): Declare.
 +
 +      * keyboard.h (poll_for_input_1): Unconditionally declare.
 +
 +      * nsterm.h (x_set_menu_bar_lines): Declare.
 +
 +      * window.c: Don't include menu.h, it depends on lots of other .h-files.
 +
 +      * xfaces.c (x_create_gc, x_free_gc): Convert to ANSI C prototypes.
 +
 +      * window.c: Include menu.h.
 +
 +      * unexmacosx.c (print_region_list, print_regions)
 +      (build_region_list, find_emacs_zone_regions)
 +      (unexec_regions_merge, read_load_commands, dump_it)
 +      (unexec_init_emacs_zone): Convert to ANSI C prototypes.
 +
 +      * term.c: Check HAVE_SYS_IOCTL_H.
 +
 +      * sysdep.c: Check HAVE_TERM_H.
 +
 +      * process.c: Check HAVE_UTIL_H.  Include nsterm.h if HAVE_NS.
 +
 +      * nsterm.m (ns_init_paths, ns_alloc_autorelease_pool)
 +      (ns_ring_bell, ns_defined_color, hide_hourglass)
 +      (x_display_pixel_height, x_display_pixel_width, syms_of_nsterm):
 +      Convert to ANSI C prototypes.
 +      (x_set_window_size, ns_draw_fringe_bitmap, judge): Move declarations
 +      before code.
 +
 +      * nsterm.h : Include sysselect.h.
 +      (x_sync, x_get_focus_frame, x_set_mouse_position)
 +      (x_set_mouse_pixel_position, x_make_frame_visible)
 +      (x_make_frame_invisible, x_iconify_frame, x_char_width, x_char_height)
 +      (x_pixel_width, x_pixel_height, x_set_frame_alpha, x_set_tool_bar_lines)
 +      (x_activate_menubar, free_frame_menubar, ns_init_paths, ns_select)
 +      (syms_of_nsterm, syms_of_nsfns, syms_of_nsmenu, syms_of_nsselect):
 +      Declare.
 +
 +      * nsmenu.m (popup_activated, name_is_separator)
 +      (syms_of_nsmenu): Convert to ANSI C prototypes.
 +      (runMenuAt): Prototypes and move declarations before code.
 +
 +      * nsimage.m (ns_load_image): Move NSTRACE after declarations.
 +
 +      * nsfont.m (ns_fallback_entity, syms_of_nsfont): Convert to ANSI C
 +      prototypes.
 +
 +      * nsfns.m (have_menus_p, ns_display_info_for_name)
 +      (x_set_cursor_type, ns_appkit_version_str)
 +      (ns_appkit_version_int, ns_do_applescript)
 +      (x_set_scroll_bar_default_width, x_sync, compute_tip_xy)
 +      (syms_of_nsfns): Convert to ANSI C prototypes.
 +
 +      * menu.h (x_set_menu_bar_line): Declare.
 +      (free_menubar_widget_value_tree et.al): Add HAVE_NS for these functions.
 +
 +      * lisp.h (fmod_float): Declare.
 +
 +      * image.c (xpm_scan, xpm_make_color_table_v)
 +      (xpm_put_color_table_v, xpm_get_color_table_v)
 +      (xpm_make_color_table_h, xpm_put_color_table_h)
 +      (xpm_get_color_table_h, xpm_str_to_color_key, xpm_load_image)
 +      (xpm_load): Convert to ANSI C prototypes.
 +
 +      * emacs.c: Include nsterm.h if HAVE_NS.
 +
 +      * bidi.c (bidi_dump_cached_states): Fix fprintf warning.
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * process.c: Remove HAVE_SOCKETS #ifdefs inside #ifdef
 +      subprocesses, only MSDOS does not define HAVE_SOCKETS.
 +      (socket_options): Use const char* for name.
 +
 +2010-08-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix changes in 2010-08-05T23:15:24Z!dann@ics.uci.edu..2010-08-05T23:34:12Z!dann@ics.uci.edu for Windows build.
 +
 +      * xmenu.c [USE_X_TOOLKIT || USE_GTK]:
 +      Don't declare xmalloc_widget_value and digest_single_submenu.
 +
 +      * w32font.c (Qlatin): Remove declaration.
 +
 +      * menu.h (xmalloc_widget_value, digest_single_submenu): Declare.
 +
 +      * dired.c (compile_pattern): Restore declaration.
 +
 +2010-08-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove extern declarations in .c files, .h files have them.
 +      * data.c:
 +      * dired.c:
 +      * editfns.c:
 +      * filelock.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * ftfont.c:
 +      * gtkutil.c:
 +      * indent.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * menu.c:
 +      * print.c:
 +      * search.c:
 +      * sound.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xmenu.c:
 +      * xterm.c: Remove declarations.
 +
 +      Cleanup syssignal.h.
 +      * syssignal.h (sighold, sigrelse, RETSIGTYPE): Remove, unused.
 +      (main_thread): Move down to remove #ifdef.
 +      (SIGMASKTYPE, SIGEMPTYMASK, SIGFULLMASK, sigmask, sigunblock):
 +      Remove conditional definition following unconditional ones.
 +
 +      * lisp.h: Remove HAVE_SHM code, unused.
 +      (QCmap, QCrehash_size, QCrehash_threshold, QCsize, QCtest)
 +      (QCweakness, Qabove_handle, Qbackquote, Qbar, Qbelow_handle)
 +      (Qborder, Qbottom, Qbox, Qcircular_list, Qcomma, Qcomma_at)
 +      (Qcomma_dot, Qcursor, Qdefault, Qdown, Qend_scroll, Qeq, Qeql)
 +      (Qequal, Qfile_exists_p, Qfont_param, Qfringe, Qfunction)
 +      (Qfunction_documentation, Qhandle, Qhbar, Qheader_line, Qhollow)
 +      (Qidentity, Qleft_margin, Qmenu, Qmenu_bar_update_hook)
 +      (Qmode_line_inactive, Qmouse, Qoverriding_local_map)
 +      (Qoverriding_terminal_local_map, Qratio, Qregion, Qright_margin)
 +      (Qscroll_bar, Qtool_bar, Qtop, Qup, Qvertical_border, Qwhen)
 +      (Qwindow_scroll_functions, Vafter_load_alist)
 +      (Vauto_save_list_file_name, Vface_alternative_font_family_alist)
 +      (Vface_alternative_font_registry_alist, Vface_font_rescale_alist)
 +      (Vface_ignored_fonts, Vinhibit_redisplay, Vminibuffer_list)
 +      (Vprint_length, Vprint_level, Vscalable_fonts_allowed)
 +      (Vshell_file_name, Vsystem_name, Vwindow_scroll_functions)
 +      (Vwindow_system_version, Vx_no_window_manager, initial_argc)
 +      (initial_argv, last_nonmenu_event, load_in_progress)
 +      (noninteractive_need_newline, scroll_margin): Add declarations.
 +
 +      * keyboard.h (xmalloc_widget_value, digest_single_submenu):
 +      Remove declarations, menu.h has them.
 +      (QCbutton, QCtoggle, QCradio, QClabel, extra_keyboard_modifiers)
 +      (Vinput_method_function, Qinput_method_function)
 +      (Qevent_symbol_element_mask, last_event_timestamp):
 +      * dispextern.h (Voverflow_newline_into_fringe):
 +      * font.h (QCantialias, Qp, syms_of_ftfont, syms_of_xfns)
 +      (syms_of_ftxfont, syms_of_xftfont, syms_of_bdffont)
 +      (syms_of_w32font, syms_of_nsfont):
 +      * fontset.h (find_font_encoding, Qlatin):
 +      * frame.h (Qtooltip, Qrun_hook_with_args, Vmenu_bar_mode)
 +      (Vtool_bar_mode, set_frame_menubar):
 +      * ftfont.h (ftfont_font_format, ftfont_get_fc_charset):
 +      * xterm.h (Qx_gtk_map_stock):
 +      * keymap.h (meta_prefix_char): Add declarations.
 +
 +      * term.c: Remove dead code.
 +
 +      Fix emacs -Q -f server-start & emacsclient -t on GNU/Linux.
 +      * term.c (dissociate_if_controlling_tty): Use USG5 instead of
 +      USG.  This is equivalent to defined (USG) && !defined (BSD_PGRPS),
 +      which is what was there before BSD_PGRPS was removed.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (unexcoff.o): Rename unexec.[co] => unexcoff.[co].
 +
 +      * unexcoff.c: Renamed from unexec.c.
 +
 +2010-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * sysdep.c (child_setup_tty): Comment-out left-over non-ICANON code.
 +
 +2010-08-03  Johan Bockgård  <bojohan@gnu.org>
 +
 +      * data.c (Flocal_variable_p): Handle variable aliases correctly.
 +      (Bug#6744)
 +
 +2010-08-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_create_toolkit_scroll_bar): Only set XtNbeNiceToColormap
 +      to TRUE if depth of screen is < 16.
 +
 +      * gtkutil.c (hierarchy_ch_cb, qttip_cb): Do not define unless
 +      USE_GTK_TOOLTIP.
 +      (xg_prepare_tooltip): Return 0 unless USE_GTK_TOOLTIP.
 +      (xg_show_tooltip, xg_hide_tooltip): Do nothing unless USE_GTK_TOOLTIP.
 +      (xg_create_frame_widgets): Surround tooltip-related code with ifdef
 +      USE_GTK_TOOLTIP.
 +      (xg_free_frame_widgets): Don't delete ttip_* unless USE_GTK_TOOLTIP.
 +
 +      * xterm.h (USE_GTK_TOOLTIP): New define.
 +      (struct x_output): Put ttip_* inside ifdef USE_GTK_TOOLTIP.
 +
 +      * sysdep.c (child_setup_tty): Enable ICANON in lflags and set VEOF
 +      to Control-D (Bug#6771).
 +
 +2010-08-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * editfns.c (Fregion_beginning, Fregion_end): Doc fixes (bug#6493).
 +      Wording by Drew Adams <drew.adams@oracle.com>.
 +
 +2010-08-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (struct x_output): Add ttip_widget, ttip_window and
 +      ttip_lbl.
 +
 +      * xterm.c (x_clear_frame): Check FRAME_GTK_WIDGET (f) before
 +      calling gtk_widget_queue_draw.
 +      (x_free_frame_resources): Call xg_free_frame_widgets.
 +
 +      * xfns.c (x_gtk_use_system_tooltips): New variable.
 +      (Fx_show_tip): If USE_GTK and x_gtk_use_system_tooltips, call
 +      new gtkutil tooltip functions to show the tooltip.
 +      (Fx_hide_tip): Call xg_hide_tooltip.
 +      (syms_of_xfns): Defvar x-gtk-use-system-tooltips.
 +
 +      * gtkutil.h (xg_free_frame_widgets, xg_prepare_tooltip)
 +      (xg_show_tooltip, xg_hide_tooltip): Declare.
 +
 +      * gtkutil.c (hierarchy_ch_cb, qttip_cb, xg_prepare_tooltip)
 +      (xg_show_tooltip, xg_hide_tooltip, xg_free_frame_widgets):
 +      New functions.
 +      (xg_create_frame_widgets): Set ttip_* to 0.  Set a dummy tooltip
 +      text so qttip_cb is called.  Connect query-tooltip to qttip_cb.
 +      Remove code that is commented out.
 +
 +2010-08-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymap.c (Fdefine_key, Flookup_key): Say what event is invalid.
 +
 +2010-07-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xselect.c (x_own_selection): Use list4.
 +
 +2010-07-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * buffer.c (Qwindow): Do not define, already defined in data.c.
 +      (syms_of_buffer): Do not intern and staticpro Qwindow.  (Bug#6760)
 +
 +2010-07-29  Chad Brown  <yandros@mit.edu>
 +
 +      Replace tests for SYSV_SYSTEM_DIR with HAVE_DIRENT_H, set via autoconf.
 +      * dired.c, sysdep.c: Test HAVE_DIRENT_H instead of SYSV_SYSTEM_DIR.
 +      * config.in: Undef HAVE_DIRENT_H.
 +      * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h,
 +      * s/msdos.h, s/usg5-4.h: Don't define SYSV_SYSTEM_DIR.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Rename s/usg5-4.h -> s/usg5-4-common.h.
 +      * s/usg5-4.h: Rename file to ...
 +      * s/usg5-4-common.h: ... this for consistency with what we do for BSD.
 +      * s/unixware.h:
 +      * s/sol2-6.h:
 +      * s/irix6-5.h: Update includes accordingly.
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_set_tool_bar_position): Remove debug fprintf.
 +
 +      * xterm.h (struct x_output): Add toolbar_top_height,
 +      toolbar_bottom_height, toolbar_left_width, toolbar_right_width.
 +      Remove toolbar_height.
 +      If USE_GTK: Add hbox_widget and toolbar_in_hbox.
 +      (FRAME_TOOLBAR_TOP_HEIGHT, FRAME_TOOLBAR_BOTTOM_HEIGHT)
 +      (FRAME_TOOLBAR_LEFT_WIDTH, FRAME_TOOLBAR_RIGHT_WIDTH): New macros.
 +      (FRAME_TOOLBAR_HEIGHT): Is now TOP_HEIGHT + BOTTOM_HEIGHT.
 +
 +      * xterm.c (x_set_window_size_1): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
 +
 +      * xfns.c (x_set_tool_bar_position): New function.
 +      (xic_set_statusarea): Use FRAME_TOOLBAR_TOP_HEIGHT.
 +      (x_frame_parm_handlers): Add x_set_tool_bar_position.
 +      (syms_of_xfns): If USE_GTK, provide move-toolbar.
 +
 +      * window.c (calc_absolute_offset): Check for FRAME_TOOLBAR_TOP_HEIGHT
 +      and FRAME_TOOLBAR_LEFT_WIDTH.
 +
 +      * gtkutil.h (xg_change_toolbar_position): Declare.
 +
 +      * gtkutil.c (FRAME_TOTAL_PIXEL_WIDTH): New macro.
 +      (xg_frame_set_char_size): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
 +      (xg_height_or_width_changed): Use FRAME_TOTAL_PIXEL_WIDTH.
 +      (xg_create_frame_widgets): Create a hobox for placing widgets
 +      vertically.  Use gtk_box_pack_start.
 +      (xg_height_or_width_changed): Rename from xg_height_changed.
 +      (x_wm_set_size_hint): Add FRAME_TOOLBAR_WIDTH to base_width.
 +      (xg_update_frame_menubar, free_frame_menubar): Change to
 +      xg_height_or_width_changed.
 +      (xg_tool_bar_detach_callback): Update left/right/top/bottom tool bar
 +      size correctly.  Remove hardcoded 4, instead use handlebox size -
 +      toolbar size.
 +      (xg_tool_bar_attach_callback): Update left/right/top/bottom tool bar
 +      size correctly.  Use handlebox size + toolbar size as additional size.
 +      (xg_pack_tool_bar): POS is a new parameter.
 +      Set orientation of tool bar based on pos.
 +      Only make handlebox_widget if NULL.
 +      Check if tool bar goes to vbox or hbox depending on pos.
 +      (xg_update_tool_bar_sizes): New function.
 +      (update_frame_tool_bar): Remove old_req, new_req.  Do not get tool bar
 +      height, call xg_update_tool_bar_sizes instead.
 +      (free_frame_tool_bar): Remove from hbox or vbox depending on
 +      toolbar_in_hbox,  Set all FRAME_TOOLBAR_*_(WIDTH|HEIGHT) to zero.
 +      (xg_change_toolbar_position): New function.
 +
 +      * frame.h (struct frame): Add tool_bar_position.
 +      (Qbottom): Declare.
 +
 +      * frame.c (Qtool_bar_position): New variable.
 +      (make_frame): Set tool_bar_position to Qtop.
 +      (frame_parms): Add tool-bar-position.
 +      (x_report_frame_params): Store tool_bar_position.
 +      (x_set_fringe_width): Reset wm size hint after fringe changes.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Make lisp_time_argument declaration work on all systems.
 +      * lisp.h (lisp_time_argument): Move declaration ...
 +      * systime.h (lisp_time_argument): ... here
 +      * editfns.c (lisp_time_argument): Remove declaration.  (Bug#6751)
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * vm-limit.c (POINTER): Add typedef for it.
 +      (start_of_data): Change return type from POINTER to char *.
 +
 +      * frame.h (Qtty_color_mode): Move declaration out of ifdef
 +      HAVE_WINDOW_SYSTEM.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c: Do not include sys/resource.h, mem-limits.h does it.
 +      Remove reference to __osf__, unused.
 +
 +      * mem-limits.h: Remove duplicated includes.
 +      (NULL): Remove definition, unused.
 +      (POINTER): Remove definition.
 +      (start_of_data): Use char* in prototype, as the function
 +      definition does.
 +
 +      Remove extern declarations from .c files, and them to .h files.
 +      * keyboard.h (Qhelp_echo, waiting_for_input)
 +      (input_available_clear_time, ignore_mouse_drag_p)
 +      (Vdouble_click_time, real_this_command, Vthis_original_command):
 +      * keymap.h (Qremap, Qmenu_item, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag):
 +      * lisp.h (Qinteractive_form, use_file_dialog)
 +      (Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount)
 +      (Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask)
 +      (QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 +      (Qrisky_local_variable, map_char_table_for_charset, Vprint_level)
 +      (Qfunction, debug_on_next_call, Qfield)
 +      (Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument)
 +      (Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string)
 +      (Qfile_directory_p, Qinsert_file_contents)
 +      (Qcompletion_ignore_case, Qcompletion_ignore_case)
 +      (Vcompletion_regexp_list, Vhistory_length, completion_ignore_case)
 +      (history_delete_duplicates, minibuffer_auto_raise, Qonly)
 +      (Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky)
 +      (Qminibuffer_prompt)
 +      (Vtemporary_file_directory,char_ins_del_vector, Qface):
 +      * xterm.h (gray_bitmap_width, gray_bitmap_height)
 +      (gray_bitmap_bits, xic_create_fontsetname):
 +      * coding.h (Vtranslation_table_for_input): Add extern declarations.
 +
 +      * xsmfns.c (Vuser_login_name):
 +      * xrdb.c (Vdouble_click_time):
 +      * xfaces.c (xic_create_fontsetname):
 +      * w32select.c (waiting_for_input):
 +      * print.c (minibuffer_auto_raise):
 +      * msdos.c (Qhelp_echo):
 +      * macros.c (real_this_command):
 +      * keymap.c (Voverriding_local_map):
 +      * xterm.c (poll_for_input_1, gray_bitmap_width)
 +      (gray_bitmap_height, gray_bitmap_bits;
 +      * xmenu.c ( Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box)
 +      (use_file_dialog, Xt_app_con):
 +      * xdisp.c (minibuffer_auto_raise, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible)
 +      (Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines)
 +      (Qtool_bar_lines, ignore_mouse_drag_p):
 +      * minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky)
 +      (Qrear_nonsticky, nconc2):
 +      * keyboard.c (current_global_map, minibuf_level, Qmenu_item)
 +      (Vhistory_length, Vtranslation_table_for_input, Qcomposition)
 +      (Qdisplay, Qafter_string, Qbefore_string, Qundefined):
 +      * fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name)
 +      (minibuf_level, minibuffer_auto_raise, lisp_time_argument):
 +      * eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction)
 +      (gc_in_progress):
 +      * doc.c (Voverriding_local_map, Qremap):
 +      * dired.c (completion_ignore_case, Qcompletion_ignore_case)
 +      (Vcompletion_regexp_list):
 +      * coding.c (Qmac, Qinsert_file_contents, Qwrite_region)
 +      (Qcompletion_ignore_case):
 +      * callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly)
 +      (Vhistory_length, Vthis_original_command, real_this_command)
 +      (Qface, Qminibuffer_prompt, history_delete_duplicates):
 +      * image.c (Qrisky_local_variable):
 +      * fontset.c (QCname):
 +      * fns.c (minibuffer_auto_raise, QCname):
 +      * dispnew.c (char_ins_del_cost):
 +      * composite.c (font_fill_lglyph_metrics):
 +      * cmds.c (Qface, Vtranslation_table_for_input):
 +      * charset.c (map_char_table_for_charset, Qfile_name_handler_alist):
 +      * ccl.c (charset_unicode):
 +      * callproc.c (Vtemporary_file_directory):
 +      * buffer.c (emacs_strerror): Remove extern declarations.
 +
 +      * data.c (Qwindow): Make non-static, used from other files too.
 +      * frame.c (validate_x_resource_name): Remove shadow definition for i.
 +
 +      * unexec.c (make_hdr): Remove references to NO_REMAP, COFF,
 +      SEGMENT_MASK, SECTION_ALIGNMENT, ADJUST_EXEC_HEADER.
 +      * s/usg5-4.h (COFF):
 +      * s/template.h:
 +      * s/msdos.h (COFF, NO_REMAP):
 +      * s/ms-w32.h (NO_REMAP):
 +      * s/hpux10-20.h (NO_REMAP):
 +      * m/sparc.h (SEGMENT_MASK):
 +      * m/m68k.h (NO_REMAP):
 +      * m/intel386.h (SEGMENT_MASK):
 +      * m/arm.h (NO_REMAP):
 +      * m/alpha.h (COFF):
 +      * m/template.h: Remove references to unused defines.
 +
 +2010-07-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ftool_bar_get_system_style): Also check for
 +      Qtext_image_horiz.
 +
 +      * xdisp.c (Qtext_image_horiz): Define.
 +      (syms_of_xdisp): Initialize Qtext_image_horiz.  Add text-image-horiz
 +      to documentation of tool-bar-style.
 +
 +      * lisp.h (Qtext_image_horiz): Declare.
 +
 +      * gtkutil.c (xg_make_tool_item, xg_show_toolbar_item): Handle tool bar
 +      style text_image_horiz.
 +
 +2010-07-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs.c (Fkill_emacs): Remove return statement.
 +
 +      * term.c (Qspace, QCalign_to, QCwidth): Remove declarations.
 +      (encode_terminal_code, produce_composite_glyph): Remove unused variables.
 +      (set_tty_color_mode, term_mouse_highlight, term_get_fkeys):
 +      Remove local extern declarations.
 +
 +      * xmenu.c: Do not included lwlib.h, not needed.
 +
 +      * m/iris4d.h (XUINT, XSET): Remove, not needed.
 +
 +      * process.c: Move definitions earlier to minimize #ifdefs.
 +
 +      * xterm.h (x_get_customization_string, x_load_resources)
 +      (x_get_resource, x_text_icon, x_text_icon, x_check_errors)
 +      (x_check_errors, x_property_data_to_lisp, defined_color)
 +      (xic_set_xfontset, x_defined_color): Use const.
 +
 +      * xterm.c (xlwmenu_window_p, xlwmenu_redisplay): Remove declarations.
 +      (x_text_icon, x_check_errors, x_connection_closed): Use const.
 +
 +      * xselect.c (selection_data_to_lisp_data)
 +      (x_property_data_to_lisp):
 +      * xrdb.c (x_get_string_resource, file_p)
 +      (x_get_customization_string, magic_file_p, search_magic_path)
 +      (get_system_app, get_user_app, x_load_resources, x_get_resource)
 +      (x_get_string_resource): Use const.
 +
 +      * xfns.c: Include xlwmenu.h when USE_LUCID.
 +      (x_defined_color, xic_set_xfontset): Use const.
 +      (Fx_hide_tip): Remove local extern declaration.
 +
 +      * xfaces.c (Qmouse_face): Remove declaration.
 +      (face_color_gray_p, tty_defined_color, defined_color)
 +      (face_color_gray_p, face_color_supported_p): Add const.
 +
 +      * xdisp.c (do_mouse_tracking): Remove declaration.
 +      (add_to_log): Use const.
 +
 +      * minibuf.c (Qmouse_face): Remove declaration.
 +
 +      * msdos.c (IT_note_mouse_highlight): Remove local extern declaration.
 +
 +      * keyboard.h (do_mouse_tracking): Add declaration.
 +
 +      * image.c (QCwidth, QCheight, QCforeground, QCbackground, QCfile)
 +      (QCdata, QCtype, Qcenter): Remove declarations.
 +
 +      * frame.c (x_get_resource_string, x_get_string_resource)
 +      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 +      (x_default_parameter): Use const.
 +
 +      * font.c (Qnormal, QCtype, QCfamily, QCweight, QCslant, QCwidth)
 +      (QCheight, QCsize, QCname): Remove declarations.
 +
 +      * emacs.c (main): Remove local extern declaration.
 +
 +      * editfns.c (region_limit, syms_of_editfns): Remove local extern
 +      declarations.
 +
 +      * dispnew.c: Remove duplicate #include <unistd.h>.
 +      (update_window, update_frame_1, init_display): Remove local extern
 +      declarations.
 +
 +      * dispextern.h (add_to_log): Remove declaration.
 +      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 +      (x_frame_get_and_record_arg, x_default_parameter): Add const.
 +
 +      * dired.c (scmp): Add const.
 +      (directory_files_internal): Remove local extern declaration.
 +
 +      * data.c (Finteractive_form): Use const.
 +
 +      * composite.c (syms_of_composite): Remove local extern declarations.
 +
 +      * charset.c (add_to_log): Remove declaration.
 +
 +      * character.c (strwidth, parse_str_to_multibyte): Add const.
 +
 +      * character.h (strwidth, parse_str_to_multibyte): Likewise.
 +
 +      * buffer.c (Fset_buffer_multibyte): Remove local extern declaration.
 +
 +      * lisp.h (Fkill_emacs): Mark as NO_RETURN.
 +      (Lisp_Subr): Make doc and intspec constant.
 +      (QCsize, Qspace, Qcenter, QCalign_to, QCdata, QCfile, QCtype)
 +      (Qlocal, Qapply, Qnormal, QCfamily, QCweight, QCslant, QCwidth)
 +      (QCheight, QCsize, QCname, QCwidth, QCforeground)
 +      (QCbackground, add_to_log, stack_base, Vmark_even_if_inactive)
 +      (display_arg): Add declarations.
 +
 +2010-07-27  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 +
 +      * window.c (Fwindow_height): Doc fix (bug#6518).
 +
 +2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 +
 +2010-07-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * keyboard.c (Ftop_level, Fexit_recursive_edit)
 +      (Fabort_recursive_edit): Remove return statements in NO_RETURN
 +      functions.
 +
 +      * frame.h (Qtty_color_mode): Add declaration.
 +
 +      * lisp.h (Ftop_level, Fexit_recursive_edit)
 +      (Fabort_recursive_edit): Mark as NO_RETURN.
 +
 +2010-07-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (Ffont_shape_gstring): Terminate GSTRING by nil if the
 +      number of glyphs gets smaller than the original length.  (Bug#6621)
 +
 +2010-07-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * lread.c (unreadpure, mapatoms_1): Make static.
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * terminfo.c (tparam): Fix prototype of tparm.
 +
 +2010-07-25  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * emacs.c (main) [PROFILING]: Use __executable_start if defined to
 +      find start of text segment.
 +      * dispnew.c (safe_bcopy): Don't define if HAVE___EXECUTABLE_START
 +      is defined.
 +
 +      * callproc.c (set_initial_environment): Avoid unbalanced braces.
 +
 +2010-07-25  Ken Brown  <kbrown@cornell.edu>
 +
 +      * vm-limit.c (check_memory_limits): Fix previous change;
 +      accidentally reverted an earlier change.
 +
 +2010-07-25  Ken Brown  <kbrown@cornell.edu>
 +
 +      * mem-limits.h (BSD4_2) [cygwin]: Don't define here; instead...
 +      * vm-limit.c: ...add 'defined (CYGWIN)' here (Bug#6715).
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
 +      * dired.c (opendir, readdir): Fix prototypes.
 +      * editfns.c (w32_get_internal_run_time): Fix prototypes.
 +      * keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
 +      * ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
 +      (telldir): Remove declaration.
 +      * ralloc.c (real_morecore, __morecore): Fix prototypes.
 +      * sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
 +      * syssignal.h (strsignal): Fix prototype.
 +      * term.c (tparam): Fix prototype.
 +      (term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
 +      (term_get_fkeys): Set inside "#ifndef DOS_NT".
 +      * vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
 +      and __morecore.
 +      * w32gui.h (XParseGeometry): Fix prototype.
 +      * w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
 +      * w32term.c (my_set_focus): Declare inside #if 0.
 +      * w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
 +      (w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
 +      (drain_message_queue, get_next_msg, post_msg, parse_button)
 +      (ClipboardSequence_Proc): Fix prototypes.
 +      (wait_for_sync): Remove declaration.
 +
 +2010-07-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (w32_to_x_color): Remove, unused.
 +
 +2010-07-24  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lisp.h: Remove leftover P_.
 +
 +2010-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * ecrt0.c, unexalpha.c: Remove files, unused.
 +
 +2010-07-24  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * cmds.c (internal_self_insert): Make static.
 +      * lisp.h (internal_self_insert): Remove declaration.
 +
 +2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (free_float):
 +      * font.c [ENABLE_CHECKING] (font_match_xlfd, font_check_xlfd_parse):
 +      * frame.c (delete_frame_handler):
 +      * ralloc.c (reorder_bloc):
 +      * w32menu.c (menubar_id_to_frame, add_left_right_boundary):
 +      Remove unused static functions.
 +
 +      * menu.c (cleanup_popup_menu): Set inside "#ifdef HAVE_NS";
 +      it is called only from NS code.
 +
 +      * w32term.c (my_set_focus): #ifdef away; it is called only from
 +      "#ifdef 0" code.
 +
 +      * w32fns.c (x_edge_detection):
 +      * xfaces.c (may_use_scalable_font_p):
 +      Remove obsolete static declarations.
 +
 +2010-07-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (emacs_blocked_free, emacs_blocked_malloc)
 +      (emacs_blocked_realloc, uninterrupt_malloc):
 +      * fringe.c (w32_reset_fringes):
 +      * image.c (convert_mono_to_color_image, lookup_rgb_color)
 +      (init_color_table, XPutPixel, jpeg_resync_to_restart_wrapper):
 +      * sound.c (be2hs, do_play_sound):
 +      * vm-limit.c (get_lim_data, ret_lim_data):
 +      * w32term.c (x_free_frame_resources):
 +      * xfaces.c (x_create_gc, x_free_gc):
 +      Convert definitions to standard C.
 +
 +2010-07-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Feval, Ffuncall): Use the new names.
 +
 +      * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED.
 +      (DEFUN): Add braces around the union initialisation and use ## to
 +      specify the right union alternative and avoid a cast.
 +
 +2010-07-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/keyboard.$(O)): Update dependencies.
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (make_initial_frame): Use set_menu_bar_lines (Bug#6660).
 +
 +2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_event_is_for_menubar): Also check that event window
 +      is related to the menu bar (Bug#6499).
 +      (xg_frame_resized): GTK_IS_MAPPED => gtk_widget_get_mapped, for Gtk 3.0.
 +
 +2010-07-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 +
 +      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 +
 +      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 +      i.e. don't put back ButtonRelease (Bug#6608).
 +
 +      * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
 +      instead of Window.  Call xg_event_is_for_menubar when
 +      USE_GTK (Bug#6499).
 +
 +      * gtkutil.h (xg_event_is_for_menubar): Declare.
 +
 +      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 +
 +2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (x_set_foreground_color): Fix setting the cursor color
 +      when it's the same as the old foreground.  (Bug#6609)
 +
 +2010-07-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (free_frame_menubar): Only call x_set_window_size if
 +      widget is non-null (Bug#6645).
 +
 +2010-07-15  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.c (x_fully_uncatch_errors, x_trace_wire, x_check_font):
 +      Convert old-style definition.
 +
 +      * xmenu.c (create_and_show_popup_menu, xmenu_show): Fix type of
 +      timestamp argument.
 +
 +2010-07-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.c (update_window_fringes): Restore mistakenly reverted
 +      code from 2010-04-17T12:33:05Z!eliz@gnu.org merged in 2010-04-20T13:31:28Z!eliz@gnu.org.
 +
 +2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (xm_scroll_callback, x_process_timeouts): K&R => prototype.
 +      (SET_SAVED_KEY_EVENT): Remove (not used).
 +      (SET_SAVED_MENU_EVENT): Rename to SET_SAVED_BUTTON_EVENT and
 +      remove size parameter.
 +      (handle_one_xevent): Check popup_activated () for menu for Xt also.
 +      Remove #ifdef USE_GTK around finish = X_EVENT_DROP.
 +      Remove #ifdef USE_MOTIF code that did SET_SAVED_BUTTON_EVENT for
 +      ButtonRelease.
 +      (x_set_window_size_1): scroll_bar_actual_width is always
 +      SCROLL_BAR_COLS * COLUMN_WIDTH for the purpose of frame sizing.
 +
 +      * xdisp.c (pending_menu_activation): Remove extern declaration.
 +      (prepare_menu_bars): Remove setting of pending_menu_activation.
 +
 +      * xmenu.c (pending_menu_activation): Remove.
 +      (x_activate_menubar): Set popup_activated_flag for Xt also.
 +      Remove setting of pending_menu_activation.
 +      (set_frame_menubar): Remove check of pending_menu_activation.
 +      Declare menubar_size before code.  Correct spelling in comment.
 +
 +2010-07-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (font_open_entity): Cancel previous change.
 +      (Ffont_get): Don't check FONT_ENTITY_INDEX of a font-object.
 +
 +2010-07-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Remove subprocesses #ifdefs.
 +      * process.c <inhibit_sentinels>: Move to the common part.
 +      (Fwaiting_for_user_input_p): Move to the common part; return nil
 +      if async subprocesses aren't supported.
 +      * sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on
 +      MS-DOS.  Remove "#ifdef subprocesses".
 +      (sys_subshell, sys_select): Remove "#ifdef subprocesses".
 +      (gettimeofday): Remove "#ifdef subprocesses".
 +      (wait_without_blocking): Remove function.
 +      (flush_pending_output, child_setup_tty): Don't compile on MS-DOS.
 +      Remove "#ifdef subprocesses".
 +      (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not
 +      compiled on MS-DOS.
 +      * callproc.c (Fcall_process) [!MSDOS]: Don't call
 +      wait_for_termination on MS-DOS.
 +      * emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from
 +      initialization of inhibit_sentinels.
 +      * keyboard.c (record_asynch_buffer_change): Remove "#ifdef
 +      subprocesses" conditional.
 +      * callproc.c (Fcall_process) [!subprocesses]: Don't call
 +      wait_for_termination, since `buffer' cannot be an integer when
 +      async subprocesses are not supported
 +      * xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses'
 +      for ifdefing away the call to Fprocess_status.
 +
 +      * process.c (add_keyboard_wait_descriptor) [!subprocesses]: Ifdef
 +      away the entire body of the function.
 +
 +2010-07-13  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove subprocesses #ifdefs from term.c.
 +      * process.c (add_keyboard_wait_descriptor)
 +      (delete_keyboard_wait_descriptor): Move to common section, do
 +      nothing when subprocesses is not defined.
 +      * term.c (Fsuspend_tty, Fresume_tty, init_tty):
 +      Remove subprocesses #ifdefs.
 +
 +      Convert maybe_fatal to standard C.
 +      * lisp.h (verror): Declare.
 +      * eval.c (verror): New function containing the code from ...
 +      (error): ... this.  Call verror.
 +      * term.c (vfatal): New function containing the code from ...
 +      (fatal): ... this.  Call vfatal.
 +      (maybe_fatal): Convert to standard C, use variable number of
 +      arguments.  Declare as non-return.
 +      (init_tty): Fix maybe_fatal call.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_expose)
 +      (_scroll_bar_note_movement): Convert definitions to standard C.
 +      * xmenu.c (menu_help_callback, pop_down_menu, xmenu_show):
 +      * xfns.c (hack_wm_protocols, x_window, x_window): Likewise.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xterm.c (x_frame_of_widget, x_alloc_nearest_color_for_widget)
 +      (x_alloc_lighter_color_for_widget, cvt_string_to_pixel)
 +      (cvt_pixel_dtor, x_window_to_menu_bar, xt_action_hook)
 +      (xaw_jump_callback, xaw_scroll_callback)
 +      (x_create_toolkit_scroll_bar, x_set_toolkit_scroll_bar_thumb)
 +      (x_wm_set_size_hint, x_activate_timeout_atimer):
 +      Convert definitions to standard C.
 +      * xmenu.c (menubar_id_to_frame, popup_get_selection)
 +      (popup_activate_callback, popup_deactivate_callback)
 +      (menu_highlight_callback, menubar_selection_callback)
 +      (apply_systemfont_to_dialog, apply_systemfont_to_menu)
 +      (free_frame_menubar, popup_selection_callback, as)
 +      (create_and_show_popup_menu, dialog_selection_callback)
 +      (create_and_show_dialog):
 +      * xfns.c (hack_wm_protocols, x_window):
 +      * xfaces.c (x_update_menu_appearance):
 +      * widget.c (get_default_char_pixel_size, pixel_to_char_size)
 +      (char_to_pixel_size, round_size_to_char, get_wm_shell)
 +      (set_frame_size, update_wm_hints, setup_frame_gcs)
 +      (update_various_frame_slots, update_from_various_frame_slots)
 +      (EmacsFrameInitialize, EmacsFrameRealize, EmacsFrameResize)
 +      (EmacsFrameSetValues, EmacsFrameQueryGeometry)
 +      (EmacsFrameSetCharSize, widget_store_internal_border): Likewise.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * dbusbind.c (xd_initialize): Don't compare boolean with a constant.
 +
 +2010-07-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (setup_process_coding_systems): Move to the part
 +      shared by non-subprocesses systems, and make its body empty when
 +      subprocesses is not defined.
 +      (close_process_descs): Move to the part shared by non-subprocesses
 +      systems.
 +      (wait_reading_process_output) [!subprocesses]: Convert arg list to
 +      ANSI C.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * editfns.c (transpose_markers): Convert old-style definition.
 +      * emacs.c (abort, shut_down_emacs, fixup_locale)
 +      (synchronize_system_time_locale)
 +      (synchronize_system_messages_locale, syms_of_emacs): Likewise.
 +      * floatfns.c (extract_float, matherr, init_floatfns)
 +      (syms_of_floatfns): Likewise.
 +      * fns.c (make_hash_table): Likewise.
 +      * ftfont.c (ftfont_get_otf, ftfont_otf_features)
 +      (ftfont_otf_capability, ftfont_get_glyph_id, ftfont_get_metrics)
 +      (ftfont_drive_otf, ftfont_shape_by_flt, ftfont_shape)
 +      (ftfont_variation_glyphs): Likewise.
 +      * gtkutil.c (xg_create_widget, xg_modify_menubar_widgets): Likewise.
 +      * keymap.c (describe_map_tree, describe_map, describe_vector): Likewise.
 +      * lread.c (read_filtered_event): Likewise.
 +      * minibuf.c (read_minibuf_noninteractive, read_minibuf): Likewise.
 +      * process.c (wait_reading_process_output): Likewise.
 +      * scroll.c (do_line_insertion_deletion_costs): Likewise.
 +      * search.c (search_buffer, boyer_moore): Likewise.
 +      * syntax.c (scan_sexps_forward): Likewise.
 +      * xdisp.c (try_scrolling): Likewise.
 +      * xfaces.c (face_at_buffer_position, face_for_overlay_string)
 +      (face_at_string_position): Likewise.
 +      * xfns.c (x_default_scroll_bar_color_parameter): Likewise.
 +      * xselect.c (x_get_window_property, receive_incremental_selection)
 +      (x_get_window_property_as_lisp_data, lisp_data_to_selection_data):
 +      Likewise.
 +      * xterm.c (x_draw_relief_rect, x_draw_box_rect): Likewise.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * callproc.c (child_setup): Remove subprocesses conditional.
 +      Remove code dealing with SET_EMACS_PRIORITY, unused.
 +
 +      * buffer.c (Fset_buffer_multibyte): Remove subprocesses conditional.
 +      * process.c (close_process_descs): Use DOS_NT instead of WINDOWSNT.
 +
 +      * emacs.c (__do_global_ctors, __do_global_ctors_aux)
 +      (__do_global_dtors, __main): Use void in definition.
 +      (main): Remove code dealing with SET_EMACS_PRIORITY, unused.
 +      Remove SYMS_MACHINE code, unused.  Remove SYMS_SYSTEM, inline
 +      the only users from ...
 +      * s/ms-w32.h (SYMS_SYSTEM): ... here and ...
 +      * s/msdos.h (SYMS_SYSTEM): ... here.  Remove.
 +      (HAVE_VOLATILE): Remove, unused.
 +
 +      Convert more function definitions to standard C.
 +      * xdisp.c (window_box_edges, handle_single_display_spec)
 +      (display_string): Convert definition to standard C.
 +      * scroll.c (do_direct_scrolling, scrolling_1):
 +      * dispnew.c (allocate_matrices_for_frame_redisplay)
 +      (mirrored_line_dance):
 +      * coding.c (code_convert_string):
 +      * charset.c (map_charset_chars):
 +      * ccl.c (Fccl_program_p, Fccl_execute, Fccl_execute_on_string)
 +      (Fregister_ccl_program, Fregister_code_conversion_map):
 +      * keyboard.c (kbd_buffer_nr_stored): Likewise.
 +      (head_table): Make static and const.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS)
 +      (PROFILING_LDFLAGS): Set from substitution.
 +      (ALL_CFLAGS): Add C_WARNINGS_SWITCH and PROFILING_CFLAGS, put
 +      CFLAGS last.
 +
 +2010-07-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * Makefile.in (lisp): Change hebrew.el to hebrew.elc.
 +      (shortlisp): Likewise.
 +
 +      * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.
 +
 +      * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
 +      of FONT_ENTITY_INDEX.
 +      (Ffont_get): If KEY is :otf and the font-object doesn't have the
 +      property, get the property value dynamically.
 +      (Ffont_put): Accept font-entity and font-object too.
 +      (Ffont_get_glyhphs): Rename from Fget_font_glyphs.  Arguments and
 +      return value changed.
 +      (syms_of_font): Adjust for the above change.
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * blockinput.h: Remove obsolete comment.
 +
 +      * lisp.h: Include <stddef.h>.
 +      (OFFSETOF): Don't define.
 +      (VECSIZE): Use offsetof instead of OFFSETOF.
 +      (PSEUDOVECSIZE): Likewise.
 +      * process.c (conv_sockaddr_to_lisp): Likewise.
 +      * alloc.c: Don't include <stddef.h>.
 +      * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
 +
 +      * process.c: Remove obsolete comment.
 +
 +2010-07-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfaces.c (Vface_remapping_alist): Doc fix (Bug#6091).
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * callint.c (Fcall_interactively): Use strchr, strrchr instead of
 +      index, rindex.
 +      * doc.c (get_doc_string, Fsnarf_documentation): Likewise.
 +      * editfns.c (Fuser_full_name, Fformat): Likewise.
 +      * emacs.c (argmatch, sort_args, decode_env_path): Likewise.
 +      * fileio.c (Ffile_symlink_p): Likewise.
 +      * filelock.c (current_lock_owner): Likewise.
 +      * font.c (font_parse_name, font_parse_family_registry): Likewise.
 +      * fontset.c (fontset_pattern_regexp): Likewise.
 +      * lread.c (read1): Likewise.
 +      * sysdep.c (init_system_name): Likewise.
 +      * xfns.c (select_visual): Likewise.
 +      * s/hpux10-20.h (index, rindex): Don't define.
 +      * s/ms-w32.h (index): Likewise.
 +      * s/usg5-4.h: Likewise.
 +
 +      * callproc.c (relocate_fd): Use F_DUPFD if defined.
 +
 +      * alloc.c (pending_malloc_warning, malloc_warning): Add const.
 +      * callproc.c (relocate_fd, getenv_internal_1, getenv_internal)
 +      (egetenv): Likewise.
 +      * doprnt.c (doprnt): Likewise.
 +      * editfns.c (set_time_zone_rule, format2): Likewise.
 +      * emacs.c (decode_env_path): Likewise.
 +      * eval.c (signal_error, error): Likewise.
 +      * insdel.c (replace_range_2): Likewise.
 +      * keyboard.c (cmd_error_internal): Likewise.
 +      * lread.c (isfloat_string, make_symbol, dir_warning): Likewise.
 +      * print.c (write_string, write_string_1, print_error_message):
 +      Likewise.
 +      * vm-limit.c (warn_function, memory_warnings): Likewise.
 +      * xdisp.c (message1, message1_nolog, message_with_string)
 +      (vmessage, message, message_nolog): Likewise.
 +      * emacs.c: Remove duplicate declaration.
 +      * keyboard.h: Likewise.
 +      * lisp.h: Update prototypes.
 +
 +      * eval.c: Fix indentation problem.
 +
 +      * keyboard.c: Include "process.h"
 +
 +      * eval.c: Remove obsolete noinline declaration.
 +      * fns.c: Likewise.
 +
 +2010-07-11  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * doprnt.c (doprnt): Take a va_list argument instead of count and
 +      pointer.
 +      * eval.c (error): Change to a standard-C variadic function.
 +      * xdisp.c (vmessage): Rename from message, made static, and
 +      changed to take a va_list argument.
 +      (message): New variadic wrapper.
 +      (message_nolog): Now a variadic function, calling vmessage.
 +      * lisp.h: Include stdarg.h for va_list.
 +      (doprnt, error, message, message_nolog): Decls updated.
 +
 +2010-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (syms_of_process) <delete-exited-processes>: Define
 +      even if !subprocesses.
 +      (delete_exited_processes): Ditto.
 +
 +      * msdos.c (syms_of_msdos) <delete-exited-processes>: Remove DEFVAR.
 +      (delete_exited_processes): Don't define.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (make_frame): Initialize menu_bar_lines and
 +      tool_bar_lines members.
 +      (make_initial_frame, make_terminal_frame):
 +      Initialize menu_bar_lines using value of menu-bar-mode.
 +
 +      * msdos.c (IT_set_frame_parameters): Don't set menu-bar-lines.
 +
 +2010-07-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c: Reshuffle #include's.  Condition some of the global
 +      and static variables on `subprocesses'.
 +      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 +      Leave only one implementation.
 +      (Fget_buffer_process, Fprocess_inherit_coding_system_flag)
 +      (kill_buffer_processes, Flist_system_processes)
 +      (Fprocess_attributes, init_process, syms_of_process): Unify the
 +      implementations for with subprocesses and without them.
 +
 +2010-07-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (set_frame_menubar): Must realize menubar_widget to get the
 +      correct size for Motif.
 +      (free_frame_menubar): Call x_set_window_size to update frame size.
 +
 +      * xfns.c (x_window): Set borderWidth to 0 for pane and
 +      EmacsFrame.  Frame size calculation is wrong otherwise.
 +
 +2010-07-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (xd_initialize): Add new argument RAISE_ERROR, which
 +      allows to suppress errors when polling in Emacs' main loop.
 +      (Fdbus_init_bus, Fdbus_get_unique_name, Fdbus_call_method)
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal)
 +      (xd_get_dispatch_status, xd_read_message, Fdbus_register_signal)
 +      (Fdbus_register_method): Use it.  (Bug#6579)
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c: Convert DEFUNs to standard C.
 +      * buffer.c:
 +      * bytecode.c:
 +      * callint.c:
 +      * callproc.c:
 +      * casefiddle.c:
 +      * casetab.c:
 +      * category.c:
 +      * character.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cmds.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dbusbind.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * dosfns.c:
 +      * editfns.c:
 +      * emacs.c:
 +      * eval.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * floatfns.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * image.c:
 +      * indent.c:
 +      * insdel.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * macros.c:
 +      * marker.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * msdos.c:
 +      * nsfns.m:
 +      * nsmenu.m:
 +      * nsselect.m:
 +      * print.c:
 +      * process.c:
 +      * search.c:
 +      * sound.c:
 +      * syntax.c:
 +      * term.c:
 +      * terminal.c:
 +      * textprop.c:
 +      * undo.c:
 +      * w16select.c:
 +      * w32console.c:
 +      * w32fns.c:
 +      * w32font.c:
 +      * w32menu.c:
 +      * w32proc.c:
 +      * w32select.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xmenu.c:
 +      * xselect.c:
 +      * xsettings.c:
 +      * xsmfns.c: Likewise.
 +
 +2010-07-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (kbd_is_on_hold, hold_keyboard_input)
 +      (unhold_keyboard_input, kbd_on_hold_p) [!subprocesses]: Define.
 +
 +2010-07-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
 +      (create_and_show_dialog): Don't call apply_systemfont_to_(menu|dialog)
 +      unless USE_LUCID.
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xdisp.c (store_mode_line_noprop_char): Remove K&R alternative
 +      declaration.
 +
 +      Clean up include guards.
 +      * tparam.c: Remove include guards for config.h, string.h and code
 +      that assumes #ifndef emacs.
 +      * termcap.c:
 +      * unexalpha.c:
 +      * sysdep.c:
 +      * filemode.c:
 +      * filelock.c:
 +      * bidi.c: Likewise.
 +
 +      Remove prefix-args.c
 +      * prefix-args.c: Remove file.
 +      * autodeps.mk (ALLOBJS): Remove reference to prefix-args.
 +      * Makefile.in (temacs${EXEEXT}): Remove references to
 +      PRE_EDIT_LDFLAGS and POST_EDIT_LDFLAGS.
 +      (mostlyclean): Remove reference to prefix-args.
 +      (prefix-args): Remove.
 +
 +      Simplify cstart_of_data, start_of_code and related code.
 +      * mem-limits.h: Remove !emacs and _LIBC conditional code.
 +      (start_of_data): Merge into start_of_data function.
 +      * sysdep.c (start_of_text): Remove.  Move simplified versions of
 +      it in the only users: unexaix.c and unexec.c.
 +      (read_input_waiting): Remove local declaration of quit_char.
 +      (start, etext): Remove declarations.
 +      (start_of_data): Merge with the version in mem-limits.h and move
 +      to vm-limits.c.
 +      * vm-limit.c (start_of_data): Merged and simplified version of the
 +      code formerly in mem-limits.h and sysdep.c.
 +      * unexec.c (start): New declaration, moved from sysdep.c.
 +      (start_of_text): Simplified version of the code formerly in sysdep.c.
 +      * unexaix.c (start_of_text): Simplified version of the code
 +      formerly in sysdep.c.
 +      * m/alpha.h (HAVE_TEXT_START): Remove.
 +      (TEXT_START): Move ...
 +      * unexalpha.c (TEXT_START): ... here.
 +      * s/hpux10-20.h (TEXT_START): Remove.
 +      * s/darwin.h (TEXT_START):
 +      * m/mips.h (TEXT_START):
 +      * m/macppc.h (HAVE_TEXT_START):
 +      * m/m68k.h (TEXT_START):
 +      * m/iris4d.h (TEXT_START):
 +      * m/intel386.h (TEXT_START):
 +      * m/ibmrs6000.h (TEXT_START):
 +      * m/ia64.h (HAVE_TEXT_START):
 +      * s/msdos.h (TEXT_START): Likewise.
 +
 +2010-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (overrun_check_malloc, overrun_check_realloc)
 +      (overrun_check_free, xstrdup, allocate_string)
 +      (allocate_string_data, compact_small_strings, Fmake_string)
 +      (make_unibyte_string, make_multibyte_string)
 +      (make_string_from_bytes, make_specified_string, make_float)
 +      (Fcons, allocate_terminal, allocate_frame, make_pure_string)
 +      (Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
 +      memcpy, memmove, memset, memcmp.
 +      * atimer.c (start_atimer, set_alarm): Likewise.
 +      * buffer.c (clone_per_buffer_values, report_overlay_modification)
 +      (mmap_realloc, init_buffer_once): Likewise.
 +      * callint.c (Fcall_interactively): Likewise.
 +      * callproc.c (Fcall_process, Fcall_process_region, child_setup)
 +      (getenv_internal_1): Likewise.
 +      * casefiddle.c (casify_object): Likewise.
 +      * ccl.c (ccl_driver): Likewise.
 +      * character.c (str_as_multibyte, str_to_multibyte): Likewise.
 +      * charset.c (load_charset_map_from_file)
 +      (load_charset_map_from_file, load_charset_map_from_vector)
 +      (Fdefine_charset_internal): Likewise.
 +      * cm.c (Wcm_clear): Likewise.
 +      * coding.c (decode_eol, decode_coding_object)
 +      (Fset_coding_system_priority, make_subsidiaries): Likewise.
 +      * data.c (Faset): Likewise.
 +      * dired.c (directory_files_internal, file_name_completion_stat):
 +      Likewise.
 +      * dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
 +      (clear_glyph_row, copy_row_except_pointers)
 +      (copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
 +      (save_current_matrix, restore_current_matrix)
 +      (build_frame_matrix_from_leaf_window, mirrored_line_dance)
 +      (mirror_line_dance, scrolling_window): Likewise.
 +      * doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
 +      Likewise.
 +      * doprnt.c (doprnt): Likewise.
 +      * editfns.c (Fuser_full_name, make_buffer_string_both)
 +      (Fmessage_box, Fformat, Ftranspose_regions): Likewise.
 +      * emacs.c (sort_args): Likewise.
 +      * eval.c (Fapply, Ffuncall): Likewise.
 +      * fileio.c (Ffile_name_directory, make_temp_name)
 +      (Fexpand_file_name, search_embedded_absfilename)
 +      (Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
 +      (auto_save_error): Likewise.
 +      * fns.c (Fstring_equal, Fcopy_sequence, concat)
 +      (string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
 +      (internal_equal, Fclear_string, larger_vector, copy_hash_table)
 +      (Fmake_hash_table): Likewise.
 +      * fringe.c (Fdefine_fringe_bitmap): Likewise.
 +      * ftfont.c (ftfont_text_extents): Likewise.
 +      * getloadavg.c (getloadavg): Likewise.
 +      * image.c (define_image_type, make_image, make_image_cache)
 +      (x_create_x_image_and_pixmap, xbm_image_p)
 +      (w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
 +      (xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
 +      (init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
 +      (png_image_p, png_read_from_memory, png_load, jpeg_image_p)
 +      (tiff_image_p, tiff_read_from_memory, gif_image_p)
 +      (gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
 +      Likewise.
 +      * indent.c (scan_for_column, compute_motion): Likewise.
 +      * insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
 +      (insert_1_both, insert_from_gap, replace_range_2): Likewise.
 +      * intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
 +      * keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
 +      (kbd_buffer_store_event_hold, apply_modifiers_uncached)
 +      (store_user_signal_events, menu_bar_items, tool_bar_items)
 +      (process_tool_bar_item, append_tool_bar_item)
 +      (read_char_minibuf_menu_prompt, read_key_sequence)
 +      (Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
 +      Likewise.
 +      * keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
 +      Likewise.
 +      * lisp.h (STRING_COPYIN): Likewise.
 +      * lread.c (Fload, read1, oblookup): Likewise.
 +      * msdos.c (Frecent_doskeys): Likewise.
 +      * nsfns.m (Fx_create_frame): Likewise.
 +      * nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
 +      Likewise.
 +      * nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
 +      (EmacsImage-initForXPMWithDepth:width:height:flip:length:):
 +      Likewise.
 +      * nsmenu.m (ns_update_menubar): Likewise.
 +      * nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
 +      * print.c (print_unwind, printchar, strout, print_string)
 +      (print_error_message): Likewise.
 +      * process.c (conv_lisp_to_sockaddr, set_socket_option)
 +      (Fmake_network_process, Fnetwork_interface_list)
 +      (Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
 +      (init_process): Likewise.
 +      * ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
 +      * regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
 +      Likewise.
 +      * scroll.c (do_scrolling, do_direct_scrolling)
 +      (scrolling_max_lines_saved): Likewise.
 +      * search.c (search_buffer, wordify, Freplace_match): Likewise.
 +      * sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
 +      * syntax.c (skip_chars, skip_syntaxes): Likewise.
 +      * sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
 +      (emacs_set_tty): Likewise.
 +      * term.c (encode_terminal_code, calculate_costs)
 +      (produce_special_glyphs, create_tty_output, init_tty, delete_tty):
 +      Likewise.
 +      * termcap.c (tgetst1, gobble_line): Likewise.
 +      * termhooks.h (EVENT_INIT): Likewise.
 +      * tparam.c (tparam1): Likewise.
 +      * unexalpha.c (unexec): Likewise.
 +      * unexec.c (write_segment): Likewise.
 +      * unexmacosx.c (unexec_write_zero): Likewise.
 +      * w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
 +      (Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
 +      * w32font.c (w32font_list_family, w32font_text_extents)
 +      (w32font_list_internal, w32font_match_internal)
 +      (w32font_open_internal, compute_metrics, Fx_select_font):
 +      Likewise.
 +      * w32menu.c (set_frame_menubar, add_menu_item)
 +      (w32_menu_display_help, w32_free_submenu_strings): Likewise.
 +      * w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
 +      * w32uniscribe.c (uniscribe_list_family): Likewise.
 +      * w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
 +      * window.c (make_window, replace_window, set_window_buffer)
 +      (Fsplit_window): Likewise.
 +      * xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
 +      (add_to_log, message3, x_consider_frame_title)
 +      (append_space_for_newline, extend_face_to_end_of_line)
 +      (decode_mode_spec_coding, init_glyph_string): Likewise.
 +      * xfaces.c (x_create_gc, get_lface_attributes_no_remap)
 +      (Finternal_copy_lisp_face, Finternal_merge_in_global_face)
 +      (face_attr_equal_p, make_realized_face, make_face_cache)
 +      (free_realized_faces, lookup_named_face, smaller_face)
 +      (face_with_height, lookup_derived_face)
 +      (x_supports_face_attributes_p, Finternal_set_font_selection_order)
 +      (Finternal_set_font_selection_order, realize_default_face)
 +      (compute_char_face, face_at_buffer_position)
 +      (face_for_overlay_string, face_at_string_position, merge_faces):
 +      Likewise.
 +      * xfns.c (xic_create_fontsetname, Fx_create_frame)
 +      (Fx_window_property, x_create_tip_frame)
 +      (Fx_backspace_delete_keys_p): Likewise.
 +      * xfont.c (xfont_list, xfont_match, xfont_list_family)
 +      (xfont_text_extents): Likewise.
 +      * xmenu.c (set_frame_menubar, xmenu_show): Likewise.
 +      * xrdb.c (magic_file_p, x_get_resource): Likewise.
 +      * xselect.c (x_queue_event, x_get_window_property)
 +      (receive_incremental_selection): Likewise.
 +      * xsmfns.c (x_session_check_input): Likewise.
 +      * xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
 +      (handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
 +      Likewise.
 +      * character.h (BCOPY_SHORT): Removed.
 +      * config.in: Regenerate.
 +      * dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
 +      * emacs.c (main) [PROFILING]: Don't declare
 +      dump_opcode_frequencies.
 +      * lisp.h (safe_bcopy): Remove declaration.
 +      (memset) [!HAVE_MEMSET]: Declare.
 +      (memcpy) [!HAVE_MEMCPY]: Likewise.
 +      (memmove) [!HAVE_MEMMOVE]: Likewise.
 +      (memcmp) [!HAVE_MEMCMP]: Likewise.
 +      * s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
 +      (BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
 +      Don't define.
 +      (HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
 +      * s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
 +      (BCOPY_DOWNWARD_SAFE): Don't define.
 +      * sysdep.c (memset) [!HAVE_MEMSET]: Define.
 +      (memcpy) [!HAVE_MEMCPY]: Define.
 +      (memmove) [!HAVE_MEMMOVE]: Define.
 +      (memcmp) [!HAVE_MEMCMP]: Define.
 +
 +2010-07-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * process.c (kbd_is_on_hold): New variable.
 +      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 +      New functions.
 +      (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
 +      select on empty input mask.
 +      (init_process): Initialize kbd_is_on_hold to 0.
 +
 +      * process.h (hold_keyboard_input, unhold_keyboard_input)
 +      (kbd_on_hold_p): Declare.
 +
 +      * keyboard.c (input_available_signal): Declare.
 +      (kbd_buffer_nr_stored): New function.
 +      (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
 +      more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
 +      (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
 +      returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
 +      (tty_read_avail_input): If input is on hold, return.
 +      Don't read more that free slots in kbd_buffer (Bug#6571).
 +
 +2010-07-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.h:
 +      * msdos.c:
 +      * dosfns.c:
 +      * w16select.c: Convert function definitions to ANSI C.
 +
 +      * msdos.h (ctrl_break_func, install_ctrl_break_check):
 +      Remove unused prototypes.
 +
 +2010-07-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * coding.c, sysdep.c: Convert some more functions to standard C.
 +
 +2010-07-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * coding.c (decode_coding_gap, encode_coding_gap, decode_coding_object)
 +      (encode_coding_object): Use SPECPDL_INDEX.
 +      (syms_of_coding): Use DOS_NT.
 +
 +2010-07-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * intervals.h (interval): Use EMACS_UINT instead of unsigned EMACS_INT.
 +
 +      Make the function member of Lisp_Subr use standard C prototypes.
 +      * lisp.h (struct Lisp_Subr): Use a union for the function member.
 +      (DECL_ALIGN): Add a cast for the function.
 +      * eval.c (Feval, Ffuncall): Use the proper type for each type
 +      function call.
 +
 +2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fringe.c (draw_fringe_bitmap_1): Use lookup_named_face to get
 +      fringe face id, so face-remapping-alist works (Bug#6091).
 +
 +2010-07-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c, w32console.c, w32fns.c, w32font.c, w32heap.c, w32inevt.c
 +      * w32menu.c, w32proc.c, w32reg.c, w32select.c, w32term.c
 +      * w32uniscribe.c, w32xfns.c: Convert function definitions to standard C.
 +
 +2010-07-06  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.c (x_get_keysym_name): Change type of parameter to int.
 +      * lisp.h: Declare x_get_keysym_name.
 +      * keyboard.c (modify_event_symbol): Don't declare
 +      x_get_keysym_name here.
 +
 +2010-07-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * ecrt0.c: Revert conversion to standard C.
 +
 +2010-07-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c (memory_warnings):
 +      * keyboard.c (modify_event_symbol):
 +      * floatfns.c (rounding_driver, ceiling2, floor2, truncate2)
 +      (round2, emacs_rint):
 +      * process.c (send_process, old_sigpipe): Convert function
 +      definitions and declarations to standard C.
 +
 +2010-07-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c, cm.c, eval.c, keyboard.c, process.c, term.c, vm-limit.c,
 +      * xdisp.c: Convert function definitions to standard C.
 +
 +      * cm.c (cmputc): Arg C is now int, not char.
 +      * process.c (Fmake_network_process): Cast sockaddr_in* to sockaddr*.
 +
 +2010-07-05  James Cloos  <cloos@jhcloos.com>
 +
 +      * xterm.h (Xatom_net_wm_name, Xatom_net_wm_icon_name): New.
 +
 +      * xterm.c (x_term_init): Intern the _NET_WM_NAME and
 +      _NET_WM_ICON_NAME atoms.
 +
 +      * xfns.c (x_set_name_internal): Set the EWMH _NET_WM_NAME
 +      and _NET_WM_ICON_NAME properties, too, matching what is
 +      done in the Gtk+ case.
 +
 +2010-07-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (XTring_bell, XTset_terminal_window): Fix wrong prototype.
 +
 +      * xsmfns.c (SSDATA): New macro.
 +      (smc_save_yourself_CB, x_session_initialize): Use SSDATA for strings
 +      passed to strlen/strcpy/strcat.
 +      (create_client_leader_window): Surround with #ifndef USE_GTK.
 +      Cast 7:th arg to XChangeProperty to (unsigned char *).
 +
 +      * xsettings.c (something_changedCB, parse_settings)
 +      (apply_xft_settings): Reformat prototype.
 +      (something_changedCB, init_gconf): Remove unused variable i.
 +      (read_settings): Remove unused variable long_len.
 +
 +      * gtkutil.c (xg_get_pixbuf_from_pix_and_mask)
 +      (xg_get_image_for_pixmap, create_dialog)
 +      (xg_get_file_with_selection, xg_get_file_name, update_cl_data)
 +      (menuitem_highlight_callback, make_menu_item)
 +      (xg_create_one_menuitem, create_menus, xg_update_menu_item)
 +      (xg_create_scroll_bar, xg_update_scrollbar_pos)
 +      (xg_set_toolkit_scroll_bar_thumb, xg_tool_bar_button_cb)
 +      (xg_tool_bar_proxy_help_callback, xg_tool_bar_detach_callback)
 +      (xg_tool_bar_attach_callback, xg_tool_bar_help_callback)
 +      (xg_tool_bar_item_expose_callback): Reformat prototype.
 +      (xg_update_menubar): GList *group => GSList *group.
 +      (xg_modify_menubar_widgets): Initialize witem to 0, check witem != 0
 +      before use.
 +      (update_frame_tool_bar): 4:th param to xg_get_image_for_pixmap changed
 +      to GTK_IMAGE (wimage).
 +
 +2010-07-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * atimer.c: Use "" instead of <> for local includes for
 +      consistency with the rest of the code.
 +
 +      * xsmfns.c (smc_save_yourself_CB, smc_error_handler):
 +      * xrdb.c (get_system_name):
 +      * window.c (shrink_windows):
 +      * syntax.c (forw_comment):
 +      * scroll.c (calculate_scrolling, calculate_direct_scrolling)
 +      (ins_del_costs):
 +      * mem-limits.h (start_of_data):
 +      * lread.c (readevalloop):
 +      * gtkutil.c (xg_dialog_response_cb, xg_get_file_with_chooser)
 +      (xg_get_file_with_selection, xg_update_menubar, xg_update_submenu):
 +      * frame.c (x_get_focus_frame):
 +      * floatfns.c (fmod_float):
 +      * fileio.c (choose_write_coding_system):
 +      * emacs.c (fatal_error_signal, init_cmdargs, argmatch)
 +      (malloc_initialize_hook, sort_args, synchronize_locale):
 +      * doprnt.c (doprnt):
 +      * dired.c (compile_pattern):
 +      * data.c (fmod_float):
 +      * chartab.c (map_sub_char_table, map_sub_char_table_for_charset)
 +      (map_char_table_for_charset):
 +      * charset.c (define_charset_internal):
 +      * alloc.c (Fgarbage_collect): Convert declarations or definitions
 +      to standard C.
 +
 +2010-07-04  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Fix up last change to not mess up `c'.
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * strftime.c: Revert conversion to standard C (2010-07-04T07:50:25Z!dann@ics.uci.edu).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix prototypes.
 +
 +      * atimer.c (start_atimer): Use EMACS_TIME, not struct timeval.
 +      * dired.c (file_name_completion_stat): Use DIRENTRY, not struct dirent.
 +      * fileio.c (read_non_regular, read_non_regular_quit): Add Lisp_Object
 +      arg, as required by internal_condition_case_1.
 +      * print.c (strout): Use const char* for arg PTR.
 +      * regex.c (bcmp_translate): Use RE_TRANSLATE_TYPE, not Lisp_Object.
 +      (analyse_first): Fix "const const".
 +      * sysdep.c (set_file_times): Use EMACS_TIME, not struct timeval.
 +      * unexelf.c (round_up, find_section): Use ElfW macro for arguments.
 +      * xgselect.c (xg_select): Use SELECT_TYPE, EMACS_TIME.
 +
 +2010-07-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c: Convert function definitions to standard C.
 +      * atimer.c:
 +      * bidi.c:
 +      * bytecode.c:
 +      * callint.c:
 +      * callproc.c:
 +      * casefiddle.c:
 +      * casetab.c:
 +      * category.c:
 +      * ccl.c:
 +      * character.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cmds.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dbusbind.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * doprnt.c:
 +      * ecrt0.c:
 +      * editfns.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * filemode.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * ftfont.c:
 +      * ftxfont.c:
 +      * gtkutil.c:
 +      * indent.c:
 +      * insdel.c:
 +      * intervals.c:
 +      * keymap.c:
 +      * lread.c:
 +      * macros.c:
 +      * marker.c:
 +      * md5.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * prefix-args.c:
 +      * print.c:
 +      * ralloc.c:
 +      * regex.c:
 +      * region-cache.c:
 +      * scroll.c:
 +      * search.c:
 +      * sound.c:
 +      * strftime.c:
 +      * syntax.c:
 +      * sysdep.c:
 +      * termcap.c:
 +      * terminal.c:
 +      * terminfo.c:
 +      * textprop.c:
 +      * tparam.c:
 +      * undo.c:
 +      * unexelf.c:
 +      * window.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xgselect.c:
 +      * xmenu.c:
 +      * xrdb.c:
 +      * xselect.c:
 +      * xsettings.c:
 +      * xsmfns.c:
 +      * xterm.c: Likewise.
 +
 +2010-07-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (IT_set_frame_parameters): Fix setting of colors in
 +      frames other than the initial one.  Fix reversal of colors when
 +      `reverse' is specified in the frame parameters.
 +      Call update_face_from_frame_parameter instead of
 +      internal-set-lisp-face-attribute.  Initialize screen colors from
 +      initial_screen_colors[] when f->default_face_done_p is zero,
 +      instead of depending on being called with default-frame-alist as
 +      the alist argument.
 +
 +      * xfaces.c (update_face_from_frame_parameter): Move out of
 +      HAVE_WINDOW_SYSTEM portion.  Condition window-system only parts
 +      with HAVE_WINDOW_SYSTEM.
 +
 +      * msdos.c (IT_set_frame_parameters): Set menu-bar-lines according
 +      to menu-bar-mode, if not set in the frame parameters or in
 +      default-frame-alist.
 +
 +      * w32console.c (sys_tputs): Adjust argument list to prototype in
 +      term.c.
 +
 +2010-07-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * lisp.h (memory_warnings): Fix prototype.
 +
 +      * cm.h (evalcost): Fix prototype.
 +
 +      * cm.c (evalcost): Fix arg type.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * term.c (term_clear_mouse_face, Fidentity):
 +      * syssignal.h (signal_handler_t):
 +      * lisp.h (memory_warnings):
 +      * coding.h (preferred_coding_system):
 +      * cm.h (evalcost):
 +      * blockinput.h (reinvoke_input_signal): Convert to standard C prototypes.
 +
 +2010-07-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dosfns.h (msdos_stdcolor_idx, msdos_stdcolor_name): Remove P_
 +      from prototypes.
 +
 +      * msdos.h (load_pixmap): Don't define away.
 +
 +2010-07-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * lisp.h:
 +      * atimer.h: Remove define for P_.
 +
 +      * alloc.c: Remove __P and P_ from .c and .m files.
 +      * atimer.c:
 +      * buffer.c:
 +      * callint.c:
 +      * category.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cm.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * editfns.c:
 +      * emacs.c:
 +      * eval.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * ftfont.c:
 +      * ftxfont.c:
 +      * gmalloc.c:
 +      * gtkutil.c:
 +      * image.c:
 +      * indent.c:
 +      * intervals.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * marker.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * print.c:
 +      * process.c:
 +      * scroll.c:
 +      * search.c:
 +      * sound.c:
 +      * strftime.c:
 +      * syntax.c:
 +      * sysdep.c:
 +      * term.c:
 +      * terminal.c:
 +      * textprop.c:
 +      * unexalpha.c:
 +      * w32console.c:
 +      * w32fns.c:
 +      * w32font.c:
 +      * w32menu.c:
 +      * w32term.c:
 +      * w32uniscribe.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xmenu.c:
 +      * xselect.c:
 +      * xterm.c: Likewise.
 +
 +      Remove P_ and __P macros.
 +      * atimer.h: Remove P_ and __P macros.
 +      * buffer.h:
 +      * category.h:
 +      * ccl.h:
 +      * character.h:
 +      * charset.h:
 +      * cm.h:
 +      * coding.h:
 +      * composite.h:
 +      * dispextern.h:
 +      * disptab.h:
 +      * dosfns.h:
 +      * font.h:
 +      * fontset.h:
 +      * frame.h:
 +      * gtkutil.h:
 +      * indent.h:
 +      * intervals.h:
 +      * keyboard.h:
 +      * keymap.h:
 +      * lisp.h:
 +      * macros.h:
 +      * md5.h:
 +      * menu.h:
 +      * msdos.h:
 +      * nsterm.h:
 +      * puresize.h:
 +      * region-cache.h:
 +      * syntax.h:
 +      * syssignal.h:
 +      * systime.h:
 +      * termhooks.h:
 +      * w32font.h:
 +      * w32term.h:
 +      * widget.h:
 +      * window.h:
 +      * xgselect.h:
 +      * xsettings.h:
 +      * xterm.h: Likewise.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.
 +
 +      Cleanup old code.
 +      * dired.c (BSD4_3): Remove all uses, redundant with BSD4_2.
 +      * syssignal.h: Remove code for Lynx, not supported anymore.
 +      * vm-limit.c: Remove unused code the depends on emacs not being
 +      defined and NO_LIM_DATA being defined.
 +      * mem-limits.h: Remove dead code.
 +
 +2010-07-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * window.c (Fwindow_absolute_pixel_edges): Doc fix.
 +
 +      * window.c (calc_absolute_offset, Fwindow_absolute_pixel_edges)
 +      (Fwindow_inside_absolute_pixel_edges): New functions (bug#5721).
 +
 +      * nsfns.m (compute_tip_xy): Do not convert coordinates from frame
 +      parameters, they are already absolute.
 +
 +      * nsterm.m (x_set_window_size, initFrameFromEmacs):
 +      Rename FRAME_NS_TOOLBAR_HEIGHT to FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsmenu.m (update_frame_tool_bar, free_frame_tool_bar):
 +      Update FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar):
 +      Add BLOCK/UNBLOCK_INPUT so asserts don't trigger.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (get_future_frame_param, Fmake_terminal_frame):
 +      Don't check default-frame-alist.
 +
 +2010-06-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (create_process): Avoid using invalid file descriptors.
 +
 +      * callproc.c (child_setup): Avoid closing a file descriptor twice.
 +
 +2010-06-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
 +      Improve documentation.  Return font regardless of use_system_font.
 +      (syms_of_xsettings): Improve documentation for font-use-system-font.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfaces.c (realize_face): Garbage the frame if a face is removed
 +      (Bug#6593).
 +
 +2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * keyboard.c: Remove duplicate <setjmp.h>.
 +      (read_key_sequence): Remove volatile qualifiers.
 +
 +2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 +      (struct glyph_row): New members left_fringe_offset and
 +      right_fringe_offset.
 +
 +      * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
 +      specially.
 +      * w32term.c (w32_draw_fringe_bitmap): Likewise.
 +      * nsterm.m (ns_draw_fringe_bitmap): Likewise.
 +
 +      * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
 +      Take account of bitmap offset.
 +      (draw_window_fringes): Take account of window vscroll.
 +      (update_window_fringes): Likewise.  Extend top-aligned top indicator
 +      or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
 +      in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
 +      Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (Qtooltip): Declare.
 +      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 +
 +2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 +      grab on just Press (Bug#6499).
 +
 +2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (Qtooltip): New var.
 +      (delete_frame): Use it.  Fix faulty if statement.  Don't update
 +      mode line for tooltip frames.  Suggested by Martin Rudalics.
 +
 +      * xfns.c (x_create_tip_frame):
 +      * w32fns.c (x_create_tip_frame): Use it.
 +
 +2010-06-17  Naohiro Aota  <naota@elisp.net>  (tiny change)
 +
 +      * xftfont.c (xftfont_open): Check font width one by one also when
 +      spacing is dual.
 +
 +      * ftfont.c (ftfont_open): Ditto.
 +
 +2010-06-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/sol2-6.h (INHIBIT_X11R6_XIM): Remove, handled by configure now.
 +
 +      * Makefile.in (CANNOT_DUMP): Update for configure name change.
 +
 +      * s/freebsd.h (USE_MMAP_FOR_BUFFERS):
 +      * s/irix6-5.h (USE_MMAP_FOR_BUFFERS):
 +      * s/darwin.h (SYSTEM_MALLOC):
 +      * s/sol2-10.h (SYSTEM_MALLOC): Move to configure.
 +
 +2010-06-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m: extern declare Vmenu_bar_mode, Vtool_bar_mode.
 +      (ns_get_screen): Don't assign integer to f.
 +      (Fx_display_color_cells): Declarations before statements.
 +
 +2010-06-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_default_font_parameter): Remove got_from_system
 +      (Bug#6526).
 +
 +      * xterm.h (gtk_widget_get_window, gtk_widget_get_mapped)
 +      (gtk_adjustment_get_page_size, gtk_adjustment_get_upper):
 +      New defines based on what configure finds.
 +
 +      * xterm.c (XTflash): Use gtk_widget_get_window.
 +      (xg_scroll_callback): Use gtk_adjustment_get_upper and
 +      gtk_adjustment_get_page_size.
 +      (handle_one_xevent): Use gtk_widget_get_mapped.
 +      (x_term_init): Remove HAVE_GTK_MULTIDISPLAY and associated error
 +      messages.
 +
 +      * xmenu.c (create_and_show_popup_menu): Call gtk_widget_get_mapped.
 +
 +      * gtkutil.h: Replace HAVE_GTK_FILE_BOTH with
 +      HAVE_GTK_FILE_SELECTION_NEW.
 +
 +      * gtkutil.c (xg_display_open, xg_display_close):
 +      Remove HAVE_GTK_MULTIDISPLAY, it is always defined.
 +      (xg_display_open): Return type is void.
 +      (gtk_widget_set_has_window)
 +      (gtk_dialog_get_action_area, gtk_dialog_get_content_area)
 +      (gtk_widget_get_sensitive, gtk_adjustment_set_page_size)
 +      (gtk_adjustment_set_page_increment)
 +      (gtk_adjustment_get_step_increment): #define these if not found
 +      by configure.
 +      (remove_submenu): New define based on Gtk+ version.
 +      (xg_set_cursor, xg_frame_resized, xg_event_is_for_scrollbar):
 +      Use gtk_widget_get_window.
 +      (xg_frame_resized, xg_update_frame_menubar): Use gtk_widget_get_mapped.
 +      (xg_create_frame_widgets): Use gtk_widget_set_has_window.
 +      (create_dialog): Use gtk_dialog_get_action_area and
 +      gtk_dialog_get_content_area.
 +      (xg_uses_old_file_dialog, xg_get_file_name): Remove HAVE_GTK_FILE_BOTH
 +      and HAVE_GTK_FILE_CHOOSER_DIALOG_NEW.  File chooser is always
 +      available, so checking for HAVE_GTK_FILE_SELECTION_NEW is enough.
 +      (xg_update_menubar, xg_update_submenu, xg_show_toolbar_item):
 +      Use g_object_ref and g_object_unref.
 +      (xg_update_menu_item, xg_tool_bar_menu_proxy):
 +      Use gtk_widget_get_sensitive.
 +      (xg_update_submenu): Use remove_submenu.
 +      (xg_update_scrollbar_pos): Don't use GtkFixedChild, use child
 +      properties instead to get old x and y position.
 +      (xg_set_toolkit_scroll_bar_thumb): Use gtk_adjustment_get_page_size,
 +      gtk_adjustment_get_step_increment, gtk_adjustment_set_page_size,
 +      gtk_adjustment_set_step_increment and gtk_adjustment_set_page_increment.
 +      (xg_get_tool_bar_widgets): New function.
 +      (xg_tool_bar_menu_proxy, xg_show_toolbar_item)
 +      (update_frame_tool_bar): Call xg_get_tool_bar_widgets.
 +      (toolbar_set_orientation): New #define based on if configure
 +      finds gtk_orientable_set_orientation.
 +      (xg_create_tool_bar): Call toolbar_set_orientation.
 +      (xg_make_tool_item, xg_show_toolbar_item): Call gtk_box_pack_start
 +      instead of gtk_box_pack_start_defaults.
 +
 +2010-06-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cmds.c (Fdelete_backward_char): Move into Lisp.
 +
 +2010-06-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/freebsd.h (BSD4_2): Remove redundant definition.
 +      bsd-common.h defines it already.
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame): Don't consult X resouces when setting
 +      menu-bar-lines and tool-bar-lines.  Use menu-bar-mode and
 +      tool-bar-mode, which are now set using these X resources at
 +      startup, to determine the defaults (Bug#2249).
 +
 +      * w32fns.c (Fx_create_frame):
 +      * nsfns.m (Fx_create_frame): Likewise.
 +
 +      * frame.c (Vmenu_bar_mode, Vtool_bar_mode): New vars.
 +
 +2010-06-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * gtkutil.c (xg_update_scrollbar_pos):
 +      Avoid C99 mid-block variable declaration.
 +
 +2010-06-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_scroll_bar_create): Remove call to xg_show_scroll_bar.
 +
 +      * gtkutil.h (xg_show_scroll_bar): Remove.
 +
 +      * gtkutil.c (xg_update_scrollbar_pos): Show/hide scroll bar as needed
 +      if height is less than scroll bar min size.
 +      (xg_show_scroll_bar): Remove, show moved to xg_update_scrollbar_pos.
 +
 +      * xfns.c (x_default_font_parameter): Try to open font from system
 +      before using it (bug#6478).  Rename got_from_gconf to got_from_system.
 +
 +2010-06-22  Keith Packard  <keithp@keithp.com>  (tiny change)
 +
 +      * font.c (font_parse_fcname): Allow . for sizes like 7.5 (bug#6437).
 +
 +2010-06-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (try_scrolling): When scroll-conservatively is set to
 +      most-positive-fixnum, be extra accurate when scrolling window
 +      start, to avoid missing the cursor line.
 +
 +2010-06-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (try_scrolling): Compute the limit for searching point
 +      in forward scroll from scroll_max, instead of an arbitrary limit
 +      of 10 screen lines.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00766.html
 +      and
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00773.html
 +      for details.
 +
 +2010-06-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Phase out old-style backquotes a bit more.
 +
 +2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
 +      bidimirror.h.
 +
 +      * deps.mk (bidi.o): Depend on biditype.h and bidimirror.h.
 +
 +      * bidi.c (bidi_initialize): Remove explicit initialization of
 +      bidi_type_table; include biditype.h instead.  Don't support
 +      entries whose second codepoint is zero.  Initialize bidi_mirror_table.
 +      (bidi_mirror_char): Use bidi_mirror_table.
 +
 +      * biditype.h: New file.
 +
 +      * bidimirror.h: New file.
 +
 +      * window.c (syms_of_window): Doc fix (bug#6409).
 +
 +2010-06-12  Romain Francoise  <romain@orebokech.com>
 +
 +      * Makefile.in (lisp, shortlisp): Use new location of vc-hooks and
 +      ediff-hook.
 +
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +      * m/ibms390x.h: Rather than duplicating ibms390.h, just include it.
 +
 +2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (Fmake_byte_code): Don't access undefined argument
 +      (Bug#6517).
 +
 +2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (next_element_from_image): Ensure that after-strings are
 +      read the next time we hit handle_stop (Bug#1336).
 +
 +2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lread.c (read1): Signal error if #s is not followed by paren.
 +
 +2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 +
 +      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 +
 +2010-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 +      Check `object's type before accessing its guts.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/usg5-4.h: Fix previous change.
 +      Suggested by Lawrence Mitchell <wence@gmx.li>
 +
 +2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * minibuf.c (Fall_completions): Add more checks.
 +
 +2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 +
 +2010-06-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * lread.c (X_OK): Remove, unused.
 +
 +      * dispnew.c: Remove obsolete comment.
 +
 +      Remove INCLUDED_FCNTL.
 +      * xterm.c (INCLUDED_FCNTL):
 +      * callproc.c (INCLUDED_FCNTL):
 +      * alloc.c (INCLUDED_FCNTL):
 +      * systty.h (INCLUDED_FCNTL): Remove all uses, not needed anymore.
 +      (emacs_get_tty, emacs_set_tty): Declare unconditionally.
 +
 +2010-06-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.c (Fselect_window): Move `record_buffer' up to the
 +      beginning of this function, so the buffer gets recorded
 +      even if the selected window does not change.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00137.html
 +
 +2010-06-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (Fforward_char, Fbackward_char): Fix typos in docstrings.
 +      (Fforward_line, Fbeginning_of_line): Reflow docstrings.
 +
 +2010-06-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove BSTRING related code, all platforms define it.
 +      * s/usg5-4.h (BSTRING): Remove definition.
 +      * s/template.h (BSTRING):
 +      * s/msdos.h (BSTRING):
 +      * s/ms-w32.h (BSTRING):
 +      * s/hpux10-20.h (BSTRING):
 +      * s/gnu-linux.h (BSTRING):
 +      * s/darwin.h (BSTRING):
 +      * s/cygwin.h (BSTRING):
 +      * s/bsd-common.h (BSTRING):
 +      * s/aix4-2.h (BSTRING): Likewise.
 +      * sysdep.c: Remove code depending on BSTRING not being defined.
 +
 +2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove obsolete macro BASE_LEADING_CODE_P.
 +      * character.h (BASE_LEADING_CODE_P): Remove.
 +      * regex.c [!emacs] (BASE_LEADING_CODE_P): Remove.
 +      * buffer.c (Fset_buffer_multibyte):
 +      * indent.c (scan_for_column, compute_motion):
 +      * insdel.c (count_combining_before, count_combining_after):
 +      Use LEADING_CODE_P instead of BASE_LEADING_CODE_P.
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Turn `directory-sep-char' into a noop.
 +
 +      * lisp.h [WINDOWSNT] (Vdirectory_sep_char): Don't declare.
 +      (DIRECTORY_SEP): Define unconditionally.
 +
 +      * s/ms-w32.h (DIRECTORY_SEP): Remove.
 +
 +      * emacs.c (decode_env_path): Don't check DIRECTORY_SEP,
 +      call dostounix_filename directly.
 +
 +      * fileio.c (CORRECT_DIR_SEPS): Remove.
 +      (Ffile_name_directory, directory_file_name, Fexpand_file_name)
 +      (Fsubstitute_in_file_name): Use dostounix_filename instead.
 +      (file_name_as_directory): Use dostounix_filename, DIRECTORY_SEP.
 +      (syms_of_fileio) <directory-sep-char>: Move to subr.el.
 +
 +      * w32proc.c (CORRECT_DIR_SEPS): Remove.
 +      (Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename.
 +
 +2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4 address.
 +      (Bug#6346)
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ccl.c (Fccl_program_p): Fix typo in docstring.
 +
 +2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Move UNEXEC definition to autoconf.
 +      * s/usg5-4.h (UNEXEC): Remove, move to configure.in.
 +      * s/sol2-10.h (UNEXEC):
 +      * s/irix6-5.h (UNEXEC):
 +      * s/hpux10-20.h (UNEXEC):
 +      * s/gnu-linux.h (UNEXEC):
 +      * s/darwin.h (UNEXEC):
 +      * s/cygwin.h (UNEXEC):
 +      * s/bsd-common.h (UNEXEC):
 +      * s/aix4-2.h (UNEXEC):
 +      * m/alpha.h (UNEXEC): Likewise.
 +      * Makefile.in (UNEXEC_OBJ): Define using @UNEXEC_OBJ@.
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove obsolete pre-unicode2 macros.
 +      * character.h (MULTIBYTE_FORM_LENGTH, PARSE_MULTIBYTE_SEQ): Remove.
 +      * composite.c (composition_reseat_it):
 +      * data.c (Faset):
 +      * fns.c (Ffillarray):
 +      * regex.c (re_search_2): Use BYTES_BY_CHAR_HEAD.
 +      [!emacs] (BYTES_BY_CHAR_HEAD): Define instead of MULTIBYTE_FORM_LENGTH.
 +
 +2010-06-03  Juri Linkov  <juri@jurta.org>
 +
 +      * buffer.c (Fother_buffer): Add CHECK_FRAME.
 +      (Fswitch_to_buffer): Remove unused variable `err'.
 +
 +2010-06-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/template.h (NO_SOCK_SIGIO): Remove, no longer used.
 +
 +      * m/hp800.h (alloca) [__NetBSD__ && __GNUC__]: No need to define it,
 +      now that AH_BOTTOM does it.
 +
 +      * m/hp800.h (HAVE_ALLOCA):
 +      * m/ibms390x.h (HAVE_ALLOCA): Do not define, no longer needed.
 +
 +      * m/ia64.h, s/gnu-linux.h, s/gnu.h, s/netbsd.h, s/usg5-4.h:
 +      Remove NOT_C_CODE tests, it is always true now.
 +
 +2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix config.h includes.
 +      * xsettings.c:
 +      * xgselect.c:
 +      * nsterm.m:
 +      * nsselect.m:
 +      * nsimage.m:
 +      * nsfont.m:
 +      * nsfns.m:
 +      * dbusbind.c: Use #include <config.h> instead of "config.h" as all
 +      other files do.
 +
 +      * gmalloc.c: Remove BROKEN_PROTOTYPES reference, unused.
 +
 +      * s/sol2-6.h: Remove obsolete comments.
 +
 +      Remove unnecessary alloca.h includes.
 +      * keymap.c: Do not include alloca.h, config.h does that.
 +      * sysdep.c: Likewise.  Do not define fwrite, not used.
 +
 +2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * sysdep.c (child_setup_tty): Move the non-canonical initialization to
 +      the HAVE_TERMIO where it belongs (bug#6149).
 +
 +2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 +      of bug#6305).
 +
 +2010-05-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_move_to_visually_next): Make sure the sentinel
 +      state is always cached (bug#6306).
 +
 +2010-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix cursor motion in bidi-reordered continued lines.
 +      * xdisp.c (try_cursor_movement): Backup to non-continuation line
 +      only after finding point's row.  Fix the logic.  Rewrite the loop
 +      over continuation lines in bidi-reordered buffers.
 +      Return CURSOR_MOVEMENT_MUST_SCROLL upon failure to find a suitable row,
 +      rather than CURSOR_MOVEMENT_CANNOT_BE_USED.
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * fileio.c (Fdelete_file): Pass TRASH arg to handler call.
 +
 +2010-05-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
 +      Don't sheck SPEC if it is nil.
 +      (font_list_entities): Call font_delete_unmatched if
 +      Vface_ignored_fonts is non-nil.  (Bug#6287)
 +
 +2010-05-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBES): Remove $LOADLIBES, it is never set.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fileio.c (Fdelete_file): Change meaning of optional arg to mean
 +      whether to trash.
 +      (internal_delete_file, Frename_file): Callers changed.
 +      (delete_by_moving_to_trash): Doc fix.
 +      (Fdelete_directory_internal): Don't move to trash.
 +
 +      * callproc.c (delete_temp_file):
 +      * buffer.c (Fkill_buffer): Callers changed.
 +
 +      * lisp.h: Update prototype.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (redisplay_window): After redisplay, check if point is
 +      still valid before setting it (Bug#6177).
 +
 +2010-05-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in, autodeps.mk, deps.mk, ns.mk:
 +      Convert comments to Makefile format.
 +
 +      * Makefile.in (bootstrap-clean): No more Makefile.c.
 +
 +2010-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (YMF_PASS_LDFLAGS): Remove.
 +      (temacs${EXEEXT}): Use PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS.
 +
 +      * Makefile.in (NS_IMPL_GNUSTEP_INC, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
 +      Remove.
 +      (TEMACS_LDFLAGS): Do not use NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +
 +2010-05-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_compute_stop_pos): Fix condition for
 +      backward scanning.
 +
 +2010-05-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (@NS_IMPL_GNUSTEP_INC@, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
 +      Move before TEMACS_LDFLAGS.
 +      (TEMACS_LDFLAGS): Use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +      (temacs${EXEEXT}): Do not use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +
 +      * Makefile.in (NOT_C_CODE): No longer define.
 +      (config.h): No longer include.
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): Move definition after some
 +      variables it may reference.
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM_EXTRA): Remove.
 +      (TEMACS_LDFLAGS): Remove LD_SWITCH_SYSTEM_EXTRA.
 +
 +2010-05-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (struct composition_it): New members rule_idx and
 +      charpos.
 +
 +      * xdisp.c (set_iterator_to_next): While scanning backward, assume
 +      that the character positions of IT point the last character of the
 +      current grapheme cluster.
 +      (next_element_from_composition): Don't change character positions
 +      of IT.
 +      (append_composite_glyph): Set glyph->charpos to
 +      it->cmp_it.charpos.
 +
 +      * composite.c (autocmp_chars): Change the first argument to RULE,
 +      and try composition with RULE only.
 +      (composition_compute_stop_pos): Record the index number of the
 +      composition rule in CMP_IT->rule_idx.
 +      (composition_reseat_it): Call autocmp_chars repeatedly until the
 +      correct rule of the composition is found.
 +      (composition_update_it): Set CMP_IT->charpos.  Assume the CHARPOS
 +      is at the last character of the current grapheme cluster when
 +      CMP_IT->reversed_p is nonzero.
 +
 +2010-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * editfns.c (Fbyte_to_string): New function.
 +
 +2010-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (Fmake_network_process): Set :host to nil if it's not used.
 +      Suggested by Masatake YAMATO <yamato@redhat.com>.
 +
 +2010-05-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispextern.h (init_iterator): Sync prototype with changed definition.
 +
 +2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +
 +      * s/netbsd.h: If terminfo is found, use it in preference to
 +      termcap.  (Bug#6190)  [Backport from trunk]
 +
 +2010-05-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Redesign and reimplement bidi-aware edge positions of glyph rows.
 +
 +      * dispextern.h (struct glyph_row): New members minpos and maxpos.
 +      (MATRIX_ROW_START_CHARPOS, MATRIX_ROW_START_BYTEPOS)
 +      (MATRIX_ROW_END_CHARPOS, MATRIX_ROW_END_BYTEPOS): Reference minpos
 +      and maxpos members instead of start.pos and end.pos, respectively.
 +
 +      * xdisp.c (display_line): Compare IT_CHARPOS with the position in
 +      row->start.pos, rather than with MATRIX_ROW_START_CHARPOS.
 +      (cursor_row_p): Use row->end.pos rather than MATRIX_ROW_END_CHARPOS.
 +      (try_window_reusing_current_matrix, try_window_id):
 +      Use ROW->minpos rather than ROW->start.pos.
 +      (init_from_display_pos, init_iterator): Use EMACS_INT for
 +      character and byte positions.
 +      (find_row_edges): Rename from find_row_end.  Accept additional
 +      arguments for minimum and maximum buffer positions seen by
 +      display_line for this row.  Don't use iterator to find the
 +      position following the maximum one; instead, increment the
 +      position found by display_line directly.  Fix logic; eol_pos
 +      should be tested before the rest.  Handle the case of characters
 +      delivered from display vector (bug#6036).  Fix tests related to
 +      it->method.  Handle the truncated_on_right_p rows.
 +      (RECORD_MAX_MIN_POS): New macro.
 +      (display_line): Use it to record the minimum and maximum buffer
 +      positions for glyphs in the row being assembled.  Record the
 +      position of the newline that terminates the line.  If word wrap is
 +      in effect, restore minimum and maximum positions seen up to the
 +      wrap point, when iterator returns to it.
 +      (try_window_reusing_current_matrix): Give up if in bidi-reordered
 +      row and cursor not already at point.  Restore original pre-bidi
 +      code for unidirectional buffers.
 +
 +      * dispnew.c (increment_row_positions, check_matrix_invariants):
 +      Increment and check row->start.pos and row->end.pos, in addition
 +      to MATRIX_ROW_START_CHARPOS and MATRIX_ROW_END_CHARPOS.
 +
 +      * .gdbinit (prowlims): Display row->minpos and row->maxpos.
 +      Display truncated_on_left_p and truncated_on_right_p flags.
 +      Formatting fixes.
 +      (pmtxrows): Display the ordinal number of each row.  Don't display
 +      rows beyond the last one.
 +
 +      * bidi.c (bidi_cache_iterator_state): Don't zero out new_paragraph:
 +      it is not copied by bidi_copy_it.
 +
 +2010-05-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (sys_write): Break writes into chunks smaller than 32MB.
 +      (Bug#6237)
 +
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.c (Fimage_flush): Rename from image-refresh.
 +
 +2010-05-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (redisplay_internal): Clear caches even if redisplaying
 +      just one window.
 +
 +      * image.c (Vimage_cache_eviction_delay): Decrease to 300.
 +      (clear_image_cache): If the number of cached images is unusually
 +      large, decrease the cache eviction delay (Bug#6230).
 +
 +2010-05-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (${ns_appdir}, ${ns_appbindir}Emacs, ns-app):
 +      Move these rules to ns.mk.
 +      * ns.mk: New file.
 +
 +      * Makefile.in (../src/$(OLDXMENU), $(OLDXMENU)): Always define rules.
 +
 +      * Makefile.in (CANNOT_DUMP): New, set by configure.
 +      (emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * fileio.c (Fdelete_file): Change interative spec to use
 +      `read-file-name' like in `find-file-read-args' where the default
 +      value is `default-directory' instead of `buffer-file-name'.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00533.html
 +
 +2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +
 +      * keyboard.c (Vlast_command, Vkeyboard_translate_table)
 +      (Voverriding_terminal_local_map, Vsystem_key_alist)
 +      (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
 +
 +2010-05-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (DEPDIR): New constant.
 +      (DEPFLAGS): Set with configure, not cpp.
 +      (MKDEPDIR): New, set by configure.
 +      (.c.o, .m.o, ecrt0.o): Use $MKDEPDIR.
 +      (clean): Use $DEPDIR.
 +      (deps_frag): Include from configure.
 +      Move static/dynamic dependency stuff to deps.mk/autodeps.mk.
 +      * deps.mk, autodeps.mk: New files, extracted from Makefile.in.
 +
 +      * bidi.c (bidi_cache_shrink, bidi_cache_iterator_state):
 +      Fix reallocation of the cache.  (Bug#6210)
 +
 +2010-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/msdos.h (ORDINARY_LINK): Move to sed2v2.inp.
 +
 +      * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp.
 +      (GNULIB_VAR): Remove.
 +      (LIBES): Use LIB_GCC instead of GNULIB_VAR.
 +
 +      * m/ibms390x.h (LINKER):
 +      * m/macppc.h (LINKER) [GNU_LINUX]:
 +      * s/aix4-2.h (ORDINARY_LINK):
 +      * s/cygwin.h (LINKER):
 +      * s/darwin.h (ORDINARY_LINK):
 +      * s/gnu.h (ORDINARY_LINK):
 +      * s/netbsd.h (LINKER):
 +      * s/usg5-4.h (ORDINARY_LINK):
 +      Move to configure.
 +
 +      * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK.
 +
 +2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 +      prevent stack overflow if number of arguments is too large
 +      (Bug#6214).
 +
 +2010-05-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * charset.c (load_charset_map_from_file): Don't call close after fclose.
 +
 +2010-05-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/gnu-linux.h: Combine two conditionals.
 +
 +      * Makefile.in (otherobj): Include $(VMLIMIT_OBJ) separately from
 +      $(POST_ALLOC_OBJ).
 +
 +      * Makefile.in (RALLOC_OBJ): New, set by configure.
 +      (rallocobj): Replace with the previous variable.
 +      (otherobj): Use $RALLOC_OBJ.
 +
 +      * s/gnu.h (REL_ALLOC) [DOUG_LEA_MALLOC]:
 +      * s/gnu-linux.h (REL_ALLOC) [DOUG_LEA_MALLOC]: Move undef to configure.
 +
 +      * Makefile.in (GMALLOC_OBJ, VMLIMIT_OBJ): New, set by configure.
 +      (gmallocobj, vmlimitobj): Replace with previous two variables.
 +      (otherobj): Use $GMALLOC_OBJ, $VMLIMIT_OBJ.
 +
 +2010-05-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU_DEPS): New, set by configure.
 +      (stamp-oldxmenu): Use $OLDXMENU_DEPS.
 +
 +2010-05-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (${ns_appbindir}Emacs, ns-app): Always define these rules.
 +
 +      * Makefile.in (clean): Get rid of HAVE_NS conditional.
 +
 +      * Makefile.in (ns_appdir, ns_appbindir): Now configure adds the
 +      trailing "/".
 +
 +      * Makefile.in (TEMACS_LDFLAGS2): New, set by configure.
 +      (temacs${EXEEXT}): Combine the NS_IMPL_GNUSTEP case with the default.
 +
 +      * Makefile.in (GNUSTEP_SYSTEM_LIBRARIES): Remove, unused.
 +      (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New, set by configure.
 +      (LD) [NS_IMPL_GNUSTEP]: Set to $(CC) -rdynamic.
 +      (temacs${EXEEXT}): Remove $LOCALCPP, never defined or referenced.
 +      Make most of the NS_IMPL_GNUSTEP case the same as the default case.
 +
 +      * Makefile.in (temacs${EXEEXT}) [!NS_IMPL_GNUSTEP]:
 +      Remove ${STARTFLAGS}, nothing ever sets it.
 +
 +2010-05-16  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/ia64.h (UNEXEC): Remove, set in s/*.h.
 +
 +2010-05-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBX_BASE): Always define.
 +
 +      * Makefile.in (LIBX_OTHER): Move out of cpp section.
 +
 +      * Makefile.in (LIBXT): Always define.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU, LIBX_OTHER): Always define.
 +
 +      * Makefile.in (FONT_DRIVERS): Remove, replace with $FONT_OBJ.
 +      (obj, SOME_MACHINE_OBJECTS): Use $FONT_OBJ.
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue.  (Bug#5916)
 +      (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise.
 +
 +      * emacs.c (main): Initialize initial-environment and
 +      process-environment before generating from env, not after.
 +
 +      Handle --version reasonably in CANNOT_DUMP configuration.
 +      * emacs.c (emacs_version, emacs_copyright): New string variables.
 +      (Vemacs_version, Vemacs_copyright): New Lisp_Object variables.
 +      (syms_of_emacs): Defvar them, and initialize them from the C
 +      string variables.
 +      (main): If initialization hasn't been done, print initial version
 +      info from the C strings, instead of starting an interactive session.
  
 -      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 +2010-05-15  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-09-08  Kenichi Handa  <handa@m17n.org>
 +      * bidi.c (bidi_paragraph_init): Don't leave alone garbage values
 +      of bidi_it->paragraph_dir.  Call bidi_initialize if needed.
 +      (bidi_paragraph_init): Remove redundant assertion that we are at
 +      the beginning of a line after call to bidi_find_paragraph_start.
  
 -      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 -      we may use designation or locking-shift.
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
 +      (syms_of_xdisp): Defsubr it.
  
 -2010-09-07  Kenichi Handa  <handa@m17n.org>
 +      * cmds.c (Fforward_char, Fbackward_char): Doc fix.
  
 -      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 -      sequence when the source is multibyte.
 +      * Makefile.in: Fix MSDOS-related comments.
  
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
  
 -      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 -      characters.
 +      * Makefile.in (OLDXMENU_TARGET): New, set by configure.
 +      (really-lwlib, really-oldXMenu): Always define.
 +      ($OLDXMENU): Depend on $OLDXMENU_TARGET.
  
 -      * term.c (encode_terminal_code): Fix the previous change.
 -      (produce_glyphs): Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.
 -      (produce_special_glyphs): Set temp_it.char_to_display before
 -      calling produce_glyphs.
 +      * Makefile.in: Simplify cpp conditional.
  
 -      * xdisp.c (get_next_display_element): Set it->char_to_display
 -      here.  Convert all 8-bit bytes from unibyte buffer/string to 8-bit
 -      characters.
 -      (get_overlay_arrow_glyph_row): Set it.char_to_display too before
 -      calling PRODUCE_GLYPHS.
 -      (append_space_for_newline): Save and store it->char_to_display.
 -      Set it->char_to_display before calling PRODUCE_GLYPHS.
 -      (extend_face_to_end_of_line): Set it->char_to_display before
 -      calling PRODUCE_GLYPHS.
 -      (get_glyph_face_and_encoding): Set the glyph code an 8-bit
 -      character to its byte value.
 -      (get_char_glyph_code): New function.
 -      (produce_stretch_glyph): Set it2.char_to_display too before
 -      calling x_produce_glyphs.
 -      (x_produce_glyphs): Simplify by using the same code for ASCII and
 -      non-ASCII characters.  Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.  For a
 -      character of no glyph, use font->space_width instead of FONT_WIDTH.
 +      * Makefile.in (${ns_appdir}): Simplify using umask.
  
 -2010-08-29  Kenichi Handa  <handa@m17n.org>
 +      * Makefile.in (${ns_appdir}): Remove references to CVS-related files.
  
 -      * term.c (encode_terminal_code): Encode byte chars to the
 -      correspnding bytes.
 +2010-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-08-17  Andreas Schwab  <schwab@linux-m68k.org>
 +      * eval.c (specbind): Remove left-over duplicate test.
 +      Disallow let-binding frame-local vars.  Add comment.
  
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
 -      instead of SAFE_ALLOCA.
 +2010-05-14  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-08-17  Chong Yidong  <cyd@stupidchicken.com>
 +      Make the cache of bidi iterator states dynamically allocated.
 +      * bidi.c (bidi_cache_shrink): New function.
 +      (bidi_init_it): Call it.
 +      (bidi_cache_iterator_state): Enlarge the cache if needed.
  
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 -      (Bug#6214).
 +      * bidi.c (bidi_move_to_visually_next): Rename from
 +      bidi_get_next_char_visually.  All callers changed.
  
 -2010-08-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-05-14  Kenichi Handa  <handa@m17n.org>
  
 -      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 +      * dispextern.h (struct composition_it): New member reversed_p.
  
 -2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +      * composite.c (composition_compute_stop_pos): Search backward if
 +      ENDPOS < CHARPOS.
 +      (composition_reseat_it): Handle the case that ENDPOS < CHARPOS.
 +      Set CMP_IT->reversed_p.
 +      (composition_update_it): Pay attention to CMP_IT->reversed_p.
  
 -      * doc.c (Fsnarf_documentation): Initialize skip_file before
 -      build-files test.
 +      * xdisp.c (set_iterator_to_next):
 +      Call composition_compute_stop_pos with negative ENDPOS if we are
 +      scanning backward.  Call composition_compute_stop_pos if scan
 +      direction is changed.
 +      (next_element_from_buffer): Call composition_compute_stop_pos with
 +      negative ENDPOS if we are scanning backward.
 +      (next_element_from_composition): Pay attention to
 +      IT->cmp_it.reversed_p.
  
 -2010-08-09  Peter O'Gorman <pogma@thewrittenword.com>  (tiny change)
 +2010-05-14  Kenichi Handa  <handa@m17n.org>
  
 -      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 -      New definitions.
 -      (HAVE_TERMIO): Remove.
 +      * font.c (font_range): Return the range for the font found at first.
 +
 +2010-05-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Always define.
 +
 +      * Makefile.in (mktime, X11, register): Move undefs to configure.
 +
 +      * Makefile.in (MSDOS_OBJ): Default to empty, let msdos scripts set it.
 +      (MSDOS_X_OBJ): New variable.
 +      (MSDOS_SUPPORT_REAL): New constant.
 +      (MSDOS_SUPPORT): Set as a variable, not with cpp.
 +      (obj): Use MSDOS_X_OBJ.
 +      (lisp): Use MSDOS_SUPPORT as a variable.
 +
 +      * Makefile.in (REAL_MOUSE_SUPPORT): New constant.
 +      (GPM_MOUSE_SUPPORT): Now it's a constant.
 +      (MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): Set with configure,
 +      not cpp.
 +
 +      * Makefile.in (@NS_IMPL_GNUSTEP_INC@): Use in place of #ifdef.
 +      (ns_appresdir): Remove, unused.
 +
 +      * Makefile.in (SHELL): Move outside cpp section.
 +
 +      * s/netbsd.h (AMPERSAND_FULL_NAME): Remove (defined in AH_BOTTOM).
 +
 +2010-05-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (FONT_DRIVERS): Place with other HAVE_X_WINDOWS stuff.
 +      (TOOLTIP_SUPPORT): Place with other HAVE_WINDOW_SYSTEM stuff.
 +
 +      * Makefile.in (FONT_DRIVERS): If HAVE_X_WINDOWS is defined,
 +      HAVE_WINDOW_SYSTEM must be too.
 +
 +      * Makefile.in (WINNT_SUPPORT): Remove, nt build does not use this file.
 +      (lisp): Remove WINNT_SUPPORT.
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU) [!HAVE_MENUS]:
 +      Let configure set these variables (to empty) in this case as well.
 +
 +      * Makefile.in (LD_SWITCH_X_SITE): Define as a variable, not via cpp.
 +      (LIBX_BASE): Use $LD_SWITCH_X_SITE.
 +
 +      * Makefile.in (C_SWITCH_X_SYSTEM, C_SWITCH_X_SITE, LIB_STANDARD)
 +      (LIB_MATH, FONTCONFIG_CFLAGS, FONTCONFIG_LIBS, FREETYPE_CFLAGS)
 +      (FREETYPE_LIBS, LIBOTF_CFLAGS, LIBOTF_LIBS, M17N_FLT_CFLAGS)
 +      (M17N_FLT_LIBS, GNU_OBJC_CFLAGS, GNUSTEP_SYSTEM_LIBRARIES, LIBGPM)
 +      (LIBRESOLV, UNEXEC_OBJ): For clarity, define variables to hold
 +      the values output by configure.
 +      (ALL_CFLAGS, obj, LIBES, temacs${EXEEXT}): Use the above variables.
 +
 +2010-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (YMF_PASS_LDFLAGS, LD, LINKER): Simplify the logic.
 +      (LINKER_WAS_SPECIFIED): Remove.
 +
 +      * Makefile.in (LIB_GCC): Set using configure, not cpp.
 +      (GNULIB_VAR) [!ORDINARY_LINK]: Always set to $LIB_GCC.
 +      * m/arm.h (LIB_GCC) [GNU_LINUX]:
 +      * s/cygwin.h (LIB_GCC):
 +      * s/freebsd.h (LIB_GCC):
 +      * s/gnu-linux.h (LIB_GCC):
 +      * s/msdos.h (LIB_GCC):
 +      * s/netbsd.h (LIB_GCC):
 +      Move to configure.
 +
 +2010-05-11  Karel Klíč  <kklic@redhat.com>
 +
 +      * ftfont.c: Fix incorrect parentheses of #if condition for
 +      definining M17N_FLT_USE_NEW_FEATURE.
 +
 +2010-05-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset.
 +      * s/msdos.h (MSDOS_LIBS_SYSTEM): Remove.
 +
 +2010-05-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (init_iterator): Don't turn on bidi reordering in
 +      unibyte buffers.  See
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00263.html.
 +
 +2010-05-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBS_SYSTEM): Set using configure, not cpp.
 +      (LIBS_SYSTEM) [MSDOS]: Reset with MSDOS_LIBS_SYSTEM.
 +      (LIBES): Use LIBS_SYSTEM as a variable.
 +      * s/msdos.h (LIBS_SYSTEM): Rename to MSDOS_LIBS_SYSTEM.  Always define.
 +      * s/aix4-2.h (LIBS_SYSTEM):
 +      * s/freebsd.h (LIBS_SYSTEM):
 +      * s/hpux10-20.h (LIBS_SYSTEM):
 +      * s/sol2-6.h (LIBS_SYSTEM):
 +      * s/unixware.h (LIBS_SYSTEM):
 +      Move to configure.
 +
 +      * s/aix4-2.h (MAIL_USE_LOCKF):
 +      * s/bsd-common.h (MAIL_USE_FLOCK):
 +      * s/darwin.h (MAIL_USE_FLOCK):
 +      * s/gnu-linux.h (MAIL_USE_FLOCK):
 +      * s/irix6-5.h (MAIL_USE_FLOCK):
 +      * s/template.h (MAIL_USE_FLOCK):
 +      Move to configure.
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * composite.c (autocmp_chars): Save point as marker before calling
 +      auto-composition-function (Bug#5984).
 +
 +      * lisp.h (restore_point_unwind): Add prototype.
 +
 +      * fileio.c (restore_point_unwind): Remove static attribute.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
 +      new feature of libotf and m17n-flt.
 +      (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
 +      Call OTF_check_features even if no specific feature is given.
 +      (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
 +      (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
 +      that OUT is NULL.  Use OTF_drive_gsub_with_log and
 +      OTF_drive_gpos_with_log instead of OTF_drive_gsub and
 +      OTF_drive_gpos.
 +      (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
 +      (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
 +      Setup mflt_enable_new_feature and mflt_try_otf.
 +
 +2010-05-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ftool_bar_get_system_style): Correct comment.
 +
 +      * gtkutil.c (xg_pack_tool_bar): Change show_all to show for handle
 +      box and toolbar (Bug #6139).
 +      (xg_create_tool_bar): Remove comment (Bug #6139).
 +      (xg_make_tool_item): Remove gtk_widget_show_all (Bug #6139).
 +      (xg_show_toolbar_item): Add gtk_widget_show for weventbox (Bug #6139).
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/eval.$(O), $(BLD)/w32fns.$(O)):
 +      Update dependencies.
 +
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.c (update_window_fringes): Set up truncation bitmaps for
 +      R2L lines.
 +
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (THIS_IS_MAKEFILE): Remove, unused.
 +
 +      * Makefile.in (LIBS_TERMCAP): Set with configure, not cpp.
 +      (TERMCAP_OBJ): New, set by configure, replacing termcapobj.
 +      (termcapobj): Replace with TERMCAP_OBJ.
 +      (otherobj): Use $TERMCAP_OBJ instead of $termcapobj.
 +      (LIBES): Use LIBS_TERMCAP as a variable.
 +
 +      * s/freebsd.h (osreldate.h): No longer include, since this file
 +      does not use __FreeBSD_version any more.
 +
 +      * s/aix4-2.h (TERMINFO):
 +      * s/cygwin.h (TERMINFO):
 +      * s/darwin.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/freebsd.h (TERMINFO, LIBS_TERMCAP):
 +      * s/gnu-linux.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/gnu.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/hpux10-20.h (TERMINFO, LIBS_TERMCAP):
 +      * s/irix6-5.h (TERMINFO):
 +      * s/netbsd.h (LIBS_TERMCAP):
 +      * s/openbsd.h (TERMINFO, LIBS_TERMCAP):
 +      * s/sol2-6.h (LIBS_TERMCAP) [!TERMINFO]:
 +      * s/usg5-4.h (TERMINFO):
 +      Move to configure.
 +
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (unbind_to): Don't unbind a local binding into the global
 +      binding when the local binding disappeared.  Inversely, don't unbind
 +      a global binding into a newly created local binding.
 +      * data.c (set_internal): Make its `buf' arg into a `where' arg so we
 +      can specify the frame to use, when applicable.  Adjust callers.
 +
 +2010-05-07  Vincent Belaïche  <vincent.belaiche@gmail.com>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * floatfns.c (Fisnan, Fcopysign, Ffrexp, Fldexp): New functions.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c: Include w32.h.
 +      (Fw32_shell_execute): Decode the error message before passing it
 +      to `error'.  (Bug#6126)
 +
 +      * msdos.c (dos_set_window_size):
 +      * w16select.c (Fx_selection_exists_p): Use `Fsymbol_value (foo)'
 +      instead of `XSYMBOL (foo)->value'.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix the MS-DOS build, broken by autoconfiscation.
 +
 +      * Makefile.in: Don't use Make-style comments past the "start of
 +      cpp stuff" line.
 +      (MSDOS_OBJ): Remove xmenu.o (it is now defined by XMENU_OBJ).
 +
 +      * s/msdos.h (UNEXEC): Don't define (@unexec@ in Makefile.in is
 +      edited directly by msdos/sed1v2.inp).
 +
 +2010-05-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM): Set with configure, not cpp.
 +      (LD_SWITCH_SYSTEM_EXTRA): New variable, set by configure.
 +      (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM and $LD_SWITCH_SYSTEM_EXTRA,
 +      move out of cpp section.
 +      * s/freebsd.h (LD_SWITCH_SYSTEM):
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM):
 +      * s/netbsd.h (LD_SWITCH_SYSTEM):
 +      * s/openbsd.h (LD_SWITCH_SYSTEM): Move to configure.in.
 +
 +2010-05-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Define LIB_STANDARD and START_FILES using autoconf.
 +      * s/usg5-4.h (LIB_STANDARD):
 +      * s/netbsd.h (START_FILES):
 +      * s/irix6-5.h (LIB_STANDARD):
 +      * s/hpux10-20.h (LIB_STANDARD, START_FILES):
 +      * s/gnu-linux.h (START_FILES, LIB_STANDARD):
 +      * s/freebsd.h (START_FILES):
 +      * s/darwin.h (START_FILES):
 +      * s/cygwin.h (START_FILES):
 +      * s/aix4-2.h (LIB_STANDARD):
 +      * m/ibmrs6000.h (START_FILES): Remove, move logic to configure.in.
 +      * Makefile.in (STARTFILES): Rename to START_FILES, define using
 +      autoconf, not cpp.
 +
 +2010-05-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove NEED_BSDTTY and NEED_UNISTD_H.
 +      * s/hpux10-20.h (NEED_BSDTTY): Remove.
 +      * s/aix4-2.h (NEED_UNISTD_H): Remove.
 +      * systty.h: Simplify conditionals for including <sys/bsdtty.h>,
 +      <sys/ptyio.h> and <unistd.h>.
 +
 +      * emacs.c (main): Remove NO_DIR_LIBRARY conditional, unused.
 +
 +      * Makefile.in (STARTFILES): Conditionally define to make the usage clear.
 +      * s/gnu.h (START_FILES): Remove empty definition.
 +
 +2010-05-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_draw_image_relief): Move declaration of extra to beginning.
 +
 +2010-05-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (CPP, LN_S): Remove unused variables.
 +
 +2010-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.c (Fchar_syntax): Check the arg is a character (bug#6080).
 +
 +2010-05-05  Lawrence Mitchell  <wence@gmx.li>
 +
 +      * m/sparc.h: Fix typo in earlier change.
 +
 +2010-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Misc tweaks.
 +      * eval.c (Fdefvaralias): Remove unintended nested if.
 +      (internal_condition_case_2, internal_condition_case_n): Use ANSI type.
 +
 +2010-05-04  Bernhard Herzog  <bh@intevation.de>  (tiny change)
 +
 +      * xsmfns.c (smc_save_yourself_CB): strlen(client_id) => strlen(cwd).
 +
 +2010-05-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove BSD_PGRPS.
 +      * s/bsd-common.h (BSD_PGRPS): Remove undef.
 +      * s/gnu-linux.h (BSD_PGRPS): Remove.
 +      * term.c (dissociate_if_controlling_tty):
 +      * sysdep.c (narrow_foreground_group, widen_foreground_group)
 +      (init_sys_modes, reset_sys_modes):
 +      * emacs.c (main):
 +      * callproc.c (Fcall_process, child_setup): Remove code depending
 +      on BSD_PGRPS.
 +
 +      Remove POSIX_SIGNALS.
 +      * s/usg5-4.h (POSIX_SIGNALS):
 +      * s/netbsd.h (POSIX_SIGNALS):
 +      * s/msdos.h (POSIX_SIGNALS):
 +      * s/ms-w32.h (POSIX_SIGNALS):
 +      * s/hpux11.h (POSIX_SIGNALS):
 +      * s/gnu.h (POSIX_SIGNALS):
 +      * s/gnu-linux.h (POSIX_SIGNALS):
 +      * s/freebsd.h (POSIX_SIGNALS):
 +      * s/darwin.h (POSIX_SIGNALS):
 +      * s/cygwin.h (POSIX_SIGNALS):
 +      * s/aix4-2.h (POSIX_SIGNALS): Remove definition.
 +      * s/unixware.h:
 +      * s/sol2-6.h: Remove comments on POSIX_SIGNALS.
 +      * process.c (create_process):
 +      * syssignal.h:
 +      * sysdep.c (wait_for_termination, init_signals):
 +      * process.c (create_process):
 +      * msdos.c: POSIX_SIGNALS is always defined on all platforms,
 +      remove all code that assumes the contrary.
 +
 +2010-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM): Use LD_SWITCH_X_SITE_AUX as a shell
 +      variable.
 +      * s/netbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
 +      (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH.
 +      * s/openbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
 +      (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH instead of
 +      LD_SWITCH_SYSTEM_tmp.
 +      * Makefile.in (LD_SWITCH_X_SITE_AUX, LD_SWITCH_X_SITE_AUX_RPATH):
 +      New variables, set by configure.
 +
 +      * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
 +      * s/darwin.h (HEADERPAD_EXTRA, LIBS_NSGUI): Remove.
 +      (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
 +      * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable, set by configure.
 +      (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM_TEMACS.
 +
 +      * s/aix4-2.h (C_SWITCH_SYSTEM):
 +      * m/alpha.h (C_SWITCH_MACHINE):
 +      Move to configure.in.
 +      * Makefile.in (C_SWITCH_MACHINE, C_SWITCH_SYSTEM):
 +      New variables, set by configure.
 +      (ALL_CFLAGS): Use $C_SWITCH_MACHINE and $C_SWITCH_SYSTEM in place of
 +      $c_switch_machine and $c_switch_system.
 +
 +2010-05-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/hpux10-20.h (LIB_STANDARD): New definition.
 +      * Makefile.in (ORDINARY_LINK): Remove setting LIB_STANDARD based
 +      on it, not used anymore.
 +
 +2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * eval.c (internal_condition_case_n): Rename from
 +      internal_condition_case_2.
 +      (internal_condition_case_2): New function.
 +
 +      * xdisp.c (safe_call): Use internal_condition_case_n.
 +
 +      * fileio.c (Fdelete_file, internal_delete_file): New arg FORCE.
 +      (internal_delete_file, Frename_file): Callers changed.
 +
 +      * buffer.c (Fkill_buffer):
 +      * callproc.c (delete_temp_file): Callers changed (Bug#6070).
 +
 +      * lisp.h: Update prototypes.
 +
 +2010-05-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBX_EXTRA, LIBX_BASE): New variables.
 +      (LIBXT_OTHER, LIBX_OTHER): New, set by configure.
 +      (LIBXT): Set with configure, not cpp.
 +      (LIBX): Remove.
 +      (LIBES): Replace $LIBX with $LIBX_BASE and $LIBX_OTHER.
 +
 +2010-05-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD): Remove.
 +      The FreeBSD is not needed, the default works, Solaris version is
 +      not needed, and the remaining case is not supported by configure.
 +
 +2010-05-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsmfns.c (CHDIR_OPT): New define.
 +      (smc_save_yourself_CB): Add CHDIR_OPT to options to use when
 +      restarting emacs.
 +
 +      * xterm.c (x_connection_closed): Call Fkill_emacs instead of
 +      shut_down_emacs.
 +
 +      * emacs.c (USAGE1): Mention --chdir.
 +      (main): Handle --chdir.
 +      (standard_args): Add --chdir.
 +      (fatal_error_signal): Call Fkill_emacs for SIGTERM and SIGHUP (Bug
 +      #5552).
 +
 +2010-05-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove LD_SWITCH_MACHINE.
 +      * Makefile.in (LD_SWITCH_MACHINE): Remove definition, unused.
 +      (TEMACS_LDFLAGS): Do not use LD_SWITCH_MACHINE.
 +
 +      Clean up IRIX code.
 +      * m/iris4d.h (TERMINFO, FIRST_PTY_LETTER): Move definitions ...
 +      * s/irix6-5.h (TERMINFO, FIRST_PTY_LETTER): ... here.
 +
 +      Clean up AIX code.
 +      * m/ibmrs6000.inp: Remove file, unused.
 +      * m/ibmrs6000.h (IBMR2AIX): Remove, unused.
 +      (LD_SWITCH_MACHINE): Rename to LD_SWITCH_SYSTEM_TEMACS, and move
 +      definition ...
 +      * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): ... here.
 +
 +      * sysdep.c (child_setup_tty, init_sys_modes): Remove !IBMR2AIX code,
 +      unused.
 +
 +2010-05-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Emulate POSIX_SIGNALS on MS-Windows.
 +
 +      * s/ms-w32.h (POSIX_SIGNALS, struct sigaction, SIG_BLOCK)
 +      (SIG_SETMASK, SIG_UNBLOCK): Define.
 +
 +      * sysdep.c (sys_signal) [WINDOWSNT]: #ifdef away.
 +      (wait_for_termination) [WINDOWSNT]: Move MS-Windows specific code
 +      from non-POSIX_SIGNALS section to POSIX_SIGNALS section.
 +
 +      * w32.c (sigemptyset, sigaddset, sigfillset, sigprocmask):
 +      New stubs.
 +
 +      Miscellaneous fixes of bidi display.
 +
 +      * xdisp.c (find_row_end): New function, refactored from display_line.
 +      (display_line): Use it.
 +      (extend_face_to_end_of_line): In almost-filled rows, extend only
 +      if the row is R2L and not continued.
 +      (display_line): Fix prepending of truncation glyphs to R2L rows.
 +      Preserve overlay and string info in row->end.
 +      (insert_left_trunc_glyphs): Support addition of left truncation
 +      glyphs to R2L rows.
 +      (set_cursor_from_row): Don't place cursor on the vertical border
 +      glyph between adjacent windows.  Fix a crash when a display string
 +      is continued to the next line.  Don't return zero if cursor was
 +      found by `cursor' property of a display string.
 +      (try_cursor_movement): Don't assume that row->end == (row+1)->start,
 +      test for that explicitly.
 +
 +2010-05-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (gmallocobj, rallocobj, vmlimitobj): Initialize to null,
 +      for clarity.
 +      (OTHER_OBJ): Remove.
 +      (PRE_ALLOC_OBJ, POST_ALLOC_OBJ): New, set by configure.
 +      (otherobj): Use PRE_ALLOC_OBJ, POST_ALLOC_OBJ rather than OTHER_OBJ.
 +
 +2010-05-01  Karel Klíč  <kklic@redhat.com>
 +
 +      * fileio.c (Ffile_selinux_context): Context functions may return null.
 +
 +2010-04-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/gnu.h (POSIX_SIGNALS, START_FILES): New definitions.
 +
 +2010-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (vmlimitobj) [!SYSTEM_MALLOC]: New variable.  (Bug#6065)
 +      (OTHER_OBJ): Define as a separate variable, for clarity.
 +
 +2010-04-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c: include limits.h and update file comment.
 +
 +2010-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU) [HAVE_MENUS]:
 +      Set with configure, not cpp.
 +      (LIBW): Remove, replace with $TOOLKIT_LIBW.
 +
 +      * Makefile.in (mallocobj): Remove.
 +      (otherobj): Simplify using @OTHER_OBJ@.
 +
 +      * Makefile.in (dispnew.o, frame.o, fringe.o, font.o, fontset.o)
 +      (keyboard.o, window.o, xdisp.o, xfaces.o, menu.o):
 +      Don't bother making nsgui.h dependency platform-specific.
 +
 +      * Makefile.in (nsfns.o): Remove duplicate nsgui.h dependency.
 +
 +2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (read_process_output, exec_sentinel): Don't burp if the
 +      sentinel/filter kills the current buffer (bug#6060).
 +
 +      Fix wrong-docstring problem introduced with hash-consing.  (Bug#6008)
 +      * eval.c (Fautoload): Set doc to a unique number rather than to 0.
 +      Remove unused var `args'.
 +      * lisp.h (XSETCARFASTINT, XSETCDRFASTINT): Remove.
 +      (LOADHIST_ATTACH): Wrap with do...while to avoid surprises for callers.
 +      * doc.c (store_function_docstring): Use XSETCAR.
 +
 +2010-04-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT): New variables.
 +      (WINDOW_SUPPORT) [HAVE_WINDOW_SYSTEM]: Use them.
 +
 +      * Makefile.in (CYGWIN_OBJ): Set with configure, not cpp.
 +
 +      * Makefile.in (GPM_MOUSE_SUPPORT): New, set by configure.
 +      (MOUSE_SUPPORT) [!HAVE_MOUSE]: Use $GPM_MOUSE_SUPPORT.
 +
 +      * Makefile.in (FONT_OBJ): New, set by configure.
 +      (FONT_DRIVERS): Use $FONT_OBJ.
 +
 +      * Makefile.in (LIBXMU): Set with configure, not cpp.
 +      * s/aix4-2.h (LIBXMU):
 +      * s/hpux10-20.h (LIBXMU):
 +      Remove definition, now set in configure.
 +
 +      * Makefile.in (NS_OBJ, NS_SUPPORT): Set with configure, not cpp.
 +
 +      * m/amdx86-64.h [i386]: Move this test to configure.in.
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBXTR6): Set with configure, not cpp.
 +      * s/unixware.h (NEED_LIBW): Remove definition.
 +
 +      * Makefile.in (LUCID_LIBW, MOTIF_LIBW): Remove, replacing by...
 +      (TOOLKIT_LIBW): New, set by configure.
 +      (@X_TOOLKIT_TYPE@): No longer define it.
 +
 +      * Makefile.in (LIBXP): Remove, since included in MOTIF_LIBW.
 +      (MOTIF_LIBW): Set with configure, not cpp.
 +      * s/aix4-2.h (LIB_MOTIF):
 +      * s/gnu-linux.h (LIB_MOTIF):
 +      * s/unixware.h (LIB_MOTIF): Move to configure.in.
 +
 +2010-04-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Reduce CPP usage.
 +      * Makefile.in (LIB_X11_LIB): Remove, inline in the only user.
 +      (obj): Use autoconf for unexec instead of cpp.
 +      (C_SWITCH_SYSTEM, C_SWITCH_MACHINE, C_SWITCH_X_SITE):
 +      Remove definitions and undefs.  Inline definitions in the only user.
 +      (ALL_CFLAGS): Substitute C_SWITCH_X_SYSTEM using autoconf.
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around,
 +      since the defaults (set by the system file) are fine in most cases.
 +      [GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections.
 +      * m/ibms390x.h (START_FILES, LIB_STANDARD):
 +      * m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]:
 +      * m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]:
 +      Remove definitions, since they are set correctly in s/gnu-linux.h.
 +      * s/freebsd.h (START_FILES, LIB_STANDARD):
 +      * s/gnu-linux.h (START_FILES, LIB_STANDARD):
 +      * s/hpux10-20.h (START_FILES):
 +      * s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1):
 +      Use $CRT_DIR in place of fixed /usr/lib, /lib directories.
 +
 +      * Makefile.in (LIBXP, LUCID_LIBW, WIDGET_OBJ): Set via configure.
 +      (MOTIF_LIBW): Use $LIBXP.
 +      (otherobj): Use $WIDGET_OBJ.
 +
 +2010-04-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (LIBS_MACHINE): Remove, unused.
 +
 +      Use autoconf instead of cpp for LIB_MATH.
 +      * s/darwin.h (LIB_MATH): Do not define here, move to configure.
 +      * s/cygwin.h (LIB_MATH): Likewise.
 +      * Makefile.in (LIB_MATH): Do not define with cpp.
 +      (LIBES): Use autoconf for LIB_MATH.
 +
 +2010-04-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (Ffind_composition_internal): Fix the return value
 +      for an automatic composition.
 +
 +2010-04-25  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove all NO_ARG_ARRAY uses.
 +      * fns.c (concat2, concat3, nconc2):
 +      * eval.c (apply1, call1, call2, call3, call4, call5, call6)
 +      (call7): Remove NO_ARG_ARRAY usage, assume it's always true.
 +      * m/xtensa.h (NO_ARG_ARRAY):
 +      * m/template.h (NO_ARG_ARRAY):
 +      * m/sparc.h (NO_ARG_ARRAY):
 +      * m/sh3.h (NO_ARG_ARRAY):
 +      * m/mips.h (NO_ARG_ARRAY):
 +      * m/macppc.h (NO_ARG_ARRAY):
 +      * m/iris4d.h (NO_ARG_ARRAY):
 +      * m/intel386.h (NO_ARG_ARRAY):
 +      * m/ibms390x.h (NO_ARG_ARRAY):
 +      * m/ibms390.h (NO_ARG_ARRAY):
 +      * m/ibmrs6000.h (NO_ARG_ARRAY):
 +      * m/ia64.h (NO_ARG_ARRAY):
 +      * m/hp800.h (NO_ARG_ARRAY):
 +      * m/arm.h (NO_ARG_ARRAY):
 +      * m/amdx86-64.h (NO_ARG_ARRAY):
 +      * m/alpha.h (NO_ARG_ARRAY): Remove definition.
 +
 +2010-04-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Don't assume 2nd call to
 +      get_next_display_element cannot return zero.  (Bug#6030)
 +      (iterate_out_of_display_property): New function, body from pop_it.
 +      (pop_it): Use it.
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD) [__OpenBSD__]:
 +      For clarity, revert to using fixed /usr/lib rather than $CRT_DIR.
 +      (START_FILES, LIB_STANDARD) [__FreeBSD__]: Merge into the generic case,
 +      since CRT_DIR defaults to /usr/lib.  Suggested by Dan Nicolaescu.
 +
 +2010-04-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Use `reseat' instead of `reseat_1', and
 +      use `get_next_display_element' and `set_iterator_to_next' to
 +      advance to the next character, when looking for the character that
 +      begins the next row.
 +
 +      * .gdbinit: Add a "set Fmake_symbol" line to force GDB to load the
 +      definition of "struct Lisp_Symbol".
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (CRT_DIR): New variable, set by configure.
 +      * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
 +      Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in: Remove C_SWITCH_X_MACHINE, unused.
 +
 +      * s/cygwin.h (LIBS_DEBUG): Remove, unused.
 +
 +      Remove redundant flags.
 +      * s/freebsd.h (C_SWITCH_SYSTEM):
 +      * s/hpux10-20.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT):
 +      * s/netbsd.h (C_SWITCH_SYSTEM):
 +      * s/openbsd.h (LD_SWITCH_X_DEFAULT): Remove, configure takes care
 +      of these.
 +
 +      Simplify m/intel386.h.
 +      * m/intel386.h (CRT0_DUMMIES): Remove, inline value in the only
 +      user: ecrt0.c.
 +      (SOLARIS2): Remove LOAD_AVE_TYPE, LOAD_AVE_CVT, LIBS_MACHINE, unused.
 +      (USG5_4): Move LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE definitions to
 +      the only user: s/unixware.h.
 +      * ecrt0.c: Remove #ifndef static.  Inline CRT0_DUMMIES definition
 +      from m/intel386.h.
 +      * s/unixware.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE):
 +      Definitions moved here from m/intel386.h.
 +
 +      * m/mips.h: Remove #if 0 code.
 +
 +2010-04-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix display of composed characters from L2R scripts in bidi buffers.
 +      * xdisp.c (set_iterator_to_next, next_element_from_composition):
 +      After advancing IT past the composition, resync the bidi iterator
 +      with IT's position.  (Bug#5977)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (LD_SWITCH_MACHINE_TEMACS): Remove, unused.
 +      (TEMACS_LDFLAGS): Don't use LD_SWITCH_SYSTEM_TEMACS.
 +
 +2010-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gtkutil.c: Include xsettings.h for Ftool_bar_get_system_style.
 +
 +2010-04-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Support `display' text properties and overlay strings in bidi buffers.
 +      * xdisp.c (pop_it): When the stack is popped after displaying
 +      from a string, bidi-iterate to exit from the text portion covered
 +      by the `display' property or overlay.  (Bug#5988, bug#5920)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/macppc.h (LD_SWITCH_SYSTEM_TEMACS): Remove #undef.
 +      (LD_SWITCH_MACHINE_TEMACS): Remove, configure sets nocombreloc.
 +
 +      * s/netbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure sets nocombreloc.
 +      * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove.
 +
 +      Simplify STARTFILES definition.
 +      * s/hpux10-20.h (START_FILES): Explicitly define here instead of
 +      relying on Makefile.in to define it.
 +      * s/cygwin.h (START_FILES): Likewise.
 +      * Makefile.in (STARTFILES): Remove conditional code, not needed anymore.
 +
 +      Clean up Solaris code.
 +      * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS, C_SWITCH_X_SYSTEM)
 +      (LIB_MOTIF): Remove, configure takes care of this.
 +      (NOT_USING_MOTIF): Remove, unused.
 +      * xrdb.c: Remove #if 0-ed #include.
 +      (SYSV): Remove conditional for old SysV.
 +      * sysdep.c (closedir): Remove conditional code for Solaris,
 +      Solaris has closedir.
 +
 +2010-04-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (read_and_apply_settings): Check if current_font is
 +      NULL before strcmp (Bug#6001).
 +
 +2010-04-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Clean up HP-UX files.
 +      * m/hp800.h (NO_REMAP, VIRT_ADDR_VARIES, DATA_SEG_BITS)
 +      (DATA_START, TEXT_START, LOAD_AVE_TYPE, LOAD_AVE_CVT)
 +      (LDAV_SYMBOL, index, rindex): Move definitions only used in HP-UX ...
 +      * s/hpux10-20.h: ... to the only user, here.
 +
 +2010-04-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_find_paragraph_start, bidi_at_paragraph_end): Don't
 +      use buffer-local values of paragraph-start and paragraph-separate.
 +      <paragraph_start_re, paragraph_separate_re>: Rename from
 +      fallback_paragraph_start_re and fallback_paragraph_separate_re.
 +      (Bug#5992)
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c: Qmonospace_font_name, Qtool_bar_style and
 +      current_tool_bar_style are new.
 +      (store_config_changed_event): Rename from store_font_changed_event.
 +      (XSETTINGS_TOOL_BAR_STYLE): New define.
 +      (SEEN_FONT, SEEN_TB_STYLE): New enum values.
 +      (struct xsettings): Add font and tb_style, set xft stuff inside #ifdef
 +      HAVE_XFT.
 +      (something_changedCB): store_font_changed_event is now
 +      store_config_changed_event.
 +      (parse_settings): Rename from parse_xft_settings.
 +      Read non-xft xsettings outside #ifdef HAVE_XFT.
 +      (read_settings): Rename from read_xft_settings.
 +      (apply_xft_settings): Take current settings as parameter.  Do not
 +      call read_(xft)_settings.
 +      (read_and_apply_settings): New function.
 +      (xft_settings_event): Do non-xft stuff out of HAVE_XFT.
 +      Call read_and_apply_settings if there are settings to be read.
 +      (init_xsettings): Rename from init_xfd_settings.
 +      Call read_and_apply_settings unconditionally.
 +      (xsettings_initialize): Call init_xsettings.
 +      (Ftool_bar_get_system_style): New function.
 +      (syms_of_xsettings): Define Qmonospace_font_name and
 +      Qtool_bar_style.  Initialize current_tool_bar_style to nil.
 +      defsubr Stool_bar_get_system_style.  Fprovide on
 +      dynamic-setting.
 +      Move misplaced HAVE_GCONF
 +
 +      * xsettings.h (Ftool_bar_get_system_style): Declare.
 +
 +      * xdisp.c: Vtool_bar_style, tool_bar_max_label_size,
 +      Qtext, Qboth, Qboth_horiz are new.
 +      (syms_of_xdisp): Intern Qtext, Qboth, Qboth_horiz, DEFVAR
 +      Vtool_bar_style, tool_bar_max_label_size.
 +
 +      * lisp.h: Extern declare Qtext, Qboth, Qboth_horiz.
 +
 +      * keyboard.c: QClabel is new.
 +      (parse_tool_bar_item): Take out QClabel from tool bar items.
 +      Try to construct a label if ther is no QClabel.
 +      (syms_of_keyboard): Intern :label as QClabel.
 +
 +      * dispextern.h (tool_bar_item_idx): TOOL_BAR_ITEM_LABEL is new.
 +      (Vtool_bar_style, tool_bar_max_label_size, DEFAULT_TOOL_BAR_LABEL_SIZE):
 +      New.
 +
 +      * Makefile.in (SOME_MACHINE_LISP): font-setting.el renamed to
 +      dynamic-setting.el.
 +
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Handle label in tool bar item.
 +      (xg_make_tool_item, xg_show_toolbar_item): New function.
 +      (update_frame_tool_bar): Take label from TOOL_BAR_ITEM_LABEL.
 +      Call xg_make_tool_item to make a tool bar item.
 +      Call xg_show_toolbar_item.  Use wtoolbar instead of x->toolbar_widget.
 +
 +      * xterm.c (x_draw_image_relief): Take Vtool_bar_button_margin
 +      into account for toolbars.
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * data.c (make_blv): Declarations before code (Bug#5993).
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (DBUS_OBJ, GTK_OBJ, XMENU_OBJ, XOBJ):
 +      Define using autoconf, not cpp.
 +      (LIBXSM): New variable, set by autoconf.
 +      (LIBXT): Use $LIBXSM.
 +
 +2010-04-21  Dan Nicolaescu  <local_user@dannlt>
 +
 +      Remove NOMULTIPLEJOBS, unused.
 +      * s/template.h (NOMULTIPLEJOBS):
 +      * s/msdos.h (NOMULTIPLEJOBS): Remove, unused.
 +
 +      Simplify LD_SWITCH_SYSTEM_TEMACS usage.
 +      * s/freebsd.h (LD_SWITCH_SYSTEM_TEMACS):
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure
 +      detects -znocombreloc and passes it to the linker
 +      * s/hpux10-20.h (LD_SWITCH_SYSTEM_TEMACS): Remove, empty.
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBSELINUX_LIBS): Move out of #ifdef.
 +
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
 +
 +      * Makefile.in (LIBSELINUX_LIBS): New.
 +      (LIBES): Add $LIBSELINUX_LIBS.
 +      * eval.c, lisp.h (call7): New function.
 +      * fileio.c [HAVE_LIBSELINUX]: Include selinux headers.
 +      (Ffile_selinux_context, Fset_file_selinux_context):
 +      New functions.
 +      (Fcopy_file): New parameter preserve-selinux-context.
 +      (Frename_file): Preserve selinux context when renaming by copy-file.
 +
 +2010-04-21  Juanma Barranquero  <lekktu@gmail.com>
 +            Eli Zaretskii  <eliz@gnu.org>
 +
 +      Don't depend on cm.c or termcap.c on Windows, use stubs.
 +      * makefile.w32-in (OBJ1): Remove cm.$(O) and termcap.$(O).
 +      ($(BLD)/cm.$(O), $(BLD)/termcap.$(O)): Remove.
 +      * w32console.c (current_tty, cost): New vars; lifted from cm.c.
 +      (evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear)
 +      (sys_tputs, sys_tgetstr): New stubs.
 +      * s/ms-w32.h (chcheckmagic, cmcostinit, cmgoto, cmputc, Wcm_clear)
 +      (tputs, tgetstr): New; define to sys_*.
 +
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c (syms_of_buffer) <bidi-display-reordering>: Doc fix.
 +
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
 +      Just signal a warning rather than an error when inside a let.
 +      (Fmake_variable_frame_local): Add the same test.
 +
 +      * font.c (syms_of_font): Make the style table vars read-only.
 +
 +      * buffer.h (struct buffer): Remove unused var `direction_reversed'.
 +      * buffer.c (init_buffer_once, syms_of_buffer): Remove its initialization.
 +
 +      * bidi.c (bidi_initialize): Simplify fallback_paragraph_*_re init.
 +
 +2010-04-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix R2L paragraph display on TTY.
 +
 +      * xdisp.c (unproduce_glyphs): New function.
 +      (display_line): Use it when produced glyphs are discarded from R2L
 +      glyph rows.
 +      (append_composite_glyph): In R2L rows, prepend the glyph rather
 +      than appending it.
 +
 +      * term.c (append_composite_glyph): In R2L rows, prepend the glyph
 +      rather than append it.  Set up the resolved_level and bidi_type
 +      attributes of the appended glyph.
 +      (produce_special_glyphs): Mirror the backslash continuation
 +      character in R2L lines.
 +
 +      Implement display of R2L paragraphs in GUI sessions.
 +
 +      * xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for
 +      append_stretch_glyph.
 +      (set_cursor_from_row) <cursor_x>: Remove unused variable.
 +      Fix off-by-one error in computing x at end of text in the row.
 +      (append_stretch_glyph): In reversed row, prepend the glyph rather
 +      than append it.  Set resolved_level and bidi_type of the glyph.
 +      (extend_face_to_end_of_line): If the row is reversed, prepend a
 +      stretch glyph whose width is such that the rightmost glyph will be
 +      drawn at the right margin of the window.  Fix off-by-one error on
 +      TTY frames in testing whether a line needs face extension.
 +      Fix face extension at ZV.  If this is the last glyph row, use
 +      DEFAULT_FACE_ID, to avoid painting the rest of the window with the
 +      region face.
 +      (set_cursor_from_row, display_line):
 +      Use MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of
 +      row->continuation_lines_width.
 +      (next_element_from_buffer): Don't call bidi_paragraph_init if we
 +      are at ZV.  Fixes a crash when reseated to ZV by
 +      try_window_reusing_current_matrix.
 +      (display_and_set_cursor, erase_phys_cursor): Handle negative HPOS,
 +      which happens with R2L glyph rows.  Fixes a crash when inserting a
 +      character at end of an R2L line.
 +      (set_cursor_from_row): Don't be fooled by truncated rows: don't
 +      treat them as having zero-width characters.  Improve comments.
 +      Don't reverse pos_before and pos_after for reversed glyph rows.
 +      Set cursor.x to negative value when the cursor might be on the
 +      left fringe.
 +      (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the
 +      left fringe, not the right one.
 +      (notice_overwritten_cursor, draw_phys_cursor_glyph)
 +      (erase_phys_cursor): For reversed cursor_row, support cursor on
 +      the left fringe.
 +
 +      * fringe.c (update_window_fringes): For R2L rows, swap the bitmaps
 +      of continuation indicators on the fringes.
 +      (draw_fringe_bitmap): For reversed glyph rows, allow cursor on the
 +      left fringe.
 +
 +      * w32term.c (w32_draw_window_cursor): For reversed glyph rows,
 +      draw cursor on the left fringe.
 +
 +      * xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
 +      cursor on the left fringe.
 +
 +      * dispnew.c (update_text_area): Handle reversed desired rows when
 +      the cursor is on the left fringe.
 +      (set_window_cursor_after_update): Limit cursor's hpos by -1 from
 +      below, not by 0, for when the cursor is on the left fringe.
 +
 +2010-04-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_event_is_for_scrollbar): Check if grabbed
 +      widget is a scrollbar.
 +
 +2010-04-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * charset.c (char_charset): Consider Vcharset_non_preferred_head
 +      only when the arg CHARSET_LIST is nil.
 +
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Make variable forwarding explicit rather the using special values.
 +      Basically, this makes the structure of buffer-local values and object
 +      forwarding explicit in the type of Lisp_Symbols rather than use
 +      special Lisp_Objects for that.  This tends to lead to slightly more
 +      verbose code, but is more C-like, simpler, and makes it easier to make
 +      sure we handled all cases, among other things by letting the compiler
 +      help us check it.
 +      * lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
 +      Removing forwarding objects.
 +      (enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
 +      (struct Lisp_Symbol): Make the various forms of variable-forwarding
 +      explicit rather than hiding them inside Lisp_Object "values".
 +      (XFWDTYPE): New macro.
 +      (XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
 +      (XBUFFER_LOCAL_VALUE): Remove.
 +      (SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
 +      (SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
 +      (SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
 +      (struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
 +      (struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
 +      Remove the Lisp_Misc_* header.
 +      (struct Lisp_Buffer_Local_Value): Redefine.
 +      (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
 +      (struct Lisp_Misc_Any): Add filler to get the right size.
 +      (struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
 +      Lisp_Intfwd.
 +      (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
 +      (DEFVAR_KBOARD): Allocate a forwarding object.
 +      * data.c (do_blv_forwarding, store_blv_forwarding): New macros.
 +      (let_shadows_global_binding_p): New function.
 +      (union Lisp_Val_Fwd): New type.
 +      (make_blv): New function.
 +      (swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
 +      (store_symval_forwarding, swap_in_global_binding, Fboundp)
 +      (swap_in_symval_forwarding, find_symbol_value, Fset)
 +      (let_shadows_buffer_binding_p, set_internal, default_value)
 +      (Fset_default, Fmake_variable_buffer_local, Fmake_local_variable)
 +      (Fkill_local_variable, Fmake_variable_frame_local)
 +      (Flocal_variable_p, Flocal_variable_if_set_p)
 +      (Fvariable_binding_locus):
 +      * xdisp.c (select_frame_for_redisplay):
 +      * lread.c (Fintern, Funintern, init_obarray, defvar_int)
 +      (defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
 +      * frame.c (store_frame_param):
 +      * eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
 +      * bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
 +      value structure.
 +      * buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
 +      (clone_per_buffer_values): Only adjust markers into the current buffer.
 +      (reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
 +      (Fbuffer_local_value, set_buffer_internal_1)
 +      (swap_out_buffer_local_variables):
 +      Adapt to the new symbol value structure.
 +      (DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
 +      (defvar_per_buffer): Take a new arg for the fwd object.
 +      (buffer_lisp_local_variables): Return a proper alist (different fix
 +      for bug#4138).
 +      * alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
 +      (Fgarbage_collect): Don't handle buffer_defaults specially.
 +      (mark_object): Handle new symbol value structure rather than the old
 +      special Lisp_Misc_* objects.
 +      (gc_sweep) <symbols>: Free also the buffer-local-value objects.
 +      * term.c (set_tty_color_mode):
 +      * bidi.c (bidi_initialize): Don't access the ->value field directly.
 +      * buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
 +      a buffer_local_flags.
 +      * print.c (print_object): Get rid of impossible forwarding objects.
 +
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_get_type, bidi_get_category)
 +      (bidi_at_paragraph_end, bidi_resolve_weak, bidi_resolve_neutral)
 +      (bidi_type_of_next_char, bidi_level_of_next_char):
 +      Declare static.  Use `INLINE' rather than `inline'.
 +
 +2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dired.c (Ffile_attributes): Fix typo in docstring.
 +
 +2010-04-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 +      NSInteger (Bug#5811).
 +
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 +      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * charset.c: Include <stdlib.h>
 -      (struct charset_sort_data): New struct.
 -      (charset_compare): New function.
 -      (Fsort_charsets): New function.
 -      (syms_of_charset): Declare Fsort_charsets as a Lisp function.
 +      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
  
 -      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 -      number in CTEXT extended segment.
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 +      terminal frames (Bug#5837).
  
 -      * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
 -      * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 +      * .gdbinit (xsubchartable): New command.
  
 -      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 -      (Fhash_table_size): Fix typos in docstrings.
 -      (Fmake_hash_table): Doc fix.
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 +      * xdisp.c (display_line): Don't write beyond the last glyph row in
 +      the desired matrix.  Fixes a crash in "emacs -nw" (bug#5972), see
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00075.html
 +      and
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00213.html
  
 -      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 -      Doc fix (bug#5625).
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-07-27  Ken Brown  <kbrown@cornell.edu>
 +      * alloc.c (Fpurecopy): Hash-cons if requested.
 +      (syms_of_alloc): Update purify-flag docstring.
  
 -      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 -      the MSDOS definition.
 +2010-04-18  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
 +      * gtkutil.c (xg_set_geometry): Set size in geometry string also.
 +      (x_wm_set_size_hint): Set USER_POS in hint_flags (Bug#5968).
  
 -      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 +2010-04-17  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-07-22  Christoph Scholtes  <cschol2112@gmail.com>
 +      Fix a crash when an NSM character is inserted at BEGV.
  
 -      * window.c (Fwindow_height): Doc fix (bug#6518).
 +      * bidi.c (bidi_init_it): Fix initialization of bidi_it->prev.
 +      (bidi_resolve_weak): Don't use prev.type_after_w1 if it is
 +      NEUTRAL_B or UNKNOWN_BT.
  
 -2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-16  Eli Zaretskii  <eliz@gnu.org>
  
 -      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 +      * xdisp.c (set_cursor_from_row): Don't consider possibility of
 +      other rows with cursor unless they are different from this row and
 +      this row is part of a continued line.  (Bug#5943)
  
 -2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-16  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * gtkutil.c (xg_event_is_for_menubar): Also check that event window
 -      is related to the menu bar (Bug#6499).
 +      * s/freebsd.h: Restore osreldate.h include.
 +      Suggested by Naohiro Aota.
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-16  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 +      * xmenu.c (apply_systemfont_to_menu): *childs was incorrectly used.
  
 -      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 +2010-04-16  Ken Brown  <kbrown@cornell.edu>  (tiny change)
  
 -      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 -      i.e. don't put back ButtonRelease (Bug#6608).
 +      * s/cygwin.h: Avoid linking against static libgcc.
  
 -      * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
 -      instead of Window.  Call xg_event_is_for_menubar when
 -      USE_GTK (Bug#6499).
 +2010-04-15  Juri Linkov  <juri@jurta.org>
  
 -      * gtkutil.h (xg_event_is_for_menubar): Declare.
 +      * window.c: Add Qscroll_command.
 +      Remove Vscroll_preserve_screen_position_commands.
 +      (window_scroll_pixel_based, window_scroll_line_based): Check the
 +      `scroll-command' property on the last command instead of searching
 +      the last command in Vscroll_preserve_screen_position_commands.
 +      (syms_of_window): Initialize and staticpro `Qscroll_command'.
 +      Put Qscroll_command property on Qscroll_up and Qscroll_down.
 +      (scroll-preserve-screen-position): Doc fix.
 +      (Vscroll_preserve_screen_position_commands): Remove variable.
  
 -      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 +2010-04-15  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-07-14  Eli Zaretskii  <eliz@gnu.org>
 +      * xdisp.c (message): Do not use NO_ARG_ARRAY.
  
 -      * w32fns.c (x_set_foreground_color): Fix setting the cursor color
 -      when it's the same as the old foreground.  (Bug#6609)
 +2010-04-14  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +      Reduce cpp use in Makefile.in.
 +      * Makefile.in (DBUS_CFLAGS, DBUS_LIBS, GCONF_CFLAGS, GCONF_LIBS)
 +      (LIBSOUND, CFLAGS_SOUND, RSVG_LIBS, RSVG_CFLAGS, INTERVALS_H)
 +      (GETLOADAVG_LIBS, RUN_TEMACS): Move to the autoconf section.
 +      (ORDINARY_LINK): Remove, defined in src/s/gnu.h.
 +      (CRT0_COMPILE): Remove, inline it in the only user.
  
 -      * xfaces.c (realize_face): Garbage the frame if a face is removed
 -      (Bug#6593).
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
 +      * window.c (keys_of_window): Rebind `C-v' from `scroll-up' to
 +      `scroll-up-command' and `M-v' from `scroll-down' to
 +      `scroll-down-command'.
  
 -      * keyboard.c: Remove duplicate <setjmp.h>.
 -      (read_key_sequence): Remove volatile qualifiers.
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * window.c (Vscroll_preserve_screen_position_commands): New variable
 +      with the default value as the list of Qscroll_down and Qscroll_up.
 +      (window_scroll_pixel_based, window_scroll_line_based): Search the
 +      last command in the list Vscroll_preserve_screen_position_commands
 +      instead of comparing with Qscroll_up and Qscroll_down.
  
 -      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 -      (struct glyph_row): New members left_fringe_offset and
 -      right_fringe_offset.
 +2010-04-13  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
 -      specially.
 -      * w32term.c (w32_draw_fringe_bitmap): Likewise.
 -      * nsterm.m (ns_draw_fringe_bitmap): Likewise.
 +      * gtkutil.c (xg_set_geometry): Set geometry for PPosition also.
 +      (x_wm_set_size_hint): Dont set position flags, gtk_window_parse_geometry
 +      does that.
  
 -      * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
 -      Take account of bitmap offset.
 -      (draw_window_fringes): Take account of window vscroll.
 -      (update_window_fringes): Likewise.  Extend top-aligned top indicator
 -      or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
 -      in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
 -      Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
 +      * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width
 +      to zero.
  
 -2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32fns.c (Qtooltip): Declare.
 -      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 +      * term.c (init_tty): Move common text outside of #ifdef TERMINFO.
  
 -2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      Try to solve the problem of spurious EOF chars in long lines of text
 +      sent to interactive subprocesses.
 +      * sysdep.c (child_setup_tty): Do not enable ICANON any more.
 +      (system_process_attributes): Remove unused var `ttotal'.
 +      * process.c (send_process): Don't bother breaking long line with EOF
 +      chars when talking to ttys any more.
 +      (wait_reading_process_output): Output a warning when called in such
 +      a way that it could block without being interruptible.
  
 -      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 -      grab on just Press (Bug#6499).
 +      Try to detect file modification within the same second.
 +      * buffer.h (struct buffer): New field modtime_size.
 +      * buffer.c (reset_buffer): Initialize it.
 +      * fileio.c (Finsert_file_contents, Fwrite_region): Set it.
 +      (Fverify_visited_file_modtime): Check it.
 +      (Fclear_visited_file_modtime, Fset_visited_file_modtime): Clear it.
 +      (Fset_visited_file_modtime): Set (or clear) it.
  
 -2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * frame.c (Qtooltip): New var.
 -      (delete_frame): Use it.  Fix faulty if statement.  Don't update
 -      mode line for tooltip frames.  Suggested by Martin Rudalics.
 +      * process.c (status_notify): Remove unused var `ro'.
  
 -      * xfns.c (x_create_tip_frame):
 -      * w32fns.c (x_create_tip_frame): Use it.
 +2010-04-12  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-30  Naohiro Aota  <naota@elisp.net>  (tiny change)
 +      * xfns.c (select_visual): Don't call error if XGetVisualInfo returns
 +      more than one visual (Bug#5938).
  
 -      * xftfont.c (xftfont_open): Check font width one by one also when
 -      spacing is dual.
 +2010-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * ftfont.c (ftfont_open): Ditto.
 +      * Makefile.in (C_SWITCH_SYSTEM,C_SWITCH_MACHINE,C_SWITCH_X_SITE):
 +      Undefine.
  
 -2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-11  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * alloc.c (Fmake_byte_code): Don't access undefined argument
 -      (Bug#6517).
 +      Remove C_SWITCH_SYSTEM_TEMACS.
 +      * s/darwin.h (C_SWITCH_SYSTEM_TEMACS): Remove.
 +      (malloc, realloc, free): Use emacs, not temacs for conditional
 +      definition.
  
 -2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
 +      * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Remove.
 +      (ALL_CFLAGS): Do not use C_SWITCH_SYSTEM_TEMACS.
  
 -      * xdisp.c (next_element_from_image): Ensure that after-strings are
 -      read the next time we hit handle_stop (Bug#1336).
 +      Use autoconf, not cpp for some variables.
 +      * Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE)
 +      (C_SWITCH_X_SITE): Define using autoconf, not cpp.
 +      (ALL_CFLAGS): Use them as make variables.
 +      (really-lwlib, really-oldXMenu): Do not pass them.
  
 -2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-11  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * lread.c (read1): Signal error if #s is not followed by paren.
 +      * xmenu.c (apply_systemfont_to_dialog): New.
 +      (create_and_show_dialog): Call apply_systemfont_to_dialog if HAVE_XFT.
  
 -2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 +      * process.c (exec_sentinel): Preserve current-buffer.
  
 -      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 +      * process.c (read_process_output): Move the save-current-buffer to
 +      apply to both the filter and the non-filter branches.
  
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 +2010-04-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * editfns.c (Fbyte_to_string): Pacify compiler.
 +      * s/msdos.h (UNEXEC): New definition.
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 -      Check `object's type before accessing its guts.
 +      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 +      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
  
 -2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
 +      * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
 +      Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
 +      set in FLAGS.  Callers with non-zero CHECK_MARGINS changed to use
 +      TRY_WINDOW_CHECK_MARGINS.
  
 -      * minibuf.c (Fall_completions): Add more checks.
 +      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 +      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).  Subtract last glyph's
 +      width only when it is for padding.
  
 -2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-09  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 +      * xfns.c (Fx_show_tip): Call try_window in a loop until
 +      fonts_changed_p is zero (Bug#2423).
  
 -2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
 -      address.  (Bug#6346)
 +      * xdisp.c (set_cursor_from_row): Don't dereference glyphs beyond
 +      the end of TEXT_AREA.  (Bug#5856)
  
 -2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * ccl.c (Fccl_program_p): Fix typo in docstring.
 +      * xsettings.c (XSETTINGS_FONT_NAME): Move XSETTINGS_FONT_NAME out of
 +      HAVE_GCONF.
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 -      of bug#6305).
 +      * bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
 +      prev.orig_type, for resolving type of NSM.  (Bug#5858)
  
 -2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xdisp.c (redisplay_window): After redisplay, check if point is
 -      still valid before setting it (Bug#6177).
 +      * xsettings.c (current_font, SYSTEM_FONT, XSETTINGS_FONT_NAME): New.
 +      (parse_xft_settings): Also check for XSETTINGS_FONT_NAME and save that
 +      in current_font.
 +      (init_gconf): Read value of SYSTEM_FONT and save it in current_font.
 +      (Ffont_get_system_normal_font, xsettings_get_system_normal_font):
 +      New functions.
 +      (syms_of_xsettings): Initialize current_font.
 +      defsubr Sfont_get_system_normal_font.
  
 -2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +      * xsettings.h (Ffont_get_system_normal_font)
 +      (xsettings_get_system_normal_font): Declare.
  
 -      * s/netbsd.h: If terminfo is found, use it in preference to
 -      termcap.  (Bug#6190)  [Backport from trunk]
 +      * xfns.c (extern xlwmenu_default_font): Remove.
 +      (Fx_create_frame): Remove setting of xlwmenu_default_font, moved
 +      to xlwmenu.c.
  
 -2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +      * menu.c (digest_single_submenu): If USE_LUCID and HAVE_XFT, encode
 +      menu items in UTF-8.
  
 -      * keyboard.c (Vlast_command, Vkeyboard_translate_table)
 -      (Voverriding_terminal_local_map, Vsystem_key_alist)
 -      (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
 +      * xmenu.c: include xsettings.h and xlwmenu.h if USE_LUCID.
 +      (apply_systemfont_to_menu): New function.
 +      (set_frame_menubar, create_and_show_popup_menu):
 +      Call apply_systemfont_to_menu.
  
 -2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * editfns.c (Fbyte_to_string): New function.
 +      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 +      FRAME_LINE_TO_PIXEL_Y.
  
 -2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 +      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 +      pixelwidth/height.
  
 -      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 -      prevent stack overflow if number of arguments is too large
 -      (Bug#6214).
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-05-11  Eli Zaretskii  <eliz@gnu.org>
 +      Simplify code for HP machines.
 +      * m/hp800.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, NO_REMAP): Do not define
 +      for GNU_LINUX, not needed.
 +      (UNEXEC, NEED_BSDTTY): Move definitions...
 +      * s/hpux10-20.h (UNEXEC, NEED_BSDTTY): ... here.
  
 -      * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
 +      * m/iris4d.h (UNEXEC): Move definition ...
 +      * s/irix6-5.h (UNEXEC): ... here.
  
 -      * w32fns.c: Include w32.h.
 -      (Fw32_shell_execute): Decode the error message before passing it
 -      to `error'.  (Bug#6126)
 +2010-04-04  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-05-11  Karel Klic  <kklic@redhat.com>
 +      * xfns.c (set_machine_and_pid_properties): New function.
 +      (Fx_create_frame): Call set_machine_and_pid_properties.
  
 -      * ftfont.c: Fix incorrect parentheses of #if condition for
 -      definining M17N_FLT_USE_NEW_FEATURE.
 +2010-04-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * bidi.c (bidi_resolve_explicit, bidi_level_of_next_char):
 +      Check bidi_it->bytepos against ZV_BYTE instead of bidi_it->ch against
 +      BIDI_EOB.  Fixes infloop with vertical cursor motion at ZV.
  
 -      * Version 23.2 released.
 +      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 +      in this function.  (Bug#5703)
  
 -2010-04-30  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * composite.c (autocmp_chars): Save point as marker before calling
 -      auto-composition-function (Bug#5984).
 +      * nsterm.h: Fix last change.
  
 -      * lisp.h (restore_point_unwind): Add prototype.
 +2010-04-03  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * fileio.c (restore_point_unwind): Remove static attribute.
 +      * m/intel386.h (NO_REMAP): Move definition ...
 +      * s/msdos.h (NO_REMAP): ... here.
  
 -2010-04-23  Kenichi Handa  <handa@m17n.org>
 +      * m/vax.h (CRT0_DUMMIES): Remove, unused.
  
 -      * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
 -      new feature of libotf and m17n-flt.
 -      (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
 -      Call OTF_check_features even if no specific feature is given.
 -      (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
 -      (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
 -      that OUT is NULL.  Use OTF_drive_gsub_with_log and
 -      OTF_drive_gpos_with_log instead of OTF_drive_gsub and
 -      OTF_drive_gpos.
 -      (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
 -      (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
 -      Setup mflt_enable_new_feature and mflt_try_otf.
 +      * ecrt0.c: Remove MSDOS, m68k and __sparc__ conditionals, file not
 +      used on those platforms.
  
 -2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-02  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * dired.c (Ffile_attributes): Fix typo in docstring.
 +      Remove extern errno declarations.
 +      * xterm.c:
 +      * xrdb.c:
 +      * w32term.c:
 +      * unexec.c:
 +      * unexaix.c:
 +      * sysdep.c:
 +      * process.c:
 +      * lread.c:
 +      * keyboard.c:
 +      * floatfns.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * emacs.c (main):
 +      * ecrt0.c:
 +      * dispnew.c:
 +      * callproc.c:
 +      * buffer.c: Remove errno extern declarations.
 +      * s/netbsd.h (NEED_ERRNO): Remove.
  
 -2010-04-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +2010-04-01  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 -      NSInteger (Bug#5811).
 +      Remove all uses of LIBX11_SYSTEM.
 +      * Makefile.in (LIBX11_SYSTEM): Remove.
 +      * s/msdos.h (LIBX11_SYSTEM): Do not define, define LIBS_SYSTEM
 +      instead.
  
 -2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 -      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
 +      Remove support for DJGPP v1.x (bug#5813).
 +
 +      * w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
 +      * s/msdos.h:
 +      * unexec.c (make_hdr, copy_text_and_data):
 +      * sysdep.c (wait_for_termination, sys_subshell):
 +      * msdos.c (dos_set_window_size, msdos_set_cursor_shape)
 +      (IT_set_terminal_modes, __write, _rename, gethostname)
 +      (gettimeofday, alarm, fork, kill, dos_ttraw, dos_ttcooked)
 +      (run_msdos_command, abort): Remove DJGPP v1.x code and tests of
 +      the value of __DJGPP__.
 +      (nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
 +      compatibility code.
 +      * lread.c:
 +      * gmalloc.c (memalign):
 +      * fileio.c (Fcopy_file, check_executable, Ffile_modes):
 +      * emacs.c (main):
 +      * dosfns.c (init_dosfns):
 +      * dired.c (file_name_completion_stat): Remove tests of __DJGPP__.
  
 -2010-04-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning when the
 +      string with `cursor' property comes from an `after-string'
 +      overlay.  (Bug#5816)
  
 -2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-01  Glenn Morris  <rgm@gnu.org>
  
 -      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 -      FRAME_LINE_TO_PIXEL_Y.
 +      * Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
 +      Define as Makefile variables.
 +      (LIBX): Use above variables rather than directly using autoconf.
  
 -      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 -      pixelwidth/height.
 +2010-03-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-04-05  Chong Yidong  <cyd@stupidchicken.com>
 +      Clean up BSD_SYSTEM use.
 +      * xterm.c:
 +      * process.c:
 +      * emacs.c: Use HAVE_SYS_IOCTL_H instead of BSD_SYSTEM as a guard
 +      for including <sys/ioctl.h>.
 +      * sysdep.c (wait_without_blocking): Remove BSD_SYSTEM case, this
 +      code is only used for MSDOS.
  
 -      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 -      terminal frames (Bug#5837).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
 +
 +      * image.c: Add `Qextension_data'.
 +      (syms_of_image): Initialize and staticpro `Qextension_data'.
 +      (Fimage_metadata): Rename from `Fimage_extension_data'.
 +      (gif_load): Put GIF extension data to the property
 +      `Qextension_data'.
  
  2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2010-03-31  Eli Zaretskii  <eliz@gnu.org>
  
 -      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 -      in this function.  (Bug#5703)
 +      * xdisp.c (highlight_trailing_whitespace): Support highlight of
 +      trailing whitespace in right-to-left rows.
  
 -2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * nsterm.h: Fix last change.
 +      Get rid of the direct_output optimizations.
 +      * keyboard.c (nonundocount): Remove extern declaration.
 +      (command_loop_1): Remove brittle optimisation for cheap and
 +      common operations.
 +      * xdisp.c (redisplay_internal): Don't bother checking
 +      redisplay_performed_directly_p any more.
 +      * sysdep.c (init_sys_modes): Don't call direct_output_forward_char
 +      any more.
 +      * dispnew.c (redisplay_performed_directly_p)
 +      (direct_output_for_insert, direct_output_forward_char):
 +      * dispextern.h (redisplay_performed_directly_p)
 +      (direct_output_for_insert, direct_output_forward_char): Remove.
 +      * cmds.c (nonundocount): Make it static.
  
 -2010-03-30  Bernhard Herzog  <bh@intevation.de>  (tiny change)
 +2010-03-31  Bernhard Herzog  <bh@intevation.de>  (tiny change)
  
        * menu.c (Fx_popup_menu): Use last_event_timestamp (Bug#4930).
  
 -2010-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-03-31  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xdisp.c (note_mouse_highlight): Don't do highlight if pointer is
        invisible (Bug#5766).
  
 -2010-03-29  Adrian Robert  <adrian.b.robert@gmail.com>
 +2010-03-31  Adrian Robert  <adrian.b.robert@gmail.com>
  
 -      * xdisp.c (x_consider_frame_title, update_window_cursor): Remove
 -      HAVE_NS conditionals.
 +      * xdisp.c (x_consider_frame_title, update_window_cursor):
 +      Remove HAVE_NS conditionals.
        (prepare_menu_bars) [HAVE_NS]: Call ns_set_doc_edited.
  
        * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use
  
        * nsterm.m: Remove unneeded prototype.
  
 -2010-03-28  Glenn Morris  <rgm@gnu.org>
 +2010-03-31  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (SOME_MACHINE_OBJECTS): Ensure dbus stuff is always
        in the DOC file.  (Bug#5336)
  
 -2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (pos_visible_p): Revert 2008-01-25 change (Bug#5730).
  
 -2010-03-20  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * window.c (keys_of_window): Remove redundant/overridden bindings.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (BUFFER_POS_REACHED_P, move_it_in_display_line_to):
 +      Restore original behavior when the iterator is not bidi_p.
 +
 +2010-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xdisp.c (syms_of_xdisp): Use intern_c_string instead of intern.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_cache_iterator_state): Invalidate the cache if we
 +      are outside the range of cached character positions.
 +
 +2010-03-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/bidi.$(O)): Add dependency on w32gui.h.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Initial support for bidirectional editing.
 +
 +      * Makefile.in (obj): Include bidi.o.
 +      (bidi.o): New target.
 +
 +      * makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
 +      ($(BLD)/bidi.$(O)): New target.
 +
 +      * bidi.c: New file.
 +
 +      * buffer.h (struct buffer): New members bidi_display_reordering
 +      and bidi_paragraph_direction.
 +
 +      * buffer.c (init_buffer_once): Initialize bidi_display_reordering
 +      and bidi_paragraph_direction.
 +      (syms_of_buffer): Declare Lisp variables bidi-display-reordering
 +      and bidi-paragraph-direction.
 +      (Fbuffer_swap_text): Swap the values of
 +      bidi_display_reordering and bidi_paragraph_direction.
 +
 +      * dispextern.h (BIDI_MAXLEVEL, BIDI_AT_BASE_LEVEL): New macros.
 +      (bidi_type_t, bidi_dir_t): New types.
 +      (bidi_saved_info, bidi_stack, bidi_it): New structures.
 +      (struct it): New members bidi_p, bidi_it, paragraph_embedding,
 +      prev_stop, base_level_stop, and eol_pos.
 +      (bidi_init_it, bidi_get_next_char_visually): New prototypes.
 +      (IT_STACK_SIZE): Enlarge to 5.
 +      (struct glyph_row): New member reversed_p.
 +      <string_buffer_position>: Update prototype.
 +      (PRODUCE_GLYPHS): Set the reversed_p flag in the iterator's
 +      glyph_row if bidi_it.paragraph_dir == R2L.
 +      (struct glyph): New members resolved_level and bidi_type.
 +
 +      * dispnew.c (direct_output_forward_char): Give up if we need bidi
 +      processing or buffer's direction is right-to-left.
 +      (prepare_desired_row): Preserve the reversed_p flag.
 +      (row_equal_p): Compare the reversed_p attributes as well.
 +
 +      * xdisp.c (init_iterator): Initialize it->bidi_p.
 +      Call bidi_init_it and set it->paragraph_embedding from the current
 +      buffer's value of bidi_paragraph_direction.
 +      (reseat_1): Initialize bidi_it.first_elt.
 +      (set_iterator_to_next, next_element_from_buffer): Use the value of
 +      paragraph_embedding to determine the paragraph direction.
 +      (set_iterator_to_next): Under bidi reordering, call
 +      bidi_get_next_char_visually.  Call bidi_paragraph_init if the
 +      new_paragraph flag is set in the bidi iterator.
 +      (next_element_from_buffer): If bidi_it.first_elt is set,
 +      initialize paragraph direction and find the first character to
 +      display in the visual order.  If reseated to a middle of a line,
 +      prime the bidi iterator starting at the line's beginning.
 +      Handle the situation where we overstepped stop_charpos due to
 +      non-linearity of the bidi iteration.  Likewise for when we back up
 +      beyond the previous stop_charpos.  When moving across stop_charpos,
 +      record it in prev_stop.
 +      (display_line): Set row->end and it->start for the next row to the
 +      next character in logical order.  Always extend reversed_p rows to
 +      the end of line, even if they end at ZV.  Copy the reversed_p flag
 +      to the next glyph row.  Keep calling set_cursor_from_row for
 +      bidi-reordered rows even if we already have a possible candidate
 +      for cursor position.  Set row_end after all the row's glyphs have
 +      been produced, by looping over the glyphs.  Record the position
 +      after EOL in it->eol_pos, and use it to set end_pos of the last
 +      row produced for a continued line.
 +      <Qright_to_left, Qleft_to_right>: New variables.
 +      (syms_of_xdisp): Initialize and staticpro them.
 +      (string_buffer_position_lim): New function.
 +      (string_buffer_position): Most of code moved to
 +      string_buffer_position_lim.  Last argument and return value are
 +      now EMACS_INT; all callers changed.
 +      (set_cursor_from_row): Rewritten to support bidirectional text and
 +      reversed glyph rows.
 +      (text_outside_line_unchanged_p, try_window_id):
 +      Disable optimizations if we are reordering bidirectional text and the
 +      paragraph direction can be affected by the change.
 +      (append_glyph, append_composite_glyph)
 +      (produce_image_glyph, append_stretch_glyph): Set the
 +      resolved_level and bidi_type members of each glyph.
 +      (append_glyph): If the glyph row is reversed, prepend the glyph
 +      rather than appending it.
 +      (handle_stop_backwards): New function.
 +      (reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.
 +      (reseat): call handle_stop_backwards to recompute prev_stop and
 +      base_level_stop for the new position.
 +      (handle_invisible_prop): Under bidi iteration, skip invisible text
 +      using bidi_get_next_char_visually.  If we are `reseat'ed, init the
 +      paragraph direction.  Update IT->prev_stop after skipping
 +      invisible text.
 +      (move_it_in_display_line_to): New variables prev_method
 +      and prev_pos.  Compare for strict equality in
 +      BUFFER_POS_REACHED_P.
 +      (try_cursor_movement): Examine all the candidate rows that occlude
 +      point, to return the best match.  If rows are bidi-reordered
 +      and point moved backwards, back up to the row that is not a
 +      continuation line, and start looking for a suitable row from
 +      there.
 +
 +      * term.c (append_glyph): Reverse glyphs by pre-pending them,
 +      rather than appending, if the glyph_row's reversed_p flag is set.
 +      Set the resolved_level and bidi_type members of each glyph.
 +
 +      * .gdbinit (pbiditype): New command.
 +      (pgx): Use it to display bidi level and type of the glyph.
 +      (pitx): Display some bidi information about the iterator.
 +      (prowlims, pmtxrows): New commands.
 +
 +2010-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove all uses of C_DEBUG_SWITCH and LIBS_DEBUG.
 +      * s/usg5-4.h (LIBS_DEBUG):
 +      * s/irix6-5.h (C_DEBUG_SWITCH):
 +      * s/gnu-linux.h (LIBS_DEBUG):
 +      * s/darwin.h (LIBS_DEBUG):
 +      * s/bsd-common.h (LIBS_DEBUG):
 +      * s/aix4-2.h (LIBS_DEBUG, C_DEBUG_SWITCH):
 +      * m/iris4d.h (LIBS_DEBUG):
 +      * m/hp800.h (LIBS_DEBUG): Remove definitions.
 +
 +      * Makefile.in (LIBES): Remove reference to LIBS_DEBUG.
 +      (LIBS_DEBUG): Remove definition.
 +
 +2010-03-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 +      Windows.
 +
 +2010-03-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 +      `connect' (Bug#5723).
 +
 +2010-03-25  Helmut Eller  <eller.helmut@gmail.com>
 +
 +      * process.c (Fmake_network_process): Call `select' for interrupted
 +      `connect' rather than creating new socket (Bug#5173).
 +
 +2010-03-24  Jan Djärv  <jan.h.d@swipnet.se>
  
        * frame.c (x_get_arg): Handle RES_TYPE_BOOLEAN_NUMBER (bug #5736).
  
  
        * dispextern.h (resource_types): RES_TYPE_BOOLEAN_NUMBER is new.
  
 -2010-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-03-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * xfns.c (Fx_create_frame) [USE_LUCID]: Add BLOCK_INPUT around
        XLoadQueryFont.
  
 -2010-03-16  Kenichi Handa  <handa@m17n.org>
 +2010-03-24  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (decode_coding_ccl): Fix previous change for the
        multibyte case.
        case that the output buffer is fullfilled.
        (encode_coding): Setup ccl program here.
  
 -2010-03-15  Andreas Politz  <politza@fh-trier.de>  (tiny change)
 +2010-03-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/gnu-linux.h (LIBS_SYSTEM): Remove, same as default.
 +
 +      Simplify LIBS_MACHINE definitions.
 +      * m/hp800.h (LIBS_MACHINE): Remove, same as default.
 +      * m/iris4d.h (LIBS_MACHINE): Likewise.
 +      * m/ibmrs6000.h (LIBS_MACHINE): Rename to LIBS_SYSTEM and move ...
 +      * s/aix4-2.h (LIBS_SYSTEM): ... here.
 +      * s/netbsd.h: Remove commented out code.
 +
 +2010-03-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove dead code dealing with POSIX_SIGNALS.
 +      * atimer.c (set_alarm): Remove dead code, all USG systems define
 +      POSIX_SIGNALS.
 +      * data.c (arith_error): Likewise.
 +      * keyboard.c (input_available_signal, handle_user_signal)
 +      (interrupt_signal): Likewise.
 +      * process.c (sigchld_handler): Likewise.
 +      (create_process): Remove if 0 code.  Remove HPUX conditional when
 +      !defined (POSIX_SIGNALS), it cannot be true.
 +      * syssignal.h: Remove USG5_4 and USG conditionals when
 +      !POSIX_SIGNALS, they cannot be true.
 +
 +      * keyboard.c (Fset_input_interrupt_mode): Remove code depending on
 +      NO_SOCK_SIGIO, not used anymore.
 +
 +2010-03-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/vax.h (BSD_SYSTEM, BSD4_2): Remove conditionals, we only
 +      support vax on BSDs.
 +
 +      * m/ibmrs6000.h (ORDINARY_LINK): Move definition ...
 +      * s/aix4-2.h (ORDINARY_LINK): ... here.
 +
 +2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (abs_builddir): Define.
 +      (bootstrap_exe): Use it.
 +      (VPATH): Use $(srcdir) instead of @srcdir@.
 +
 +2010-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * Makefile.in (bootstrap_exe): Use an absolute name.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove support for old GNU/Linux using libc version 5.
 +      * m/alpha.h (LINUX_SBRK_BUG): Remove definition.
 +      * emacs.c (main): Remove code depending on LINUX_SBRK_BUG.
 +
 +      Consolidate redundant definitions in s/bsd-common.h.
 +      * s/bsd-common.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Define (or undefine) here instead of
 +      doing it in all files that include this one.
 +      * s/gnu.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +      * s/freebsd.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +      * s/netbsd.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +
 +      Consolidate redundant definitions.
 +      * s/usg5-4.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not define,
 +      it's undefined in all files that include this one.
 +      (POSIX_SIGNALS): Define here instead of doing it in all files that
 +      include this one.
 +      * s/irix6-5.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +      * s/sol2-6.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +      * s/unixware.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +
 +      Remove support for old UNIX System V systems.
 +      * s/unixware.h: Add the contents of s/usg-5-4-2.h.
 +      * s/usg-5-4-2.h: Remove.
 +
 +      Remove support for Solaris on PPC and for old versions.
 +      * s/sol2-6.h: Add the contents of s/sol-2.3.h, s/sol-2.4.h, s/sol-2.5.h.
 +      (LD_SWITCH_SYSTEM, USE_MMAP_FOR_BUFFERS): Remove #defines/#undef
 +      that cancel each other.
 +      * s/sol2-3.h:
 +      * s/sol2-4.h:
 +      * s/sol2-5.h: Remove.
 +      * m/ibmrs6000.h: Remove code for USG5_4, this file is only used on AIX.
 +      (NO_REMAP): Remove, unused.
 +      (UNEXEC): Move definition ...
 +      * s/aix4-2.h (UNEXEC): ... here.
 +
 +      * s/openbsd.h: Remove support for non-ELF and for systems that do
 +      not support shared libraries.
 +      * s/netbsd.h:
 +      * s/freebsd.h: Likewise.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove non-working support for lynxos 3.0.
 +      * s/lynxos.h: Remove file.
 +
 +      * unexec.c (unexec, adjust_lnnoptrs): Do not depend on
 +      COFF_BSD_SYMBOLS, nothing defines it anymore.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove obsolete uses of HAVE_SHM.
 +      * emacs.c (standard_args):
 +      (Fdump_emacs):
 +      (syms_of_emacs): Remove code depending on HAVE_SHM.
 +
 +      * alloc.c: Remove HAVE_SHM dependent definition.
 +
 +      * Makefile.in (RUN_TEMACS): Do not depend on HAVE_SHM.
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (USAGE4): Hard-code bug address.
 +      (REPORT_EMACS_BUG_ADDRESS, REPORT_EMACS_BUG_PRETEST_ADDRESS): Remove.
 +      (bug_reporting_address): Remove.
 +      (main): Don't call bug_reporting_address.
 +
 +      * Makefile.in (XFT_LIBS, LIBXPM, LIBJPEG, LIBPNG, LIBTIFF, LIBGIF)
 +      (LIBGPM, LIBRESOLV): Set using autoconf rather than cpp.
 +
 +2010-03-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame):
 +      * frame.c (Vdefault_frame_scroll_bars): Put non-GTK X scroll-bars
 +      on left.
 +
 +2010-03-13  Andreas Politz  <politza@fh-trier.de>  (tiny change)
  
        * editfns.c (Fformat): Account for string precision when computing
        field width (Bug#5710).
  
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame): Set default to Qright.
 +
 +      * frame.c (Vdefault_frame_scroll_bars): Set default to Qright for
 +      all window systems.
 +
 +2010-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      These changes remove termcap.c from the build on Posix platforms.
 +      * Makefile.in (termcapobj): Move termcap.o from here...
 +      (MSDOS_OBJ): ...to here.
 +      (termcapobj) [!LIBS_TERMCAP]: Remove specialized value, as it is
 +      now identical to when LIBS_TERMCAP is defined.
 +
 +      * term.c: Remove (ifdef'ed away) inclusion of termcap.h.
 +
 +      * cm.c: Remove (ifdef'ed away) inclusion of termcap.h.
 +
 +      * config.in: Regenerated.  (See top-level ChangeLog.)
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
 +2010-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Cleanup setup of gl_state in various parts of the code.
 +      * syntax.h (SETUP_BUFFER_SYNTAX_TABLE): New macro.
 +      (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
 +      * syntax.c (find_defun_start, Fchar_syntax, Fmatching_paren)
 +      (skip_chars):
 +      * regex.c (regex_compile): Use it.
 +      (re_compile_pattern): Don't set gl_state.current_syntax_table since
 +      it's now set in regex_compile when/if we need it.
 +
  2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        Make it possible to C-g in a tight bytecode loop again (bug#5680).
        (scroll_end_callback): Remove.
        (xg_create_scroll_bar): Add parameter end_callback, bind it to
        button-release-event.  Replace value-changed event with change-value,
 -      bug #5177,
 +      bug #5177.
        (xg_event_is_for_scrollbar): Only return true if button is less than 4,
        bug #5177.
  
  
  2009-12-12  Eli Zaretskii  <eliz@gnu.org>
  
 -      * dispextern.h (struct text_pos): Use EMACS_INT;
 +      * dispextern.h (struct text_pos): Use EMACS_INT.
        (struct glyph): Use EMACS_INT for charpos.
        (struct it): Use EMACS_INT for stop_charpos, end_charpos,
        region_beg_charpos, region_end_charpos,
        (store_symval_forwarding): Take into account the fact that Ints can
        now have more than one tag.
        * buffer.c (syms_of_buffer): Use LISP_INT_TAG.
 -      buffer_slot_type_mismatch):
 +      (buffer_slot_type_mismatch):
        * xfaces.c (face_attr_equal_p):
        * print.c (print_object):
        * alloc.c (mark_maybe_object, mark_object, survives_gc_p):
  2009-09-18  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * emacs.c (inhibit_x_resources): Update doc string for NS.
 -      (main) [HAVE_NS]: Don't process --no-init-file option.  Remove
 -      legacy code for -NXHost.  Fix error printf in daemon case.
 +      (main) [HAVE_NS]: Don't process --no-init-file option.
 +      Remove legacy code for -NXHost.  Fix error printf in daemon case.
  
        * nsterm.h (ns_no_defaults): Remove.
  
        (ns_use_qd_smoothing): Remove legacy variable.
        (EmacsView-windowShouldZoom:): Set frame left_pos, top_pos and
        don't update the NSWindow itself.
 -      (EmacsView-windowWillUseStandardFrame:defaultFrame:): Improve
 -      state detection and store user rect ourselves.  (Bug #3581)
 +      (EmacsView-windowWillUseStandardFrame:defaultFrame:):
 +      Improve state detection and store user rect ourselves.  (Bug #3581)
  
        * nsfont.m (nsfont_draw) [NS_IMPL_COCOA]: Don't use
        ns_use_qd_smoothing.
        * xterm.h: Rename x_non_menubar_window_to_frame to
        x_menubar_window_to_frame.
  
 -      * xterm.c: Remove declarations also in xterm.h
 +      * xterm.c: Remove declarations also in xterm.h.
        (XTmouse_position): Do not return valid positions
        for clicks in the menubar and the toolbar for Gtk+.
  
  
        * makefile.w32-in ($(BLD)/doc.$(O)): Depend on buildobj.h, not on
        $(SRC)/buildobj.h.
 -      (buildobj.h): Renamed from $(SRC)/buildobj.h.
 +      (buildobj.h): Rename from $(SRC)/buildobj.h.
        (make-buildobj-CMD, make-buildobj-SH): Create buildobj.h, not
        $(SRC)/buildobj.h.
        (clean): Add buildobj.h.
  2009-08-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * nsterm.m (ns_get_color): Update documentation properly for last
 -      change, and clean up loose ends in the code left by it.  Fix
 -      longstanding bug with 16-bit hex parsing, and add support for
 +      change, and clean up loose ends in the code left by it.
 +      Fix longstanding bug with 16-bit hex parsing, and add support for
        yet another X11 format (rgb:r/g/b) for compatibility.
        * nsfns.m (EmacsDialogPanel-runDialogAt): Add declaration of
        timer_check() to avoid crash on Leopard/PPC.  Bug #2154.
  2009-07-04  Eli Zaretskii  <eliz@gnu.org>
  
        Emulation of `getloadavg' on MS-Windows.
 -      * w32.c: Include float.h
 +      * w32.c: Include float.h.
        (g_b_init_get_native_system_info, g_b_init_get_system_times)
        (GetNativeSystemInfo_Proc, GetSystemTimes_Proc): Declare.
        (get_native_system_info, get_system_times): New functions.
        (Fdefine_coding_system_internal): Likewise.
        (setup_coding_system): Likewise.  Remove unneeded casts.
        (detect_coding_iso_2022): Compare Viso_2022_charset_list with
 -      CODING_ATTR_CHARSET_LIST, not CODING_ATTR_SAFE_CHARSETS.  Remove
 -      unneeded casts.
 +      CODING_ATTR_CHARSET_LIST, not CODING_ATTR_SAFE_CHARSETS.
 +      Remove unneeded casts.
  
        * insdel.c (del_range_2): Don't modify gap contents when called
        from decode_coding_object.  (Bug#1809)
  
        * lisp.h: Define Qfont_spec, Qfont_entity, Qfont_object extern.
  
 -      * font.c (Qfont_spec, Qfont_entity, Qfont_object): Definitions
 -      moved to data.c.
 +      * font.c (Qfont_spec, Qfont_entity, Qfont_object):
 +      Definitions moved to data.c.
  
  2009-02-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        here; it will be done in init_frame_faces.
  
        * xterm.h (struct xim_inst_t): Definition moved from xterm.c.
 -      (struct x_display_info): Remove unused member null_pixel.  New
 -      member xim_callback_data.
 +      (struct x_display_info): Remove unused member null_pixel.
 +      New member xim_callback_data.
  
        * xterm.c (struct xim_inst_t): Definition moved to xterm.h.
        (xim_initialize): Save pointer to callback function data.
  
  2008-12-13  Kenichi Handa  <handa@m17n.org>
  
 -      * font.c (font_rescale_ratio): Moved from xfaces.c.
 +      * font.c (font_rescale_ratio): Move from xfaces.c.
        Argument type changed.  Handle a font-spec too.
        (font_score): Check Vface_font_rescale_alist.
        (font_open_entity): Likewise.  (Bug#1547)
  
 -      * xfaces.c (font_rescale_ratio): Moved to font.c.
 +      * xfaces.c (font_rescale_ratio): Move to font.c.
  
  2008-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2008-12-12  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32fns.c (x_display_info_for_name, Fx_open_connection): Set
 -      Vwindow_system_version to the real w32 major version.
 +      * w32fns.c (x_display_info_for_name, Fx_open_connection):
 +      Set Vwindow_system_version to the real w32 major version.
  
  2008-12-12  Dan Nicolaescu  <dann@ics.uci.edu>
  
  
  2008-12-11  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * term.c (tty_free_frame_resources): Renamed from delete_tty_output;
 +      * term.c (tty_free_frame_resources): Rename from delete_tty_output;
        all callers changed.  Call free_frame_faces to free the face cache.
  
  2008-12-11  Jason Rumney  <jasonr@gnu.org>
        (set_category_set): Extern it.
  
        * category.c (hash_get_category_set): New function.
 -      (Fmodify_category_entry): Adjusted for the change of
 +      (Fmodify_category_entry): Adjust for the change of
        char_table_ref_and_range.  Call hash_get_category_set to get a
        category set to store in the table.
  
        (SET_TEMP_CHARSET_WORK_ENCODER, GET_TEMP_CHARSET_WORK_ENCODER)
        (SET_TEMP_CHARSET_WORK_DECODER, GET_TEMP_CHARSET_WORK_DECODER):
        New macros.
 -      (load_charset_map): Meaning of control_flag changed.  If
 -      inhibit_load_charset_map is nonzero, setup a table in
 +      (load_charset_map): Meaning of control_flag changed.
 +      If inhibit_load_charset_map is nonzero, setup a table in
        temp_charset_work.
        (load_charset): New argument control_flag.
        (map_charset_for_dump): New function.
        (syms_of_charset): Make `inhibit-load-charset-map' a Lisp
        variable.
  
 -      * chartab.c (sub_char_table_ref_and_range): Adjusted for the
 +      * chartab.c (sub_char_table_ref_and_range): Adjust for the
        change of char_table_ref_and_range.
        (char_table_ref_and_range): Change the meaning of argument FROM
        and TO.  Now the caller must provide initial values for *FROM
        and *TO.
  
 -      * fontset.c (fontset_add): Adjusted for the change of
 +      * fontset.c (fontset_add): Adjust for the change of
        char_table_ref_and_range.
        (fontset_get_font_group): Likewise.
        (Ffontset_info): Likewise.
  
 -      * keymap.c (describe_vector): Adjusted for the change of
 +      * keymap.c (describe_vector): Adjust for the change of
        char_table_ref_and_range.  For char-table, put boundary between
        non-ASCII and 8-bit characters.
  
        <after-change-functions>: Reflow docstrings.
  
  2008-08-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -          Ken Raeburn  <raeburn@gnu.org>
 +            Ken Raeburn  <raeburn@gnu.org>
  
        Dock menu customization, based on a patch by Ken Raeburn, plus some
        other fixes.
  
        * s/darwin.h: Add #define DARWIN_OS.  Get rid of C_SWITCH_SYSTEM def.
        Change LIBS_MACGUI to LIBS_NSGUI.  Move temacs-conditionalized defs
 -      closer to C_SWITCH_SYSTEM_TEMACS so usage is understood.  Expand
 -      comment on NO_SOCK_SIGIO.
 +      closer to C_SWITCH_SYSTEM_TEMACS so usage is understood.
 +      Expand comment on NO_SOCK_SIGIO.
  
  2008-08-03  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
  
 -      * callproc.c (set_initial_environment): Initialize
 -      Vprocess_environment under CANNOT_DUMP (fixes crash when
 +      * callproc.c (set_initial_environment):
 +      Initialize Vprocess_environment under CANNOT_DUMP (fixes crash when
        batch-compiling for bootstrap).
  
  2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
 -          YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +            YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      (make_initial_frame): Call init_frame_faces(f) in CANNOT_DUMP case --
 -      fix crash due to different init order.
 +      * frame.c (make_initial_frame): Call init_frame_faces(f) in
 +      CANNOT_DUMP case -- fix crash due to different init order.
  
  2008-07-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * m/macppc.h:
        * m/alpha.h: Use GNU_LINUX instead of LINUX.  Reorganize conditionals.
  
 -      * m/ibms390x.h (XINT, XUINT): Don't define, same as the default
 +      * m/ibms390x.h (XINT, XUINT): Don't define, same as the default.
        (SPECIAL_EMACS_INT):
        * m/ia64.h (SPECIAL_EMACS_INT):
        * m/amdx86-64.h (SPECIAL_EMACS_INT):
  2008-07-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
        * fileio.c:
 -      * sysdep.c
 +      * sysdep.c:
        * systty.h:
        * m/ibmrs6000.h:
        * m/iris4d.h:
  
        * xftfont.c (struct xftfont_info): New member ft_size.  Make the
        member order compatible with struct ftfont_info.
 -      (xftfont_open): Add FC_CHARSET to the pattern.  Set
 -      xftfont_info->ft_size.  Don't unlock the face.  Check BDF
 +      (xftfont_open): Add FC_CHARSET to the pattern.
 +      Set xftfont_info->ft_size.  Don't unlock the face.  Check BDF
        properties if appropriate.
        (xftfont_close): Unlock the face.
        (xftfont_anchor_point, xftfont_shape): Deleted.
        (USG_SHARED_LIBRARIES): Remove duplicate definition.
  
  2008-06-26  Juanma Barranquero  <lekktu@gmail.com>
 -          Eli Zaretskii  <eliz@gnu.org>
 +            Eli Zaretskii  <eliz@gnu.org>
  
        * makefile.w32-in (LOCAL_FLAGS):
        Don't include WINDOWSNT, DOS_NT and _UCHAR_T.
        truncate only if the window width is below that integer.
        (start_display, resize_mini_window, produce_stretch_glyph)
        (display_string, move_it_in_display_line_to): Use line_wrap.
 -      (back_to_previous_visible_line_start, reseat_1): Reset
 -      string_from_display_prop_p.
 +      (back_to_previous_visible_line_start, reseat_1):
 +      Reset string_from_display_prop_p.
        (display_line): Extend default face to end of line when wrapping.
  
  2008-06-24  Kim F. Storm  <storm@cua.dk>
        the property of LFACE_FONT of LFACE (if any).
  
  2008-06-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 +            Ryo Yoshitake  <ryo@shiftmode.net>
  
        * xterm.c (x_set_frame_alpha): Add x_catch_errors for bug#437.
  
        definitions from xmenu.c.  Suggested by Adrian Robert.
  
        * xmenu.c: Remove platform-independent menu definitions.
 -      (menu_items menu_items_inuse, menu_items_allocated)
 +      (menu_items, menu_items_inuse, menu_items_allocated)
        (menu_items_used, menu_items_n_panes)
        (menu_items_submenu_depth): Move to keyboard.h.
        (init_menu_items, finish_menu_items, unuse_menu_items)
        * xterm.c (x_set_frame_alpha): Move declarations before statements.
  
  2008-05-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 +            Ryo Yoshitake  <ryo@shiftmode.net>
  
        * frame.c (Qalpha): Add a new frame parameter `alpha'.
        (Vframe_alpha_lower_limit): New variable.
        (struct glyph_string): New member underline_position and
        underline_thickness.
        (enum lface_attribute_index): Remove LFACE_AVGWIDTH_INDEX.
 -      (struct face): Change type of `font' to `struct font *'.  Remove
 -      members `font_name', `font_info_id'.
 +      (struct face): Change type of `font' to `struct font *'.
 +      Remove members `font_name', `font_info_id'.
        (per_char_metric, encode_char): Delete externs.
        (calc_pixel_width_or_height): Adjust the prototype.
  
        (FONT_WEIGHT_NAME_NUMERIC, FONT_SLANT_NAME_NUMERIC)
        (FONT_WIDTH_NAME_NUMERIC, FONT_SET_STYLE): New macros.
        (struct font_spec, struct font_entity): New structs.
 -      (FONT_ENCODING_NOT_DECIDED): Moved from fontset.h.
 +      (FONT_ENCODING_NOT_DECIDED): Move from fontset.h.
        (struct font): Many members from old "struct font_info" moved to
        here.  Members font and entity deleted.
        (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P, FONTP): Modified for
        (CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
        (CHECK_FONT_GET_OBJECT): Likewise.
        (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, XSETFONT): New macros.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved from font.h.
 -      (struct font_driver): New members case_sensitive anc check.  Type
 -      of the member list and open changed.
 +      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Move from font.h.
 +      (struct font_driver): New members case_sensitive anc check.
 +      Type of the member list and open changed.
        (enable_font_backend, font_symbolic_weight, font_symbolic_slant)
        (font_symbolic_width, font_find_object, font_get_spec)
        (font_set_lface_from_name): Delete extern.
        (enable_font_backend): Delete it.
        (Qfont_spec, Qfont_entity, Qfont_object): New variables.
        (CHECK_VALIDATE_FONT_SPEC): Delete it.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved to font.h.
 +      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Move to font.h.
        (null_string): Delete it.
        (null_vector): Make it static.
        (font_family_alist): Delete it.
        (QCextra, QClanguage): Delete it.
        (QClang, QCavgwidth, QCfont_entity, QCfc_unknown_spec): New variables.
        (font_make_spec, font_make_entity, font_make_object)
 -      (font_intern_prop): Renamed from intern_downcase.  Don't downcase
 +      (font_intern_prop): Rename from intern_downcase.  Don't downcase
        the string.  Callers changed.
 -      (font_pixel_size): Adjusted for the format change of font-related
 +      (font_pixel_size): Adjust for the format change of font-related
        objects.
        (prop_name_to_numeric, prop_numeric_to_name): Delete them.
        (font_style_to_value, font_style_symbolic): New function.
        (font_registry_charsets): Use Fassoc_string instead of
        assq_no_quit.
        (font_prop_validate_symbol): Don't return null_string.
 -      (font_prop_validate_style): Adjusted for the change of
 +      (font_prop_validate_style): Adjust for the change of
        style-related values in a font vector.
        (font_property_table): Delete entries for QClanguage and
        QCantialias, add entries for QCavgwidth.
        (get_font_prop_index): Delete the 2nd argument FROM.
        (font_prop_validate): Arguments changed.
 -      (font_put_extra): Adjusted for the change of font-related objects.
 +      (font_put_extra): Adjust for the change of font-related objects.
        (font_expand_wildcards, font_parse_xlfd, font_unparse_xlfd)
        (font_parse_fcname, font_unparse_fcname)
        (font_prepare_composition): Likewise.
 -      (font_parse_family_registry): Renamed from font_merge_old_spec.
 +      (font_parse_family_registry): Rename from font_merge_old_spec.
        (otf_open): Delete the 1st arg entity.
 -      (font_otf_capability): Adjusted for the above change.
 +      (font_otf_capability): Adjust for the above change.
        (font_score): New arg alternate_families.  Adjusted for the change
        of font-related objects.
        (font_sort_entites): New arg best_only.
        (font_match_p): Check alternate families.
        (font_find_object): Delete it.
        (font_check_object): New function.
 -      (font_clear_cache): Adjusted for the change of font-related objects.
 +      (font_clear_cache): Adjust for the change of font-related objects.
        (font_delete_unmatched): New arg.
        (font_list_entities): Call font_driver->list with a spec that
        doesn't specify style-related properties.
        (font_matching_entity): Arguments changed.  Caller changed.
 -      (font_open_entity): Adjusted for the change of font-related objects.
 +      (font_open_entity): Adjust for the change of font-related objects.
        (font_close_object, font_has_char, font_encode_char)
        (font_get_name, font_get_spec): Likewise.
        (font_spec_from_name, font_clear_prop, font_update_lface):
        New functions.
        (font_find_for_lface, font_open_for_lface, font_load_for_lface)
        (font_prepare_for_face, font_done_for_face, font_open_by_name)
 -      (font_at): Adjusted for the change of font-related objects.
 +      (font_at): Adjust for the change of font-related objects.
        (font_range): New function.
        (Ffontp, Ffont_spec, Ffont_get, Ffont_put, Flist_fonts)
 -      (Ffont_xlfd_name): Adjusted for the change of font-related objects.
 +      (Ffont_xlfd_name): Adjust for the change of font-related objects.
        (Fcopy_font_spec, Fmerge_font_spec): New function.
 -      (Ffont_family_list): Renamed from list-families.
 +      (Ffont_family_list): Rename from list-families.
        (Finternal_set_font_style_table): Arguments changed.
        (Ffont_fill_gstring, Ffont_shape_text, Fopen_font)
 -      (Ffont_drive_otf, Fquery_font, Ffont_match_p): Adjusted for the
 +      (Ffont_drive_otf, Fquery_font, Ffont_match_p): Adjust for the
        change of font-related objects.
        (syms_of_font): Delete "ifdef USE_FONT_BACKEND".  DEFSYM new symbols.
  
        * fontset.h (struct font_info): Delete it.  Most members go to
        struct font.
 -      (FONT_ENCODING_NOT_DECIDED): Moved to font.h.
 +      (FONT_ENCODING_NOT_DECIDED): Move to font.h.
        (enum FONT_SPEC_INDEX): Delete it.
        (font_info, list_fonts_func, load_font_func, query_font_func)
        (set_frame_fontset_func, find_ccl_program_func)
 -      (get_font_repertory_func, new_fontset_from_font_name): Delete
 -      externs.
 +      (get_font_repertory_func, new_fontset_from_font_name):
 +      Delete externs.
        (fontset_from_font_name): Extern it.
        (FS_LOAD_FONT, FONT_INFO_ID, FONT_INFO_FROM_ID)
        (FONT_INFO_FROM_FACE): Deleted.
        (face_for_char): Likewise.  Call face_for_char with font_object.
        (fs_load_font): Delete.  Delete #pragma surrounding it.
        (fs_query_fontset): Use strcasecmp instead of strcmp.
 -      (generate_ascii_font_name): Adjusted for the format change of
 +      (generate_ascii_font_name): Adjust for the format change of
        font-spec.
        (Fset_fontset_font): Likewise.  Use new macros to set elements of
        font-def.
        (Fnew_fontset): Use font_unparse_xlfd to generate
        FONTSET_ASCII (fontset).
        (new_fontset_from_font_name): Deleted.
 -      (fontset_from_font): Renamed from new_fontset_from_font.  Check if
 +      (fontset_from_font): Rename from new_fontset_from_font.  Check if
        a fontset is already created for the font.  FIx updating of
        Vfontset_alias_alist.
        (fontset_ascii_font): Deleted.
 -      (Ffont_info): Adjusted for the format change of font-spec.
 +      (Ffont_info): Adjust for the format change of font-spec.
        (Finternal_char_font): Likewise.
        (Ffontset_info): Likewise.
        (syms_of_fontset): Don't check load_font_func.
        (x_set_font_backend): Use FRAME_FONT macro to check if a font is
        already set for the frame.
  
 -      * ftfont.c (ftfont_pattern_entity): Argument FRAME removed.  Make
 -      a font-entity by font_make_entity.  Use font_intern_prop instead
 +      * ftfont.c (ftfont_pattern_entity): Argument FRAME removed.
 +      Make a font-entity by font_make_entity.  Use font_intern_prop instead
        of intern_downcase.  Use FONT_SET_STYLE to set a style-related
        font property.  If a font is scalable, set avgwidth property to 0.
        Set font-entity property by font_put_extra.
        (ftfont_list_generic_family): Argument SPEC and REGISTRY removed.
 -      (ffont_driver): Adjusted for the change of struct font_driver.
 +      (ffont_driver): Adjust for the change of struct font_driver.
        (ftfont_spec_pattern): New function.
        (ftfont_list): Return a list, not vector.
        (ftfont_match): Use ftfont_spec_pattern to get a pattern.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (ftfont_close): Don't free `struct font'.
 -      (ftfont_has_char): Adjusted for the format change of font-entity.
 +      (ftfont_has_char): Adjust for the format change of font-entity.
        (ftfont_encode_char, ftfont_text_extents): Likewise.
  
        * ftxfont.c (ftxfont_list): Return a list, not vector.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (ftxfont_close): Don't decrease FRAME_X_DISPLAY_INFO (f)->n_fonts.
 -      (ftxfont_draw): Adjusted for the change of struct font.
 +      (ftxfont_draw): Adjust for the change of struct font.
  
 -      * image.c (image_ascent): Don't include "charset.h".  Include
 -      "character.h" and "font.h".
 +      * image.c (image_ascent): Don't include "charset.h".
 +      Include "character.h" and "font.h".
  
        * lisp.h (enum pvec_type): New member PREV_FONT.
        (Fassoc_string): EXFUN it.
        'struct font *'.
        (get_char_face_and_encoding): Assign the whole encoding task to
        the `encode-char' method of a font driver.
 -      (fill_composite_glyph_string): Adjusted for the change of `struct
 +      (fill_composite_glyph_string): Adjust for the change of `struct
        face' and `struct glyph_string'.
        (fill_glyph_string): Likewise.
        (get_per_char_metric): Arguments changed.
 -      (x_get_glyph_overhangs): Adjusted for the change of `struct face'
 +      (x_get_glyph_overhangs): Adjust for the change of `struct face'
        and `struct glyph_string'.
        (produce_stretch_glyph, calc_line_height_property)
        (x_produce_glyphs): Likewise.
  
        * xfaces.c: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Use
 -      FONT_XXX_NAME_NUMERIC instead of face_numeric_xxx.
 +      used only when USE_FONT_BACKEND is not defined.
 +      Use FONT_XXX_NAME_NUMERIC instead of face_numeric_xxx.
        (QCfoundry, QCadstyle, QCregistry, QCspacing, QCsize, QCavgwidth)
        (Qp): Extern them.
        (clear_font_table, load_face_font, xlfd_lookup_field_contents):
        by FONTP.
        (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
        (set_lface_from_font_name): Delete it.
 -      (set_lface_from_font): Renamed from
 +      (set_lface_from_font): Rename from
        set_lface_from_font_and_fontset.  Caller changed.  Don't set
        LFACE_AVGWIDTH.  Use FONT_XXX_FOR_FACE to get a symbol suitable
        for face.
        * xfont.c: Include <stdlib.h> and "ccl.h".
        (struct xfont_info): New structure.
        (xfont_query_font): Deleted.
 -      (xfont_find_ccl_program): Renamed from x_find_ccl_program and
 +      (xfont_find_ccl_program): Rename from x_find_ccl_program and
        moved from xterm.c.
 -      (xfont_driver): Adjusted for the change of struct font_driver.
 +      (xfont_driver): Adjust for the change of struct font_driver.
        (compare_font_names): New function.
 -      (xfont_list_pattern): Sort font names case insensitively.  Make
 -      font_entity by calling font_make_entity.  Avoid auto-scaled fonts.
 +      (xfont_list_pattern): Sort font names case insensitively.
 +      Make font_entity by calling font_make_entity.  Avoid auto-scaled fonts.
        (xfont_list): Return a list, not vector.
        (xfont_match): If the font doesn't have QCname property, generate
        a name from the other font properties.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (xfont_close): Don't free struct font.
 -      (xfont_prepare_face): Adjusted for the change of struct font.
 +      (xfont_prepare_face): Adjust for the change of struct font.
        (xfont_done_face): Deleted.
 -      (xfont_has_char): Adjusted for the change of struct font.
 +      (xfont_has_char): Adjust for the change of struct font.
        (xfont_encode_char, xfont_draw): Likewise.
        (xfont_check): New function.
  
 -      * xftfont.c (xftfont_list): Adjusted for the change of `list'
 +      * xftfont.c (xftfont_list): Adjust for the change of `list'
        callback function.
 -      (xftfont_match): Adjusted for the format change of font-entity.
 -      (xftfont_open): Adjusted for the format change of font-entity and
 +      (xftfont_match): Adjust for the format change of font-entity.
 +      (xftfont_open): Adjust for the format change of font-entity and
        font-object.  Adjusted for the change of struct font.  Return a
        font-object.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        used only when USE_FONT_BACKEND is not defined.  Don't include ccl.h.
        (x_per_char_metric, x_encode_char): Deleted.
        (x_set_cursor_gc, x_set_mouse_face_gc): Don't set GCFont.
 -      (x_compute_glyph_string_overhangs): Adjusted for the change of
 +      (x_compute_glyph_string_overhangs): Adjust for the change of
        `struct face'.
        (x_draw_glyph_string_foreground)
        (x_draw_composite_glyph_string_foreground): Likewise.
        (x_draw_glyph_string): Likewise.  Use font->underline_position and
        font->underline_thickness.
 -      (x_new_font): Renamed from x_new_fontset2.
 +      (x_new_font): Rename from x_new_fontset2.
        (x_new_fontset, x_get_font_info, x_list_fonts): Deleted.
        (x_check_font): Call `check' method of a font driver.
        (x_font_min_bounds, x_compute_min_glyph_bounds, x_load_font)
        (x_query_font, x_get_font_repertory): Deleted.
 -      (x_find_ccl_program): Renamed and moved to xfont.c.
 -      (x_redisplay_interface): Adjusted for the change of `struct
 +      (x_find_ccl_program): Rename and moved to xfont.c.
 +      (x_redisplay_interface): Adjust for the change of `struct
        redisplay_interface'.
  
        * w32fns.c: Throughout the file, delete all USE_FONT_BACKEND
        (w32font_close): Don't free struct font.  Adjusted for the change
        of struct w32font_info.
        (w32font_encode_char, w32font_text_extents, w32font_draw):
 -      Adjusted for the change of struct w32font_info.
 +      Adjust for the change of struct w32font_info.
        (w32font_draw): Likewise.
        (w32font_list_internal): Return a list, not vector.
        (w32font_open_internal): Change the 4th arg to font-object.
        Use FONT_SET_STYLE to set a style-related font property.  If a
        font is scalable, set avgwidth property to 0.  Set font-entity
        property by font_put_extra.
 -      (font_matches_spec): Adjusted for the format change of font-entity.
 +      (font_matches_spec): Adjust for the format change of font-entity.
        (w32_weight_table, w32_decode_weight): New variables.
        (w32_encode_weight): New function.
 -      (fill_in_logfont): Adjusted for the format change of font-spec.
 +      (fill_in_logfont): Adjust for the format change of font-spec.
        (w32font_full_name): Use FONT_WEIGHT_SYMBOLIC to get a symbol
        weight value.
 -      (w32font_driver): Adjusted for the change of struct font_driver.
 +      (w32font_driver): Adjust for the change of struct font_driver.
  
        * w32term.h: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Surround non-used
        code by "#ifdef OLD_FONT" and "endif".
        (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT)
 -      (FONT_AVG_WIDTH): Adjusted for the change of struct font.
 +      (FONT_AVG_WIDTH): Adjust for the change of struct font.
  
        * w32term.c: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Delete all codes
        * w32uniscribe.c: Delete USE_FONT_BACKEND conditional.
        (uniscribe_open): Return value changed to font-object.
        Adjusted for the format change of font-object.
 -      (uniscribe_otf_capability): Adjusted for the change of struct font.
 +      (uniscribe_otf_capability): Adjust for the change of struct font.
        (add_opentype_font_name_to_list): Don't downcase names.
 -      (uniscribe_font_driver): Adjusted for the change of struct
 +      (uniscribe_font_driver): Adjust for the change of struct
        font_driver.
  
  2008-05-13  Chong Yidong  <cyd@stupidchicken.com>
        Report an error when image size is invalid.
        Read two bytes at a time when raw images have max_color_idx above 255.
  
 -2008-04-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (readdir): If FindFirstFile/FindNextFile return in
 -      cFileName a file name that includes `?' characters, use the 8+3
 -      alias in cAlternateFileName instead.
 -
  2008-04-05  Kenichi Handa  <handa@ni.aist.go.jp>
  
        * ccl.c (ccl_driver): If ccl->quit_silently is nonzero, don't
        * xterm.c (handle_one_xevent): For Gtk+ and ConfigureNotify, call
        xg_frame_resized when the event is for the edit widget.
  
 -      * gtkutil.h (xg_frame_resized): Renamed from xg_resize_widgets.
 +      * gtkutil.h (xg_frame_resized): Rename from xg_resize_widgets.
  
        * gtkutil.c (xg_resize_outer_widget): Only do one of set_geometry or
        set_char_size.
 -      (xg_frame_resized): Renamed from xg_resize_widgets.  Remove all
 +      (xg_frame_resized): Rename from xg_resize_widgets.  Remove all
        operations on widgets here.  Just set frame size if needed.
        (flush_and_sync, x_wm_size_hint_off, xg_pack_tool_bar): New functions.
        (xg_frame_set_char_size): Call x_wm_size_hint_off before resizing.
  
  2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
  
 -      * coding.c (decode_coding_object, encode_coding_object): Adjust
 -      marker positions after conversion.
 +      * coding.c (decode_coding_object, encode_coding_object):
 +      Adjust marker positions after conversion.
  
        * lisp.h (struct Lisp_Marker): New member need_adjustment.
  
  
  2008-02-01  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32term.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 +      * w32term.c (x_set_glyph_string_clipping):
 +      Use get_glyph_string_clip_rects.
        (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
        Adjust for the change of struct glyph_string.
  
        * xftfont.c (xftfont_draw): Adjust for the change of struct
        glyph_string.
  
 -      * xterm.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 +      * xterm.c (x_set_glyph_string_clipping):
 +      Use get_glyph_string_clip_rects.
        (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
        Adjust for the change of struct glyph_string.
  
        constant.  Save QCspacing value.  Save list of scripts instead of
        binary subranges.
        (w32_generic_family, logfonts_match, font_matches_spec): New functions.
 -      (add_font_entity_to_list): Use font_callback_data struct.  Filter
 -      unwanted fonts.
 +      (add_font_entity_to_list): Use font_callback_data struct.
 +      Filter unwanted fonts.
        (add_one_font_entity_to_list): Use font_callback_data struct.
        (w32_registry): Default to iso10646_1.
        (fill_in_logfont): Use dpi from extra slot.  Don't bother with
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Fix
 -      indexing into elements of s->cmp and s->char2b.
 +      * xterm.c (x_draw_composite_glyph_string_foreground):
 +      Fix indexing into elements of s->cmp and s->char2b.
  
  2008-02-01  Juanma Barranquero  <lekktu@gmail.com>
  
  
        * font.c (font_parse_fcname, font_parse_name): Don't change :name
        property of FONT.
 -      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
 -      them unconditionally.
 +      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring):
 +      Define them unconditionally.
        (font_matching_entity): New function.
        (font_open_by_name): Try font_matching_entity if exact match is
        not found.
        (font_prepare_composition): Set cmp->glyph_len.
        (font_open_entity): Set font->scalable.
        (Ffont_get): Handle :otf property.
 -      (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
 -      functions.
 +      (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates):
 +      New functions.
        (Fquery_font): Use font->font.full_name.
        (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
        Sfont_otf_alternates.
        (font_at): New function.
        (Ffont_get): If FONT is a font-object, get entity from it.
        (Ffont_make_gstring): Initialize elements of glyphs with nil.
 -      (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.  Fix
 -      range check.
 +      (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.
 +      Fix range check.
        (Ffont_at): New function.
        (syms_of_font): Defsubr Sfont_at.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
 -      (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
 +      (LGLYPH_SET_WIDTH): Adjust for the change of LGLYPH format.
        (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
  
        * font.c (font_merge_old_spec): Treat '*' in foundry as a wild card.
        (font_prop_validate_extra): Delete.
        (font_prop_validate_spacing): New function.
        (font_property_table): Add elements for all known properties.
 -      (get_font_prop_index): Rename from check_font_prop_name.  New
 -      argument FROM.  Change caller.
 +      (get_font_prop_index): Rename from check_font_prop_name.
 +      New argument FROM.  Change caller.
        (font_prop_validate): Validate all known properties.
        (font_put_extra): Delete argument force.  Change caller.
        (font_expand_wildcards): Make it static.  Fix the way of shrinking
        (font_open_for_lface, font_open_by_name): Fix handling of font size.
        (Ffont_spec): Add QCname property that contains only unknown properties.
  
 -      * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.  Don't
 -      include weight in listing pattern, instead check weight of each
 +      * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.
 +      Don't include weight in listing pattern, instead check weight of each
        listed font.  Don't include scalable in pattern.  Pay attention to
        FONT_PIXEL_SIZE_QUANTUM.
  
  
        * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
        (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
 -      (font_expand_wildcards): Fix handling ENCODING field.  Avoid
 -      unnecessary checks for weight, slant, and swidth.
 +      (font_expand_wildcards): Fix handling ENCODING field.
 +      Avoid unnecessary checks for weight, slant, and swidth.
        (font_parse_fcname): New function.
        (font_unparse_fcname): New function.
        (font_parse_name): New function.
        * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
        XLFD_XXX_INDEX.
        (enum xlfd_field_mask): New enum.
 -      (intern_font_field): Changed argument.  Change caller.  If digits
 +      (intern_font_field): Change argument.  Change caller.  If digits
        are followed by non-digits, return a symbol.
        (font_expand_wildcards): New function.
        (font_parse_xlfd): Fix wildcard handling.
        * xfns.c [USE_FONT_BACKEND]: Include "font.h".
        (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
        (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
 -      nonzero, register all available font drivers.  Call
 -      x_default_font_parameter for deciding a font.
 +      nonzero, register all available font drivers.
 +      Call x_default_font_parameter for deciding a font.
        (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
  
        * xterm.c [USE_FONT_BACKEND]: Include "font.h".
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
 -      condition to terminate the loop.
 +      * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION):
 +      Fix condition to terminate the loop.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xterm.c (x_set_glyph_string_clipping_exactly): Set
 -      src->clip_head and src->clip_tail temporarily instead of src->hl.
 +      * xterm.c (x_set_glyph_string_clipping_exactly):
 +      Set src->clip_head and src->clip_tail temporarily instead of src->hl.
  
        * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
        character sequence.
        (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
        (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
  
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Check
 -      s->face is NULL or not.
 +      * xterm.c (x_draw_composite_glyph_string_foreground):
 +      Check s->face is NULL or not.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        Qnil.  Use JIS_TO_SJIS instead of ENCODE_SJIS.
        (decode_mac_font_name): Use decode_coding_c_string instead of
        decode_coding.
 -      (x_load_font): Initialize fontp->fontset to -1.  Set
 -      fontp->encoding_type.
 +      (x_load_font): Initialize fontp->fontset to -1.
 +      Set fontp->encoding_type.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * search.c (search_buffer): Give up BM search on case-fold-search
        if one of a target character has a case-equivalence of different
 -      byte length even if that target charcter is an ASCII.
 +      byte length even if that target character is an ASCII.
        (simple_search): Fix calculation of byte length of matched text.
        (boyer_moore): Fix handling of case-equivalent multibyte characters.
  
        (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
        (UNIDATA): New variable.
        (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
 -      (bootstrap-emacs${EXEEXT}): Depends on charprop.el.  Run
 -      $(RUN_TEMACS) unconditionally.
 +      (bootstrap-emacs${EXEEXT}): Depends on charprop.el.
 +      Run $(RUN_TEMACS) unconditionally.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
        * w32select.c (validate_coding_system)
        (setup_windows_coding_system): New functions.
 -      (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
 -      setup_windows_coding_system.
 -      (setup_config, Fw32_get_clipboard_data): Use
 -      validate_coding_system.
 +      (convert_to_handle_as_coded, Fw32_get_clipboard_data):
 +      Use setup_windows_coding_system.
 +      (setup_config, Fw32_get_clipboard_data):
 +      Use validate_coding_system.
        (Fx_selection_exists): Move call to setup_config to a place
        where signals are allowed.
  
  
        * fontset.c (fs_load_font): Use fast_string_match_ignore_case
        instead of fast_c_string_match_ignore_case.
 -      (find_font_encoding): Change argument to Lisp_Object.  Use
 -      fast_string_match_ignore_case instead of
 +      (find_font_encoding): Change argument to Lisp_Object.
 +      Use fast_string_match_ignore_case instead of
        fast_c_string_match_ignore_case.  Change caller.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
        Qundecided.
        (Fterminal_coding_system): Return nil if terminal coding system is
        `undecided'.
 -      (syms_of_coding): Define coding-system `undecided' here.  Setup
 -      terminal_coding as `undecided'.
 +      (syms_of_coding): Define coding-system `undecided' here.
 +      Setup terminal_coding as `undecided'.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xdisp.c (message_dolog, set_message_1): Call
 -      unibyte_char_to_multibyte with arg type int.
 +      * xdisp.c (message_dolog, set_message_1):
 +      Call unibyte_char_to_multibyte with arg type int.
  
        * lread.c (read1): Fix reading of a char-table.
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (Ffind_coding_systems_region_internal): Include
 -      raw-text and no-conversion in the result.
 +      * coding.c (Ffind_coding_systems_region_internal):
 +      Include raw-text and no-conversion in the result.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
        * fontset.c: Include "intervals.h".
        (fontset_face): Fix comparing of Lisp_Objects.
 -      (free_face_fontset, new_fontset_from_font_name): Fix
 -      Lisp_Object/int mixup.
 +      (free_face_fontset, new_fontset_from_font_name):
 +      Fix Lisp_Object/int mixup.
  
        * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
  
        * coding.c: Add many prototypes for static functions.
        (get_translation_table): Allow max_lookup to be NULL.
        (decode_coding, Ffind_coding_systems_region_internal)
 -      (Funencodable_char_position, Fcheck_coding_systems_region): Call
 -      get_translation_table with max_lookup NULL.
 +      (Funencodable_char_position, Fcheck_coding_systems_region):
 +      Call get_translation_table with max_lookup NULL.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (Fdefine_coding_system_internal): Accept list of translation
        tables as :encode-translation-table and :decode-translation-table.
        (Fcoding_system_put): New function.
 -      (syms_of_coding): Declare new symbols.  Defsubr
 -      Scoding_system_put.
 +      (syms_of_coding): Declare new symbols.
 +      Defsubr Scoding_system_put.
        (decode_coding_sjis, encode_coding_sjis): Handle 4th charset,
        typically JISX0212.
  
        * chartab.c (map_sub_char_table_for_charset): Fix args to
        c_function with.
  
 -      * coding.h (enum coding_result_code): Delete
 -      CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
 +      * coding.h (enum coding_result_code):
 +      Delete CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
  
        * coding.c (Qinsufficient_source, Qinconsistent_eol)
        (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New variables.
  
        * w32console.c: Include character.h.  Use terminal_encode_buffer
        from term.c.
 -      (write_glyphs): Use new version of encode_terminal_code.  Use
 -      encode_coding_object in place of encode_coding.
 +      (write_glyphs): Use new version of encode_terminal_code.
 +      Use encode_coding_object in place of encode_coding.
  
        * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
        encoding becomes encoding_type.
        * charset.h (charset_unicode): Extern it.
  
        * charset.c (string_xstring_p): Check by (C >= 0x100).
 -      (find_charsets_in_text): Change format of the arc CHARSETS.  New
 -      arg MULTIBYTE.
 +      (find_charsets_in_text): Change format of the arc CHARSETS.
 +      New arg MULTIBYTE.
        (Ffind_charset_region, Ffind_charset_string): Adjust for the
        change of find_charsets_in_text.
        (Fsplit_char): Fix doc.  Never return unknown.
  
        * chartab.c (char_table_translate): Use CHARACTERP, not INTEGERP.
  
 -      * coding.c (Fdefine_coding_system_alias): Update
 -      Vcoding_system_list.
 +      * coding.c (Fdefine_coding_system_alias):
 +      Update Vcoding_system_list.
  
        * fontset.c (load_font_get_repertory): Pay attention to the case
        that ENCODING of a font is specified by a char-table.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * term.c (encode_terminal_code): Don't handle glyph-table.  Check
 -      if a character is encodable by the terminal coding system.  If
 -      not, produces proper number of `?'s.  Update
 +      * term.c (encode_terminal_code): Don't handle glyph-table.
 +      Check if a character is encodable by the terminal coding system.
 +      If not, produces proper number of `?'s.  Update
        terminal_encode_buffer and terminal_encode_buf_size if necessary.
        (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
 -      variables.
 +      * term.c (terminal_encode_buffer, terminal_encode_buf_size):
 +      New variables.
        (encode_terminal_code): Change argument.  Encode multiple
        characters at once.  Store the result of encoding in
        terminal_encode_buffer.
  
        * casetab.c (set_case_table): Remove unused var.
  
 -      * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
 -      unused vars.
 +      * window.c (Fdisplay_buffer, Fframe_selected_window):
 +      Remove unused vars.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
        (update_compositions, Ffind_composition_internal): Make buffer
        positions EMACS_INT.
  
 -      * composite.h (find_composition, update_compositions): Make
 -      position args EMACS_INT.
 +      * composite.h (find_composition, update_compositions):
 +      Make position args EMACS_INT.
  
        * keyboard.c (adjust_point_for_property): Make beg and end EMACS_INT.
  
  
  2008-02-01  Andreas Schwab  <schwab@suse.de>
  
 -      * chartab.c (map_char_table, map_char_table_for_charset): Protect
 -      `range' from GC.
 +      * chartab.c (map_char_table, map_char_table_for_charset):
 +      Protect `range' from GC.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
        It is the same as RE_MULTIBYTE_P (bufp) now.
        <exactn>: Translate via multibyte.
 -      <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.  Don't
 -      translate it.
 +      <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.
 +      Don't translate it.
        <charset, charset_not>: Fetch a character by
        RE_STRING_CHAR_AND_LENGTH.  Translate via multibyte.
        <duplicate>: Call bcmp_translate with the last arg `multibyte'.
        FONT_SPEC_INDEX.  If font_spec is a string, extract the registry
        name by using split_font_name_into_vector.
        (Fnew_fontset): If no ASCII font is specified in FONTLIST,
 -      generate a proper font name from the fontset name.  Update
 -      Vfontset_alias_alist.
 +      generate a proper font name from the fontset name.
 +      Update Vfontset_alias_alist.
        (n_auto_fontsets): New variable.
        (new_fontset_from_font_name): New function.
        (Ffont_info): Store the information about fonts generated from the
        sequence is valid in this coding system.  Change callers.
        (MAX_ANNOTATION_LENGTH): New macro.
        (ADD_ANNOTATION_DATA): New macro.
 -      (ADD_COMPOSITION_DATA): Change argument.  Change callers.  Call
 -      ADD_ANNOTATION_DATA.  Change the format of annotation data.
 +      (ADD_COMPOSITION_DATA): Change argument.  Change callers.
 +      Call ADD_ANNOTATION_DATA.  Change the format of annotation data.
        (ADD_CHARSET_DATA): New macro.
        (emacs_mule_char): New argument ID.  Change callers.
        (decode_coding_emacs_mule, decode_coding_iso_2022)
        (produce_composition): Adjust for the new annotation data format.
        (produce_charset): New function.
        (produce_annotation): Handle charset annotation.
 -      (handle_composition_annotation, handle_charset_annotation): New
 -      functions.
 +      (handle_composition_annotation, handle_charset_annotation):
 +      New functions.
        (consume_chars): Handle charset annotation.  Utilize the above two
        functions.
        (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
  
        * coding.c (detect_coding_charset): If only ASCII bytes are found,
        return 0.
 -      (Fdefine_coding_system_internal): Setup
 -      CODING_ATTR_ASCII_COMPAT (attrs) correctly.
 +      (Fdefine_coding_system_internal):
 +      Setup CODING_ATTR_ASCII_COMPAT (attrs) correctly.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (decode_coding): Fix args to translate_chars.  Pay
 -      attention to Vstandard_translation_table_for_decode.
 +      * coding.c (decode_coding): Fix args to translate_chars.
 +      Pay attention to Vstandard_translation_table_for_decode.
        (encode_coding): Fix args to translate_chars.  Pay attention to
        Vstandard_translation_table_for_encode.
  
  
        * character.h (CHAR_STRING, CHAR_STRING_ADVANCE): Call char_string
        if C is greater than MAX_3_BYTE_CHAR.
 -      (STRING_CHAR, STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE): Call
 -      string_char instead of string_char_with_unification.
 +      (STRING_CHAR, STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE):
 +      Call string_char instead of string_char_with_unification.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
  
        * keyboard.c (read_key_sequence): Fix type error.
  
 -      * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
 -      type error.
 +      * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte):
 +      Fix type error.
  
        * fontset.c (fontset_add): Return Lisp_Object.
  
        * regex.h (struct re_pattern_buffer): New member target_multibyte.
  
        * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
 -      (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.  If
 -      that is zero, convert an eight-bit char to multibyte.
 +      (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.
 +      If that is zero, convert an eight-bit char to multibyte.
        (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
        non-emacs case.
        (PATFETCH): Convert an eight-bit char to multibyte.
        multibyte always 1.
        (re_search_2): In emacs, set the locale variable multibyte to 1,
        otherwise to 0.  New local variable target_multibyte.  Check it
 -      to decide the multibyteness of STR1 and STR2.  If
 -      target_multibyte is zero, convert unibyte chars to multibyte
 +      to decide the multibyteness of STR1 and STR2.
 +      If target_multibyte is zero, convert unibyte chars to multibyte
        before translating and checking fastmap.
        (TARGET_CHAR_AND_LENGTH): New macro.
        (re_match_2_internal): In emacs, set the locale variable multibyte
 -      to 1, otherwise to 0.  New local variable target_multibyte.  Check
 -      it to decide the multibyteness of STR1 and STR2.  Use
 -      TARGET_CHAR_AND_LENGTH to fetch a character from D.
 +      to 1, otherwise to 0.  New local variable target_multibyte.
 +      Check it to decide the multibyteness of STR1 and STR2.
 +      Use TARGET_CHAR_AND_LENGTH to fetch a character from D.
        <charset, charset_not>: If multibyte is nonzero, check fastmap
        only for ASCII chars.  Call bcmp_translate with
        target_multibyte, not with multibyte.
  
        * lisp.h (Fset_buffer_multibyte): Adjust prototype.
  
 -      * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjust
 -      for the change of Fset_buffer_multibyte.
 +      * xdisp.c (setup_echo_area_for_printing, set_message_1):
 +      Adjust for the change of Fset_buffer_multibyte.
  
        * fns.c (Fstring_to_multibyte): New function.
        (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
        (find_font_encoding): New function.
        (list_fontsets): Use STRINGP, not ! NILP.
        (accumulate_script_ranges): New function.
 -      (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
 -      re-written to handle new fontset structure.
 +      (Fset_fontset_font, Fnew_fontset, Ffontset_info):
 +      Completely re-written to handle new fontset structure.
        (Ffontset_font): Return a copy of element.
 -      (syms_of_fontset): Define symbols Qprepend and Qappend.  Fix
 -      docstring of font-encoding-alist.
 +      (syms_of_fontset): Define symbols Qprepend and Qappend.
 +      Fix docstring of font-encoding-alist.
  
        * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
        (Fset_fotset_font): Fix arguments to 5.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xdisp.c (face_before_or_after_it_pos): Call
 -      FETCH_MULTIBYTE_CHAR with byte postion, not char position.
 +      * xdisp.c (face_before_or_after_it_pos):
 +      Call FETCH_MULTIBYTE_CHAR with byte postion, not char position.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * charset.c (charset_ordered_list_tick): New variable.
        (Fdefine_charset_internal): Increment charset_ordered_list_tick.
        (Funify_charset): New optional arg DEUNIFY.  If it is non-nil,
 -      deunify intead of unify a charset.
 +      deunify instead of unify a charset.
        (string_xstring_p): Add `const' to local variables.
        (find_charsets_in_text): Add `const' to arguments and local variables.
 -      (encode_char): Adjust for the change of Funify_charset.  Fix
 -      detecting of invalid code.
 +      (encode_char): Adjust for the change of Funify_charset.
 +      Fix detecting of invalid code.
        (Fset_charset_priority): Increment charset_ordered_list_tick.
        (Fmap_charset_chars): Fix handling of default value for FROM_CODE
        and TO_CODE.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
 -      * casetab.c (init_casetab_once, init_casetab_once): Fix
 -      CHAR_TABLE_SET call.
 +      * casetab.c (init_casetab_once, init_casetab_once):
 +      Fix CHAR_TABLE_SET call.
  
        * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * category.c (Fmodify_category_entry): Don't modify the contents
 -      of category_set for characters out of the range.  Avoid
 -      unnecessary modification.
 +      of category_set for characters out of the range.
 +      Avoid unnecessary modification.
  
        * character.h (MAYBE_UNIFY_CHAR): Adjust for the change of
        Vchar_unify_table.  The default value of the table is now nil.
        * character.c (syms_of_character): Setup Vchar_width_table for
        eight-bit-control and raw-byte chars.
  
 -      * charset.h (enum define_charset_arg_index): Delete
 -      charset_arg_parents and add charset_arg_subset and
 +      * charset.h (enum define_charset_arg_index):
 +      Delete charset_arg_parents and add charset_arg_subset and
        charset_arg_superset.
        (enum charset_attr_index): Delete charset_parents and add
        charset_subset and charset_superset.
  
        * charset.c (load_charset_map): Set the default value of encoder
        and deunifier char-tables to nil.
 -      (map_charset_chars): Change argument.  Change callers.  Use
 -      map_char_table_for_charset instead of map_char_table.
 +      (map_charset_chars): Change argument.  Change callers.
 +      Use map_char_table_for_charset instead of map_char_table.
        (Fmap_charset_chars): New optional args from_code and to_code.
        (Fdefine_charset_internal): Adjust for the change of
        `define-charset' (:parents -> :subset or :superset).
        Fdefine_charset_internal.
        (Ffind_charset_string): Setup the vector `charsets' correctly.
  
 -      * chartab.c (sub_char_table_ref_and_range): New arg default.  Fix
 -      the previous change.
 +      * chartab.c (sub_char_table_ref_and_range): New arg default.
 +      Fix the previous change.
        (char_table_ref_and_range): Adjust for the above change.
        (map_sub_char_table_for_charset): New function.
        (map_char_table_for_charset): New function.
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
 -      (emacs_mule_char): New arg src.  Delete arg `composition'.  Change
 -      caller.  Handle 2-byte and 3-byte charsets correctly.
 +      (emacs_mule_char): New arg src.  Delete arg `composition'.
 +      Change caller.  Handle 2-byte and 3-byte charsets correctly.
        (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Rename from
        DECODE_EMACS_MULE_COMPOSITION_RULE.  Change caller.
        (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
 -      (DECODE_EMACS_MULE_21_COMPOSITION): Call
 -      DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
 +      (DECODE_EMACS_MULE_21_COMPOSITION):
 +      Call DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
        sequence.
        (decode_coding_emacs_mule): Handle composition correctly.  Rewind
        `src' and `consumed_chars' correctly before calling emacs_mule_char.
  
        * character.h (string_escape_byte8): Declare.
  
 -      * charset.c (load_charset_map, load_charset_map_from_file): Remove
 -      unused vars.
 +      * charset.c (load_charset_map, load_charset_map_from_file):
 +      Remove unused vars.
        (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
        (Fmap_charset_chars): Doc fix.
  
        * coding.c (coding_set_source): Delete the local variable beg_byte.
        (encode_coding_charset, Fdefine_coding_system_internal):
        Delete the local variable charset.
 -      (Fdefine_coding_system_internal): Setup
 -      attrs[coding_attr_charset_valids] correctly.
 +      (Fdefine_coding_system_internal):
 +      Setup attrs[coding_attr_charset_valids] correctly.
  
        * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
        member to check if CODE is valid or not.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (decode_coding_charset, encode_coding_charset): Handle
 -      multiple charsets correctly.
 +      * coding.c (decode_coding_charset, encode_coding_charset):
 +      Handle multiple charsets correctly.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
        (GC_SUB_CHAR_TABLE_P): New macro.
        (Fencode_coding_string, Fdecode_coding_string): Update EXFUN.
 -      (code_convert_string_norecord): Deleted extern.
 +      (code_convert_string_norecord): Delete extern.
        (init_character_once, syms_of_character, init_charset)
        (syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
  
@@@ -30346,9 -22629,10 +30361,9 @@@ See ChangeLog.10 for earlier changes
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2007-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
 -;; arch-tag: dfb6ad96-1550-4905-9e53-d2059ee84c40
diff --combined src/image.c
index d533d7edee6a9d2c2e2fc1d811e44748addbbb07,b814b795fab212b84ac451e33a993d9e28c1be08..3b846bcc40039ed4adb8fd1713bbb41a0daa4316
@@@ -1,5 -1,7 +1,5 @@@
  /* Functions for image support on window system.
 -   Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
 -                 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -                 Free Software Foundation, Inc.
 +   Copyright (C) 1989, 1992-2011 Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -20,7 -22,10 +20,7 @@@ along with GNU Emacs.  If not, see <htt
  #include <stdio.h>
  #include <math.h>
  #include <ctype.h>
 -
 -#ifdef HAVE_UNISTD_H
  #include <unistd.h>
 -#endif
  
  #ifdef HAVE_PNG
  #if defined HAVE_LIBPNG_PNG_H
@@@ -122,20 -127,21 +122,20 @@@ typedef struct ns_bitmap_record Bitmap_
  #endif /* HAVE_NS */
  
  
 -/* Search path for bitmap files.  */
 -
 -Lisp_Object Vx_bitmap_file_path;
 +/* The symbol `postscript' identifying images of this type.  */
  
 +Lisp_Object Qpostscript;
  
 -static void x_disable_image P_ ((struct frame *, struct image *));
 -static void x_edge_detection P_ ((struct frame *, struct image *, Lisp_Object,
 -                                Lisp_Object));
 +static void x_disable_image (struct frame *, struct image *);
 +static void x_edge_detection (struct frame *, struct image *, Lisp_Object,
 +                              Lisp_Object);
  
 -static void init_color_table P_ ((void));
 -static unsigned long lookup_rgb_color P_ ((struct frame *f, int r, int g, int b));
 +static void init_color_table (void);
 +static unsigned long lookup_rgb_color (struct frame *f, int r, int g, int b);
  #ifdef COLOR_TABLE_SUPPORT
 -static void free_color_table P_ ((void));
 -static unsigned long *colors_in_color_table P_ ((int *n));
 -static unsigned long lookup_pixel_color P_ ((struct frame *f, unsigned long p));
 +static void free_color_table (void);
 +static unsigned long *colors_in_color_table (int *n);
 +static unsigned long lookup_pixel_color (struct frame *f, unsigned long p);
  #endif
  
  /* Code to deal with bitmaps.  Bitmaps are referenced by their bitmap
@@@ -156,7 -162,7 +156,7 @@@ XGetImage (Display *display, Pixmap pix
             unsigned long plane_mask, int format)
  {
    /* TODO: not sure what this function is supposed to do.. */
 -  ns_retain_object(pixmap);
 +  ns_retain_object (pixmap);
    return pixmap;
  }
  
  unsigned long
  XGetPixel (XImagePtr ximage, int x, int y)
  {
 -  return ns_get_pixel(ximage, x, y);
 +  return ns_get_pixel (ximage, x, y);
  }
  
  /* use with imgs created by ns_image_for_XPM; alpha set to 1;
  void
  XPutPixel (XImagePtr ximage, int x, int y, unsigned long pixel)
  {
 -  ns_put_pixel(ximage, x, y, pixel);
 +  ns_put_pixel (ximage, x, y, pixel);
  }
  #endif /* HAVE_NS */
  
  /* Functions to access the contents of a bitmap, given an id.  */
  
  int
 -x_bitmap_height (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_bitmap_height (FRAME_PTR f, int id)
  {
    return FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].height;
  }
  
  int
 -x_bitmap_width (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_bitmap_width (FRAME_PTR f, int id)
  {
    return FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].width;
  }
  
  #if defined (HAVE_X_WINDOWS) || defined (HAVE_NTGUI)
  int
 -x_bitmap_pixmap (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_bitmap_pixmap (FRAME_PTR f, int id)
  {
    return (int) FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].pixmap;
  }
  
  #ifdef HAVE_X_WINDOWS
  int
 -x_bitmap_mask (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_bitmap_mask (FRAME_PTR f, int id)
  {
    return FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].mask;
  }
  /* Allocate a new bitmap record.  Returns index of new record.  */
  
  static int
 -x_allocate_bitmap_record (f)
 -     FRAME_PTR f;
 +x_allocate_bitmap_record (FRAME_PTR f)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
    int i;
  /* Add one reference to the reference count of the bitmap with id ID.  */
  
  void
 -x_reference_bitmap (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_reference_bitmap (FRAME_PTR f, int id)
  {
    ++FRAME_X_DISPLAY_INFO (f)->bitmaps[id - 1].refcount;
  }
  /* Create a bitmap for frame F from a HEIGHT x WIDTH array of bits at BITS.  */
  
  int
 -x_create_bitmap_from_data (f, bits, width, height)
 -     struct frame *f;
 -     char *bits;
 -     unsigned int width, height;
 +x_create_bitmap_from_data (struct frame *f, char *bits, unsigned int width, unsigned int height)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
    int id;
  #endif /* HAVE_NTGUI */
  
  #ifdef HAVE_NS
 -  void *bitmap = ns_image_from_XBM(bits, width, height);
 +  void *bitmap = ns_image_from_XBM (bits, width, height);
    if (!bitmap)
        return -1;
  #endif
  /* Create bitmap from file FILE for frame F.  */
  
  int
 -x_create_bitmap_from_file (f, file)
 -     struct frame *f;
 -     Lisp_Object file;
 +x_create_bitmap_from_file (struct frame *f, Lisp_Object file)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
  
  
  #ifdef HAVE_NS
    int id;
 -  void *bitmap = ns_image_from_file(file);
 +  void *bitmap = ns_image_from_file (file);
  
    if (!bitmap)
        return -1;
    dpyinfo->bitmaps[id - 1].refcount = 1;
    dpyinfo->bitmaps[id - 1].file = (char *) xmalloc (SBYTES (file) + 1);
    dpyinfo->bitmaps[id - 1].depth = 1;
 -  dpyinfo->bitmaps[id - 1].height = ns_image_width(bitmap);
 -  dpyinfo->bitmaps[id - 1].width = ns_image_height(bitmap);
 +  dpyinfo->bitmaps[id - 1].height = ns_image_width (bitmap);
 +  dpyinfo->bitmaps[id - 1].width = ns_image_height (bitmap);
    strcpy (dpyinfo->bitmaps[id - 1].file, SDATA (file));
    return id;
  #endif
      {
        if (dpyinfo->bitmaps[id].refcount
          && dpyinfo->bitmaps[id].file
 -        && !strcmp (dpyinfo->bitmaps[id].file, (char *) SDATA (file)))
 +        && !strcmp (dpyinfo->bitmaps[id].file, SSDATA (file)))
        {
          ++dpyinfo->bitmaps[id].refcount;
          return id + 1;
      return -1;
    emacs_close (fd);
  
 -  filename = (char *) SDATA (found);
 +  filename = SSDATA (found);
  
    result = XReadBitmapFile (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
                            filename, &width, &height, &bitmap, &xhot, &yhot);
    dpyinfo->bitmaps[id - 1].depth = 1;
    dpyinfo->bitmaps[id - 1].height = height;
    dpyinfo->bitmaps[id - 1].width = width;
 -  strcpy (dpyinfo->bitmaps[id - 1].file, SDATA (file));
 +  strcpy (dpyinfo->bitmaps[id - 1].file, SSDATA (file));
  
    return id;
  #endif /* HAVE_X_WINDOWS */
  /* Free bitmap B.  */
  
  static void
 -free_bitmap_record (dpyinfo, bm)
 -     Display_Info *dpyinfo;
 -     Bitmap_Record *bm;
 +free_bitmap_record (Display_Info *dpyinfo, Bitmap_Record *bm)
  {
  #ifdef HAVE_X_WINDOWS
    XFreePixmap (dpyinfo->display, bm->pixmap);
  #endif /* HAVE_NTGUI */
  
  #ifdef HAVE_NS
 -  ns_release_object(bm->img);
 +  ns_release_object (bm->img);
  #endif
  
    if (bm->file)
  /* Remove reference to bitmap with id number ID.  */
  
  void
 -x_destroy_bitmap (f, id)
 -     FRAME_PTR f;
 -     int id;
 +x_destroy_bitmap (FRAME_PTR f, int id)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
  
  /* Free all the bitmaps for the display specified by DPYINFO.  */
  
  void
 -x_destroy_all_bitmaps (dpyinfo)
 -     Display_Info *dpyinfo;
 +x_destroy_all_bitmaps (Display_Info *dpyinfo)
  {
    int i;
    Bitmap_Record *bm = dpyinfo->bitmaps;
  /* Useful functions defined in the section
     `Image type independent image structures' below. */
  
 -static unsigned long four_corners_best P_ ((XImagePtr ximg,
 -                                          int *corners,
 -                                          unsigned long width,
 -                                          unsigned long height));
 +static unsigned long four_corners_best (XImagePtr ximg,
 +                                        int *corners,
 +                                        unsigned long width,
 +                                        unsigned long height);
  
 -static int x_create_x_image_and_pixmap P_ ((struct frame *f, int width, int height,
 -                                          int depth, XImagePtr *ximg,
 -                                          Pixmap *pixmap));
 +static int x_create_x_image_and_pixmap (struct frame *f, int width, int height,
 +                                        int depth, XImagePtr *ximg,
 +                                        Pixmap *pixmap);
  
 -static void x_destroy_x_image P_ ((XImagePtr ximg));
 +static void x_destroy_x_image (XImagePtr ximg);
  
  
  /* Create a mask of a bitmap. Note is this not a perfect mask.
     It's nicer with some borders in this context */
  
  int
 -x_create_bitmap_mask (f, id)
 -     struct frame *f;
 -     int id;
 +x_create_bitmap_mask (struct frame *f, int id)
  {
    Pixmap pixmap, mask;
    XImagePtr ximg, mask_img;
  
  static struct image_type *image_types;
  
 -/* A list of symbols, one for each supported image type.  */
 -
 -Lisp_Object Vimage_types;
 -
 -/* An alist of image types and libraries that implement the type.  */
 -
 -Lisp_Object Vimage_library_alist;
 -
  /* Cache for delayed-loading image types.  */
  
  static Lisp_Object Vimage_type_cache;
@@@ -569,23 -606,31 +569,23 @@@ Lisp_Object Qxbm
  
  /* Keywords.  */
  
 -extern Lisp_Object QCwidth, QCheight, QCforeground, QCbackground, QCfile;
 -extern Lisp_Object QCdata, QCtype;
 -extern Lisp_Object Qcenter;
 -Lisp_Object QCascent, QCmargin, QCrelief, Qcount;
 +Lisp_Object QCascent, QCmargin, QCrelief, Qcount, Qextension_data;
  Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask;
 -Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask;
 +Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask, QCgeometry, QCcrop, QCrotation;
  
  /* Other symbols.  */
  
  Lisp_Object Qlaplace, Qemboss, Qedge_detection, Qheuristic;
  
 -/* Time in seconds after which images should be removed from the cache
 -   if not displayed.  */
 -
 -Lisp_Object Vimage_cache_eviction_delay;
 -
  /* Function prototypes.  */
  
 -static Lisp_Object define_image_type P_ ((struct image_type *type, int loaded));
 -static struct image_type *lookup_image_type P_ ((Lisp_Object symbol));
 -static void image_error P_ ((char *format, Lisp_Object, Lisp_Object));
 -static void x_laplace P_ ((struct frame *, struct image *));
 -static void x_emboss P_ ((struct frame *, struct image *));
 -static int x_build_heuristic_mask P_ ((struct frame *, struct image *,
 -                                     Lisp_Object));
 +static Lisp_Object define_image_type (struct image_type *type, int loaded);
 +static struct image_type *lookup_image_type (Lisp_Object symbol);
 +static void image_error (const char *format, Lisp_Object, Lisp_Object);
 +static void x_laplace (struct frame *, struct image *);
 +static void x_emboss (struct frame *, struct image *);
 +static int x_build_heuristic_mask (struct frame *, struct image *,
 +                                   Lisp_Object);
  
  #define CACHE_IMAGE_TYPE(type, status) \
    do { Vimage_type_cache = Fcons (Fcons (type, status), Vimage_type_cache); } while (0)
     image_types and caches the loading status of TYPE.  */
  
  static Lisp_Object
 -define_image_type (type, loaded)
 -     struct image_type *type;
 -     int loaded;
 +define_image_type (struct image_type *type, int loaded)
  {
    Lisp_Object success;
  
        /* Make a copy of TYPE to avoid a bus error in a dumped Emacs.
           The initialized data segment is read-only.  */
        struct image_type *p = (struct image_type *) xmalloc (sizeof *p);
 -      bcopy (type, p, sizeof *p);
 +      memcpy (p, type, sizeof *p);
        p->next = image_types;
        image_types = p;
        success = Qt;
     structure.  Value is null if SYMBOL is not a known image type.  */
  
  static INLINE struct image_type *
 -lookup_image_type (symbol)
 -     Lisp_Object symbol;
 +lookup_image_type (Lisp_Object symbol)
  {
    struct image_type *type;
  
    /* We must initialize the image-type if it hasn't been already.  */
 -  if (NILP (Finit_image_library (symbol, Vimage_library_alist)))
 +  if (NILP (Finit_image_library (symbol, Vdynamic_library_alist)))
      return 0;                 /* unimplemented */
  
    for (type = image_types; type; type = type->next)
     image type.  */
  
  int
 -valid_image_p (object)
 -     Lisp_Object object;
 +valid_image_p (Lisp_Object object)
  {
    int valid_p = 0;
  
     therefore simply displays a message.  */
  
  static void
 -image_error (format, arg1, arg2)
 -     char *format;
 -     Lisp_Object arg1, arg2;
 +image_error (const char *format, Lisp_Object arg1, Lisp_Object arg2)
  {
    add_to_log (format, arg1, arg2);
  }
@@@ -714,7 -765,7 +714,7 @@@ enum image_value_typ
  struct image_keyword
  {
    /* Name of keyword.  */
 -  char *name;
 +  const char *name;
  
    /* The type of value allowed.  */
    enum image_value_type type;
  };
  
  
 -static int parse_image_spec P_ ((Lisp_Object, struct image_keyword *,
 -                               int, Lisp_Object));
 -static Lisp_Object image_spec_value P_ ((Lisp_Object, Lisp_Object, int *));
 +static int parse_image_spec (Lisp_Object, struct image_keyword *,
 +                             int, Lisp_Object);
 +static Lisp_Object image_spec_value (Lisp_Object, Lisp_Object, int *);
  
  
  /* Parse image spec SPEC according to KEYWORDS.  A valid image spec
     allowed keyword/value pairs.  Value is non-zero if SPEC is valid.  */
  
  static int
 -parse_image_spec (spec, keywords, nkeywords, type)
 -     Lisp_Object spec;
 -     struct image_keyword *keywords;
 -     int nkeywords;
 -     Lisp_Object type;
 +parse_image_spec (Lisp_Object spec, struct image_keyword *keywords,
 +                int nkeywords, Lisp_Object type)
  {
    int i;
    Lisp_Object plist;
  
        /* Find key in KEYWORDS.  Error if not found.  */
        for (i = 0; i < nkeywords; ++i)
 -      if (strcmp (keywords[i].name, SDATA (SYMBOL_NAME (key))) == 0)
 +      if (strcmp (keywords[i].name, SSDATA (SYMBOL_NAME (key))) == 0)
          break;
  
        if (i == nkeywords)
     to 1 if KEY was found in SPEC, set it to 0 otherwise.  */
  
  static Lisp_Object
 -image_spec_value (spec, key, found)
 -     Lisp_Object spec, key;
 -     int *found;
 +image_spec_value (Lisp_Object spec, Lisp_Object key, int *found)
  {
    Lisp_Object tail;
  
@@@ -909,7 -965,8 +909,7 @@@ PIXELS non-nil means return the size i
  size in canonical character units.
  FRAME is the frame on which the image will be displayed.  FRAME nil
  or omitted means use the selected frame.  */)
 -     (spec, pixels, frame)
 -     Lisp_Object spec, pixels, frame;
 +  (Lisp_Object spec, Lisp_Object pixels, Lisp_Object frame)
  {
    Lisp_Object size;
  
@@@ -939,7 -996,8 +939,7 @@@ DEFUN ("image-mask-p", Fimage_mask_p, S
         doc: /* Return t if image SPEC has a mask bitmap.
  FRAME is the frame on which the image will be displayed.  FRAME nil
  or omitted means use the selected frame.  */)
 -     (spec, frame)
 -     Lisp_Object spec, frame;
 +  (Lisp_Object spec, Lisp_Object frame)
  {
    Lisp_Object mask;
  
    return mask;
  }
  
 -DEFUN ("image-extension-data", Fimage_extension_data, Simage_extension_data, 1, 2, 0,
 -       doc: /* Return extension data for image SPEC.
 +DEFUN ("image-metadata", Fimage_metadata, Simage_metadata, 1, 2, 0,
 +       doc: /* Return metadata for image SPEC.
  FRAME is the frame on which the image will be displayed.  FRAME nil
  or omitted means use the selected frame.  */)
 -     (spec, frame)
 -     Lisp_Object spec, frame;
 +  (Lisp_Object spec, Lisp_Object frame)
  {
    Lisp_Object ext;
  
                 Image type independent image structures
   ***********************************************************************/
  
 -static struct image *make_image P_ ((Lisp_Object spec, unsigned hash));
 -static void free_image P_ ((struct frame *f, struct image *img));
 -static int check_image_size P_ ((struct frame *f, int width, int height));
 +static struct image *make_image (Lisp_Object spec, unsigned hash);
 +static void free_image (struct frame *f, struct image *img);
 +static int check_image_size (struct frame *f, int width, int height);
  
  #define MAX_IMAGE_SIZE 6.0
 -Lisp_Object Vmax_image_size;
 -
  /* Allocate and return a new image structure for image specification
     SPEC.  SPEC has a hash value of HASH.  */
  
  static struct image *
 -make_image (spec, hash)
 -     Lisp_Object spec;
 -     unsigned hash;
 +make_image (Lisp_Object spec, unsigned int hash)
  {
    struct image *img = (struct image *) xmalloc (sizeof *img);
    Lisp_Object file = image_spec_value (spec, QCfile, NULL);
  
    xassert (valid_image_p (spec));
 -  bzero (img, sizeof *img);
 +  memset (img, 0, sizeof *img);
    img->dependencies = NILP (file) ? Qnil : list1 (file);
    img->type = lookup_image_type (image_spec_value (spec, QCtype, NULL));
    xassert (img->type != NULL);
  /* Free image IMG which was used on frame F, including its resources.  */
  
  static void
 -free_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +free_image (struct frame *f, struct image *img)
  {
    if (img)
      {
     otherwise, return 0. */
  
  int
 -check_image_size (f, width, height)
 -     struct frame *f;
 -     int width;
 -     int height;
 +check_image_size (struct frame *f, int width, int height)
  {
    int w, h;
  
     drawing an image.  */
  
  void
 -prepare_image_for_display (f, img)
 -     struct frame *f;
 -     struct image *img;
 +prepare_image_for_display (struct frame *f, struct image *img)
  {
    EMACS_TIME t;
  
     drawn in face FACE.  */
  
  int
 -image_ascent (img, face, slice)
 -     struct image *img;
 -     struct face *face;
 -     struct glyph_slice *slice;
 +image_ascent (struct image *img, struct face *face, struct glyph_slice *slice)
  {
    int height;
    int ascent;
     On W32, XIMG is assumed to a device context with the bitmap selected.  */
  
  static RGB_PIXEL_COLOR
 -four_corners_best (ximg, corners, width, height)
 -     XImagePtr_or_DC ximg;
 -     int *corners;
 -     unsigned long width, height;
 +four_corners_best (XImagePtr_or_DC ximg, int *corners,
 +                 unsigned long width, unsigned long height)
  {
    RGB_PIXEL_COLOR corner_pixels[4], best;
    int i, best_count;
  #elif defined (HAVE_NS)
  
  #define Destroy_Image(ximg, dummy) \
 -  ns_release_object(ximg)
 +  ns_release_object (ximg)
  
  #define Free_Pixmap(display, pixmap) \
 -  ns_release_object(pixmap)
 +  ns_release_object (pixmap)
  
  #else
  
     use for the heuristic.  */
  
  RGB_PIXEL_COLOR
 -image_background (img, f, ximg)
 -     struct image *img;
 -     struct frame *f;
 -     XImagePtr_or_DC ximg;
 +image_background (struct image *img, struct frame *f, XImagePtr_or_DC ximg)
  {
    if (! img->background_valid)
      /* IMG doesn't have a background yet, try to guess a reasonable value.  */
     existing XImage object to use for the heuristic.  */
  
  int
 -image_background_transparent (img, f, mask)
 -     struct image *img;
 -     struct frame *f;
 -     XImagePtr_or_DC mask;
 +image_background_transparent (struct image *img, struct frame *f, XImagePtr_or_DC mask)
  {
    if (! img->background_transparent_valid)
      /* IMG doesn't have a background yet, try to guess a reasonable value.  */
                  Helper functions for X image types
   ***********************************************************************/
  
 -static void x_clear_image_1 P_ ((struct frame *, struct image *, int,
 -                               int, int));
 -static void x_clear_image P_ ((struct frame *f, struct image *img));
 -static unsigned long x_alloc_image_color P_ ((struct frame *f,
 -                                            struct image *img,
 -                                            Lisp_Object color_name,
 -                                            unsigned long dflt));
 +static void x_clear_image_1 (struct frame *, struct image *, int,
 +                             int, int);
 +static void x_clear_image (struct frame *f, struct image *img);
 +static unsigned long x_alloc_image_color (struct frame *f,
 +                                          struct image *img,
 +                                          Lisp_Object color_name,
 +                                          unsigned long dflt);
  
  
  /* Clear X resources of image IMG on frame F.  PIXMAP_P non-zero means
     the image, if any.  */
  
  static void
 -x_clear_image_1 (f, img, pixmap_p, mask_p, colors_p)
 -     struct frame *f;
 -     struct image *img;
 -     int pixmap_p, mask_p, colors_p;
 +x_clear_image_1 (struct frame *f, struct image *img, int pixmap_p, int mask_p,
 +               int colors_p)
  {
    if (pixmap_p && img->pixmap)
      {
  /* Free X resources of image IMG which is used on frame F.  */
  
  static void
 -x_clear_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +x_clear_image (struct frame *f, struct image *img)
  {
    BLOCK_INPUT;
    x_clear_image_1 (f, img, 1, 1, 1);
     color.  */
  
  static unsigned long
 -x_alloc_image_color (f, img, color_name, dflt)
 -     struct frame *f;
 -     struct image *img;
 -     Lisp_Object color_name;
 -     unsigned long dflt;
 +x_alloc_image_color (struct frame *f, struct image *img, Lisp_Object color_name,
 +                   unsigned long dflt)
  {
    XColor color;
    unsigned long result;
  
    xassert (STRINGP (color_name));
  
 -  if (x_defined_color (f, SDATA (color_name), &color, 1))
 +  if (x_defined_color (f, SSDATA (color_name), &color, 1))
      {
        /* This isn't called frequently so we get away with simply
         reallocating the color vector to the needed size, here.  */
                             Image Cache
   ***********************************************************************/
  
 -static struct image *search_image_cache P_ ((struct frame *, Lisp_Object, unsigned));
 -static void cache_image P_ ((struct frame *f, struct image *img));
 -static void postprocess_image P_ ((struct frame *, struct image *));
 +static struct image *search_image_cache (struct frame *, Lisp_Object, unsigned);
 +static void cache_image (struct frame *f, struct image *img);
 +static void postprocess_image (struct frame *, struct image *);
  
  /* Return a new, initialized image cache that is allocated from the
     heap.  Call free_image_cache to free an image cache.  */
  
  struct image_cache *
 -make_image_cache ()
 +make_image_cache (void)
  {
    struct image_cache *c = (struct image_cache *) xmalloc (sizeof *c);
    int size;
  
 -  bzero (c, sizeof *c);
 +  memset (c, 0, sizeof *c);
    c->size = 50;
    c->images = (struct image **) xmalloc (c->size * sizeof *c->images);
    size = IMAGE_CACHE_BUCKETS_SIZE * sizeof *c->buckets;
    c->buckets = (struct image **) xmalloc (size);
 -  bzero (c->buckets, size);
 +  memset (c->buckets, 0, size);
    return c;
  }
  
  /* Find an image matching SPEC in the cache, and return it.  If no
     image is found, return NULL.  */
  static struct image *
 -search_image_cache (f, spec, hash)
 -     struct frame *f;
 -     Lisp_Object spec;
 -     unsigned hash;
 +search_image_cache (struct frame *f, Lisp_Object spec, unsigned int hash)
  {
    struct image *img;
    struct image_cache *c = FRAME_IMAGE_CACHE (f);
  /* Search frame F for an image with spec SPEC, and free it.  */
  
  static void
 -uncache_image (f, spec)
 -     struct frame *f;
 -     Lisp_Object spec;
 +uncache_image (struct frame *f, Lisp_Object spec)
  {
    struct image *img = search_image_cache (f, spec, sxhash (spec, 0));
    if (img)
     caches.  */
  
  void
 -free_image_cache (f)
 -     struct frame *f;
 +free_image_cache (struct frame *f)
  {
    struct image_cache *c = FRAME_IMAGE_CACHE (f);
    if (c)
@@@ -1498,56 -1592,29 +1498,56 @@@ clear_image_cache (struct frame *f, Lis
  {
    struct image_cache *c = FRAME_IMAGE_CACHE (f);
  
 -  if (c && (!NILP (filter) || INTEGERP (Vimage_cache_eviction_delay)))
 +  if (c)
      {
 -      EMACS_TIME t;
 -      unsigned long old;
 -      int i, nfreed;
 -
 -      EMACS_GET_TIME (t);
 -      old = EMACS_SECS (t) - XFASTINT (Vimage_cache_eviction_delay);
 +      int i, nfreed = 0;
  
        /* Block input so that we won't be interrupted by a SIGIO
         while being in an inconsistent state.  */
        BLOCK_INPUT;
  
 -      for (i = nfreed = 0; i < c->used; ++i)
 +      if (!NILP (filter))
        {
 -        struct image *img = c->images[i];
 -        if (img != NULL
 -            && (NILP (filter) ? img->timestamp < old
 -                : (EQ (Qt, filter)
 -                   || !NILP (Fmember (filter, img->dependencies)))))
 +        /* Filter image cache.  */
 +        for (i = 0; i < c->used; ++i)
            {
 -            free_image (f, img);
 -            ++nfreed;
 +            struct image *img = c->images[i];
 +            if (img && (EQ (Qt, filter)
 +                        || !NILP (Fmember (filter, img->dependencies))))
 +              {
 +                free_image (f, img);
 +                ++nfreed;
 +              }
 +          }
 +      }
 +      else if (INTEGERP (Vimage_cache_eviction_delay))
 +      {
 +        /* Free cache based on timestamp.  */
 +        EMACS_TIME t;
 +        unsigned long old;
 +        int delay, nimages = 0;
 +
 +        for (i = 0; i < c->used; ++i)
 +          if (c->images[i])
 +            nimages++;
 +
 +        /* If the number of cached images has grown unusually large,
 +           decrease the cache eviction delay (Bug#6230).  */
 +        delay = XFASTINT (Vimage_cache_eviction_delay);
 +        if (nimages > 40)
 +          delay = max (1, 1600 * delay / (nimages*nimages));
 +
 +        EMACS_GET_TIME (t);
 +        old = EMACS_SECS (t) - delay;
 +
 +        for (i = 0; i < c->used; ++i)
 +          {
 +            struct image *img = c->images[i];
 +            if (img && img->timestamp < old)
 +              {
 +                free_image (f, img);
 +                ++nfreed;
 +              }
            }
        }
  
@@@ -1593,7 -1660,8 +1593,7 @@@ FILTER nil or a frame means clear all i
  FILTER t means clear the image caches of all frames.
  Anything else, means only clear those images which refer to FILTER,
  which is then usually a filename.  */)
 -     (filter)
 -     Lisp_Object filter;
 +  (Lisp_Object filter)
  {
    if (!(EQ (filter, Qnil) || FRAMEP (filter)))
      clear_image_caches (filter);
  }
  
  
 -DEFUN ("image-refresh", Fimage_refresh, Simage_refresh,
 +DEFUN ("image-flush", Fimage_flush, Simage_flush,
         1, 2, 0,
 -       doc: /* Refresh the image with specification SPEC on frame FRAME.
 -If SPEC specifies an image file, the displayed image is updated with
 -the current contents of that file.
 +       doc: /* Fush the image with specification SPEC on frame FRAME.
 +This removes the image from the Emacs image cache.  If SPEC specifies
 +an image file, the next redisplay of this image will read from the
 +current contents of that file.
 +
  FRAME nil or omitted means use the selected frame.
  FRAME t means refresh the image on all frames.  */)
 -     (spec, frame)
 -     Lisp_Object spec, frame;
 +  (Lisp_Object spec, Lisp_Object frame)
  {
    if (!valid_image_p (spec))
      error ("Invalid image specification");
     by the image's specification,  */
  
  static void
 -postprocess_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +postprocess_image (struct frame *f, struct image *img)
  {
    /* Manipulation of the image's mask.  */
    if (img->pixmap)
     SPEC must be a valid Lisp image specification (see valid_image_p).  */
  
  int
 -lookup_image (f, spec)
 -     struct frame *f;
 -     Lisp_Object spec;
 +lookup_image (struct frame *f, Lisp_Object spec)
  {
    struct image_cache *c;
    struct image *img;
    unsigned hash;
 -  struct gcpro gcpro1;
    EMACS_TIME now;
  
    /* F must be a window-system frame, and SPEC must be a valid image
  
    c = FRAME_IMAGE_CACHE (f);
  
 -  GCPRO1 (spec);
 -
    /* Look up SPEC in the hash table of the image cache.  */
    hash = sxhash (spec, 0);
    img = search_image_cache (f, spec, hash);
    /* If not found, create a new image and cache it.  */
    if (img == NULL)
      {
 -      extern Lisp_Object Qpostscript;
 -
        BLOCK_INPUT;
        img = make_image (spec, hash);
        cache_image (f, img);
    EMACS_GET_TIME (now);
    img->timestamp = EMACS_SECS (now);
  
 -  UNGCPRO;
 -
    /* Value is the image id.  */
    return img->id;
  }
  /* Cache image IMG in the image cache of frame F.  */
  
  static void
 -cache_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +cache_image (struct frame *f, struct image *img)
  {
    struct image_cache *c = FRAME_IMAGE_CACHE (f);
    int i;
  /* Mark Lisp objects in image IMG.  */
  
  static void
 -mark_image (img)
 -     struct image *img;
 +mark_image (struct image *img)
  {
    mark_object (img->spec);
    mark_object (img->dependencies);
@@@ -1896,7 -1977,7 +1896,7 @@@ mark_image_cache (struct image_cache *c
  #ifdef HAVE_NTGUI
  
  /* Macro for defining functions that will be loaded from image DLLs.  */
- #define DEF_IMGLIB_FN(func,args) int (FAR CDECL *fn_##func)args
 -#define DEF_IMGLIB_FN(rettype, func) rettype (FAR CDECL *fn_##func)()
++#define DEF_IMGLIB_FN(rettype,func,args) rettype (FAR CDECL *fn_##func)args
  
  /* Macro for loading those image functions from the library.  */
  #define LOAD_IMGLIB_FN(lib,func) {                                    \
    }
  
  /* Load a DLL implementing an image type.
 -   The `image-library-alist' variable associates a symbol,
 -   identifying an image type, to a list of possible filenames.
 +   The argument LIBRARIES is usually the variable
 +   `dynamic-library-alist', which associates a symbol, identifying
 +   an external DLL library, to a list of possible filenames.
     The function returns NULL if no library could be loaded for
 -   the given image type, or if the library was previously loaded;
 +   the given symbol, or if the library was previously loaded;
     else the handle of the DLL.  */
  static HMODULE
  w32_delayed_load (Lisp_Object libraries, Lisp_Object type)
  
  #endif /* HAVE_NTGUI */
  
 -static int x_create_x_image_and_pixmap P_ ((struct frame *, int, int, int,
 -                                          XImagePtr *, Pixmap *));
 -static void x_destroy_x_image P_ ((XImagePtr));
 -static void x_put_x_image P_ ((struct frame *, XImagePtr, Pixmap, int, int));
 +static int x_create_x_image_and_pixmap (struct frame *, int, int, int,
 +                                        XImagePtr *, Pixmap *);
 +static void x_destroy_x_image (XImagePtr);
 +static void x_put_x_image (struct frame *, XImagePtr, Pixmap, int, int);
  
  
  /* Create an XImage and a pixmap of size WIDTH x HEIGHT for use on
     should indicate the bit depth of the image.  */
  
  static int
 -x_create_x_image_and_pixmap (f, width, height, depth, ximg, pixmap)
 -     struct frame *f;
 -     int width, height, depth;
 -     XImagePtr *ximg;
 -     Pixmap *pixmap;
 +x_create_x_image_and_pixmap (struct frame *f, int width, int height, int depth,
 +                           XImagePtr *ximg, Pixmap *pixmap)
  {
  #ifdef HAVE_X_WINDOWS
    Display *display = FRAME_X_DISPLAY (f);
        return 0;
      }
  
 -  header = &((*ximg)->info.bmiHeader);
 -  bzero (&((*ximg)->info), sizeof (BITMAPINFO));
 +  header = &(*ximg)->info.bmiHeader;
 +  memset (&(*ximg)->info, 0, sizeof (BITMAPINFO));
    header->biSize = sizeof (*header);
    header->biWidth = width;
    header->biHeight = -height;  /* negative indicates a top-down bitmap.  */
  #endif /* HAVE_NTGUI */
  
  #ifdef HAVE_NS
 -  *pixmap = ns_image_for_XPM(width, height, depth);
 +  *pixmap = ns_image_for_XPM (width, height, depth);
    if (*pixmap == 0)
      {
        *ximg = NULL;
  /* Destroy XImage XIMG.  Free XIMG->data.  */
  
  static void
 -x_destroy_x_image (ximg)
 -     XImagePtr ximg;
 +x_destroy_x_image (XImagePtr ximg)
  {
    xassert (interrupt_input_blocked);
    if (ximg)
        xfree (ximg);
  #endif /* HAVE_NTGUI */
  #ifdef HAVE_NS
 -      ns_release_object(ximg);
 +      ns_release_object (ximg);
  #endif /* HAVE_NS */
      }
  }
     are width and height of both the image and pixmap.  */
  
  static void
 -x_put_x_image (f, ximg, pixmap, width, height)
 -     struct frame *f;
 -     XImagePtr ximg;
 -     Pixmap pixmap;
 -     int width, height;
 +x_put_x_image (struct frame *f, XImagePtr ximg, Pixmap pixmap, int width, int height)
  {
  #ifdef HAVE_X_WINDOWS
    GC gc;
  
  #ifdef HAVE_NS
    xassert (ximg == pixmap);
 -  ns_retain_object(ximg);
 +  ns_retain_object (ximg);
  #endif
  }
  
                              File Handling
   ***********************************************************************/
  
 -static unsigned char *slurp_file P_ ((char *, int *));
 +static unsigned char *slurp_file (char *, int *);
  
  
  /* Find image file FILE.  Look in data-directory/images, then
     found, or nil if not found.  */
  
  Lisp_Object
 -x_find_image_file (file)
 -     Lisp_Object file;
 +x_find_image_file (Lisp_Object file)
  {
    Lisp_Object file_found, search_path;
 -  struct gcpro gcpro1, gcpro2;
    int fd;
  
 -  file_found = Qnil;
    /* TODO I think this should use something like image-load-path
       instead.  Unfortunately, that can contain non-string elements.  */
    search_path = Fcons (Fexpand_file_name (build_string ("images"),
                                          Vdata_directory),
                       Vx_bitmap_file_path);
 -  GCPRO2 (file_found, search_path);
  
    /* Try to find FILE in data-directory/images, then x-bitmap-file-path.  */
    fd = openp (search_path, file, Qnil, &file_found, Qnil);
        close (fd);
      }
  
 -  UNGCPRO;
    return file_found;
  }
  
     occurred.  *SIZE is set to the size of the file.  */
  
  static unsigned char *
 -slurp_file (file, size)
 -     char *file;
 -     int *size;
 +slurp_file (char *file, int *size)
  {
    FILE *fp = NULL;
    unsigned char *buf = NULL;
                              XBM images
   ***********************************************************************/
  
 -static int xbm_scan P_ ((unsigned char **, unsigned char *, char *, int *));
 -static int xbm_load P_ ((struct frame *f, struct image *img));
 -static int xbm_load_image P_ ((struct frame *f, struct image *img,
 -                             unsigned char *, unsigned char *));
 -static int xbm_image_p P_ ((Lisp_Object object));
 -static int xbm_read_bitmap_data P_ ((struct frame *f,
 -                                   unsigned char *, unsigned char *,
 -                                   int *, int *, unsigned char **, int));
 -static int xbm_file_p P_ ((Lisp_Object));
 +static int xbm_scan (unsigned char **, unsigned char *, char *, int *);
 +static int xbm_load (struct frame *f, struct image *img);
 +static int xbm_load_image (struct frame *f, struct image *img,
 +                           unsigned char *, unsigned char *);
 +static int xbm_image_p (Lisp_Object object);
 +static int xbm_read_bitmap_data (struct frame *f,
 +                                 unsigned char *, unsigned char *,
 +                                 int *, int *, unsigned char **, int);
 +static int xbm_file_p (Lisp_Object);
  
  
  /* Indices of image specification fields in xbm_format, below.  */
@@@ -2320,11 -2415,12 +2320,11 @@@ enum xbm_toke
     displayed is used.  */
  
  static int
 -xbm_image_p (object)
 -     Lisp_Object object;
 +xbm_image_p (Lisp_Object object)
  {
    struct image_keyword kw[XBM_LAST];
  
 -  bcopy (xbm_format, kw, sizeof kw);
 +  memcpy (kw, xbm_format, sizeof kw);
    if (!parse_image_spec (object, kw, XBM_LAST, Qxbm))
      return 0;
  
     scanning a number, store its value in *IVAL.  */
  
  static int
 -xbm_scan (s, end, sval, ival)
 -     unsigned char **s, *end;
 -     char *sval;
 -     int *ival;
 +xbm_scan (unsigned char **s, unsigned char *end, char *sval, int *ival)
  {
    unsigned int c;
  
@@@ -2514,7 -2613,7 +2514,7 @@@ w32_create_pixmap_from_bitmap_data (in
    w1 = (width + 7) / 8;         /* nb of 8bits elt in X bitmap */
    w2 = ((width + 15) / 16) * 2; /* nb of 16bits elt in W32 bitmap */
    bits = (unsigned char *) alloca (height * w2);
 -  bzero (bits, height * w2);
 +  memset (bits, 0, height * w2);
    for (i = 0; i < height; i++)
      {
        p = bits + i*w2;
  }
  
  static void
 -convert_mono_to_color_image (f, img, foreground, background)
 -     struct frame *f;
 -     struct image *img;
 -     COLORREF foreground, background;
 +convert_mono_to_color_image (struct frame *f, struct image *img,
 +                           COLORREF foreground, COLORREF background)
  {
    HDC hdc, old_img_dc, new_img_dc;
    HGDIOBJ old_prev, new_prev;
  
  
  static void
 -Create_Pixmap_From_Bitmap_Data (f, img, data, fg, bg, non_default_colors)
 -     struct frame *f;
 -     struct image *img;
 -     char *data;
 -     RGB_PIXEL_COLOR fg, bg;
 -     int non_default_colors;
 +Create_Pixmap_From_Bitmap_Data (struct frame *f, struct image *img, char *data,
 +                              RGB_PIXEL_COLOR fg, RGB_PIXEL_COLOR bg,
 +                              int non_default_colors)
  {
  #ifdef HAVE_NTGUI
    img->pixmap
      convert_mono_to_color_image (f, img, fg, bg);
  
  #elif defined (HAVE_NS)
 -  img->pixmap = ns_image_from_XBM(data, img->width, img->height);
 +  img->pixmap = ns_image_from_XBM (data, img->width, img->height);
  
  #else
    img->pixmap
     invalid (the bitmap remains unread).  */
  
  static int
 -xbm_read_bitmap_data (f, contents, end, width, height, data, inhibit_image_error)
 -     struct frame *f;
 -     unsigned char *contents, *end;
 -     int *width, *height;
 -     unsigned char **data;
 -     int inhibit_image_error;
 +xbm_read_bitmap_data (struct frame *f, unsigned char *contents, unsigned char *end,
 +                    int *width, int *height, unsigned char **data,
 +                    int inhibit_image_error)
  {
    unsigned char *s = contents;
    char buffer[BUFSIZ];
     successful.  */
  
  static int
 -xbm_load_image (f, img, contents, end)
 -     struct frame *f;
 -     struct image *img;
 -     unsigned char *contents, *end;
 +xbm_load_image (struct frame *f, struct image *img, unsigned char *contents,
 +              unsigned char *end)
  {
    int rc;
    unsigned char *data;
  /* Value is non-zero if DATA looks like an in-memory XBM file.  */
  
  static int
 -xbm_file_p (data)
 -     Lisp_Object data;
 +xbm_file_p (Lisp_Object data)
  {
    int w, h;
    return (STRINGP (data)
     non-zero if successful.  */
  
  static int
 -xbm_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +xbm_load (struct frame *f, struct image *img)
  {
    int success_p = 0;
    Lisp_Object file_name;
        Lisp_Object file;
        unsigned char *contents;
        int size;
 -      struct gcpro gcpro1;
  
        file = x_find_image_file (file_name);
 -      GCPRO1 (file);
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", file_name, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
 -      contents = slurp_file (SDATA (file), &size);
 +      contents = slurp_file (SSDATA (file), &size);
        if (contents == NULL)
        {
          image_error ("Error loading XBM image `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        success_p = xbm_load_image (f, img, contents, contents + size);
 -      UNGCPRO;
      }
    else
      {
        in_memory_file_p = xbm_file_p (data);
  
        /* Parse the image specification.  */
 -      bcopy (xbm_format, fmt, sizeof fmt);
 +      memcpy (fmt, xbm_format, sizeof fmt);
        parsed_p = parse_image_spec (img->spec, fmt, XBM_LAST, Qxbm);
        xassert (parsed_p);
  
                {
                  Lisp_Object line = XVECTOR (data)->contents[i];
                  if (STRINGP (line))
 -                  bcopy (SDATA (line), p, nbytes);
 +                  memcpy (p, SDATA (line), nbytes);
                  else
 -                  bcopy (XBOOL_VECTOR (line)->data, p, nbytes);
 +                  memcpy (p, XBOOL_VECTOR (line)->data, nbytes);
                }
            }
          else if (STRINGP (data))
 -          bits = SDATA (data);
 +          bits = SSDATA (data);
          else
            bits = XBOOL_VECTOR (data)->data;
  
              invertedBits = bits;
              nbytes = (img->width + BITS_PER_CHAR - 1) / BITS_PER_CHAR
                * img->height;
 -            bits = (char *) alloca(nbytes);
 +            bits = (char *) alloca (nbytes);
              for (i = 0; i < nbytes; i++)
                bits[i] = XBM_BIT_SHUFFLE (invertedBits[i]);
            }
  
  #if defined (HAVE_XPM) || defined (HAVE_NS)
  
 -static int xpm_image_p P_ ((Lisp_Object object));
 -static int xpm_load P_ ((struct frame *f, struct image *img));
 -static int xpm_valid_color_symbols_p P_ ((Lisp_Object));
 +static int xpm_image_p (Lisp_Object object);
 +static int xpm_load (struct frame *f, struct image *img);
 +static int xpm_valid_color_symbols_p (Lisp_Object);
  
  #endif /* HAVE_XPM || HAVE_NS */
  
@@@ -3071,12 -3188,12 +3071,12 @@@ static struct image_type xpm_type 
  
  #ifdef ALLOC_XPM_COLORS
  
 -static void xpm_init_color_cache P_ ((struct frame *, XpmAttributes *));
 -static void xpm_free_color_cache P_ ((void));
 -static int xpm_lookup_color P_ ((struct frame *, char *, XColor *));
 -static int xpm_color_bucket P_ ((char *));
 -static struct xpm_cached_color *xpm_cache_color P_ ((struct frame *, char *,
 -                                                   XColor *, int));
 +static void xpm_init_color_cache (struct frame *, XpmAttributes *);
 +static void xpm_free_color_cache (void);
 +static int xpm_lookup_color (struct frame *, char *, XColor *);
 +static int xpm_color_bucket (char *);
 +static struct xpm_cached_color *xpm_cache_color (struct frame *, char *,
 +                                                 XColor *, int);
  
  /* An entry in a hash table used to cache color definitions of named
     colors.  This cache is necessary to speed up XPM image loading in
@@@ -3104,7 -3221,9 +3104,7 @@@ struct xpm_cached_color **xpm_color_cac
  /* Initialize the color cache.  */
  
  static void
 -xpm_init_color_cache (f, attrs)
 -     struct frame *f;
 -     XpmAttributes *attrs;
 +xpm_init_color_cache (struct frame *f, XpmAttributes *attrs)
  {
    size_t nbytes = XPM_COLOR_CACHE_BUCKETS * sizeof *xpm_color_cache;
    xpm_color_cache = (struct xpm_cached_color **) xmalloc (nbytes);
  /* Free the color cache.  */
  
  static void
 -xpm_free_color_cache ()
 +xpm_free_color_cache (void)
  {
    struct xpm_cached_color *p, *next;
    int i;
     cache.  */
  
  static int
 -xpm_color_bucket (color_name)
 -     char *color_name;
 +xpm_color_bucket (char *color_name)
  {
    unsigned h = 0;
    char *s;
     entry added.  */
  
  static struct xpm_cached_color *
 -xpm_cache_color (f, color_name, color, bucket)
 -     struct frame *f;
 -     char *color_name;
 -     XColor *color;
 -     int bucket;
 +xpm_cache_color (struct frame *f, char *color_name, XColor *color, int bucket)
  {
    size_t nbytes;
    struct xpm_cached_color *p;
     allocation failed.  */
  
  static int
 -xpm_lookup_color (f, color_name, color)
 -     struct frame *f;
 -     char *color_name;
 -     XColor *color;
 +xpm_lookup_color (struct frame *f, char *color_name, XColor *color)
  {
    struct xpm_cached_color *p;
    int h = xpm_color_bucket (color_name);
       with transparency, and it's useful.  */
    else if (strcmp ("opaque", color_name) == 0)
      {
 -      bzero (color, sizeof (XColor));  /* Is this necessary/correct?  */
 +      memset (color, 0, sizeof (XColor));  /* Is this necessary/correct?  */
        color->pixel = FRAME_FOREGROUND_PIXEL (f);
        p = xpm_cache_color (f, color_name, color, h);
      }
     if successful.  */
  
  static int
 -xpm_alloc_color (dpy, cmap, color_name, color, closure)
 -     Display *dpy;
 -     Colormap cmap;
 -     char *color_name;
 -     XColor *color;
 -     void *closure;
 +xpm_alloc_color (Display *dpy, Colormap cmap, char *color_name, XColor *color,
 +               void *closure)
  {
    return xpm_lookup_color ((struct frame *) closure, color_name, color);
  }
     non-zero if successful.  */
  
  static int
 -xpm_free_colors (dpy, cmap, pixels, npixels, closure)
 -     Display *dpy;
 -     Colormap cmap;
 -     Pixel *pixels;
 -     int npixels;
 -     void *closure;
 +xpm_free_colors (Display *dpy, Colormap cmap, Pixel *pixels, int npixels, void *closure)
  {
    return 1;
  }
  
  /* XPM library details.  */
  
- DEF_IMGLIB_FN (XpmFreeAttributes, (XpmAttributes *));
- DEF_IMGLIB_FN (XpmCreateImageFromBuffer, (Display *, char *, xpm_XImage **,
 -DEF_IMGLIB_FN (void, XpmFreeAttributes);
 -DEF_IMGLIB_FN (int, XpmCreateImageFromBuffer);
 -DEF_IMGLIB_FN (int, XpmReadFileToImage);
 -DEF_IMGLIB_FN (void, XImageFree);
++DEF_IMGLIB_FN (void, XpmFreeAttributes, (XpmAttributes *));
++DEF_IMGLIB_FN (int, XpmCreateImageFromBuffer, (Display *, char *, xpm_XImage **,
 +                                        xpm_XImage **, XpmAttributes *));
- DEF_IMGLIB_FN (XpmReadFileToImage, (Display *, char *, xpm_XImage **,
++DEF_IMGLIB_FN (int, XpmReadFileToImage, (Display *, char *, xpm_XImage **,
 +                                  xpm_XImage **, XpmAttributes *));
- DEF_IMGLIB_FN (XImageFree, (xpm_XImage *));
++DEF_IMGLIB_FN (void, XImageFree, (xpm_XImage *));
  
  static int
  init_xpm_functions (Lisp_Object libraries)
     cdr are strings.  */
  
  static int
 -xpm_valid_color_symbols_p (color_symbols)
 -     Lisp_Object color_symbols;
 +xpm_valid_color_symbols_p (Lisp_Object color_symbols)
  {
    while (CONSP (color_symbols))
      {
  /* Value is non-zero if OBJECT is a valid XPM image specification.  */
  
  static int
 -xpm_image_p (object)
 -     Lisp_Object object;
 +xpm_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[XPM_LAST];
 -  bcopy (xpm_format, fmt, sizeof fmt);
 +  memcpy (fmt, xpm_format, sizeof fmt);
    return (parse_image_spec (object, fmt, XPM_LAST, Qxpm)
          /* Either `:file' or `:data' must be present.  */
          && fmt[XPM_FILE].count + fmt[XPM_DATA].count == 1
  
  #if defined (HAVE_XPM) && defined (HAVE_X_WINDOWS)
  int
 -x_create_bitmap_from_xpm_data (f, bits)
 -     struct frame *f;
 -     char **bits;
 +x_create_bitmap_from_xpm_data (struct frame *f, const char **bits)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
    int id, rc;
    XpmAttributes attrs;
    Pixmap bitmap, mask;
  
 -  bzero (&attrs, sizeof attrs);
 +  memset (&attrs, 0, sizeof attrs);
  
    attrs.visual = FRAME_X_VISUAL (f);
    attrs.colormap = FRAME_X_COLORMAP (f);
    attrs.valuemask |= XpmColormap;
  
    rc = XpmCreatePixmapFromData (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
 -                              bits, &bitmap, &mask, &attrs);
 +                              (char **) bits, &bitmap, &mask, &attrs);
    if (rc != XpmSuccess)
      {
        XpmFreeAttributes (&attrs);
  #ifdef HAVE_XPM
  
  static int
 -xpm_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +xpm_load (struct frame *f, struct image *img)
  {
    int rc;
    XpmAttributes attrs;
  
    /* Configure the XPM lib.  Use the visual of frame F.  Allocate
       close colors.  Return colors allocated.  */
 -  bzero (&attrs, sizeof attrs);
 +  memset (&attrs, 0, sizeof attrs);
  
  #ifndef HAVE_NTGUI
    attrs.visual = FRAME_X_VISUAL (f);
        /* Allocate an XpmColorSymbol array.  */
        size = attrs.numsymbols * sizeof *xpm_syms;
        xpm_syms = (XpmColorSymbol *) alloca (size);
 -      bzero (xpm_syms, size);
 +      memset (xpm_syms, 0, size);
        attrs.colorsymbols = xpm_syms;
  
        /* Fill the color symbol array.  */
           CONSP (tail);
           ++i, tail = XCDR (tail))
        {
 -        Lisp_Object name = XCAR (XCAR (tail));
 -        Lisp_Object color = XCDR (XCAR (tail));
 -        xpm_syms[i].name = (char *) alloca (SCHARS (name) + 1);
 -        strcpy (xpm_syms[i].name, SDATA (name));
 -        xpm_syms[i].value = (char *) alloca (SCHARS (color) + 1);
 -        strcpy (xpm_syms[i].value, SDATA (color));
 +        Lisp_Object name;
 +        Lisp_Object color;
 +
 +        if (!CONSP (XCAR (tail)))
 +          {
 +            xpm_syms[i].name = "";
 +            xpm_syms[i].value = "";
 +            continue;
 +          }
 +        name = XCAR (XCAR (tail));
 +        color = XCDR (XCAR (tail));
 +        if (STRINGP (name))
 +          {
 +            xpm_syms[i].name = (char *) alloca (SCHARS (name) + 1);
 +            strcpy (xpm_syms[i].name, SSDATA (name));
 +          }
 +        else
 +          xpm_syms[i].name = "";
 +        if (STRINGP (color))
 +          {
 +            xpm_syms[i].value = (char *) alloca (SCHARS (color) + 1);
 +            strcpy (xpm_syms[i].value, SSDATA (color));
 +          }
 +        else
 +          xpm_syms[i].value = "";
        }
      }
  
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 +#ifdef ALLOC_XPM_COLORS
 +        xpm_free_color_cache ();
 +#endif
          return 0;
        }
  
                                  &attrs);
  #else
        rc = XpmReadFileToPixmap (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
 -                              SDATA (file), &img->pixmap, &img->mask,
 +                              SSDATA (file), &img->pixmap, &img->mask,
                                &attrs);
  #endif /* HAVE_NTGUI */
      }
    else
      {
        Lisp_Object buffer = image_spec_value (img->spec, QCdata, NULL);
 +      if (!STRINGP (buffer))
 +      {
 +        image_error ("Invalid image data `%s'", buffer, Qnil);
 +#ifdef ALLOC_XPM_COLORS
 +        xpm_free_color_cache ();
 +#endif
 +        return 0;
 +      }
  #ifdef HAVE_NTGUI
        /* XpmCreatePixmapFromBuffer is not available in the Windows port
         of libxpm.  But XpmCreateImageFromBuffer almost does what we want.  */
                                        &attrs);
  #else
        rc = XpmCreatePixmapFromBuffer (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
 -                                    SDATA (buffer),
 +                                    SSDATA (buffer),
                                      &img->pixmap, &img->mask,
                                      &attrs);
  #endif /* HAVE_NTGUI */
  /* XPM support functions for NS where libxpm is not available.
     Only XPM version 3 (without any extensions) is supported.  */
  
 -static int xpm_scan P_ ((const unsigned char **, const unsigned char *,
 -                       const unsigned char **, int *));
 +static int xpm_scan (const unsigned char **, const unsigned char *,
 +                     const unsigned char **, int *);
  static Lisp_Object xpm_make_color_table_v
 -  P_ ((void (**) (Lisp_Object, const unsigned char *, int, Lisp_Object),
 -       Lisp_Object (**) (Lisp_Object, const unsigned char *, int)));
 -static void xpm_put_color_table_v P_ ((Lisp_Object, const unsigned char *,
 -                                     int, Lisp_Object));
 -static Lisp_Object xpm_get_color_table_v P_ ((Lisp_Object,
 -                                            const unsigned char *, int));
 +  (void (**) (Lisp_Object, const unsigned char *, int, Lisp_Object),
 +   Lisp_Object (**) (Lisp_Object, const unsigned char *, int));
 +static void xpm_put_color_table_v (Lisp_Object, const unsigned char *,
 +                                   int, Lisp_Object);
 +static Lisp_Object xpm_get_color_table_v (Lisp_Object,
 +                                          const unsigned char *, int);
  static Lisp_Object xpm_make_color_table_h
 -  P_ ((void (**) (Lisp_Object, const unsigned char *, int, Lisp_Object),
 -       Lisp_Object (**) (Lisp_Object, const unsigned char *, int)));
 -static void xpm_put_color_table_h P_ ((Lisp_Object, const unsigned char *,
 -                                     int, Lisp_Object));
 -static Lisp_Object xpm_get_color_table_h P_ ((Lisp_Object,
 -                                            const unsigned char *, int));
 -static int xpm_str_to_color_key P_ ((const char *));
 -static int xpm_load_image P_ ((struct frame *, struct image *,
 -                             const unsigned char *, const unsigned char *));
 +  (void (**) (Lisp_Object, const unsigned char *, int, Lisp_Object),
 +   Lisp_Object (**) (Lisp_Object, const unsigned char *, int));
 +static void xpm_put_color_table_h (Lisp_Object, const unsigned char *,
 +                                   int, Lisp_Object);
 +static Lisp_Object xpm_get_color_table_h (Lisp_Object,
 +                                          const unsigned char *, int);
 +static int xpm_str_to_color_key (const char *);
 +static int xpm_load_image (struct frame *, struct image *,
 +                           const unsigned char *, const unsigned char *);
  
  /* Tokens returned from xpm_scan.  */
  
@@@ -3660,10 -3770,9 +3660,10 @@@ enum xpm_toke
     length of the corresponding token, respectively.  */
  
  static int
 -xpm_scan (s, end, beg, len)
 -     const unsigned char **s, *end, **beg;
 -     int *len;
 +xpm_scan (const unsigned char **s,
 +          const unsigned char *end,
 +          const unsigned char **beg,
 +          int *len)
  {
    int c;
  
     hash table is used.  */
  
  static Lisp_Object
 -xpm_make_color_table_v (put_func, get_func)
 -     void (**put_func) (Lisp_Object, const unsigned char *, int, Lisp_Object);
 -     Lisp_Object (**get_func) (Lisp_Object, const unsigned char *, int);
 +xpm_make_color_table_v (void (**put_func) (Lisp_Object,
 +                                           const unsigned char *,
 +                                           int,
 +                                           Lisp_Object),
 +                        Lisp_Object (**get_func) (Lisp_Object,
 +                                                  const unsigned char *,
 +                                                  int))
  {
    *put_func = xpm_put_color_table_v;
    *get_func = xpm_get_color_table_v;
  }
  
  static void
 -xpm_put_color_table_v (color_table, chars_start, chars_len, color)
 -     Lisp_Object color_table;
 -     const unsigned char *chars_start;
 -     int chars_len;
 -     Lisp_Object color;
 +xpm_put_color_table_v (Lisp_Object color_table,
 +                       const unsigned char *chars_start,
 +                       int chars_len,
 +                       Lisp_Object color)
  {
    XVECTOR (color_table)->contents[*chars_start] = color;
  }
  
  static Lisp_Object
 -xpm_get_color_table_v (color_table, chars_start, chars_len)
 -     Lisp_Object color_table;
 -     const unsigned char *chars_start;
 -     int chars_len;
 +xpm_get_color_table_v (Lisp_Object color_table,
 +                       const unsigned char *chars_start,
 +                       int chars_len)
  {
    return XVECTOR (color_table)->contents[*chars_start];
  }
  
  static Lisp_Object
 -xpm_make_color_table_h (put_func, get_func)
 -     void (**put_func) (Lisp_Object, const unsigned char *, int, Lisp_Object);
 -     Lisp_Object (**get_func) (Lisp_Object, const unsigned char *, int);
 +xpm_make_color_table_h (void (**put_func) (Lisp_Object,
 +                                           const unsigned char *,
 +                                           int,
 +                                           Lisp_Object),
 +                        Lisp_Object (**get_func) (Lisp_Object,
 +                                                  const unsigned char *,
 +                                                  int))
  {
    *put_func = xpm_put_color_table_h;
    *get_func = xpm_get_color_table_h;
  }
  
  static void
 -xpm_put_color_table_h (color_table, chars_start, chars_len, color)
 -     Lisp_Object color_table;
 -     const unsigned char *chars_start;
 -     int chars_len;
 -     Lisp_Object color;
 +xpm_put_color_table_h (Lisp_Object color_table,
 +                       const unsigned char *chars_start,
 +                       int chars_len,
 +                       Lisp_Object color)
  {
    struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
    unsigned hash_code;
  }
  
  static Lisp_Object
 -xpm_get_color_table_h (color_table, chars_start, chars_len)
 -     Lisp_Object color_table;
 -     const unsigned char *chars_start;
 -     int chars_len;
 +xpm_get_color_table_h (Lisp_Object color_table,
 +                       const unsigned char *chars_start,
 +                       int chars_len)
  {
    struct Lisp_Hash_Table *table = XHASH_TABLE (color_table);
    int i = hash_lookup (table, make_unibyte_string (chars_start, chars_len),
@@@ -3811,7 -3916,8 +3811,7 @@@ enum xpm_color_key 
  static const char xpm_color_key_strings[][4] = {"s", "m", "g4", "g", "c"};
  
  static int
 -xpm_str_to_color_key (s)
 -     const char *s;
 +xpm_str_to_color_key (const char *s)
  {
    int i;
  
  }
  
  static int
 -xpm_load_image (f, img, contents, end)
 -     struct frame *f;
 -     struct image *img;
 -     const unsigned char *contents, *end;
 +xpm_load_image (struct frame *f,
 +                struct image *img,
 +                const unsigned char *contents,
 +                const unsigned char *end)
  {
    const unsigned char *s = contents, *beg, *str;
    unsigned char buffer[BUFSIZ];
    if (!(end - s >= 9 && memcmp (s, "/* XPM */", 9) == 0))
      goto failure;
    s += 9;
 -  match();
 +  match ();
    expect_ident ("static");
    expect_ident ("char");
    expect ('*');
                     (!EQ (color_val, Qt) ? PIX_MASK_DRAW
                      : (have_mask = 1, PIX_MASK_RETAIN)));
  #else
 -          if (EQ(color_val, Qt))
 -            ns_set_alpha(ximg, x, y, 0);
 +          if (EQ (color_val, Qt))
 +            ns_set_alpha (ximg, x, y, 0);
  #endif
        }
        if (y + 1 < height)
  }
  
  static int
 -xpm_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +xpm_load (struct frame *f,
 +          struct image *img)
  {
    int success_p = 0;
    Lisp_Object file_name;
        Lisp_Object file;
        unsigned char *contents;
        int size;
 -      struct gcpro gcpro1;
  
        file = x_find_image_file (file_name);
 -      GCPRO1 (file);
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", file_name, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        if (contents == NULL)
        {
          image_error ("Error loading XPM image `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        success_p = xpm_load_image (f, img, contents, contents + size);
        xfree (contents);
 -      UNGCPRO;
      }
    else
      {
        Lisp_Object data;
  
        data = image_spec_value (img->spec, QCdata, NULL);
 +      if (!STRINGP (data))
 +      {
 +        image_error ("Invalid image data `%s'", data, Qnil);
 +        return 0;
 +      }
        success_p = xpm_load_image (f, img, SDATA (data),
                                  SDATA (data) + SBYTES (data));
      }
@@@ -4147,11 -4254,11 +4147,11 @@@ int ct_colors_allocated
  /* Initialize the color table.  */
  
  static void
 -init_color_table ()
 +init_color_table (void)
  {
    int size = CT_SIZE * sizeof (*ct_table);
    ct_table = (struct ct_color **) xmalloc (size);
 -  bzero (ct_table, size);
 +  memset (ct_table, 0, size);
    ct_colors_allocated = 0;
  }
  
  /* Free memory associated with the color table.  */
  
  static void
 -free_color_table ()
 +free_color_table (void)
  {
    int i;
    struct ct_color *p, *next;
     G, B, and make an entry in the color table.  */
  
  static unsigned long
 -lookup_rgb_color (f, r, g, b)
 -     struct frame *f;
 -     int r, g, b;
 +lookup_rgb_color (struct frame *f, int r, int g, int b)
  {
    unsigned hash = CT_HASH_RGB (r, g, b);
    int i = hash % CT_SIZE;
     table.  If not already present, allocate it.  Value is PIXEL.  */
  
  static unsigned long
 -lookup_pixel_color (f, pixel)
 -     struct frame *f;
 -     unsigned long pixel;
 +lookup_pixel_color (struct frame *f, unsigned long pixel)
  {
    int i = pixel % CT_SIZE;
    struct ct_color *p;
     allocated via xmalloc.  Set *N to the number of colors.  */
  
  static unsigned long *
 -colors_in_color_table (n)
 -     int *n;
 +colors_in_color_table (int *n)
  {
    int i, j;
    struct ct_color *p;
  #else /* COLOR_TABLE_SUPPORT */
  
  static unsigned long
 -lookup_rgb_color (f, r, g, b)
 -     struct frame *f;
 -     int r, g, b;
 +lookup_rgb_color (struct frame *f, int r, int g, int b)
  {
    unsigned long pixel;
  
  }
  
  static void
 -init_color_table ()
 +init_color_table (void)
  {
  }
  #endif /* COLOR_TABLE_SUPPORT */
                              Algorithms
   ***********************************************************************/
  
 -static XColor *x_to_xcolors P_ ((struct frame *, struct image *, int));
 -static void x_from_xcolors P_ ((struct frame *, struct image *, XColor *));
 -static void x_detect_edges P_ ((struct frame *, struct image *, int[9], int));
 +static XColor *x_to_xcolors (struct frame *, struct image *, int);
 +static void x_from_xcolors (struct frame *, struct image *, XColor *);
 +static void x_detect_edges (struct frame *, struct image *, int[9], int);
  
  #ifdef HAVE_NTGUI
  static void XPutPixel (XImagePtr , int, int, COLORREF);
  #endif /* HAVE_NTGUI */
  
 -/* Non-zero means draw a cross on images having `:conversion
 -   disabled'.  */
 -
 -int cross_disabled_images;
 -
  /* Edge detection matrices for different edge-detection
     strategies.  */
  
@@@ -4420,7 -4539,10 +4420,7 @@@ static int laplace_matrix[9] = 
     allocated with xmalloc; it must be freed by the caller.  */
  
  static XColor *
 -x_to_xcolors (f, img, rgb_p)
 -     struct frame *f;
 -     struct image *img;
 -     int rgb_p;
 +x_to_xcolors (struct frame *f, struct image *img, int rgb_p)
  {
    int x, y;
    XColor *colors, *p;
     stored in ximg->data.  */
  
  static void
 -XPutPixel (ximg, x, y, color)
 -     XImagePtr  ximg;
 -     int x, y;
 -     COLORREF color;
 +XPutPixel (XImagePtr ximg, int x, int y, COLORREF color)
  {
    int width = ximg->info.bmiHeader.biWidth;
    int height = ximg->info.bmiHeader.biHeight;
     COLORS will be freed; an existing IMG->pixmap will be freed, too.  */
  
  static void
 -x_from_xcolors (f, img, colors)
 -     struct frame *f;
 -     struct image *img;
 -     XColor *colors;
 +x_from_xcolors (struct frame *f, struct image *img, XColor *colors)
  {
    int x, y;
    XImagePtr oimg = NULL;
     outgoing image.  */
  
  static void
 -x_detect_edges (f, img, matrix, color_adjust)
 -     struct frame *f;
 -     struct image *img;
 -     int matrix[9], color_adjust;
 +x_detect_edges (struct frame *f, struct image *img, int *matrix, int color_adjust)
  {
    XColor *colors = x_to_xcolors (f, img, 1);
    XColor *new, *p;
     on frame F.  */
  
  static void
 -x_emboss (f, img)
 -     struct frame *f;
 -     struct image *img;
 +x_emboss (struct frame *f, struct image *img)
  {
    x_detect_edges (f, img, emboss_matrix, 0xffff / 2);
  }
     to draw disabled buttons, for example.  */
  
  static void
 -x_laplace (f, img)
 -     struct frame *f;
 -     struct image *img;
 +x_laplace (struct frame *f, struct image *img)
  {
    x_detect_edges (f, img, laplace_matrix, 45000);
  }
     number.  */
  
  static void
 -x_edge_detection (f, img, matrix, color_adjust)
 -     struct frame *f;
 -     struct image *img;
 -     Lisp_Object matrix, color_adjust;
 +x_edge_detection (struct frame *f, struct image *img, Lisp_Object matrix,
 +                Lisp_Object color_adjust)
  {
    int i = 0;
    int trans[9];
  /* Transform image IMG on frame F so that it looks disabled.  */
  
  static void
 -x_disable_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +x_disable_image (struct frame *f, struct image *img)
  {
    Display_Info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
  #ifdef HAVE_NTGUI
     heuristically.  Value is non-zero if successful. */
  
  static int
 -x_build_heuristic_mask (f, img, how)
 -     struct frame *f;
 -     struct image *img;
 -     Lisp_Object how;
 +x_build_heuristic_mask (struct frame *f, struct image *img, Lisp_Object how)
  {
    XImagePtr_or_DC ximg;
  #ifndef HAVE_NTGUI
    /* Create the bit array serving as mask.  */
    row_width = (img->width + 7) / 8;
    mask_img = xmalloc (row_width * img->height);
 -  bzero (mask_img, row_width * img->height);
 +  memset (mask_img, 0, row_width * img->height);
  
    /* Create a memory device context for IMG->pixmap.  */
    frame_dc = get_frame_dc (f);
                                  ? PIX_MASK_DRAW : PIX_MASK_RETAIN));
  #else
        if (XGetPixel (ximg, x, y) == bg)
 -        ns_set_alpha(ximg, x, y, 0);
 +        ns_set_alpha (ximg, x, y, 0);
  #endif /* HAVE_NS */
  #ifndef HAVE_NS
    /* Fill in the background_transparent field while we have the mask handy. */
                       PBM (mono, gray, color)
   ***********************************************************************/
  
 -static int pbm_image_p P_ ((Lisp_Object object));
 -static int pbm_load P_ ((struct frame *f, struct image *img));
 -static int pbm_scan_number P_ ((unsigned char **, unsigned char *));
 +static int pbm_image_p (Lisp_Object object);
 +static int pbm_load (struct frame *f, struct image *img);
 +static int pbm_scan_number (unsigned char **, unsigned char *);
  
  /* The symbol `pbm' identifying images of this type.  */
  
@@@ -4985,11 -5127,12 +4985,11 @@@ static struct image_type pbm_type 
  /* Return non-zero if OBJECT is a valid PBM image specification.  */
  
  static int
 -pbm_image_p (object)
 -     Lisp_Object object;
 +pbm_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[PBM_LAST];
  
 -  bcopy (pbm_format, fmt, sizeof fmt);
 +  memcpy (fmt, pbm_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, PBM_LAST, Qpbm))
      return 0;
     end of input.  */
  
  static int
 -pbm_scan_number (s, end)
 -     unsigned char **s, *end;
 +pbm_scan_number (unsigned char **s, unsigned char *end)
  {
    int c = 0, val = -1;
  
@@@ -5079,18 -5223,23 +5079,18 @@@ pbm_read_file (file, size
  /* Load PBM image IMG for use on frame F.  */
  
  static int
 -pbm_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +pbm_load (struct frame *f, struct image *img)
  {
    int raw_p, x, y;
    int width, height, max_color_idx = 0;
    XImagePtr ximg;
    Lisp_Object file, specified_file;
    enum {PBM_MONO, PBM_GRAY, PBM_COLOR} type;
 -  struct gcpro gcpro1;
    unsigned char *contents = NULL;
    unsigned char *end, *p;
    int size;
  
    specified_file = image_spec_value (img->spec, QCfile, NULL);
 -  file = Qnil;
 -  GCPRO1 (file);
  
    if (STRINGP (specified_file))
      {
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
 -      contents = slurp_file (SDATA (file), &size);
 +      contents = slurp_file (SSDATA (file), &size);
        if (contents == NULL)
        {
          image_error ("Error reading `%s'", file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
      {
        Lisp_Object data;
        data = image_spec_value (img->spec, QCdata, NULL);
 +      if (!STRINGP (data))
 +      {
 +        image_error ("Invalid image data `%s'", data, Qnil);
 +        return 0;
 +      }
        p = SDATA (data);
        end = p + SBYTES (data);
      }
        image_error ("Not a PBM image: `%s'", img->spec, Qnil);
      error:
        xfree (contents);
 -      UNGCPRO;
        return 0;
      }
  
        unsigned long bg = FRAME_BACKGROUND_PIXEL (f);
  
        /* Parse the image specification.  */
 -      bcopy (pbm_format, fmt, sizeof fmt);
 +      memcpy (fmt, pbm_format, sizeof fmt);
        parse_image_spec (img->spec, fmt, PBM_LAST, Qpbm);
  
        /* Get foreground and background colors, maybe allocate colors.  */
       img->width = width;
       img->height = height; */
  
 -  UNGCPRO;
    xfree (contents);
    return 1;
  }
  
  /* Function prototypes.  */
  
 -static int png_image_p P_ ((Lisp_Object object));
 -static int png_load P_ ((struct frame *f, struct image *img));
 +static int png_image_p (Lisp_Object object);
 +static int png_load (struct frame *f, struct image *img);
  
  /* The symbol `png' identifying images of this type.  */
  
@@@ -5399,10 -5547,11 +5399,10 @@@ static struct image_type png_type 
  /* Return non-zero if OBJECT is a valid PNG image specification.  */
  
  static int
 -png_image_p (object)
 -     Lisp_Object object;
 +png_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[PNG_LAST];
 -  bcopy (png_format, fmt, sizeof fmt);
 +  memcpy (fmt, png_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, PNG_LAST, Qpng))
      return 0;
  #ifdef HAVE_NTGUI
  /* PNG library details.  */
  
- DEF_IMGLIB_FN (png_get_io_ptr, (png_structp));
- DEF_IMGLIB_FN (png_sig_cmp, (png_bytep, png_size_t, png_size_t));
- DEF_IMGLIB_FN (png_create_read_struct, (png_const_charp, png_voidp,
-                                       png_error_ptr, png_error_ptr));
- DEF_IMGLIB_FN (png_create_info_struct, (png_structp));
- DEF_IMGLIB_FN (png_destroy_read_struct, (png_structpp, png_infopp, png_infopp));
- DEF_IMGLIB_FN (png_set_read_fn, (png_structp, png_voidp, png_rw_ptr));
- DEF_IMGLIB_FN (png_set_sig_bytes, (png_structp, int));
- DEF_IMGLIB_FN (png_read_info, (png_structp, png_infop));
- DEF_IMGLIB_FN (png_get_IHDR, (png_structp, png_infop,
 -DEF_IMGLIB_FN (png_voidp, png_get_io_ptr);
 -DEF_IMGLIB_FN (int, png_sig_cmp);
 -DEF_IMGLIB_FN (png_structp, png_create_read_struct);
 -DEF_IMGLIB_FN (png_infop, png_create_info_struct);
 -DEF_IMGLIB_FN (void, png_destroy_read_struct);
 -DEF_IMGLIB_FN (void, png_set_read_fn);
 -DEF_IMGLIB_FN (void, png_set_sig_bytes);
 -DEF_IMGLIB_FN (void, png_read_info);
 -DEF_IMGLIB_FN (png_uint_32, png_get_IHDR);
 -DEF_IMGLIB_FN (png_uint_32, png_get_valid);
 -DEF_IMGLIB_FN (void, png_set_strip_16);
 -DEF_IMGLIB_FN (void, png_set_expand);
 -DEF_IMGLIB_FN (void, png_set_gray_to_rgb);
 -DEF_IMGLIB_FN (void, png_set_background);
 -DEF_IMGLIB_FN (png_uint_32, png_get_bKGD);
 -DEF_IMGLIB_FN (void, png_read_update_info);
 -DEF_IMGLIB_FN (png_byte, png_get_channels);
 -DEF_IMGLIB_FN (png_size_t, png_get_rowbytes);
 -DEF_IMGLIB_FN (void, png_read_image);
 -DEF_IMGLIB_FN (void, png_read_end);
 -DEF_IMGLIB_FN (void, png_error);
++DEF_IMGLIB_FN (png_voidp, png_get_io_ptr, (png_structp));
++DEF_IMGLIB_FN (int, png_sig_cmp, (png_bytep, png_size_t, png_size_t));
++DEF_IMGLIB_FN (png_structp, png_create_read_struct, (png_const_charp, png_voidp,
++                                                   png_error_ptr, png_error_ptr));
++DEF_IMGLIB_FN (png_infop, png_create_info_struct, (png_structp));
++DEF_IMGLIB_FN (void, png_destroy_read_struct, (png_structpp, png_infopp, png_infopp));
++DEF_IMGLIB_FN (void, png_set_read_fn, (png_structp, png_voidp, png_rw_ptr));
++DEF_IMGLIB_FN (void, png_set_sig_bytes, (png_structp, int));
++DEF_IMGLIB_FN (void, png_read_info, (png_structp, png_infop));
++DEF_IMGLIB_FN (png_uint_32, png_get_IHDR, (png_structp, png_infop,
 +                            png_uint_32 *, png_uint_32 *,
 +                            int *, int *, int *, int *, int *));
- DEF_IMGLIB_FN (png_get_valid, (png_structp, png_infop, png_uint_32));
- DEF_IMGLIB_FN (png_set_strip_16, (png_structp));
- DEF_IMGLIB_FN (png_set_expand, (png_structp));
- DEF_IMGLIB_FN (png_set_gray_to_rgb, (png_structp));
- DEF_IMGLIB_FN (png_set_background, (png_structp, png_color_16p,
++DEF_IMGLIB_FN (png_uint_32, png_get_valid, (png_structp, png_infop, png_uint_32));
++DEF_IMGLIB_FN (void, png_set_strip_16, (png_structp));
++DEF_IMGLIB_FN (void, png_set_expand, (png_structp));
++DEF_IMGLIB_FN (void, png_set_gray_to_rgb, (png_structp));
++DEF_IMGLIB_FN (void, png_set_background, (png_structp, png_color_16p,
 +                                  int, int, double));
- DEF_IMGLIB_FN (png_get_bKGD, (png_structp, png_infop, png_color_16p *));
- DEF_IMGLIB_FN (png_read_update_info, (png_structp, png_infop));
- DEF_IMGLIB_FN (png_get_channels, (png_structp, png_infop));
- DEF_IMGLIB_FN (png_get_rowbytes, (png_structp, png_infop));
- DEF_IMGLIB_FN (png_read_image, (png_structp, png_bytepp));
- DEF_IMGLIB_FN (png_read_end, (png_structp, png_infop));
- DEF_IMGLIB_FN (png_error, (png_structp, png_const_charp));
++DEF_IMGLIB_FN (png_uint_32, png_get_bKGD, (png_structp, png_infop, png_color_16p *));
++DEF_IMGLIB_FN (void, png_read_update_info, (png_structp, png_infop));
++DEF_IMGLIB_FN (png_byte, png_get_channels, (png_structp, png_infop));
++DEF_IMGLIB_FN (png_size_t, png_get_rowbytes, (png_structp, png_infop));
++DEF_IMGLIB_FN (void, png_read_image, (png_structp, png_bytepp));
++DEF_IMGLIB_FN (void, png_read_end, (png_structp, png_infop));
++DEF_IMGLIB_FN (void, png_error, (png_structp, png_const_charp));
+ #if (PNG_LIBPNG_VER >= 10500)
 -DEF_IMGLIB_FN (void, png_longjmp);
 -DEF_IMGLIB_FN (jmp_buf *, png_set_longjmp_fn);
++DEF_IMGLIB_FN (void, png_longjmp, (png_structp, int));
++DEF_IMGLIB_FN (jmp_buf *, png_set_longjmp_fn, (png_structp, png_longjmp_ptr, size_t));
+ #endif /* libpng version >= 1.5 */
  
  static int
  init_png_functions (Lisp_Object libraries)
    LOAD_IMGLIB_FN (library, png_read_image);
    LOAD_IMGLIB_FN (library, png_read_end);
    LOAD_IMGLIB_FN (library, png_error);
+ #if (PNG_LIBPNG_VER >= 10500)
+   LOAD_IMGLIB_FN (library, png_longjmp);
+   LOAD_IMGLIB_FN (library, png_set_longjmp_fn);
+ #endif /* libpng version >= 1.5 */
    return 1;
  }
  #else
  #define fn_png_read_end                       png_read_end
  #define fn_png_error                  png_error
  
+ #if (PNG_LIBPNG_VER >= 10500)
+ #define fn_png_longjmp                        png_longjmp
+ #define fn_png_set_longjmp_fn         png_set_longjmp_fn
+ #endif /* libpng version >= 1.5 */
  #endif /* HAVE_NTGUI */
  
+ #if (PNG_LIBPNG_VER < 10500)
+ #define PNG_LONGJMP(ptr) (longjmp ((ptr)->jmpbuf, 1))
+ #define PNG_JMPBUF(ptr) ((ptr)->jmpbuf)
+ #else
+ /* In libpng version 1.5, the jmpbuf member is hidden. (Bug#7908)  */
+ #define PNG_LONGJMP(ptr) (fn_png_longjmp ((ptr), 1))
+ #define PNG_JMPBUF(ptr) \
+   (*fn_png_set_longjmp_fn((ptr), longjmp, sizeof (jmp_buf)))
+ #endif
  /* Error and warning handlers installed when the PNG library
     is initialized.  */
  
  static void
 -my_png_error (png_ptr, msg)
 -     png_struct *png_ptr;
 -     char *msg;
 +my_png_error (png_struct *png_ptr, const char *msg)
  {
    xassert (png_ptr != NULL);
    /* Avoid compiler warning about deprecated direct access to
       png_ptr's fields in libpng versions 1.4.x.  */
    image_error ("PNG error: %s", build_string (msg), Qnil);
-   longjmp (png_ptr->jmpbuf, 1);
+   PNG_LONGJMP (png_ptr);
  }
  
  
  static void
 -my_png_warning (png_ptr, msg)
 -     png_struct *png_ptr;
 -     char *msg;
 +my_png_warning (png_struct *png_ptr, const char *msg)
  {
    xassert (png_ptr != NULL);
    image_error ("PNG warning: %s", build_string (msg), Qnil);
@@@ -5539,7 -5715,10 +5566,7 @@@ struct png_memory_storag
     bytes from the input to DATA.  */
  
  static void
 -png_read_from_memory (png_ptr, data, length)
 -     png_structp png_ptr;
 -     png_bytep data;
 -     png_size_t length;
 +png_read_from_memory (png_structp png_ptr, png_bytep data, png_size_t length)
  {
    struct png_memory_storage *tbr
      = (struct png_memory_storage *) fn_png_get_io_ptr (png_ptr);
    if (length > tbr->len - tbr->index)
      fn_png_error (png_ptr, "Read error");
  
 -  bcopy (tbr->bytes + tbr->index, data, length);
 +  memcpy (data, tbr->bytes + tbr->index, length);
    tbr->index = tbr->index + length;
  }
  
     bytes from the input to DATA.  */
  
  static void
 -png_read_from_file (png_ptr, data, length)
 -     png_structp png_ptr;
 -     png_bytep data;
 -     png_size_t length;
 +png_read_from_file (png_structp png_ptr, png_bytep data, png_size_t length)
  {
    FILE *fp = (FILE *) fn_png_get_io_ptr (png_ptr);
  
     successful.  */
  
  static int
 -png_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +png_load (struct frame *f, struct image *img)
  {
    Lisp_Object file, specified_file;
    Lisp_Object specified_data;
    int x, y, i;
    XImagePtr ximg, mask_img = NULL;
 -  struct gcpro gcpro1;
    png_struct *png_ptr = NULL;
    png_info *info_ptr = NULL, *end_info = NULL;
    FILE *volatile fp = NULL;
    /* Find out what file to load.  */
    specified_file = image_spec_value (img->spec, QCfile, NULL);
    specified_data = image_spec_value (img->spec, QCdata, NULL);
 -  file = Qnil;
 -  GCPRO1 (file);
  
    if (NILP (specified_data))
      {
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        /* Open the image file.  */
 -      fp = fopen (SDATA (file), "rb");
 +      fp = fopen (SSDATA (file), "rb");
        if (!fp)
        {
          image_error ("Cannot open image file `%s'", file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
          || fn_png_sig_cmp (sig, 0, sizeof sig))
        {
          image_error ("Not a PNG file: `%s'", file, Qnil);
 -        UNGCPRO;
          fclose (fp);
          return 0;
        }
      }
    else
      {
 +      if (!STRINGP (specified_data))
 +      {
 +        image_error ("Invalid image data `%s'", specified_data, Qnil);
 +        return 0;
 +      }
 +
        /* Read from memory.  */
        tbr.bytes = SDATA (specified_data);
        tbr.len = SBYTES (specified_data);
          || fn_png_sig_cmp (tbr.bytes, 0, sizeof sig))
        {
          image_error ("Not a PNG image: `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        tbr.bytes += sizeof (sig);
      }
  
-   /* Initialize read and info structs for PNG lib.  Casting return
-      value avoids a GCC warning on W32.  */
-   png_ptr = (png_structp)fn_png_create_read_struct (PNG_LIBPNG_VER_STRING,
-                                                   NULL, my_png_error,
-                                                   my_png_warning);
+   /* Initialize read and info structs for PNG lib.  */
+   png_ptr = fn_png_create_read_struct (PNG_LIBPNG_VER_STRING,
+                                      NULL, my_png_error,
+                                      my_png_warning);
    if (!png_ptr)
      {
        if (fp) fclose (fp);
 -      UNGCPRO;
        return 0;
      }
  
-   /* Casting return value avoids a GCC warning on W32.  */
-   info_ptr = (png_infop)fn_png_create_info_struct (png_ptr);
+   info_ptr = fn_png_create_info_struct (png_ptr);
    if (!info_ptr)
      {
        fn_png_destroy_read_struct (&png_ptr, NULL, NULL);
        if (fp) fclose (fp);
 -      UNGCPRO;
        return 0;
      }
  
-   /* Casting return value avoids a GCC warning on W32.  */
-   end_info = (png_infop)fn_png_create_info_struct (png_ptr);
+   end_info = fn_png_create_info_struct (png_ptr);
    if (!end_info)
      {
        fn_png_destroy_read_struct (&png_ptr, &info_ptr, NULL);
        if (fp) fclose (fp);
 -      UNGCPRO;
        return 0;
      }
  
    /* Set error jump-back.  We come back here when the PNG library
       detects an error.  */
-   if (setjmp (png_ptr->jmpbuf))
+   if (setjmp (PNG_JMPBUF (png_ptr)))
      {
      error:
        if (png_ptr)
        xfree (pixels);
        xfree (rows);
        if (fp) fclose (fp);
 -      UNGCPRO;
        return 0;
      }
  
        /* The user specified `:background', use that.  */
        {
          XColor color;
 -        if (x_defined_color (f, SDATA (specified_bg), &color, 0))
 +        if (x_defined_color (f, SSDATA (specified_bg), &color, 0))
            {
              png_color_16 user_bg;
  
 -            bzero (&user_bg, sizeof user_bg);
 +            memset (&user_bg, 0, sizeof user_bg);
              user_bg.red = color.red >> shift;
              user_bg.green = color.green >> shift;
              user_bg.blue = color.blue >> shift;
          color.pixel = FRAME_BACKGROUND_PIXEL (f);
          x_query_color (f, &color);
  
 -        bzero (&frame_background, sizeof frame_background);
 +        memset (&frame_background, 0, sizeof frame_background);
          frame_background.red = color.red >> shift;
          frame_background.green = color.green >> shift;
          frame_background.blue = color.blue >> shift;
        x_destroy_x_image (mask_img);
      }
  
 -  UNGCPRO;
    return 1;
  }
  
@@@ -5933,8 -6120,8 +5957,8 @@@ png_load (struct frame *f, struct imag
  
  #if defined (HAVE_JPEG) || defined (HAVE_NS)
  
 -static int jpeg_image_p P_ ((Lisp_Object object));
 -static int jpeg_load P_ ((struct frame *f, struct image *img));
 +static int jpeg_image_p (Lisp_Object object);
 +static int jpeg_load (struct frame *f, struct image *img);
  
  /* The symbol `jpeg' identifying images of this type.  */
  
@@@ -5988,11 -6175,12 +6012,11 @@@ static struct image_type jpeg_type 
  /* Return non-zero if OBJECT is a valid JPEG image specification.  */
  
  static int
 -jpeg_image_p (object)
 -     Lisp_Object object;
 +jpeg_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[JPEG_LAST];
  
 -  bcopy (jpeg_format, fmt, sizeof fmt);
 +  memcpy (fmt, jpeg_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg))
      return 0;
  #ifdef HAVE_NTGUI
  
  /* JPEG library details.  */
- DEF_IMGLIB_FN (jpeg_CreateDecompress, (j_decompress_ptr, int, size_t));
- DEF_IMGLIB_FN (jpeg_start_decompress, (j_decompress_ptr));
- DEF_IMGLIB_FN (jpeg_finish_decompress, (j_decompress_ptr));
- DEF_IMGLIB_FN (jpeg_destroy_decompress, (j_decompress_ptr));
- DEF_IMGLIB_FN (jpeg_read_header, (j_decompress_ptr, boolean));
- DEF_IMGLIB_FN (jpeg_read_scanlines, (j_decompress_ptr, JSAMPARRAY, JDIMENSION));
- DEF_IMGLIB_FN (jpeg_std_error, (struct jpeg_error_mgr *));
- DEF_IMGLIB_FN (jpeg_resync_to_restart, (j_decompress_ptr, int));
 -DEF_IMGLIB_FN (void, jpeg_CreateDecompress);
 -DEF_IMGLIB_FN (boolean, jpeg_start_decompress);
 -DEF_IMGLIB_FN (boolean, jpeg_finish_decompress);
 -DEF_IMGLIB_FN (void, jpeg_destroy_decompress);
 -DEF_IMGLIB_FN (int, jpeg_read_header);
 -DEF_IMGLIB_FN (JDIMENSION, jpeg_read_scanlines);
 -DEF_IMGLIB_FN (struct jpeg_error_mgr *, jpeg_std_error);
 -DEF_IMGLIB_FN (boolean, jpeg_resync_to_restart);
++DEF_IMGLIB_FN (void, jpeg_CreateDecompress, (j_decompress_ptr, int, size_t));
++DEF_IMGLIB_FN (boolean, jpeg_start_decompress, (j_decompress_ptr));
++DEF_IMGLIB_FN (boolean, jpeg_finish_decompress, (j_decompress_ptr));
++DEF_IMGLIB_FN (void, jpeg_destroy_decompress, (j_decompress_ptr));
++DEF_IMGLIB_FN (int, jpeg_read_header, (j_decompress_ptr, boolean));
++DEF_IMGLIB_FN (JDIMENSION, jpeg_read_scanlines, (j_decompress_ptr, JSAMPARRAY, JDIMENSION));
++DEF_IMGLIB_FN (struct jpeg_error_mgr *, jpeg_std_error, (struct jpeg_error_mgr *));
++DEF_IMGLIB_FN (boolean, jpeg_resync_to_restart, (j_decompress_ptr, int));
  
  static int
  init_jpeg_functions (Lisp_Object libraries)
  /* Wrapper since we can't directly assign the function pointer
     to another function pointer that was declared more completely easily.  */
  static boolean
 -jpeg_resync_to_restart_wrapper (cinfo, desired)
 -     j_decompress_ptr cinfo;
 -     int desired;
 +jpeg_resync_to_restart_wrapper (j_decompress_ptr cinfo, int desired)
  {
    return fn_jpeg_resync_to_restart (cinfo, desired);
  }
@@@ -6085,7 -6275,8 +6109,7 @@@ struct my_jpeg_error_mg
  
  
  static void
 -my_error_exit (cinfo)
 -     j_common_ptr cinfo;
 +my_error_exit (j_common_ptr cinfo)
  {
    struct my_jpeg_error_mgr *mgr = (struct my_jpeg_error_mgr *) cinfo->err;
    longjmp (mgr->setjmp_buffer, 1);
     libjpeg.doc from the JPEG lib distribution.  */
  
  static void
 -our_common_init_source (cinfo)
 -     j_decompress_ptr cinfo;
 +our_common_init_source (j_decompress_ptr cinfo)
  {
  }
  
     jpeg_finish_decompress() after all data has been processed.  */
  
  static void
 -our_common_term_source (cinfo)
 -     j_decompress_ptr cinfo;
 +our_common_term_source (j_decompress_ptr cinfo)
  {
  }
  
  static JOCTET our_memory_buffer[2];
  
  static boolean
 -our_memory_fill_input_buffer (cinfo)
 -     j_decompress_ptr cinfo;
 +our_memory_fill_input_buffer (j_decompress_ptr cinfo)
  {
    /* Insert a fake EOI marker.  */
    struct jpeg_source_mgr *src = cinfo->src;
     is the JPEG data source manager.  */
  
  static void
 -our_memory_skip_input_data (cinfo, num_bytes)
 -     j_decompress_ptr cinfo;
 -     long num_bytes;
 +our_memory_skip_input_data (j_decompress_ptr cinfo, long int num_bytes)
  {
    struct jpeg_source_mgr *src = (struct jpeg_source_mgr *) cinfo->src;
  
     reading the image.  */
  
  static void
 -jpeg_memory_src (cinfo, data, len)
 -     j_decompress_ptr cinfo;
 -     JOCTET *data;
 -     unsigned int len;
 +jpeg_memory_src (j_decompress_ptr cinfo, JOCTET *data, unsigned int len)
  {
    struct jpeg_source_mgr *src;
  
@@@ -6199,7 -6398,8 +6223,7 @@@ struct jpeg_stdio_mg
     whenever more data is needed.  The data is read from a FILE *.  */
  
  static boolean
 -our_stdio_fill_input_buffer (cinfo)
 -     j_decompress_ptr cinfo;
 +our_stdio_fill_input_buffer (j_decompress_ptr cinfo)
  {
    struct jpeg_stdio_mgr *src;
  
     is the JPEG data source manager.  */
  
  static void
 -our_stdio_skip_input_data (cinfo, num_bytes)
 -     j_decompress_ptr cinfo;
 -     long num_bytes;
 +our_stdio_skip_input_data (j_decompress_ptr cinfo, long int num_bytes)
  {
    struct jpeg_stdio_mgr *src;
    src = (struct jpeg_stdio_mgr *) cinfo->src;
     reading the image.  */
  
  static void
 -jpeg_file_src (cinfo, fp)
 -     j_decompress_ptr cinfo;
 -     FILE *fp;
 +jpeg_file_src (j_decompress_ptr cinfo, FILE *fp)
  {
    struct jpeg_stdio_mgr *src;
  
     from the JPEG lib.  */
  
  static int
 -jpeg_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +jpeg_load (struct frame *f, struct image *img)
  {
    struct jpeg_decompress_struct cinfo;
    struct my_jpeg_error_mgr mgr;
    int rc;
    unsigned long *colors;
    int width, height;
 -  struct gcpro gcpro1;
  
    /* Open the JPEG file.  */
    specified_file = image_spec_value (img->spec, QCfile, NULL);
    specified_data = image_spec_value (img->spec, QCdata, NULL);
 -  file = Qnil;
 -  GCPRO1 (file);
  
    if (NILP (specified_data))
      {
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
 -      fp = fopen (SDATA (file), "rb");
 +      fp = fopen (SSDATA (file), "rb");
        if (fp == NULL)
        {
          image_error ("Cannot open `%s'", file, Qnil);
 -        UNGCPRO;
          return 0;
        }
      }
 +  else if (!STRINGP (specified_data))
 +    {
 +      image_error ("Invalid image data `%s'", specified_data, Qnil);
 +      return 0;
 +    }
  
    /* Customize libjpeg's error handling to call my_error_exit when an
-      error is detected.  This function will perform a longjmp.
-      Casting return value avoids a GCC warning on W32.  */
-   cinfo.err = (struct jpeg_error_mgr *)fn_jpeg_std_error (&mgr.pub);
+      error is detected.  This function will perform a longjmp.  */
+   cinfo.err = fn_jpeg_std_error (&mgr.pub);
    mgr.pub.error_exit = my_error_exit;
  
    if ((rc = setjmp (mgr.setjmp_buffer)) != 0)
  
        /* Free pixmap and colors.  */
        x_clear_image (f, img);
 -
 -      UNGCPRO;
        return 0;
      }
  
    /* Put the image into the pixmap.  */
    x_put_x_image (f, ximg, img->pixmap, width, height);
    x_destroy_x_image (ximg);
 -  UNGCPRO;
    return 1;
  }
  
  static int
  jpeg_load (struct frame *f, struct image *img)
  {
 -  return ns_load_image(f, img,
 -                       image_spec_value (img->spec, QCfile, NULL),
 -                       image_spec_value (img->spec, QCdata, NULL));
 +  return ns_load_image (f, img,
 +                      image_spec_value (img->spec, QCfile, NULL),
 +                      image_spec_value (img->spec, QCdata, NULL));
  }
  #endif  /* HAVE_NS */
  
  
  #if defined (HAVE_TIFF) || defined (HAVE_NS)
  
 -static int tiff_image_p P_ ((Lisp_Object object));
 -static int tiff_load P_ ((struct frame *f, struct image *img));
 +static int tiff_image_p (Lisp_Object object);
 +static int tiff_load (struct frame *f, struct image *img);
  
  /* The symbol `tiff' identifying images of this type.  */
  
@@@ -6540,10 -6748,11 +6563,10 @@@ static struct image_type tiff_type 
  /* Return non-zero if OBJECT is a valid TIFF image specification.  */
  
  static int
 -tiff_image_p (object)
 -     Lisp_Object object;
 +tiff_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[TIFF_LAST];
 -  bcopy (tiff_format, fmt, sizeof fmt);
 +  memcpy (fmt, tiff_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, TIFF_LAST, Qtiff))
      return 0;
  #ifdef HAVE_NTGUI
  
  /* TIFF library details.  */
- DEF_IMGLIB_FN (TIFFSetErrorHandler, (TIFFErrorHandler));
- DEF_IMGLIB_FN (TIFFSetWarningHandler, (TIFFErrorHandler));
- DEF_IMGLIB_FN (TIFFOpen, (const char *, const char *));
- DEF_IMGLIB_FN (TIFFClientOpen, (const char *, const char *, thandle_t,
 -DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetErrorHandler);
 -DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetWarningHandler);
 -DEF_IMGLIB_FN (TIFF *, TIFFOpen);
 -DEF_IMGLIB_FN (TIFF *, TIFFClientOpen);
 -DEF_IMGLIB_FN (int, TIFFGetField);
 -DEF_IMGLIB_FN (int, TIFFReadRGBAImage);
 -DEF_IMGLIB_FN (void, TIFFClose);
 -DEF_IMGLIB_FN (int, TIFFSetDirectory);
++DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetErrorHandler, (TIFFErrorHandler));
++DEF_IMGLIB_FN (TIFFErrorHandler, TIFFSetWarningHandler, (TIFFErrorHandler));
++DEF_IMGLIB_FN (TIFF *, TIFFOpen, (const char *, const char *));
++DEF_IMGLIB_FN (TIFF *, TIFFClientOpen, (const char *, const char *, thandle_t,
 +                              TIFFReadWriteProc, TIFFReadWriteProc,
 +                              TIFFSeekProc, TIFFCloseProc, TIFFSizeProc,
 +                              TIFFMapFileProc, TIFFUnmapFileProc));
- DEF_IMGLIB_FN (TIFFGetField, (TIFF *, ttag_t, ...));
- DEF_IMGLIB_FN (TIFFReadRGBAImage, (TIFF *, uint32, uint32, uint32 *, int));
- DEF_IMGLIB_FN (TIFFClose, (TIFF *));
- DEF_IMGLIB_FN (TIFFSetDirectory, (TIFF *, tdir_t));
++DEF_IMGLIB_FN (int, TIFFGetField, (TIFF *, ttag_t, ...));
++DEF_IMGLIB_FN (int, TIFFReadRGBAImage, (TIFF *, uint32, uint32, uint32 *, int));
++DEF_IMGLIB_FN (void, TIFFClose, (TIFF *));
++DEF_IMGLIB_FN (int, TIFFSetDirectory, (TIFF *, tdir_t));
  
  static int
  init_tiff_functions (Lisp_Object libraries)
@@@ -6623,25 -6829,34 +6646,25 @@@ typedef struc
  tiff_memory_source;
  
  static size_t
 -tiff_read_from_memory (data, buf, size)
 -     thandle_t data;
 -     tdata_t buf;
 -     tsize_t size;
 +tiff_read_from_memory (thandle_t data, tdata_t buf, tsize_t size)
  {
    tiff_memory_source *src = (tiff_memory_source *) data;
  
    if (size > src->len - src->index)
      return (size_t) -1;
 -  bcopy (src->bytes + src->index, buf, size);
 +  memcpy (buf, src->bytes + src->index, size);
    src->index += size;
    return size;
  }
  
  static size_t
 -tiff_write_from_memory (data, buf, size)
 -     thandle_t data;
 -     tdata_t buf;
 -     tsize_t size;
 +tiff_write_from_memory (thandle_t data, tdata_t buf, tsize_t size)
  {
    return (size_t) -1;
  }
  
  static toff_t
 -tiff_seek_in_memory (data, off, whence)
 -     thandle_t data;
 -     toff_t off;
 -     int whence;
 +tiff_seek_in_memory (thandle_t data, toff_t off, int whence)
  {
    tiff_memory_source *src = (tiff_memory_source *) data;
    int idx;
  }
  
  static int
 -tiff_close_memory (data)
 -     thandle_t data;
 +tiff_close_memory (thandle_t data)
  {
    /* NOOP */
    return 0;
  }
  
  static int
 -tiff_mmap_memory (data, pbase, psize)
 -     thandle_t data;
 -     tdata_t *pbase;
 -     toff_t *psize;
 +tiff_mmap_memory (thandle_t data, tdata_t *pbase, toff_t *psize)
  {
    /* It is already _IN_ memory. */
    return 0;
  }
  
  static void
 -tiff_unmap_memory (data, base, size)
 -     thandle_t data;
 -     tdata_t base;
 -     toff_t size;
 +tiff_unmap_memory (thandle_t data, tdata_t base, toff_t size)
  {
    /* We don't need to do this. */
  }
  
  static toff_t
 -tiff_size_of_memory (data)
 -     thandle_t data;
 +tiff_size_of_memory (thandle_t data)
  {
    return ((tiff_memory_source *) data)->len;
  }
  
  
  static void
 -tiff_error_handler (title, format, ap)
 -     const char *title, *format;
 -     va_list ap;
 +tiff_error_handler (const char *title, const char *format, va_list ap)
  {
    char buf[512];
    int len;
  
  
  static void
 -tiff_warning_handler (title, format, ap)
 -     const char *title, *format;
 -     va_list ap;
 +tiff_warning_handler (const char *title, const char *format, va_list ap)
  {
    char buf[512];
    int len;
     successful.  */
  
  static int
 -tiff_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +tiff_load (struct frame *f, struct image *img)
  {
    Lisp_Object file, specified_file;
    Lisp_Object specified_data;
    uint32 *buf;
    int rc, rc2;
    XImagePtr ximg;
 -  struct gcpro gcpro1;
    tiff_memory_source memsrc;
    Lisp_Object image;
  
    specified_file = image_spec_value (img->spec, QCfile, NULL);
    specified_data = image_spec_value (img->spec, QCdata, NULL);
 -  file = Qnil;
 -  GCPRO1 (file);
  
    fn_TIFFSetErrorHandler (tiff_error_handler);
    fn_TIFFSetWarningHandler (tiff_warning_handler);
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
-       /* Try to open the image file.  Casting return value avoids a
-        GCC warning on W32.  */
-       tiff = (TIFF *)fn_TIFFOpen (SSDATA (file), "r");
+       /* Try to open the image file.  */
+       tiff = fn_TIFFOpen (SDATA (file), "r");
        if (tiff == NULL)
        {
          image_error ("Cannot open `%s'", file, Qnil);
 -        UNGCPRO;
          return 0;
        }
      }
    else
      {
 +      if (!STRINGP (specified_data))
 +      {
 +        image_error ("Invalid image data `%s'", specified_data, Qnil);
 +        return 0;
 +      }
 +
        /* Memory source! */
        memsrc.bytes = SDATA (specified_data);
        memsrc.len = SBYTES (specified_data);
        memsrc.index = 0;
  
-       /* Casting arguments return value avoids a GCC warning on W32.  */
-       tiff = (TIFF *)fn_TIFFClientOpen ("memory_source", "r",
-                                       (thandle_t) &memsrc,
-                                       (TIFFReadWriteProc) tiff_read_from_memory,
-                                       (TIFFReadWriteProc) tiff_write_from_memory,
-                                       tiff_seek_in_memory,
-                                       tiff_close_memory,
-                                       tiff_size_of_memory,
-                                       tiff_mmap_memory,
-                                       tiff_unmap_memory);
+       tiff = fn_TIFFClientOpen ("memory_source", "r", &memsrc,
+                               (TIFFReadWriteProc) tiff_read_from_memory,
+                               (TIFFReadWriteProc) tiff_write_from_memory,
+                               tiff_seek_in_memory,
+                               tiff_close_memory,
+                               tiff_size_of_memory,
+                               tiff_mmap_memory,
+                               tiff_unmap_memory);
  
        if (!tiff)
        {
          image_error ("Cannot open memory source for `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
      }
          image_error ("Invalid image number `%s' in image `%s'",
                       image, img->spec);
          fn_TIFFClose (tiff);
 -        UNGCPRO;
          return 0;
        }
      }
      {
        image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
        fn_TIFFClose (tiff);
 -      UNGCPRO;
        return 0;
      }
  
      {
        image_error ("Error reading TIFF image `%s'", img->spec, Qnil);
        xfree (buf);
 -      UNGCPRO;
        return 0;
      }
  
    if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap))
      {
        xfree (buf);
 -      UNGCPRO;
        return 0;
      }
  
    x_destroy_x_image (ximg);
    xfree (buf);
  
 -  UNGCPRO;
    return 1;
  }
  
  static int
  tiff_load (struct frame *f, struct image *img)
  {
 -  return ns_load_image(f, img,
 -                       image_spec_value (img->spec, QCfile, NULL),
 -                       image_spec_value (img->spec, QCdata, NULL));
 +  return ns_load_image (f, img,
 +                        image_spec_value (img->spec, QCfile, NULL),
 +                        image_spec_value (img->spec, QCdata, NULL));
  }
  #endif  /* HAVE_NS */
  
  
  #if defined (HAVE_GIF) || defined (HAVE_NS)
  
 -static int gif_image_p P_ ((Lisp_Object object));
 -static int gif_load P_ ((struct frame *f, struct image *img));
 -static void gif_clear_image P_ ((struct frame *f, struct image *img));
 +static int gif_image_p (Lisp_Object object);
 +static int gif_load (struct frame *f, struct image *img);
 +static void gif_clear_image (struct frame *f, struct image *img);
  
  /* The symbol `gif' identifying images of this type.  */
  
@@@ -6967,9 -7198,11 +6987,9 @@@ static struct image_type gif_type 
  /* Free X resources of GIF image IMG which is used on frame F.  */
  
  static void
 -gif_clear_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +gif_clear_image (struct frame *f, struct image *img)
  {
 -  /* IMG->data.ptr_val may contain extension data.  */
 +  /* IMG->data.ptr_val may contain metadata with extension data.  */
    img->data.lisp_val = Qnil;
    x_clear_image (f, img);
  }
  /* Return non-zero if OBJECT is a valid GIF image specification.  */
  
  static int
 -gif_image_p (object)
 -     Lisp_Object object;
 +gif_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[GIF_LAST];
 -  bcopy (gif_format, fmt, sizeof fmt);
 +  memcpy (fmt, gif_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, GIF_LAST, Qgif))
      return 0;
  #ifdef HAVE_NTGUI
  
  /* GIF library details.  */
- DEF_IMGLIB_FN (DGifCloseFile, (GifFileType *));
- DEF_IMGLIB_FN (DGifSlurp, (GifFileType *));
- DEF_IMGLIB_FN (DGifOpen, (void *, InputFunc));
- DEF_IMGLIB_FN (DGifOpenFileName, (const char *));
 -DEF_IMGLIB_FN (int, DGifCloseFile);
 -DEF_IMGLIB_FN (int, DGifSlurp);
 -DEF_IMGLIB_FN (GifFileType *, DGifOpen);
 -DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName);
++DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
++DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
++DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
++DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *));
  
  static int
  init_gif_functions (Lisp_Object libraries)
@@@ -7060,14 -7294,17 +7080,14 @@@ gif_memory_source
  static gif_memory_source *current_gif_memory_src;
  
  static int
 -gif_read_from_memory (file, buf, len)
 -     GifFileType *file;
 -     GifByteType *buf;
 -     int len;
 +gif_read_from_memory (GifFileType *file, GifByteType *buf, int len)
  {
    gif_memory_source *src = current_gif_memory_src;
  
    if (len > src->len - src->index)
      return -1;
  
 -  bcopy (src->bytes + src->index, buf, len);
 +  memcpy (buf, src->bytes + src->index, len);
    src->index += len;
    return len;
  }
  static const int interlace_start[] = {0, 4, 2, 1};
  static const int interlace_increment[] = {8, 8, 4, 2};
  
 +#define GIF_LOCAL_DESCRIPTOR_EXTENSION 249
 +
  static int
 -gif_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +gif_load (struct frame *f, struct image *img)
  {
    Lisp_Object file, specified_file;
    Lisp_Object specified_data;
    int rc, width, height, x, y, i;
 +  boolean transparent_p;
    XImagePtr ximg;
    ColorMapObject *gif_color_map;
    unsigned long pixel_colors[256];
    GifFileType *gif;
 -  struct gcpro gcpro1;
    Lisp_Object image;
    int ino, image_height, image_width;
    gif_memory_source memsrc;
    unsigned char *raster;
 +  unsigned int transparency_color_index;
  
    specified_file = image_spec_value (img->spec, QCfile, NULL);
    specified_data = image_spec_value (img->spec, QCdata, NULL);
 -  file = Qnil;
 -  GCPRO1 (file);
  
    if (NILP (specified_data))
      {
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", specified_file, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
-       /* Open the GIF file.  Casting return value avoids a GCC warning
-        on W32.  */
-       gif = (GifFileType *)fn_DGifOpenFileName (SDATA (file));
+       /* Open the GIF file.  */
+       gif = fn_DGifOpenFileName (SDATA (file));
        if (gif == NULL)
        {
          image_error ("Cannot open `%s'", file, Qnil);
 -        UNGCPRO;
          return 0;
        }
      }
    else
      {
 +      if (!STRINGP (specified_data))
 +      {
 +        image_error ("Invalid image data `%s'", specified_data, Qnil);
 +        return 0;
 +      }
 +
        /* Read from memory! */
        current_gif_memory_src = &memsrc;
        memsrc.bytes = SDATA (specified_data);
        memsrc.len = SBYTES (specified_data);
        memsrc.index = 0;
  
-       /* Casting return value avoids a GCC warning on W32.  */
-       gif = (GifFileType *) fn_DGifOpen (&memsrc, gif_read_from_memory);
+       gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
        if (!gif)
        {
          image_error ("Cannot open memory source `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
      }
      {
        image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
        fn_DGifCloseFile (gif);
 -      UNGCPRO;
        return 0;
      }
  
      {
        image_error ("Error reading `%s'", img->spec, Qnil);
        fn_DGifCloseFile (gif);
 -      UNGCPRO;
        return 0;
      }
  
        image_error ("Invalid image number `%s' in image `%s'",
                   image, img->spec);
        fn_DGifCloseFile (gif);
 -      UNGCPRO;
        return 0;
      }
  
 +  for (i = 0; i < gif->SavedImages[ino].ExtensionBlockCount; i++)
 +    if ((gif->SavedImages[ino].ExtensionBlocks[i].Function
 +       == GIF_LOCAL_DESCRIPTOR_EXTENSION)
 +      && gif->SavedImages[ino].ExtensionBlocks[i].ByteCount == 4
 +      /* Transparency enabled?  */
 +      && gif->SavedImages[ino].ExtensionBlocks[i].Bytes[0] & 1)
 +      {
 +      transparent_p = 1;
 +      transparency_color_index
 +        = (unsigned char) gif->SavedImages[ino].ExtensionBlocks[i].Bytes[3];
 +      }
 +
    img->corners[TOP_CORNER] = gif->SavedImages[ino].ImageDesc.Top;
    img->corners[LEFT_CORNER] = gif->SavedImages[ino].ImageDesc.Left;
    image_height = gif->SavedImages[ino].ImageDesc.Height;
      {
        image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
        fn_DGifCloseFile (gif);
 -      UNGCPRO;
        return 0;
      }
  
    if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, &img->pixmap))
      {
        fn_DGifCloseFile (gif);
 -      UNGCPRO;
        return 0;
      }
  
    if (!gif_color_map)
      gif_color_map = gif->SColorMap;
    init_color_table ();
 -  bzero (pixel_colors, sizeof pixel_colors);
 +  memset (pixel_colors, 0, sizeof pixel_colors);
  
    if (gif_color_map)
      for (i = 0; i < gif_color_map->ColorCount; ++i)
        {
 -        int r = gif_color_map->Colors[i].Red << 8;
 -        int g = gif_color_map->Colors[i].Green << 8;
 -        int b = gif_color_map->Colors[i].Blue << 8;
 -        pixel_colors[i] = lookup_rgb_color (f, r, g, b);
 +      if (transparent_p && transparency_color_index == i)
 +        {
 +          Lisp_Object specified_bg
 +            = image_spec_value (img->spec, QCbackground, NULL);
 +          pixel_colors[i] = STRINGP (specified_bg)
 +            ? x_alloc_image_color (f, img, specified_bg,
 +                                   FRAME_BACKGROUND_PIXEL (f))
 +            : FRAME_BACKGROUND_PIXEL (f);
 +        }
 +      else
 +        {
 +          int r = gif_color_map->Colors[i].Red << 8;
 +          int g = gif_color_map->Colors[i].Green << 8;
 +          int b = gif_color_map->Colors[i].Blue << 8;
 +          pixel_colors[i] = lookup_rgb_color (f, r, g, b);
 +        }
        }
  
  #ifdef COLOR_TABLE_SUPPORT
          }
      }
  
 -  /* Save GIF image extension data for `image-extension-data'.
 -     Format is (count IMAGES FUNCTION "BYTES" ...).  */
 +  /* Save GIF image extension data for `image-metadata'.
 +     Format is (count IMAGES extension-data (FUNCTION "BYTES" ...)).  */
    img->data.lisp_val = Qnil;
    if (gif->SavedImages[ino].ExtensionBlockCount > 0)
      {
        img->data.lisp_val = Fcons (make_unibyte_string (ext->Bytes, ext->ByteCount),
                                    Fcons (make_number (ext->Function),
                                           img->data.lisp_val));
 -      img->data.lisp_val = Fnreverse (img->data.lisp_val);
 +      img->data.lisp_val = Fcons (Qextension_data,
 +                                Fcons (Fnreverse (img->data.lisp_val),
 +                                       Qnil));
      }
    if (gif->ImageCount > 1)
      img->data.lisp_val = Fcons (Qcount,
    x_put_x_image (f, ximg, img->pixmap, width, height);
    x_destroy_x_image (ximg);
  
 -  UNGCPRO;
    return 1;
  }
  
  static int
  gif_load (struct frame *f, struct image *img)
  {
 -  return ns_load_image(f, img,
 -                       image_spec_value (img->spec, QCfile, NULL),
 -                       image_spec_value (img->spec, QCdata, NULL));
 +  return ns_load_image (f, img,
 +                        image_spec_value (img->spec, QCfile, NULL),
 +                      image_spec_value (img->spec, QCdata, NULL));
  }
  #endif /* HAVE_NS */
  
  #endif /* HAVE_GIF */
  
  
 +/***********************************************************************
 +                               imagemagick
 +***********************************************************************/
 +#if defined (HAVE_IMAGEMAGICK)
 +
 +/* The symbol `imagemagick' identifying images of this type.  */
 +
 +Lisp_Object Qimagemagick;
 +/* Indices of image specification fields in imagemagick_format, below.  */
 +
 +enum imagemagick_keyword_index
 +  {
 +    IMAGEMAGICK_TYPE,
 +    IMAGEMAGICK_DATA,
 +    IMAGEMAGICK_FILE,
 +    IMAGEMAGICK_ASCENT,
 +    IMAGEMAGICK_MARGIN,
 +    IMAGEMAGICK_RELIEF,
 +    IMAGEMAGICK_ALGORITHM,
 +    IMAGEMAGICK_HEURISTIC_MASK,
 +    IMAGEMAGICK_MASK,
 +    IMAGEMAGICK_BACKGROUND,
 +    IMAGEMAGICK_HEIGHT,
 +    IMAGEMAGICK_WIDTH,
 +    IMAGEMAGICK_ROTATION,
 +    IMAGEMAGICK_CROP,
 +    IMAGEMAGICK_LAST
 +  };
 +
 +/* Vector of image_keyword structures describing the format
 +   of valid user-defined image specifications.  */
 +
 +static struct image_keyword imagemagick_format[IMAGEMAGICK_LAST] =
 +  {
 +    {":type",         IMAGE_SYMBOL_VALUE,                     1},
 +    {":data",         IMAGE_STRING_VALUE,                     0},
 +    {":file",         IMAGE_STRING_VALUE,                     0},
 +    {":ascent",               IMAGE_ASCENT_VALUE,                     0},
 +    {":margin",               IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR,   0},
 +    {":relief",               IMAGE_INTEGER_VALUE,                    0},
 +    {":conversion",   IMAGE_DONT_CHECK_VALUE_TYPE,            0},
 +    {":heuristic-mask",       IMAGE_DONT_CHECK_VALUE_TYPE,            0},
 +    {":mask",         IMAGE_DONT_CHECK_VALUE_TYPE,            0},
 +    {":background",   IMAGE_STRING_OR_NIL_VALUE,              0},
 +    {":height",               IMAGE_INTEGER_VALUE,                    0},
 +    {":width",                IMAGE_INTEGER_VALUE,                    0},
 +    {":rotation",     IMAGE_NUMBER_VALUE,                     0},
 +    {":crop",         IMAGE_DONT_CHECK_VALUE_TYPE,            0}
 +  };
 +/* Free X resources of imagemagick image IMG which is used on frame F.  */
 +
 +static void
 +imagemagick_clear_image (struct frame *f,
 +                         struct image *img)
 +{
 +  x_clear_image (f, img);
 +}
 +
 +
 +
 +/* Return non-zero if OBJECT is a valid IMAGEMAGICK image specification.  Do
 +   this by calling parse_image_spec and supplying the keywords that
 +   identify the IMAGEMAGICK format.   */
 +
 +static int
 +imagemagick_image_p (Lisp_Object object)
 +{
 +  struct image_keyword fmt[IMAGEMAGICK_LAST];
 +  memcpy (fmt, imagemagick_format, sizeof fmt);
 +
 +  if (!parse_image_spec (object, fmt, IMAGEMAGICK_LAST, Qimagemagick))
 +    return 0;
 +
 +  /* Must specify either the :data or :file keyword.  */
 +  return fmt[IMAGEMAGICK_FILE].count + fmt[IMAGEMAGICK_DATA].count == 1;
 +}
 +
 +/* The GIF library also defines DrawRectangle, but its never used in Emacs.
 +   Therefore rename the function so it doesnt collide with ImageMagick.  */
 +#define DrawRectangle DrawRectangleGif
 +#include <wand/MagickWand.h>
 +
 +/* imagemagick_load_image is a helper function for imagemagick_load,
 +   which does the actual loading given contents and size, apart from
 +   frame and image structures, passed from imagemagick_load.
 +
 +   Uses librimagemagick to do most of the image processing.
 +
 +   non-zero when successful.
 +*/
 +
 +static int
 +imagemagick_load_image (/* Pointer to emacs frame structure.  */
 +                        struct frame *f,
 +                        /* Pointer to emacs image structure.  */
 +                        struct image *img,
 +                        /* String containing the IMAGEMAGICK data to
 +                           be parsed.  */
 +                        unsigned char *contents,
 +                        /* Size of data in bytes.  */
 +                        unsigned int size,
 +                        /* Filename, either pass filename or
 +                           contents/size.  */
 +                        unsigned char *filename)
 +{
 +  unsigned long width;
 +  unsigned long height;
 +
 +  MagickBooleanType
 +    status;
 +
 +  XImagePtr ximg;
 +  Lisp_Object specified_bg;
 +  XColor background;
 +  int x;
 +  int y;
 +
 +  MagickWand  *image_wand;
 +  MagickWand  *ping_wand;
 +  PixelIterator *iterator;
 +  PixelWand  **pixels;
 +  MagickPixelPacket  pixel;
 +  Lisp_Object image;
 +  Lisp_Object value;
 +  Lisp_Object crop, geometry;
 +  long ino;
 +  int desired_width, desired_height;
 +  double rotation;
 +  int imagemagick_rendermethod;
 +  int pixelwidth;
 +  ImageInfo  *image_info;
 +  ExceptionInfo *exception;
 +  Image * im_image;
 +
 +
 +  /* Handle image index for image types who can contain more than one
 +     image.  Interface :index is same as for GIF.  First we "ping" the
 +     image to see how many sub-images it contains. Pinging is faster
 +     than loading the image to find out things about it.  */
 +
 +  /* `MagickWandGenesis' initializes the imagemagick environment.  */
 +  MagickWandGenesis ();
 +  image = image_spec_value (img->spec, QCindex, NULL);
 +  ino = INTEGERP (image) ? XFASTINT (image) : 0;
 +  ping_wand = NewMagickWand ();
 +  MagickSetResolution (ping_wand, 2, 2);
 +  if (filename != NULL)
 +    {
 +      status = MagickPingImage (ping_wand, filename);
 +    }
 +  else
 +    {
 +      status = MagickPingImageBlob (ping_wand, contents, size);
 +    }
 +
 +  if (ino >= MagickGetNumberImages (ping_wand))
 +    {
 +      image_error ("Invalid image number `%s' in image `%s'",
 +                 image, img->spec);
 +      DestroyMagickWand (ping_wand);
 +      return 0;
 +    }
 +
 +  if (MagickGetNumberImages(ping_wand) > 1)
 +    img->data.lisp_val =
 +      Fcons (Qcount,
 +             Fcons (make_number (MagickGetNumberImages (ping_wand)),
 +                    img->data.lisp_val));
 +
 +  DestroyMagickWand (ping_wand);
 +
 +  /* Now, after pinging, we know how many images are inside the
 +     file. If its not a bundle, just one.  */
 +
 +  if (filename != NULL)
 +    {
 +      image_info = CloneImageInfo ((ImageInfo *) NULL);
 +      (void) strcpy (image_info->filename, filename);
 +      image_info->number_scenes = 1;
 +      image_info->scene = ino;
 +      exception = AcquireExceptionInfo ();
 +
 +      im_image = ReadImage (image_info, exception);
 +      DestroyExceptionInfo (exception);
 +
 +      if (im_image != NULL)
 +      {
 +        image_wand = NewMagickWandFromImage (im_image);
 +          DestroyImage(im_image);
 +        status = MagickTrue;
 +      }
 +      else
 +      status = MagickFalse;
 +    }
 +  else
 +    {
 +      image_wand = NewMagickWand ();
 +      status = MagickReadImageBlob (image_wand, contents, size);
 +    }
 +
 +  if (status == MagickFalse) goto imagemagick_error;
 +
 +  /* If width and/or height is set in the display spec assume we want
 +     to scale to those values.  if either h or w is unspecified, the
 +     unspecified should be calculated from the specified to preserve
 +     aspect ratio.  */
 +
 +  value = image_spec_value (img->spec, QCwidth, NULL);
 +  desired_width = (INTEGERP (value)  ? XFASTINT (value) : -1);
 +  value = image_spec_value (img->spec, QCheight, NULL);
 +  desired_height = (INTEGERP (value) ? XFASTINT (value) : -1);
 +
 +  height = MagickGetImageHeight (image_wand);
 +  width = MagickGetImageWidth (image_wand);
 +
 +  if(desired_width != -1 && desired_height == -1)
 +    {
 +      /* w known, calculate h.  */
 +      desired_height = (double) desired_width / width * height;
 +    }
 +  if(desired_width == -1 && desired_height != -1)
 +    {
 +      /* h known, calculate w.  */
 +      desired_width = (double) desired_height / height * width;
 +    }
 +  if(desired_width != -1 && desired_height != -1)
 +    {
 +      status = MagickScaleImage (image_wand, desired_width, desired_height);
 +      if (status == MagickFalse)
 +      {
 +        image_error ("Imagemagick scale failed", Qnil, Qnil);
 +        goto imagemagick_error;
 +      }
 +    }
 +
 +
 +  /* crop behaves similar to image slicing in Emacs but is more memory
 +     efficient.  */
 +  crop = image_spec_value (img->spec, QCcrop, NULL);
 +
 +  if (CONSP (crop) && INTEGERP (XCAR (crop)))
 +    {
 +      /* After some testing, it seems MagickCropImage is the fastest
 +         crop function in ImageMagick.  This crop function seems to do
 +         less copying than the alternatives, but it still reads the
 +         entire image into memory before croping, which is aparently
 +         difficult to avoid when using imagemagick.  */
 +
 +      int w, h, x, y;
 +      w = XFASTINT (XCAR (crop));
 +      crop = XCDR (crop);
 +      if (CONSP (crop) && INTEGERP (XCAR (crop)))
 +      {
 +        h = XFASTINT (XCAR (crop));
 +        crop = XCDR (crop);
 +        if (CONSP (crop) && INTEGERP (XCAR (crop)))
 +          {
 +            x = XFASTINT (XCAR (crop));
 +            crop = XCDR (crop);
 +            if (CONSP (crop) && INTEGERP (XCAR (crop)))
 +              {
 +                y = XFASTINT (XCAR (crop));
 +                MagickCropImage (image_wand, w, h, x, y);
 +              }
 +          }
 +      }
 +    }
 +
 +  /* Furthermore :rotation. we need background color and angle for
 +     rotation.  */
 +  /*
 +    TODO background handling for rotation specified_bg =
 +    image_spec_value (img->spec, QCbackground, NULL); if (!STRINGP
 +    (specified_bg).  */
 +  value = image_spec_value (img->spec, QCrotation, NULL);
 +  if (FLOATP (value))
 +    {
 +      PixelWand* background = NewPixelWand ();
 +      PixelSetColor (background, "#ffffff");/*TODO remove hardcode*/
 +
 +      rotation = extract_float (value);
 +
 +      status = MagickRotateImage (image_wand, background, rotation);
 +      DestroyPixelWand (background);
 +      if (status == MagickFalse)
 +        {
 +          image_error ("Imagemagick image rotate failed", Qnil, Qnil);
 +          goto imagemagick_error;
 +        }
 +    }
 +
 +  /* Finaly we are done manipulating the image, figure out resulting
 +     width, height, and then transfer ownerwship to Emacs.  */
 +  height = MagickGetImageHeight (image_wand);
 +  width = MagickGetImageWidth (image_wand);
 +
 +  if (! check_image_size (f, width, height))
 +    {
 +      image_error ("Invalid image size (see `max-image-size')", Qnil, Qnil);
 +      goto imagemagick_error;
 +    }
 +
 +  /* We can now get a valid pixel buffer from the imagemagick file, if all
 +     went ok.  */
 +
 +  init_color_table ();
 +  imagemagick_rendermethod = (INTEGERP (Vimagemagick_render_type)
 +                              ? XFASTINT (Vimagemagick_render_type) : 0);
 +  if (imagemagick_rendermethod == 0)
 +    {
 +      /* Try to create a x pixmap to hold the imagemagick pixmap.  */
 +      if (!x_create_x_image_and_pixmap (f, width, height, 0,
 +                                        &ximg, &img->pixmap))
 +        {
 +#ifdef COLOR_TABLE_SUPPORT
 +        free_color_table ();
 +#endif
 +          image_error("Imagemagick X bitmap allocation failure", Qnil, Qnil);
 +          goto imagemagick_error;
 +        }
 +
 +      /* Copy imagegmagick image to x with primitive yet robust pixel
 +         pusher loop.  This has been tested a lot with many different
 +         images.  */
 +
 +      /* Copy pixels from the imagemagick image structure to the x image map. */
 +      iterator = NewPixelIterator (image_wand);
 +      if (iterator == (PixelIterator *) NULL)
 +        {
 +#ifdef COLOR_TABLE_SUPPORT
 +        free_color_table ();
 +#endif
 +        x_destroy_x_image (ximg);
 +          image_error ("Imagemagick pixel iterator creation failed",
 +                       Qnil, Qnil);
 +          goto imagemagick_error;
 +        }
 +
 +      for (y = 0; y < (long) MagickGetImageHeight (image_wand); y++)
 +        {
 +          pixels = PixelGetNextIteratorRow (iterator, &width);
 +          if (pixels == (PixelWand **) NULL)
 +            break;
 +          for (x = 0; x < (long) width; x++)
 +            {
 +              PixelGetMagickColor (pixels[x], &pixel);
 +              XPutPixel (ximg, x, y,
 +                         lookup_rgb_color (f,
 +                                           pixel.red,
 +                                           pixel.green,
 +                                           pixel.blue));
 +            }
 +        }
 +      DestroyPixelIterator (iterator);
 +    }
 +
 +  if (imagemagick_rendermethod == 1)
 +    {
 +      /* Magicexportimage is normaly faster than pixelpushing.  This
 +         method is also well tested. Some aspects of this method are
 +         ad-hoc and needs to be more researched. */
 +      int imagedepth = 24;/*MagickGetImageDepth(image_wand);*/
 +      char* exportdepth = imagedepth <= 8 ? "I" : "BGRP";/*"RGBP";*/
 +      /* Try to create a x pixmap to hold the imagemagick pixmap.  */
 +      if (!x_create_x_image_and_pixmap (f, width, height, imagedepth,
 +                                        &ximg, &img->pixmap))
 +      {
 +#ifdef COLOR_TABLE_SUPPORT
 +        free_color_table ();
 +#endif
 +        image_error("Imagemagick X bitmap allocation failure", Qnil, Qnil);
 +        goto imagemagick_error;
 +      }
 +
 +
 +      /* Oddly, the below code doesnt seem to work:*/
 +      /* switch(ximg->bitmap_unit){ */
 +      /* case 8: */
 +      /*   pixelwidth=CharPixel; */
 +      /*   break; */
 +      /* case   16: */
 +      /*   pixelwidth=ShortPixel; */
 +      /*   break; */
 +      /* case   32: */
 +      /*   pixelwidth=LongPixel; */
 +      /*   break; */
 +      /* } */
 +      /*
 +        Here im just guessing the format of the bitmap.
 +        happens to work fine for:
 +        - bw djvu images
 +        on rgb display.
 +        seems about 3 times as fast as pixel pushing(not carefully measured)
 +      */
 +      pixelwidth = CharPixel;/*??? TODO figure out*/
 +#ifdef HAVE_MAGICKEXPORTIMAGEPIXELS
 +      MagickExportImagePixels (image_wand,
 +                             0, 0,
 +                             width, height,
 +                             exportdepth,
 +                             pixelwidth,
 +                             /*&(img->pixmap));*/
 +                             ximg->data);
 +#else
 +      image_error ("You dont have MagickExportImagePixels, upgrade ImageMagick!",
 +                 Qnil, Qnil);
 +#endif
 +    }
 +
 +
 +#ifdef COLOR_TABLE_SUPPORT
 +  /* Remember colors allocated for this image.  */
 +  img->colors = colors_in_color_table (&img->ncolors);
 +  free_color_table ();
 +#endif /* COLOR_TABLE_SUPPORT */
 +
 +
 +  img->width  = width;
 +  img->height = height;
 +
 +  /* Put the image into the pixmap, then free the X image and its
 +     buffer.  */
 +  x_put_x_image (f, ximg, img->pixmap, width, height);
 +  x_destroy_x_image (ximg);
 +
 +
 +  /* Final cleanup. image_wand should be the only resource left. */
 +  DestroyMagickWand (image_wand);
 +  /* `MagickWandTerminus' terminates the imagemagick environment.  */
 +  MagickWandTerminus ();
 +
 +  return 1;
 +
 + imagemagick_error:
 +  DestroyMagickWand (image_wand);
 +  MagickWandTerminus ();
 +  /* TODO more cleanup.  */
 +  image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil);
 +  return 0;
 +}
 +
 +
 +/* Load IMAGEMAGICK image IMG for use on frame F.  Value is non-zero if
 +   successful. this function will go into the imagemagick_type structure, and
 +   the prototype thus needs to be compatible with that structure.  */
 +
 +static int
 +imagemagick_load (struct frame *f,
 +                  struct image *img)
 +{
 +  int success_p = 0;
 +  Lisp_Object file_name;
 +
 +  /* If IMG->spec specifies a file name, create a non-file spec from it.  */
 +  file_name = image_spec_value (img->spec, QCfile, NULL);
 +  if (STRINGP (file_name))
 +    {
 +      Lisp_Object file;
 +
 +      file = x_find_image_file (file_name);
 +      if (!STRINGP (file))
 +      {
 +        image_error ("Cannot find image file `%s'", file_name, Qnil);
 +        return 0;
 +      }
 +      success_p = imagemagick_load_image (f, img, 0, 0, SDATA (file));
 +    }
 +  /* Else its not a file, its a lisp object.  Load the image from a
 +     lisp object rather than a file.  */
 +  else
 +    {
 +      Lisp_Object data;
 +
 +      data = image_spec_value (img->spec, QCdata, NULL);
 +      if (!STRINGP (data))
 +      {
 +        image_error ("Invalid image data `%s'", data, Qnil);
 +        return 0;
 +      }
 +      success_p = imagemagick_load_image (f, img, SDATA (data),
 +                                          SBYTES (data), NULL);
 +    }
 +
 +  return success_p;
 +}
 +
 +/* Structure describing the image type `imagemagick'.  Its the same
 +   type of structure defined for all image formats, handled by Emacs
 +   image functions.  See struct image_type in dispextern.h.  */
 +
 +static struct image_type imagemagick_type =
 +  {
 +    /* An identifier showing that this is an image structure for the
 +       IMAGEMAGICK format.  */
 +    &Qimagemagick,
 +    /* Handle to a function that can be used to identify a IMAGEMAGICK
 +       file.  */
 +    imagemagick_image_p,
 +    /* Handle to function used to load a IMAGEMAGICK file.  */
 +    imagemagick_load,
 +    /* Handle to function to free resources for IMAGEMAGICK.  */
 +    imagemagick_clear_image,
 +    /* An internal field to link to the next image type in a list of
 +       image types, will be filled in when registering the format.  */
 +    NULL
 +  };
 +
 +
 +
 +
 +DEFUN ("imagemagick-types", Fimagemagick_types, Simagemagick_types, 0, 0, 0,
 +       doc: /* Return image file types supported by ImageMagick.
 +Since ImageMagick recognizes a lot of file-types that clash with Emacs,
 +such as .c, we want to be able to alter the list at the lisp level.  */)
 +  (void)
 +{
 +  Lisp_Object typelist = Qnil;
 +  unsigned long numf;
 +  ExceptionInfo ex;
 +  char **imtypes = GetMagickList ("*", &numf, &ex);
 +  int i;
 +  Lisp_Object Qimagemagicktype;
 +  for (i = 0; i < numf; i++)
 +    {
 +      Qimagemagicktype = intern (imtypes[i]);
 +      typelist = Fcons (Qimagemagicktype, typelist);
 +    }
 +  return typelist;
 +}
 +
 +#endif        /* defined (HAVE_IMAGEMAGICK) */
 +
 +
  \f
  /***********************************************************************
                                 SVG
  
  /* Function prototypes.  */
  
 -static int svg_image_p P_ ((Lisp_Object object));
 -static int svg_load P_ ((struct frame *f, struct image *img));
 +static int svg_image_p (Lisp_Object object);
 +static int svg_load (struct frame *f, struct image *img);
  
 -static int svg_load_image P_ ((struct frame *, struct image *,
 -                             unsigned char *, unsigned int));
 +static int svg_load_image (struct frame *, struct image *,
 +                           unsigned char *, unsigned int);
  
  /* The symbol `svg' identifying images of this type. */
  
@@@ -7965,10 -7645,11 +7983,10 @@@ static struct image_type svg_type 
     identify the SVG format.   */
  
  static int
 -svg_image_p (object)
 -     Lisp_Object object;
 +svg_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[SVG_LAST];
 -  bcopy (svg_format, fmt, sizeof fmt);
 +  memcpy (fmt, svg_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, SVG_LAST, Qsvg))
      return 0;
  #ifdef HAVE_NTGUI
  
  /* SVG library functions.  */
- DEF_IMGLIB_FN (rsvg_handle_new);
- DEF_IMGLIB_FN (rsvg_handle_get_dimensions);
- DEF_IMGLIB_FN (rsvg_handle_write);
- DEF_IMGLIB_FN (rsvg_handle_close);
- DEF_IMGLIB_FN (rsvg_handle_get_pixbuf);
- DEF_IMGLIB_FN (rsvg_handle_free);
- DEF_IMGLIB_FN (gdk_pixbuf_get_width);
- DEF_IMGLIB_FN (gdk_pixbuf_get_height);
- DEF_IMGLIB_FN (gdk_pixbuf_get_pixels);
- DEF_IMGLIB_FN (gdk_pixbuf_get_rowstride);
- DEF_IMGLIB_FN (gdk_pixbuf_get_colorspace);
- DEF_IMGLIB_FN (gdk_pixbuf_get_n_channels);
- DEF_IMGLIB_FN (gdk_pixbuf_get_has_alpha);
- DEF_IMGLIB_FN (gdk_pixbuf_get_bits_per_sample);
- DEF_IMGLIB_FN (g_type_init);
- DEF_IMGLIB_FN (g_object_unref);
- DEF_IMGLIB_FN (g_error_free);
+ DEF_IMGLIB_FN (RsvgHandle *, rsvg_handle_new);
+ DEF_IMGLIB_FN (void, rsvg_handle_get_dimensions);
+ DEF_IMGLIB_FN (gboolean, rsvg_handle_write);
+ DEF_IMGLIB_FN (gboolean, rsvg_handle_close);
+ DEF_IMGLIB_FN (GdkPixbuf *, rsvg_handle_get_pixbuf);
+ DEF_IMGLIB_FN (void, rsvg_handle_free);
+ DEF_IMGLIB_FN (int, gdk_pixbuf_get_width);
+ DEF_IMGLIB_FN (int, gdk_pixbuf_get_height);
+ DEF_IMGLIB_FN (guchar *, gdk_pixbuf_get_pixels);
+ DEF_IMGLIB_FN (int, gdk_pixbuf_get_rowstride);
+ DEF_IMGLIB_FN (GdkColorspace, gdk_pixbuf_get_colorspace);
+ DEF_IMGLIB_FN (int, gdk_pixbuf_get_n_channels);
+ DEF_IMGLIB_FN (gboolean, gdk_pixbuf_get_has_alpha);
+ DEF_IMGLIB_FN (int, gdk_pixbuf_get_bits_per_sample);
+ DEF_IMGLIB_FN (void, g_type_init);
+ DEF_IMGLIB_FN (void, g_object_unref);
+ DEF_IMGLIB_FN (void, g_error_free);
  
  Lisp_Object Qgdk_pixbuf, Qglib, Qgobject;
  
@@@ -8067,7 -7748,9 +8085,7 @@@ init_svg_functions (Lisp_Object librari
     the prototype thus needs to be compatible with that structure.  */
  
  static int
 -svg_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +svg_load (struct frame *f, struct image *img)
  {
    int success_p = 0;
    Lisp_Object file_name;
        Lisp_Object file;
        unsigned char *contents;
        int size;
 -      struct gcpro gcpro1;
  
        file = x_find_image_file (file_name);
 -      GCPRO1 (file);
        if (!STRINGP (file))
        {
          image_error ("Cannot find image file `%s'", file_name, Qnil);
 -        UNGCPRO;
          return 0;
        }
  
        if (contents == NULL)
        {
          image_error ("Error loading SVG image `%s'", img->spec, Qnil);
 -        UNGCPRO;
          return 0;
        }
        /* If the file was slurped into memory properly, parse it.  */
        success_p = svg_load_image (f, img, contents, size);
        xfree (contents);
 -      UNGCPRO;
      }
    /* Else its not a file, its a lisp object.  Load the image from a
       lisp object rather than a file.  */
        Lisp_Object data;
  
        data = image_spec_value (img->spec, QCdata, NULL);
 +      if (!STRINGP (data))
 +      {
 +        image_error ("Invalid image data `%s'", data, Qnil);
 +        return 0;
 +      }
        success_p = svg_load_image (f, img, SDATA (data), SBYTES (data));
      }
  
  
     Returns non-zero when successful.  */
  static int
 -svg_load_image (f, img, contents, size)
 -    /* Pointer to emacs frame structure.  */
 -     struct frame *f;
 -     /* Pointer to emacs image structure.  */
 -     struct image *img;
 -     /* String containing the SVG XML data to be parsed.  */
 -     unsigned char *contents;
 -     /* Size of data in bytes.  */
 -     unsigned int size;
 +svg_load_image (struct frame *f,         /* Pointer to emacs frame structure.  */
 +              struct image *img,       /* Pointer to emacs image structure.  */
 +              unsigned char *contents, /* String containing the SVG XML data to be parsed.  */
 +              unsigned int size)       /* Size of data in bytes.  */
  {
    RsvgHandle *rsvg_handle;
    RsvgDimensionData dimension_data;
       gnome type library functions.  */
    fn_g_type_init ();
    /* Make a handle to a new rsvg object.  */
-   rsvg_handle = (RsvgHandle *) fn_rsvg_handle_new ();
+   rsvg_handle = fn_rsvg_handle_new ();
  
    /* Parse the contents argument and fill in the rsvg_handle.  */
    fn_rsvg_handle_write (rsvg_handle, contents, size, &error);
  
    /* We can now get a valid pixel buffer from the svg file, if all
       went ok.  */
-   pixbuf = (GdkPixbuf *) fn_rsvg_handle_get_pixbuf (rsvg_handle);
+   pixbuf = fn_rsvg_handle_get_pixbuf (rsvg_handle);
    if (!pixbuf) goto rsvg_error;
    fn_g_object_unref (rsvg_handle);
  
    /* Extract some meta data from the svg handle.  */
    width     = fn_gdk_pixbuf_get_width (pixbuf);
    height    = fn_gdk_pixbuf_get_height (pixbuf);
-   pixels    = (const guint8 *) fn_gdk_pixbuf_get_pixels (pixbuf);
+   pixels    = fn_gdk_pixbuf_get_pixels (pixbuf);
    rowstride = fn_gdk_pixbuf_get_rowstride (pixbuf);
  
    /* Validate the svg meta data.  */
        background.pixel = FRAME_BACKGROUND_PIXEL (f);
        x_query_color (f, &background);
  #else
 -      ns_query_color(FRAME_BACKGROUND_COLOR (f), &background, 1);
 +      ns_query_color (FRAME_BACKGROUND_COLOR (f), &background, 1);
  #endif
      }
  
  #define HAVE_GHOSTSCRIPT 1
  #endif /* HAVE_X_WINDOWS */
  
 -/* The symbol `postscript' identifying images of this type.  */
 -
 -Lisp_Object Qpostscript;
 -
  #ifdef HAVE_GHOSTSCRIPT
  
 -static int gs_image_p P_ ((Lisp_Object object));
 -static int gs_load P_ ((struct frame *f, struct image *img));
 -static void gs_clear_image P_ ((struct frame *f, struct image *img));
 +static int gs_image_p (Lisp_Object object);
 +static int gs_load (struct frame *f, struct image *img);
 +static void gs_clear_image (struct frame *f, struct image *img);
  
  /* Keyword symbols.  */
  
@@@ -8353,7 -8045,9 +8371,7 @@@ static struct image_type gs_type 
  /* Free X resources of Ghostscript image IMG which is used on frame F.  */
  
  static void
 -gs_clear_image (f, img)
 -     struct frame *f;
 -     struct image *img;
 +gs_clear_image (struct frame *f, struct image *img)
  {
    /* IMG->data.ptr_val may contain a recorded colormap.  */
    xfree (img->data.ptr_val);
     specification.  */
  
  static int
 -gs_image_p (object)
 -     Lisp_Object object;
 +gs_image_p (Lisp_Object object)
  {
    struct image_keyword fmt[GS_LAST];
    Lisp_Object tem;
    int i;
  
 -  bcopy (gs_format, fmt, sizeof fmt);
 +  memcpy (fmt, gs_format, sizeof fmt);
  
    if (!parse_image_spec (object, fmt, GS_LAST, Qpostscript))
      return 0;
     if successful.  */
  
  static int
 -gs_load (f, img)
 -     struct frame *f;
 -     struct image *img;
 +gs_load (struct frame *f, struct image *img)
  {
    char buffer[100];
    Lisp_Object window_and_pixmap_id = Qnil, loader, pt_height, pt_width;
 -  struct gcpro gcpro1, gcpro2;
    Lisp_Object frame;
    double in_width, in_height;
    Lisp_Object pixel_colors = Qnil;
       = 1/72 in, xdpi and ydpi are stored in the frame's X display
       info.  */
    pt_width = image_spec_value (img->spec, QCpt_width, NULL);
 -  in_width = XFASTINT (pt_width) / 72.0;
 +  in_width = INTEGERP (pt_width) ? XFASTINT (pt_width) / 72.0 : 0;
    img->width = in_width * FRAME_X_DISPLAY_INFO (f)->resx;
    pt_height = image_spec_value (img->spec, QCpt_height, NULL);
 -  in_height = XFASTINT (pt_height) / 72.0;
 +  in_height = INTEGERP (pt_height) ? XFASTINT (pt_height) / 72.0 : 0;
    img->height = in_height * FRAME_X_DISPLAY_INFO (f)->resy;
  
    if (!check_image_size (f, img->width, img->height))
       if successful.  We do not record_unwind_protect here because
       other places in redisplay like calling window scroll functions
       don't either.  Let the Lisp loader use `unwind-protect' instead.  */
 -  GCPRO2 (window_and_pixmap_id, pixel_colors);
 -
    sprintf (buffer, "%lu %lu",
           (unsigned long) FRAME_X_WINDOW (f),
           (unsigned long) img->pixmap);
                              make_number (img->height),
                              window_and_pixmap_id,
                              pixel_colors);
 -  UNGCPRO;
    return PROCESSP (img->data.lisp_val);
  }
  
     telling Emacs that Ghostscript has finished drawing.  */
  
  void
 -x_kill_gs_process (pixmap, f)
 -     Pixmap pixmap;
 -     struct frame *f;
 +x_kill_gs_process (Pixmap pixmap, struct frame *f)
  {
    struct image_cache *c = FRAME_IMAGE_CACHE (f);
    int class, i;
  
  DEFUN ("imagep", Fimagep, Simagep, 1, 1, 0,
         doc: /* Value is non-nil if SPEC is a valid image specification.  */)
 -  (spec)
 -     Lisp_Object spec;
 +  (Lisp_Object spec)
  {
    return valid_image_p (spec) ? Qt : Qnil;
  }
  
  
  DEFUN ("lookup-image", Flookup_image, Slookup_image, 1, 1, 0, "")
 -  (spec)
 -     Lisp_Object spec;
 +  (Lisp_Object spec)
  {
    int id = -1;
  
@@@ -8618,8 -8323,9 +8636,8 @@@ Return non-nil if TYPE is a supported i
  
  Image types pbm and xbm are prebuilt; other types are loaded here.
  Libraries to load are specified in alist LIBRARIES (usually, the value
 -of `image-library-alist', which see).  */)
 -  (type, libraries)
 -  Lisp_Object type, libraries;
 +of `dynamic-library-alist', which see).  */)
 +  (Lisp_Object type, Lisp_Object libraries)
  {
    Lisp_Object tested;
  
      return CHECK_LIB_AVAILABLE (&svg_type, init_svg_functions, libraries);
  #endif
  
 +#if defined (HAVE_IMAGEMAGICK)
 +  if (EQ (type, Qimagemagick))
 +    {
 +      return CHECK_LIB_AVAILABLE (&imagemagick_type, init_imagemagick_functions,
 +                                libraries);
 +    }
 +#endif
 +
  #ifdef HAVE_GHOSTSCRIPT
    if (EQ (type, Qpostscript))
      return CHECK_LIB_AVAILABLE (&gs_type, init_gs_functions, libraries);
  }
  
  void
 -syms_of_image ()
 +syms_of_image (void)
  {
 -  extern Lisp_Object Qrisky_local_variable;   /* Syms_of_xdisp has already run.  */
 -
    /* Initialize this only once, since that's what we do with Vimage_types
       and they are supposed to be in sync.  Initializing here gives correct
       operation on GNU/Linux of calling dump-emacs after loading some images.  */
  
    /* Must be defined now becase we're going to update it below, while
       defining the supported image types.  */
 -  DEFVAR_LISP ("image-types", &Vimage_types,
 +  DEFVAR_LISP ("image-types", Vimage_types,
      doc: /* List of potentially supported image types.
  Each element of the list is a symbol for an image type, like 'jpeg or 'png.
  To check whether it is really supported, use `image-type-available-p'.  */);
    Vimage_types = Qnil;
  
 -  DEFVAR_LISP ("image-library-alist", &Vimage_library_alist,
 -    doc: /* Alist of image types vs external libraries needed to display them.
 -
 -Each element is a list (IMAGE-TYPE LIBRARY...), where the car is a symbol
 -representing a supported image type, and the rest are strings giving
 -alternate filenames for the corresponding external libraries.
 -
 -Emacs tries to load the libraries in the order they appear on the
 -list; if none is loaded, the running session of Emacs won't
 -support the image type.  Types 'pbm and 'xbm don't need to be
 -listed; they are always supported.  */);
 -  Vimage_library_alist = Qnil;
 -  Fput (intern_c_string ("image-library-alist"), Qrisky_local_variable, Qt);
 -
 -  DEFVAR_LISP ("max-image-size", &Vmax_image_size,
 +  DEFVAR_LISP ("max-image-size", Vmax_image_size,
      doc: /* Maximum size of images.
  Emacs will not load an image into memory if its pixel width or
  pixel height exceeds this limit.
@@@ -8720,8 -8434,6 +8738,8 @@@ non-numeric, there is no explicit limi
  
    Qcount = intern_c_string ("count");
    staticpro (&Qcount);
 +  Qextension_data = intern_c_string ("extension-data");
 +  staticpro (&Qextension_data);
  
    QCascent = intern_c_string (":ascent");
    staticpro (&QCascent);
    staticpro (&QCheuristic_mask);
    QCindex = intern_c_string (":index");
    staticpro (&QCindex);
 +  QCgeometry = intern_c_string (":geometry");
 +  staticpro (&QCgeometry);
 +  QCcrop = intern_c_string (":crop");
 +  staticpro (&QCcrop);
 +  QCrotation = intern_c_string (":rotation");
 +  staticpro (&QCrotation);
    QCmatrix = intern_c_string (":matrix");
    staticpro (&QCmatrix);
    QCcolor_adjustment = intern_c_string (":color-adjustment");
    ADD_IMAGE_TYPE (Qpng);
  #endif
  
 +#if defined (HAVE_IMAGEMAGICK)
 +  Qimagemagick = intern_c_string ("imagemagick");
 +  staticpro (&Qimagemagick);
 +  ADD_IMAGE_TYPE (Qimagemagick);
 +#endif
 +
  #if defined (HAVE_RSVG)
    Qsvg = intern_c_string ("svg");
    staticpro (&Qsvg);
  #endif /* HAVE_RSVG  */
  
    defsubr (&Sinit_image_library);
 +#ifdef HAVE_IMAGEMAGICK
 +  defsubr (&Simagemagick_types);
 +#endif
    defsubr (&Sclear_image_cache);
 -  defsubr (&Simage_refresh);
 +  defsubr (&Simage_flush);
    defsubr (&Simage_size);
    defsubr (&Simage_mask_p);
 -  defsubr (&Simage_extension_data);
 +  defsubr (&Simage_metadata);
  
  #if GLYPH_DEBUG
    defsubr (&Simagep);
    defsubr (&Slookup_image);
  #endif
  
 -  DEFVAR_BOOL ("cross-disabled-images", &cross_disabled_images,
 +  DEFVAR_BOOL ("cross-disabled-images", cross_disabled_images,
      doc: /* Non-nil means always draw a cross over disabled images.
  Disabled images are those having a `:conversion disabled' property.
  A cross is always drawn on black & white displays.  */);
    cross_disabled_images = 0;
  
 -  DEFVAR_LISP ("x-bitmap-file-path", &Vx_bitmap_file_path,
 +  DEFVAR_LISP ("x-bitmap-file-path", Vx_bitmap_file_path,
      doc: /* List of directories to search for window system bitmap files.  */);
    Vx_bitmap_file_path = decode_env_path ((char *) 0, PATH_BITMAPS);
  
 -  DEFVAR_LISP ("image-cache-eviction-delay", &Vimage_cache_eviction_delay,
 -    doc: /* Time after which cached images are removed from the cache.
 -When an image has not been displayed this many seconds, remove it
 -from the image cache.  Value must be an integer or nil with nil
 -meaning don't clear the cache.  */);
 -  Vimage_cache_eviction_delay = make_number (30 * 60);
 +  DEFVAR_LISP ("image-cache-eviction-delay", Vimage_cache_eviction_delay,
 +    doc: /* Maximum time after which images are removed from the cache.
 +When an image has not been displayed this many seconds, Emacs
 +automatically removes it from the image cache.  If the cache contains
 +a large number of images, the actual eviction time may be shorter.
 +The value can also be nil, meaning the cache is never cleared.
 +
 +The function `clear-image-cache' disregards this variable.  */);
 +  Vimage_cache_eviction_delay = make_number (300);
 +#ifdef HAVE_IMAGEMAGICK
 +  DEFVAR_LISP ("imagemagick-render-type", Vimagemagick_render_type,
 +               doc: /* Choose between ImageMagick render methods.  */);
 +#endif
 +
  }
  
  void
 -init_image ()
 +init_image (void)
  {
  }
 -
 -/* arch-tag: 123c2a5e-14a8-4c53-ab95-af47d7db49b9
 -   (do not change this comment) */