]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-23
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 18 Nov 2010 03:54:14 +0000 (22:54 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 18 Nov 2010 03:54:14 +0000 (22:54 -0500)
33 files changed:
1  2 
.dir-locals.el
admin/notes/bugtracker
configure
configure.in
doc/lispref/ChangeLog
doc/lispref/loading.texi
doc/lispref/text.texi
doc/misc/ChangeLog
etc/NEWS.23
lib-src/ChangeLog
lib-src/emacsclient.c
lisp/ChangeLog
lisp/comint.el
lisp/emacs-lisp/autoload.el
lisp/emacs-lisp/bytecomp.el
lisp/files.el
lisp/ls-lisp.el
lisp/mouse-sel.el
lisp/printing.el
lisp/progmodes/python.el
lisp/server.el
lisp/simple.el
lisp/speedbar.el
lisp/subr.el
lisp/textmodes/picture.el
lisp/vc/vc-hg.el
lisp/wid-edit.el
nt/INSTALL
src/ChangeLog
src/config.in
src/keyboard.c
src/lread.c
src/xsettings.c

diff --combined .dir-locals.el
index 873f733854d5f176975537c68a8345a31a09f73f,9b907570663674b26bf71bdb540140e7184b077a..f098f3e74601d6a6fc2c0806b267ce3f9454bd7e
@@@ -1,11 -1,12 +1,13 @@@
  ((nil . ((tab-width . 8)
 +         (sentence-end-double-space . t)
           (fill-column . 70)))
   (c-mode . ((c-file-style . "GNU")))
+  ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work.
+  ;; See admin/notes/bugtracker.
   (log-edit-mode . ((log-edit-rewrite-fixes
                      " (bug#\\([0-9]+\\))" . "debbugs:\\1")))
   (change-log-mode . ((add-log-time-zone-rule . t)
                     (fill-column . 74)
                     (bug-reference-url-format . "http://debbugs.gnu.org/%s")
 -                   (mode . bug-reference))))
 -
 +                   (mode . bug-reference)))
 + (diff-mode . ((mode . whitespace))))
diff --combined admin/notes/bugtracker
index 9c7631fdfae8728e7df3db75d4f6a597ecbbfdb4,859d99b03bd4478bf84ec1c06add9c1f8a34795f..902067011b0253113585b1612481a1c75cfeb5a7
@@@ -149,23 -149,6 +149,23 @@@ Discard mails matching
  
  ^X-GNU-PR-Message: (transcript|closed)
  
 +** Not receiving messages in response to your control commands?
 +The messages debbugs sends out in response to control-server commands
 +always have headers To: your@email, and Cc: tracker@debbugs.gnu.org
 +(the latter is an alias for the emacs-bug-tracker mailing list).
 +These are also the addresses to which a copy of the response is sent.
 +(In general, there need not be any relation between the To: and Cc:
 +headers visible in a message and where debbugs actually sends it.)
 +If you used an X-Debbugs-No-Ack header, however, a copy is _not_ sent
 +to you, but the To: header is unchanged.  If you are subscribed to the
 +emacs-bug-tracker mailing list and have duplicate suppression turned
 +on, the presence of your address in the To: header will cause Mailman
 +to not send you a list copy, because it thinks you have received a
 +direct copy.  If you used X-Debbugs-No-Ack, this is not the case, and
 +you won't get any copy at all.  If this bothers you, don't use both
 +X-Debbugs-No-Ack and Mailman duplicate suppression for the
 +emacs-bug-tracker mailing list, just pick one or the other.
 +
  ** How to avoid multiple copies of mails.
  If you reply to reports in the normal way, this should work fine.
  Basically, reply only to the numbered bug address (and any individual
@@@ -384,14 -367,6 +384,14 @@@ fixed 123 23.0.6
  *** To remove a "fixed" mark:
  notfixed 123 23.0.60
  
 +*** To make a bug as present in a particular version:
 +found 123 23.2
 +NB if there is no specified "fixed" version, or if there is one and it
 +is earlier than the found version, this reopens a closed bug.
 +
 +The leading "23.1;" that M-x report-emacs-bug adds to bug subjects
 +automatically sets a found version (if none is explicitly specified).
 +
  *** To assign or reassign a bug to a package or list of packages:
  reassign 1234 emacs
  
@@@ -474,16 -449,41 +474,41 @@@ http://lists.gnu.org/archive/html/emacs
  
  ** Bazaar stuff
  
- *** You can use `bzr commit --fixes emacs:123' to mark that a commit fixes
- Emacs bug 123.  You will first need to add a line to your bazaar.conf:
+ *** You can use `bzr commit --fixes debbugs:123' to mark that a commit fixes
+ Emacs bug 123.  You will first need to add a line to your ~/bazaar.conf
+ or ~/locations.conf:
  
- bugtracker_emacs_url = http://debbugs.gnu.org/{id}
+ bugtracker_debbugs_url = http://debbugs.gnu.org/{id}
+ Here "{id}" is a literal string, a placeholder that will be replaced
+ by the bug number you specify after `--fixes debbugs:' in the bzr
+ command line (123 in the example above).
+ In the bazaar.conf file, this setting should go into the [DEFAULTS]
+ section.
+ In the locations.conf file, it should go into the branch-specific
+ configuration section for the branch where you want this to be in
+ effect.  For example, if you want this to be in effect for the branch
+ located at `/home/projects/emacs/trunk', you need to have this in your
+ ~/locations.conf file:
+ [/home/projects/emacs/trunk]
+ bugtracker_debbugs_url = http://debbugs.gnu.org/{id}
+ If you want to use this in all Emacs branches whose common parent is
+ `/home/projects/emacs', put the setting in the [/home/projects/emacs]
+ section.  See "bzr help configuration" for more information about
+ the *.conf files, their location and formats.  See "bzr help bugs" for
+ more information about the bugtracker_debbugs_url setting.
+ See also log-edit-rewrite-fixes in .dir-locals.el.
  
  Note that all this does is add some metadata to the commit, it doesn't
- actually mark the bug as closed in the tracker.  There seems to be no
way to see this "metadata" with `bzr log', which is rather poor, but
- it will show up as a link in a recent loggerhead installation, or with
some of the graphical frontends to bzr log.
+ actually mark the bug as closed in the tracker.  You can see this
information with `bzr log', and it will show up as a link in a recent
+ loggerhead installation, or with some of the graphical frontends to
`bzr log'.
  
  ** Gnus-specific voodoo
  
@@@ -578,13 -578,9 +603,13 @@@ All discarded messages are stored in /v
  If a non-spam message accidentally gets discarded, just do:
  
  cat /var/lib/mailman/spam/not-really-spam.msg | /usr/lib/debbugs/receive
 +chown Debian-debbugs:Debian-debbugs /var/lib/debbugs/spool/incoming/*
  ... check it works ...
  mv /var/lib/mailman/spam/not-really-spam.msg /var/lib/mailman/not-spam/
  
 +Also check that the sender was not added to the auto-discard/reject list
 +in the debbugs-submit Mailman interface.
 +
  ** Administrivia
  
  The debbugs-submit list should have the administrivia option off,
diff --combined configure
index 6b218b37794f2a94078f18aae2d054184ee4407c,d1e5addcb75cb9c55f8fe7ba677abd9002d9e4a4..5bcf5e5da97083caf4ee97c96998e206d145e6a8
+++ b/configure
@@@ -1,11 -1,11 +1,11 @@@
  #! /bin/sh
  # Guess values for system-dependent variables and create Makefiles.
 -# Generated by GNU Autoconf 2.65 for emacs 23.2.90.
 +# Generated by GNU Autoconf 2.67 for emacs 24.0.50.
  #
  #
  # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
 -# Inc.
 +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
 +# Foundation, Inc.
  #
  #
  # This configure script is free software; the Free Software Foundation
@@@ -316,7 -316,7 +316,7 @@@ $as_echo X"$as_dir" 
        test -d "$as_dir" && break
      done
      test -z "$as_dirs" || eval "mkdir $as_dirs"
 -  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
 +  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
  
  
  } # as_fn_mkdir_p
@@@ -356,19 -356,19 +356,19 @@@ els
  fi # as_fn_arith
  
  
 -# as_fn_error ERROR [LINENO LOG_FD]
 -# ---------------------------------
 +# as_fn_error STATUS ERROR [LINENO LOG_FD]
 +# ----------------------------------------
  # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
  # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
 -# script with status $?, using 1 if that was 0.
 +# script with STATUS, using 1 if that was 0.
  as_fn_error ()
  {
 -  as_status=$?; test $as_status -eq 0 && as_status=1
 -  if test "$3"; then
 -    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
 +  as_status=$1; test $as_status -eq 0 && as_status=1
 +  if test "$4"; then
 +    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 +    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
    fi
 -  $as_echo "$as_me: error: $1" >&2
 +  $as_echo "$as_me: error: $2" >&2
    as_fn_exit $as_status
  } # as_fn_error
  
@@@ -530,7 -530,7 +530,7 @@@ test -n "$DJDIR" || exec 7<&0 </dev/nul
  exec 6>&1
  
  # Name of the host.
 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
  # so uname gets run too.
  ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
  
@@@ -549,8 -549,8 +549,8 @@@ MAKEFLAGS
  # Identity of this package.
  PACKAGE_NAME='emacs'
  PACKAGE_TARNAME='emacs'
 -PACKAGE_VERSION='23.2.90'
 -PACKAGE_STRING='emacs 23.2.90'
 +PACKAGE_VERSION='24.0.50'
 +PACKAGE_STRING='emacs 24.0.50'
  PACKAGE_BUGREPORT=''
  PACKAGE_URL=''
  
@@@ -595,29 -595,12 +595,29 @@@ ac_config_libobj_dir=sr
  ac_header_list=
  ac_func_list=
  ac_subst_vars='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
@@@ -625,9 -608,11 +625,9 @@@ ns_appdi
  opsysfile
  machfile
  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
@@@ -641,34 -626,14 +641,34 @@@ srcdi
  canonical
  configuration
  version
 +KRB4LIB
 +DESLIB
 +KRB5LIB
 +CRYPTOLIB
 +COM_ERRLIB
 +LIBRESOLV
 +LIBHESIOD
 +TERMCAP_OBJ
 +LIBS_TERMCAP
  GETOPTOBJS
  GETOPT_H
  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
@@@ -679,50 -644,23 +679,50 @@@ 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
 +DEPFLAGS
 +MKDEPDIR
  SET_MAKE
  CFLAGS_SOUND
  ALSA_LIBS
  ALSA_CFLAGS
  PKG_CONFIG
  LIBSOUND
 +START_FILES
 +LIB_MATH
  CRT_DIR
 +LIBS_SYSTEM
 +C_SWITCH_SYSTEM
 +UNEXEC_OBJ
 +C_SWITCH_MACHINE
 +LD_SWITCH_SYSTEM
 +CANNOT_DUMP
  MAKEINFO
  GZIP_PROG
  INSTALL_INFO
@@@ -730,7 -668,7 +730,7 @@@ RANLI
  INSTALL_DATA
  INSTALL_SCRIPT
  INSTALL_PROGRAM
 -LN_S
 +C_WARNINGS_SWITCH
  EGREP
  GREP
  CPP
@@@ -749,9 -687,7 +749,9 @@@ build_o
  build_vendor
  build_cpu
  build
 +PROFILING_CFLAGS
  MAINT
 +GZIP_INFO
  target_alias
  host_alias
  build_alias
@@@ -790,17 -726,13 +790,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
@@@ -810,8 -742,6 +810,8 @@@ with_tif
  with_gif
  with_png
  with_rsvg
 +with_xml2
 +with_imagemagick
  with_xft
  with_libotf
  with_m17n_flt
@@@ -822,10 -752,9 +822,10 @@@ 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_gnustep_conf
@@@ -834,7 -763,6 +834,7 @@@ enable_assert
  enable_maintainer_mode
  enable_locallisppath
  enable_checking
 +enable_use_lisp_union_type
  enable_profiling
  enable_autodepend
  enable_largefile
@@@ -912,9 -840,8 +912,9 @@@ d
    fi
  
    case $ac_option in
 -  *=*)        ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
 -  *)  ac_optarg=yes ;;
 +  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
 +  *=)   ac_optarg= ;;
 +  *)    ac_optarg=yes ;;
    esac
  
    # Accept the important Cygnus configure options, so we can diagnose typos.
      ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
      # Reject names that are not valid shell variable names.
      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
 -      as_fn_error "invalid feature name: $ac_useropt"
 +      as_fn_error $? "invalid feature name: $ac_useropt"
      ac_useropt_orig=$ac_useropt
      ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
      case $ac_user_opts in
      ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
      # Reject names that are not valid shell variable names.
      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
 -      as_fn_error "invalid feature name: $ac_useropt"
 +      as_fn_error $? "invalid feature name: $ac_useropt"
      ac_useropt_orig=$ac_useropt
      ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
      case $ac_user_opts in
      ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
      # Reject names that are not valid shell variable names.
      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
 -      as_fn_error "invalid package name: $ac_useropt"
 +      as_fn_error $? "invalid package name: $ac_useropt"
      ac_useropt_orig=$ac_useropt
      ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
      case $ac_user_opts in
      ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
      # Reject names that are not valid shell variable names.
      expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
 -      as_fn_error "invalid package name: $ac_useropt"
 +      as_fn_error $? "invalid package name: $ac_useropt"
      ac_useropt_orig=$ac_useropt
      ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
      case $ac_user_opts in
    | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
      x_libraries=$ac_optarg ;;
  
 -  -*) as_fn_error "unrecognized option: \`$ac_option'
 -Try \`$0 --help' for more information."
 +  -*) as_fn_error $? "unrecognized option: \`$ac_option'
 +Try \`$0 --help' for more information"
      ;;
  
    *=*)
      # Reject names that are not valid shell variable names.
      case $ac_envvar in #(
        '' | [0-9]* | *[!_$as_cr_alnum]* )
 -      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
 +      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
      esac
      eval $ac_envvar=\$ac_optarg
      export $ac_envvar ;;
  
  if test -n "$ac_prev"; then
    ac_option=--`echo $ac_prev | sed 's/_/-/g'`
 -  as_fn_error "missing argument to $ac_option"
 +  as_fn_error $? "missing argument to $ac_option"
  fi
  
  if test -n "$ac_unrecognized_opts"; then
    case $enable_option_checking in
      no) ;;
 -    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
 +    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
      *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
    esac
  fi
      [\\/$]* | ?:[\\/]* )  continue;;
      NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
    esac
 -  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 +  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
  done
  
  # There might be people who depend on the old broken behavior: `$host'
@@@ -1305,8 -1232,8 +1305,8 @@@ target=$target_alia
  if test "x$host_alias" != x; then
    if test "x$build_alias" = x; then
      cross_compiling=maybe
 -    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
 -    If a cross compiler is detected then cross compile mode will be used." >&2
 +    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
 +    If a cross compiler is detected then cross compile mode will be used" >&2
    elif test "x$build_alias" != "x$host_alias"; then
      cross_compiling=yes
    fi
@@@ -1321,9 -1248,9 +1321,9 @@@ test "$silent" = yes && exec 6>/dev/nul
  ac_pwd=`pwd` && test -n "$ac_pwd" &&
  ac_ls_di=`ls -di .` &&
  ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
 -  as_fn_error "working directory cannot be determined"
 +  as_fn_error $? "working directory cannot be determined"
  test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
 -  as_fn_error "pwd does not report name of working directory"
 +  as_fn_error $? "pwd does not report name of working directory"
  
  
  # Find the source files, if location was not specified.
  fi
  if test ! -r "$srcdir/$ac_unique_file"; then
    test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
 -  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 +  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
  fi
  ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
  ac_abs_confdir=`(
 -      cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
 +      cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
        pwd)`
  # When building in place, set srcdir=.
  if test "$ac_abs_confdir" = "$ac_pwd"; then
@@@ -1392,7 -1319,7 +1392,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.90 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]...
  
@@@ -1406,7 -1333,7 +1406,7 @@@ Configuration
        --help=short        display options specific to this package
        --help=recursive    display the short help of all the included packages
    -V, --version           display version information and exit
 -  -q, --quiet, --silent   do not print \`checking...' messages
 +  -q, --quiet, --silent   do not print \`checking ...' messages
        --cache-file=FILE   cache test results in FILE [disabled]
    -C, --config-cache      alias for \`--cache-file=config.cache'
    -n, --no-create         do not create output files
  
  if test -n "$ac_init_help"; then
    case $ac_init_help in
 -     short | recursive ) echo "Configuration of emacs 23.2.90:";;
 +     short | recursive ) echo "Configuration of emacs 24.0.50:";;
     esac
    cat <<\_ACEOF
  
@@@ -1488,10 -1415,6 +1488,10 @@@ 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.
@@@ -1506,22 -1429,16 +1506,22 @@@ 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-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.90
 -generated by GNU Autoconf 2.65
 +emacs configure 24.0.50
 +generated by GNU Autoconf 2.67
  
 -Copyright (C) 2009 Free Software Foundation, Inc.
 +Copyright (C) 2010 Free Software Foundation, Inc.
  This configure script is free software; the Free Software Foundation
  gives unlimited permission to copy, distribute and modify it.
  _ACEOF
@@@ -1743,7 -1658,7 +1743,7 @@@ $as_echo "$ac_try_echo"; } >&
      mv -f conftest.er1 conftest.err
    fi
    $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
 -  test $ac_status = 0; } >/dev/null && {
 +  test $ac_status = 0; } > conftest.i && {
         test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
         test ! -s conftest.err
         }; then :
  ac_fn_c_check_header_mongrel ()
  {
    as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +  if eval "test \"\${$3+set}\"" = set; then :
    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
  $as_echo_n "checking for $2... " >&6; }
 -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$3+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  fi
  eval ac_res=\$$3
@@@ -1806,7 -1721,7 +1806,7 @@@ if ac_fn_c_try_cpp "$LINENO"; then 
  else
    ac_header_preproc=no
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
  $as_echo "$ac_header_preproc" >&6; }
  
@@@ -1833,7 -1748,7 +1833,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$3+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    eval "$3=\$ac_header_compiler"
@@@ -1897,7 -1812,7 +1897,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$3+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -1919,80 -1834,73 +1919,80 @@@ $as_echo "$ac_res" >&6; 
  
  } # 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_check_decl LINENO SYMBOL VAR INCLUDES
 +# ---------------------------------------------
 +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
 +# accordingly.
 +ac_fn_c_check_decl ()
  {
    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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +  as_decl_name=`echo $2|sed 's/ *(.*//'`
 +  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 :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -#include <$2>
 +$4
 +int
 +main ()
 +{
 +#ifndef $as_decl_name
 +#ifdef __cplusplus
 +  (void) $as_decl_use;
 +#else
 +  (void) $as_decl_name;
 +#endif
 +#endif
 +
 +  ;
 +  return 0;
 +}
  _ACEOF
 -if ac_fn_c_try_cpp "$LINENO"; then :
 +if ac_fn_c_try_compile "$LINENO"; then :
    eval "$3=yes"
  else
    eval "$3=no"
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f core conftest.err conftest.$ac_objext 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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  
 -} # ac_fn_c_check_header_preproc
 +} # ac_fn_c_check_decl
  
 -# ac_fn_c_check_decl LINENO SYMBOL VAR
 -# ------------------------------------
 -# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
 -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 whether $2 is declared" >&5
 -$as_echo_n "checking whether $2 is declared... " >&6; }
 -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; 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 :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -$4
 -int
 -main ()
 -{
 -#ifndef $2
 -  (void) $2;
 -#endif
 -
 -  ;
 -  return 0;
 -}
 +#include <$2>
  _ACEOF
 -if ac_fn_c_try_compile "$LINENO"; then :
 +if ac_fn_c_try_cpp "$LINENO"; then :
    eval "$3=yes"
  else
    eval "$3=no"
  fi
 -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +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; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
  
 -} # ac_fn_c_check_decl
 +} # ac_fn_c_check_header_preproc
  
  # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
  # ----------------------------------------------------
@@@ -2003,7 -1911,7 +2003,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 { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$4+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -2059,7 -1967,7 +2059,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$3+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@@ -2127,7 -2035,7 +2127,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 { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${$3+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    eval "$3=no"
@@@ -2175,8 -2083,8 +2175,8 @@@ cat >config.log <<_ACEO
  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.90, which was
 -generated by GNU Autoconf 2.65.  Invocation command line was
 +It was created by emacs $as_me 24.0.50, which was
 +generated by GNU Autoconf 2.67.  Invocation command line was
  
    $ $0 $@
  
@@@ -2286,9 -2194,11 +2286,9 @@@ trap 'exit_status=$
    {
      echo
  
 -    cat <<\_ASBOX
 -## ---------------- ##
 +    $as_echo "## ---------------- ##
  ## Cache variables. ##
 -## ---------------- ##
 -_ASBOX
 +## ---------------- ##"
      echo
      # The following way of writing the cache mishandles newlines in values,
  (
@@@ -2322,9 -2232,11 +2322,9 @@@ $as_echo "$as_me: WARNING: cache variab
  )
      echo
  
 -    cat <<\_ASBOX
 -## ----------------- ##
 +    $as_echo "## ----------------- ##
  ## Output variables. ##
 -## ----------------- ##
 -_ASBOX
 +## ----------------- ##"
      echo
      for ac_var in $ac_subst_vars
      do
      echo
  
      if test -n "$ac_subst_files"; then
 -      cat <<\_ASBOX
 -## ------------------- ##
 +      $as_echo "## ------------------- ##
  ## File substitutions. ##
 -## ------------------- ##
 -_ASBOX
 +## ------------------- ##"
        echo
        for ac_var in $ac_subst_files
        do
      fi
  
      if test -s confdefs.h; then
 -      cat <<\_ASBOX
 -## ----------- ##
 +      $as_echo "## ----------- ##
  ## confdefs.h. ##
 -## ----------- ##
 -_ASBOX
 +## ----------- ##"
        echo
        cat confdefs.h
        echo
@@@ -2410,12 -2326,7 +2410,12 @@@ _ACEO
  ac_site_file1=NONE
  ac_site_file2=NONE
  if test -n "$CONFIG_SITE"; then
 -  ac_site_file1=$CONFIG_SITE
 +  # We do not want a PATH search for config.site.
 +  case $CONFIG_SITE in #((
 +    -*)  ac_site_file1=./$CONFIG_SITE;;
 +    */*) ac_site_file1=$CONFIG_SITE;;
 +    *)   ac_site_file1=./$CONFIG_SITE;;
 +  esac
  elif test "x$prefix" != xNONE; then
    ac_site_file1=$prefix/share/config.site
    ac_site_file2=$prefix/etc/config.site
      { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
  $as_echo "$as_me: loading site script $ac_site_file" >&6;}
      sed 's/^/| /' "$ac_site_file" >&5
 -    . "$ac_site_file"
 +    . "$ac_site_file" \
 +      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "failed to load site script $ac_site_file
 +See \`config.log' for more details" "$LINENO" 5 ; }
    fi
  done
  
@@@ -2515,7 -2422,7 +2515,7 @@@ if $ac_cache_corrupted; the
  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
    { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
  $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
 -  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 +  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
  fi
  ## -------------------- ##
  ## Main body of script. ##
@@@ -2616,45 -2523,6 +2616,45 @@@ $as_echo "#define HESIOD 1" >>confdefs.
  fi
  
  
 +# Check whether --with-mmdf was given.
 +if test "${with_mmdf+set}" = set; then :
 +  withval=$with_mmdf;
 +else
 +      with_mmdf=no
 +fi
 +
 +if test "$with_mmdf" != no; then
 +
 +$as_echo "#define MAIL_USE_MMDF 1" >>confdefs.h
 +
 +fi
 +
 +
 +# 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
 +
 +if test "$with_mail_unlink" != no; then
 +
 +$as_echo "#define MAIL_UNLINK_SPOOL 1" >>confdefs.h
 +
 +fi
 +
 +
 +# 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
 +
 +
 +
  # Check whether --with-sound was given.
  if test "${with_sound+set}" = set; then :
    withval=$with_sound;
@@@ -2687,11 -2555,10 +2687,11 @@@ if test "${with_x_toolkit+set}" = set; 
            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' or \`gtk'.
 -\`yes' and \`gtk' are synonyms. \`athena' and \`lucid' are synonyms." "$LINENO" 5
 +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
  
  
 +# Check whether --with-xml2 was given.
 +if test "${with_xml2+set}" = set; then :
 +  withval=$with_xml2;
 +else
 +     with_xml2=yes
 +fi
 +
 +
 +# Check whether --with-imagemagick was given.
 +if test "${with_imagemagick+set}" = set; then :
 +  withval=$with_imagemagick;
 +else
 +     with_imagemagick=yes
 +fi
 +
 +
  
  # Check whether --with-xft was given.
  if test "${with_xft+set}" = set; then :
  fi
  
  
 +# Check whether --with-selinux was given.
 +if test "${with_selinux+set}" = set; then :
 +  withval=$with_selinux;
 +else
 +     with_selinux=yes
 +fi
 +
 +
 +# Check whether --with-gnutls was given.
 +if test "${with_gnutls+set}" = set; then :
 +  withval=$with_gnutls;
 +else
 +     with_gnutls=yes
 +fi
 +
 +
  ## For the times when you want to build Emacs but don't have
  ## a suitable makeinfo, and can live without the manuals.
  
  fi
  
  
 +## 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-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
 +# Check whether --with-compress-info was given.
 +if test "${with_compress_info+set}" = set; then :
 +  withval=$with_compress_info;
 +else
 +     with_compress_info=yes
  fi
  
 -
 -
 -# 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
 +if test $with_compress_info = yes; then
 +   GZIP_INFO=yes
 +else
 +   GZIP_INFO=
  fi
  
  
        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 ;;
 +      *)      as_fn_error $? "unknown check category $check" "$LINENO" 5  ;;
        esac
  done
  IFS="$ac_save_IFS"
@@@ -3028,17 -2862,6 +3028,17 @@@ $as_echo "#define GC_CHECK_CONS_LIST 1
  
  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
 +fi
 +
 +
 +
  # Check whether --enable-profiling was given.
  if test "${enable_profiling+set}" = set; then :
    enableval=$enable_profiling; 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
  
 +
  # Check whether --enable-autodepend was given.
  if test "${enable_autodepend+set}" = set; then :
    enableval=$enable_autodepend; ac_enable_autodepend="${enableval}"
  
  ac_aux_dir=
  for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
 -  for ac_t in install-sh install.sh shtool; do
 -    if test -f "$ac_dir/$ac_t"; then
 -      ac_aux_dir=$ac_dir
 -      ac_install_sh="$ac_aux_dir/$ac_t -c"
 -      break 2
 -    fi
 -  done
 +  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
 +  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
  fi
  
  # These three variables are undocumented and unsupported,
@@@ -3136,7 -2954,7 +3136,7 @@@ ac_configure="$SHELL $ac_aux_dir/config
  
  # 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_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; }
  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
 +  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
 +  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;;
 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
  esac
  build=$ac_cv_build
  ac_save_IFS=$IFS; IFS='-'
@@@ -3181,7 -2999,7 +3181,7 @@@ els
    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
 +    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
  fi
  
  fi
  $as_echo "$ac_cv_host" >&6; }
  case $ac_cv_host in
  *-*-*) ;;
 -*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;;
  esac
  host=$ac_cv_host
  ac_save_IFS=$IFS; IFS='-'
@@@ -3215,7 -3033,7 +3215,7 @@@ configuration=${host_alias-${build_alia
  ### 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
    *-*-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 ;;
 +      arm*)             machine=arm ;;
 +      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
 -
 -$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 ;;
 +      alpha*)      machine=alpha ;;
 +      x86_64-*)    machine=amdx86-64 ;;
 +      arm-*)       machine=arm ;;
 +      hppa-*)      machine=hp800 ;;
 +      i[3456]86-*) machine=intel386 ;;
 +      m68k-*)      machine=m68k ;;
 +      powerpc-*)   machine=macppc ;;
 +      mips-*)      machine=mips ;;
 +      mipse[bl]-*) machine=mips ;;
 +      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 ;;
 +      arm-*)     machine=arm ;;
 +      hppa-*)    machine=hp800 ;;
 +      i386-*)    machine=intel386 ;;
 +      powerpc-*) machine=macppc ;;
 +      sparc*)    machine=sparc ;;
 +      vax-*)     machine=vax ;;
      esac
    ;;
  
    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
    ;;
  
  
    *-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
      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
@@@ -3474,6 -3328,22 +3474,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
      ;;
  
  
  if test $unported = yes; then
 -  as_fn_error "Emacs hasn't been ported to \`${canonical}' systems.
 +  as_fn_error $? "Emacs hasn't been ported to \`${canonical}' systems.
  Check \`etc/MACHINES' for recognized configuration names." "$LINENO" 5
  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; }
 +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
@@@ -3912,8 -3782,9 +3912,8 @@@ sed 's/^/| /' conftest.$ac_ext >&
  
  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
  $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 -{ as_fn_set_status 77
 -as_fn_error "C compiler cannot create executables
 -See \`config.log' for more details." "$LINENO" 5; }; }
 +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; }
@@@ -3955,8 -3826,8 +3955,8 @@@ don
  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_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
@@@ -4013,9 -3884,9 +4013,9 @@@ $as_echo "$ac_try_echo"; } >&
      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.
 +as_fn_error $? "cannot run C compiled programs.
  If you meant to cross compile, use \`--host'.
 -See \`config.log' for more details." "$LINENO" 5; }
 +See \`config.log' for more details" "$LINENO" 5 ; }
      fi
    fi
  fi
@@@ -4066,8 -3937,8 +4066,8 @@@ sed 's/^/| /' conftest.$ac_ext >&
  
  { { $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; }
 +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
    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
  
  ac_ext=c
@@@ -4399,7 -4274,7 +4399,7 @@@ els
    # Broken: fails on valid input.
  continue
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
    # OK, works on sane cases.  Now check whether nonexistent headers
    # can be detected and how.
  ac_preproc_ok=:
  break
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
  done
  # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.i conftest.err conftest.$ac_ext
  if $ac_preproc_ok; then :
    break
  fi
@@@ -4458,7 -4333,7 +4458,7 @@@ els
    # Broken: fails on valid input.
  continue
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
    # OK, works on sane cases.  Now check whether nonexistent headers
    # can be detected and how.
  ac_preproc_ok=:
  break
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
  done
  # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.err conftest.$ac_ext
 +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; }
 +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5 ; }
  fi
  
  ac_ext=c
@@@ -4546,7 -4421,7 +4546,7 @@@ esa
    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
 +    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
@@@ -4612,7 -4487,7 +4612,7 @@@ esa
    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
 +    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
@@@ -4744,7 -4619,8 +4744,7 @@@ 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
  "
 -eval as_val=\$$as_ac_Header
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -4878,73 -4754,18 +4878,73 @@@ CFLAGS="$SAVE_CFLAGS
  unset has_option
  unset SAVE_CFLAGS
  
 -#### Some other nice autoconf tests.
 +### 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.  */
  
 -{ $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; }
 +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
 -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 -$as_echo "no, using $LN_S" >&6; }
 +  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'
@@@ -4988,7 -4809,7 +4988,7 @@@ els
    # Broken: fails on valid input.
  continue
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
    # OK, works on sane cases.  Now check whether nonexistent headers
    # can be detected and how.
  ac_preproc_ok=:
  break
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
  done
  # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.i conftest.err conftest.$ac_ext
  if $ac_preproc_ok; then :
    break
  fi
@@@ -5047,7 -4868,7 +5047,7 @@@ els
    # Broken: fails on valid input.
  continue
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
    # OK, works on sane cases.  Now check whether nonexistent headers
    # can be detected and how.
  ac_preproc_ok=:
  break
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  
  done
  # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 -rm -f conftest.err conftest.$ac_ext
 +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; }
 +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5 ; }
  fi
  
  ac_ext=c
  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" = x""yes; then :
 +
 +fi
 +
 +  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
 +
  # 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
  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
 +  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
  
  
 -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
  
  
  late_LDFLAGS=$LDFLAGS
 -if test "$GCC" = yes; then
 +if test x$GCC = xyes; then
    LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
  else
    LDFLAGS="$LDFLAGS -znocombreloc"
  $as_echo_n "checking for -znocombreloc... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
 -main(){return 0;}
 +
 +int
 +main ()
 +{
 +
 +  ;
 +  return 0;
 +}
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
  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
 +# The value of CPP is a quoted variable reference, so we need to do this
 +# to get its actual value...
 +CPP=`eval "echo $CPP"`
  
 -#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
 +CANNOT_DUMP=no
 +case "$opsys" in
 +  your-opsys-here)
 +   CANNOT_DUMP=yes
  
 -#ifdef SYSTEM_MALLOC
 -configure___ system_malloc=yes
 -#else
 -configure___ system_malloc=no
 -#endif
 +$as_echo "#define CANNOT_DUMP 1" >>confdefs.h
  
 -#ifdef USE_MMAP_FOR_BUFFERS
 -configure___ use_mmap_for_buffers=yes
 -#else
 -configure___ use_mmap_for_buffers=no
 -#endif
 +  ;;
 +esac
  
 -#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
 +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 LD_SWITCH_MACHINE
 -#define LD_SWITCH_MACHINE
 -#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 LD_SWITCH_SYSTEM
 -#define LD_SWITCH_SYSTEM
 -#endif
 +  gnu-linux)
 +   ## cpp test was "ifdef __mips__", but presumably this is equivalent...
 +   test "$machine" = "mips" && LD_SWITCH_SYSTEM="-G 0"
 +   ;;
  
 -#ifndef LD_SWITCH_X_SITE_AUX
 -#define LD_SWITCH_X_SITE_AUX
 -#endif
 +  netbsd)
 +   LD_SWITCH_SYSTEM="-Wl,-rpath,/usr/pkg/lib -L/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/local/lib"
 +   ;;
  
 -configure___ ld_switch_system=LD_SWITCH_SYSTEM
 -configure___ ld_switch_machine=LD_SWITCH_MACHINE
 +  openbsd)
 +   ## Han Boetes <han@mijncomputer.nl> says this is necessary,
 +   ## otherwise Emacs dumps core on elf systems.
 +   LD_SWITCH_SYSTEM="-Z"
 +   ;;
 +esac
  
 -#ifdef THIS_IS_CONFIGURE
  
 -/* 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 */
 +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
  
 -/* 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}
 +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__" = x""yes; then :
  
 -LDFLAGS="${LDFLAGS} ${PROFILING_LDFLAGS}"
 +fi
  
 -# 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"
 +  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
 -rm ${tempcname}
  
 -ac_link="$ac_link $ld_switch_machine $ld_switch_system"
 +
 +
 +
 +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
 -  CPPFLAGS="$c_switch_system $c_switch_machine $CPPFLAGS"
 +  CPPFLAGS="$C_SWITCH_SYSTEM $C_SWITCH_MACHINE $CPPFLAGS"
  fi
  
  
@@@ -5917,81 -5705,27 +5917,81 @@@ rm -rf conftest
  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
 -   ;;
 +## 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 || \
 +    as_fn_error $? "crt*.o not found in specified location." "$LINENO" 5
 +
 +fi
 +
 +
 +
 +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
 -test "X$CRT_DIR" = "X" && CRT_DIR=/usr/lib
 +
 +
  
  
  
@@@ -6003,11 -5737,12 +6003,11 @@@ if test "${with_sound}" != "no"; the
  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"
 -eval as_val=\$$as_ac_Header
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -6194,7 -5929,7 +6194,7 @@@ els
  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
 +        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
@@@ -6208,28 -5943,18 +6208,28 @@@ $as_echo "#define HAVE_ALSA 1" >>confde
  
    fi
  
 +        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/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
 +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"
 -eval as_val=\$$as_ac_Header
 -   if test "x$as_val" = x""yes; then :
 +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 whether byte ordering is bigendian" >&5
 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
 +if test "${ac_cv_c_bigendian+set}" = set; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  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;
 +
 +_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
 +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
 +  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
 +
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_compile "$LINENO"; then :
 +  ac_cv_c_bigendian=yes
 +else
 +  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;
 +
 +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
 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 +else
 +  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;
 +
 +  ;
 +  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
 +
 +    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 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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
 +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
    $as_echo_n "(cached) " >&6
  else
    cat >conftest.make <<\_ACEOF
@@@ -7301,7 -6804,7 +7301,7 @@@ SHELL = /bin/s
  all:
        @echo '@@@%%%=$(MAKE)=@@@%%%'
  _ACEOF
 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
 +# 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;;
@@@ -7321,9 -6824,6 +7321,9 @@@ $as_echo "no" >&6; 
  fi
  
  
 +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; }
@@@ -7365,19 -6865,11 +7365,19 @@@ rm -f core conftest.err conftest.$ac_ob
  $as_echo "$ac_enable_autodepend" >&6; }
     fi
     if test $ac_enable_autodepend = yes; then
 -
 -$as_echo "#define AUTO_DEPEND 1" >>confdefs.h
 -
 +      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
 +
 +
 +
 +
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
  $as_echo_n "checking for long file names... " >&6; }
@@@ -7437,7 -6929,7 +7437,7 @@@ if test "x$with_x" = xno; the
    have_x=disabled
  else
    case $x_includes,$x_libraries in #(
 -    *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
 +    *\'*) 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
@@@ -7455,7 -6947,7 +7455,7 @@@ libdir
        @echo libdir='${LIBDIR}'
  _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.
 +    # 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
@@@ -7541,7 -7033,7 +7541,7 @@@ els
    fi
  done
  fi
 -rm -f conftest.err conftest.$ac_ext
 +rm -f conftest.err conftest.i conftest.$ac_ext
  fi # $ac_x_includes = no
  
  if test "$ac_x_libraries" = no; then
  ## 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}
@@@ -7659,9 -7149,6 +7659,9 @@@ ${x_library}/X11/%T/%N%S
      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
@@@ -7691,40 -7178,32 +7691,40 @@@ 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=`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
 -          GNUSTEP_MAKEFILES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_MAKEFILES)"
 -     GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
 +          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}"
 +          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" = x""yes; then :
    HAVE_NS=yes
  else
 -  as_fn_error "\`--with-ns' was specified, but the include
 +  as_fn_error $? "\`--with-ns' was specified, but the include
    files are missing or cannot be compiled." "$LINENO" 5
  fi
  
@@@ -7751,11 -7230,6 +7751,11 @@@ rm -f core conftest.err conftest.$ac_ob
      NS_HAVE_NSINTEGER=no
    fi
  fi
 +
 +
 +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"
  
 +
 +
 +
 +
  case "${window_system}" in
    x11 )
      HAVE_X_WINDOWS=yes
        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
     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
 +        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.
@@@ -7904,30 -7369,11 +7904,30 @@@ $as_echo "$emacs_cv_var___after_morecor
  if test $emacs_cv_var___after_morecore_hook = no; then
    doug_lea_malloc=no
  fi
 +
 +
 +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="
  
  $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
  
 +use_mmap_for_buffers=no
 +case "$opsys" in
 +  freebsd|irix6-5) use_mmap_for_buffers=yes ;;
 +esac
  
  
  
@@@ -7963,7 -7397,8 +7963,7 @@@ 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
  "
 -eval as_val=\$$as_ac_Header
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -8069,7 -7504,6 +8069,7 @@@ in
  main ()
  {
    char *data, *data2, *data3;
 +  const char *cdata2;
    int i, pagesize;
    int fd, fd2;
  
    fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
    if (fd2 < 0)
      return 4;
 -  data2 = "";
 -  if (write (fd2, data2, 1) != 1)
 +  cdata2 = "";
 +  if (write (fd2, cdata2, 1) != 1)
      return 5;
 -  data2 = mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
 +  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)
  rm -f conftest.mmap conftest.txt
  
  if test $use_mmap_for_buffers = yes; then
 +
 +$as_echo "#define USE_MMAP_FOR_BUFFERS 1" >>confdefs.h
 +
    REL_ALLOC=no
  fi
  
 -LIBS="$libsrc_libs $LIBS"
 +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; }
@@@ -8292,18 -7723,6 +8292,18 @@@ _ACEO
  fi
  
  
 +## 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*)
  # 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"
  
@@@ -8470,7 -7888,8 +8470,7 @@@ XScreenNumberOfScreen XSetWMProtocol
  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"
 -eval as_val=\$$as_ac_var
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -8515,18 -7934,6 +8515,18 @@@ $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; }
@@@ -8630,7 -8037,7 +8630,7 @@@ $as_echo "no" >&6; 
    fi
  
    if test $succeeded = yes; then
 -     :
 +     HAVE_RSVG=yes
    else
       :
    fi
  
  
  
 -    if test ".${RSVG_CFLAGS}" != "."; then
 -      HAVE_RSVG=yes
 +    if test $HAVE_RSVG = yes; then
  
  $as_echo "#define HAVE_RSVG 1" >>confdefs.h
  
    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"
 -
 +HAVE_IMAGEMAGICK=no
 +if test "${HAVE_X11}" = "yes"; then
 +  if test "${with_imagemagick}" != "no"; then
 +    IMAGEMAGICK_MODULE="Wand"
  
    succeeded=no
  
  
  
    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; }
 +        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $IMAGEMAGICK_MODULE" >&5
 +$as_echo_n "checking for $IMAGEMAGICK_MODULE... " >&6; }
  
 -        if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
 +        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 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; }
 +            { $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; }
 -            GTK_CFLAGS=""
 -            GTK_LIBS=""
 +            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.
 -            GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$GTK_MODULES"`
 +            IMAGEMAGICK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$IMAGEMAGICK_MODULE"`
  
          fi
  
    fi
  
    if test $succeeded = yes; then
 -     pkg_check_gtk=yes
 +     HAVE_IMAGEMAGICK=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
  
 +    if test $HAVE_IMAGEMAGICK = yes; then
  
 +$as_echo "#define HAVE_IMAGEMAGICK 1" >>confdefs.h
  
 -  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
 +      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" = x""yes; then :
 +  cat >>confdefs.h <<_ACEOF
 +#define HAVE_MAGICKEXPORTIMAGEPIXELS 1
 +_ACEOF
 +
 +fi
 +done
 +
 +    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"
 +
 +
 +  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; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  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; }
 +
 +        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
 +
 +            { $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 "$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
 +
 +  # 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; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  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; }
 +
 +        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
 +
 +            { $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
 +fi
 +
 +GTK_OBJ=
 +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 :
  
    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;
 +      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
        :
@@@ -9032,11 -8210,28 +9032,11 @@@ $as_echo "$as_me: WARNING: Your versio
  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
@@@ -9057,13 -8252,49 +9057,13 @@@ if test "x$ac_cv_func_gtk_file_selectio
    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
 -
 -    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
 -
 -  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
  
 -  if test "$HAVE_GTK_FILE_SELECTION" = yes \
 -     && test "$HAVE_GTK_FILE_CHOOSER" = yes;  then
 -
 -$as_echo "#define HAVE_GTK_FILE_BOTH 1" >>confdefs.h
 -
 -  fi
 -
 -      if test "$HAVE_GTK_FILE_CHOOSER" = yes; then
 -    HAVE_GTK_AND_PTHREAD=no
 +        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"
  $as_echo "#define HAVE_GTK_AND_PTHREAD 1" >>confdefs.h
  
      fi
 -  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
 +
 +fi
 +done
 +
 +
  fi
  
  HAVE_DBUS=no
 +DBUS_OBJ=
  if test "${with_dbus}" = "yes"; then
  
    succeeded=no
@@@ -9259,11 -8473,9 +9259,11 @@@ _ACEO
  fi
  done
  
 +     DBUS_OBJ=dbusbind.o
     fi
  fi
  
 +
  HAVE_GCONF=no
  if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
  
@@@ -9330,176 -8542,19 +9330,187 @@@ $as_echo_n "checking GCONF_CFLAGS... " 
              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_CFLAGS" >&5
  $as_echo "$GCONF_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 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 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
++
++fi
++done
++
 +   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 test "${ac_cv_lib_selinux_lgetfilecon+set}" = set; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lselinux  $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 lgetfilecon ();
 +int
 +main ()
 +{
 +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" = x""yes; then :
 +  HAVE_LIBSELINUX=yes
 +else
 +  HAVE_LIBSELINUX=no
 +fi
 +
 +   if test "$HAVE_LIBSELINUX" = yes; then
 +
 +$as_echo "#define HAVE_LIBSELINUX 1" >>confdefs.h
 +
 +      LIBSELINUX_LIBS=-lselinux
 +   fi
 +fi
 +
 +
 +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 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; }
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
 +fi
 +
 +
 +
 +  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 $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; }
 -            GCONF_CFLAGS=""
 -            GCONF_LIBS=""
 +            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.
 -            GCONF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gconf-2.0 >= 2.13"`
 +            LIBGNUTLS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gnutls >= 2.2.4"`
  
          fi
  
    fi
  
    if test $succeeded = yes; then
 -     HAVE_GCONF=yes
 +     HAVE_GNUTLS=yes
    else
 -     HAVE_GCONF=no
 +     HAVE_GNUTLS=no
    fi
  
 -   if test "$HAVE_GCONF" = yes; then
 -
 -$as_echo "#define HAVE_GCONF 1" >>confdefs.h
 +  if test "${HAVE_GNUTLS}" = "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_GNUTLS 1" >>confdefs.h
  
 +  fi
  fi
 -done
  
 -   fi
 -fi
 +
  
  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 "yes; using Lucid toolkit" >&6; }
      USE_X_TOOLKIT=LUCID
      HAVE_XAW3D=yes
 +    LUCID_LIBW=-lXaw3d
  
  $as_echo "#define HAVE_XAW3D 1" >>confdefs.h
  
        { $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
 +      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; }
  
  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; }
@@@ -9653,11 -8713,6 +9664,11 @@@ $as_echo "6 or newer" >&6; 
  
  $as_echo "#define HAVE_X11XTR6 1" >>confdefs.h
  
 +    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; }
    test $ac_cv_lib_Xmu_XmuConvertStandardSelection = no && LIBS="$OLDLIBS"
  fi
  
 +
 +LIBXMU=-lXmu
 +case "$machine" in
 +  ## These machines 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
    fi
  fi
  
 +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; }
@@@ -9809,7 -8853,12 +9820,7 @@@ rm -f core conftest.err conftest.$ac_ob
  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 :
  { $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
 +  LIBXP=-lXp
  fi
  
 -    if test ${HAVE_LIBXP} = yes; then
 -
 -$as_echo "#define HAVE_LIBXP 1" >>confdefs.h
 -
 -    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; }
      HAVE_LIBOTF=no
      HAVE_M17N_FLT=no
  fi
 +
  ### End of font-backend (under X11) section.
  
  
  
  ### 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"
@@@ -10687,14 -9739,11 +10698,14 @@@ $as_echo "no" >&6; 
  
  $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"
  rm -f conftest*
  
    fi
 +  if test "${HAVE_JPEG}" = "yes"; then
 +    LIBJPEG=-ljpeg
 +  fi
  fi
  
 +
  ### 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
  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"
 -eval as_val=\$$as_ac_Header
 -   if test "x$as_val" = x""yes; then :
 +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
  
  $as_echo "#define HAVE_PNG 1" >>confdefs.h
  
 +    LIBPNG="-lpng -lz -lm"
    fi
  fi
  
 +
  ### 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"
  
  $as_echo "#define HAVE_TIFF 1" >>confdefs.h
  
 +        LIBTIFF=-ltiff
    fi
  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" = x""yes; then :
@@@ -10955,7 -9994,7 +10966,7 @@@ $as_echo "$ac_cv_lib_gif_EGifPutExtensi
  if test "x$ac_cv_lib_gif_EGifPutExtensionLast" = x""yes; then :
    HAVE_GIF=yes
  else
 -  try_libungif=yes
 +  HAVE_GIF=maybe
  fi
  
  fi
  
  
    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
      { $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 :
  $as_echo "$ac_cv_lib_ungif_EGifPutExtensionLast" >&6; }
  if test "x$ac_cv_lib_ungif_EGifPutExtensionLast" = x""yes; then :
    HAVE_GIF=yes
 +else
 +  HAVE_GIF=no
  fi
  
 -
 -    if test "$HAVE_GIF" = yes; then
 -
 -$as_echo "#define LIBGIF -lungif" >>confdefs.h
 -
 -      ac_gif_lib_name="-lungif"
 -    fi
 +    test "$HAVE_GIF" = yes && LIBGIF=-lungif
    fi
  
    if test "${HAVE_GIF}" = "yes"; then
@@@ -11018,7 -10063,6 +11029,7 @@@ $as_echo "#define HAVE_GIF 1" >>confdef
    fi
  fi
  
 +
  if test "${HAVE_X11}" = "yes"; then
    MISSING=""
    WITH_NO=""
      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:
 +    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
  
  ### 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" = x""yes; then :
  fi
  
  
 -fi
  
 -if test "${HAVE_GPM}" = "yes"; then
 +  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" = x""yes; then :
  
  
  
  
 +C_SWITCH_X_SYSTEM=
  ### Use NeXTstep API to implement GUI.
  if test "${HAVE_NS}" = "yes"; then
  
@@@ -11130,9 -10167,6 +11141,9 @@@ $as_echo "#define NS_IMPL_COCOA 1" >>co
  
  $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
  
  ### 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" = x""yes; then :
  
  $as_echo "#define HAVE_X_SM 1" >>confdefs.h
  
 +    LIBXSM="-lSM -lICE"
      case "$LIBS" in
        *-lSM*) ;;
 -      *)      LIBS="-lSM -lICE $LIBS" ;;
 +      *)      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 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; }
 +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
 +     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.2.0" >&5
 +$as_echo_n "checking for libxml-2.0 > 2.2.0... " >&6; }
 +
 +        if $PKG_CONFIG --exists "libxml-2.0 > 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 LIBXML2_CFLAGS" >&5
 +$as_echo_n "checking LIBXML2_CFLAGS... " >&6; }
 +            LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 > 2.2.0"|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.2.0"|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.2.0"`
 +
 +        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 test "${ac_cv_lib_xml2_htmlReadMemory+set}" = set; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  ac_check_lib_save_LIBS=$LIBS
 +LIBS="-lxml2  $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 htmlReadMemory ();
 +int
 +main ()
 +{
 +return htmlReadMemory ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_lib_xml2_htmlReadMemory=yes
 +else
 +  ac_cv_lib_xml2_htmlReadMemory=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_xml2_htmlReadMemory" >&5
 +$as_echo "$ac_cv_lib_xml2_htmlReadMemory" >&6; }
 +if test "x$ac_cv_lib_xml2_htmlReadMemory" = x""yes; then :
 +  HAVE_LIBXML2=yes
 +else
 +  HAVE_LIBXML2=no
 +fi
 +
 +    if test "${HAVE_LIBXML2}" = "yes"; then
 +
 +$as_echo "#define HAVE_LIBXML2 1" >>confdefs.h
 +
 +    else
 +      LIBXML2_LIBS=""
 +      LIBXML2_CFLAGS=""
 +    fi
 +  fi
 +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; }
@@@ -11523,7 -10400,8 +11534,7 @@@ if test $ac_cv_os_cray = yes; the
    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"
 -eval as_val=\$$as_ac_var
 -   if test "x$as_val" = x""yes; then :
 +if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
  
  cat >>confdefs.h <<_ACEOF
  #define CRAY_STACKSEG_END $ac_func
  
  
  if test x"$ac_cv_func_alloca_works" != xyes; then
 -   as_fn_error "a system implementation of alloca is required " "$LINENO" 5
 +   as_fn_error $? "a system implementation of alloca is required " "$LINENO" 5
  fi
  
  # fmod, logb, and frexp are found in -lm on most systems.
  { $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
 +  have_mail=yes
 +else
 +  have_mail=no
 +fi
  
 -  LIBS="-lmail $LIBS"
 +if test $have_mail = yes; then
 +  LIBS_MAIL=-lmail
 +  LIBS="$LIBS_MAIL $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBMAIL 1" >>confdefs.h
  
 +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 test "${ac_cv_lib_lockfile_maillock+set}" = set; then :
  { $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
 +  have_lockfile=yes
 +else
 +  have_lockfile=no
 +fi
  
 -  LIBS="-llockfile $LIBS"
 +if test $have_lockfile = yes; then
 +   LIBS_MAIL=-llockfile
 +   LIBS="$LIBS_MAIL $LIBS"
  
 -fi
 +$as_echo "#define HAVE_LIBLOCKFILE 1" >>confdefs.h
  
 +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
        # 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
  
  
    if test $ac_cv_prog_liblockfile = yes; then
 -    as_fn_error "Shared liblockfile found but can't link against it.
 +    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
  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
 +
 +
 +
  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 \
 +random lrand48 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 \
 +__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
 +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"
 -eval as_val=\$$as_ac_var
 -   if test "x$as_val" = x""yes; then :
 +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
  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"
 -eval as_val=\$$as_ac_var
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -11955,8 -10780,8 +11966,8 @@@ static time_t time_t_max
  static time_t time_t_min;
  
  /* Values we'll use to set the TZ environment variable.  */
 -static char *tz_strings[] = {
 -  (char *) 0, "TZ=GMT0", "TZ=JST-9",
 +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]))
@@@ -11973,7 -10798,7 +11984,7 @@@ spring_forward_gap (
       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");
 +  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
  
    tm.tm_year = 98;
    tm.tm_mon = 3;
  }
  
  static int
 -mktime_test1 (now)
 -     time_t now;
 +mktime_test1 (time_t now)
  {
    struct tm *lt;
    return ! (lt = localtime (&now)) || mktime (lt) == now;
  }
  
  static int
 -mktime_test (now)
 -     time_t now;
 +mktime_test (time_t now)
  {
    return (mktime_test1 (now)
          && mktime_test1 ((time_t) (time_t_max - now))
@@@ -12017,7 -10844,8 +12028,7 @@@ irix_6_4_bug (
  }
  
  static int
 -bigtime_test (j)
 -     int j;
 +bigtime_test (int j)
  {
    struct tm tm;
    time_t now;
@@@ -12061,7 -10889,7 +12072,7 @@@ year_2050_test (
       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");
 +  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
  
    t = mktime (&tm);
  
@@@ -12096,7 -10924,7 +12107,7 @@@ main (
    for (i = 0; i < N_STRINGS; i++)
      {
        if (tz_strings[i])
 -      putenv (tz_strings[i]);
 +      putenv ((char*) tz_strings[i]);
  
        for (t = 0; t <= time_t_max - delta; t += delta)
        if (! mktime_test (t))
@@@ -12148,7 -10976,7 +12159,7 @@@ ac_have_func=no # yes means we've foun
  
  # 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
 +  as_fn_error $? "$srcdir/$ac_config_libobj_dir/getloadavg.c is missing" "$LINENO" 5
  
  ac_save_LIBS=$LIBS
  
  # 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 :
 +# 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 :
    $as_echo_n "(cached) " >&6
  else
 -  ac_check_lib_save_LIBS=$LIBS
 -LIBS="-lncurses  $LIBS"
 +  ac_func_search_save_LIBS=$LIBS
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
  /* end confdefs.h.  */
  
  #ifdef __cplusplus
  extern "C"
  #endif
 -char tparm ();
 +char tputs ();
 +int
 +main ()
 +{
 +return tputs ();
 +  ;
 +  return 0;
 +}
 +_ACEOF
 +for ac_lib in '' ncurses terminfo termcap; do
 +  if test -z "$ac_lib"; then
 +    ac_res="none required"
 +  else
 +    ac_res=-l$ac_lib
 +    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
 +  fi
 +  if ac_fn_c_try_link "$LINENO"; then :
 +  ac_cv_search_tputs=$ac_res
 +fi
 +rm -f core conftest.err conftest.$ac_objext \
 +    conftest$ac_exeext
 +  if test "${ac_cv_search_tputs+set}" = set; then :
 +  break
 +fi
 +done
 +if test "${ac_cv_search_tputs+set}" = set; then :
 +
 +else
 +  ac_cv_search_tputs=no
 +fi
 +rm conftest.$ac_ext
 +LIBS=$ac_func_search_save_LIBS
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tputs" >&5
 +$as_echo "$ac_cv_search_tputs" >&6; }
 +ac_res=$ac_cv_search_tputs
 +if test "$ac_res" != no; then :
 +  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 +
 +else
 +  have_tputs_et_al=false
 +fi
 +
 +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 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 test "${emacs_cv_freebsd_terminfo+set}" = set; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <osreldate.h>
  int
  main ()
  {
 -return tparm ();
 +#if __FreeBSD_version < 400000
 +fail;
 +#endif
 +
    ;
    return 0;
  }
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
 -  ac_cv_lib_ncurses_tparm=yes
 +  emacs_cv_freebsd_terminfo=yes
  else
 -  ac_cv_lib_ncurses_tparm=no
 +  emacs_cv_freebsd_terminfo=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
 +    { $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
 +
 +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.  */
@@@ -13195,9 -11893,8 +13206,9 @@@ $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 :
  
  { $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
 -
 +  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; }
  { $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
 +  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 test "${ac_cv_lib_crypto_mit_des_cbc_encrypt+set}" = set; 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.  */
  
@@@ -13448,36 -12125,32 +13459,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" = x""yes; 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 test "${ac_cv_lib_k5crypto_mit_des_cbc_encrypt+set}" = set; 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.  */
  
@@@ -13497,29 -12170,25 +13508,29 @@@ 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" = x""yes; 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 :
  { $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
 +  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 :
  { $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
 +  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 :
    $as_echo_n "(cached) " >&6
  { $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"
 -
 +  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 :
  { $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
 +  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 :
    $as_echo_n "(cached) " >&6
  { $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"
 -
 +  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
  
  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
    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);
@@@ -14156,7 -12807,8 +14167,7 @@@ for ac_func in fork vfor
  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"
 -eval as_val=\$$as_ac_var
 -   if test "x$as_val" = x""yes; then :
 +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
@@@ -14530,25 -13182,24 +14541,25 @@@ if test "x$GCC" = xyes 
     && test x"`$CC --version 2> /dev/null | grep 'gcc.* 4.5.0'`" != x \
     && test x"`echo $CFLAGS | grep '\-O[23]'`" != x \
     && test x"`echo $CFLAGS | grep '\-fno-optimize-sibling-calls'`" = x; then
 -   as_fn_error "GCC 4.5.0 has problems compiling Emacs; see etc/PROBLEMS'." "$LINENO" 5
 +   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 \
 +version=`grep 'const char emacs_version' ${srcdir}/src/emacs.c \
         | 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
 +  as_fn_error $? "can't find current emacs version in \`${srcdir}/src/emacs.c'." "$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;}
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/src/emacs.c'." >&5
 +$as_echo "$as_me: WARNING: version mismatch between \`${srcdir}/configure.in' and \`${srcdir}/src/emacs.c'." >&2;}
  fi
  
  ### 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.
  
  
  
@@@ -14609,31 -13262,32 +14620,31 @@@ cat >>confdefs.h <<_ACEO
  _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
  
@@@ -14645,282 -13299,32 +14656,282 @@@ $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)
 +      ## Note that m/arm.h never bothered to undefine LIB_GCC first.
 +      if test "$machine" = "arm"; then
 +        LIB_GCC="-lgcc_s"
 +      else
 +        ## 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=
 +      fi
 +      ;;
 +
 +    ## 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
@@@ -14957,17 -13361,12 +14968,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}"
@@@ -15006,7 -13405,35 +15017,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-src/Makefile oldXMenu/Makefile doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile doc/lispref/Makefile src/Makefile lwlib/Makefile lisp/Makefile leim/Makefile"
  
  ac_config_commands="$ac_config_commands default"
  
@@@ -15093,7 -13520,6 +15104,7 @@@ DEFS=-DHAVE_CONFIG_
  
  ac_libobjs=
  ac_ltlibobjs=
 +U=
  for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
    # 1. Remove the extension, and $U if already installed.
    ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
@@@ -15109,7 -13535,6 +15120,7 @@@ LTLIBOBJS=$ac_ltlibobj
  
  
  
 +
  : ${CONFIG_STATUS=./config.status}
  ac_write_fail=0
  ac_clean_files_save=$ac_clean_files
@@@ -15256,19 -13681,19 +15267,19 @@@ export LANGUAG
  (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
  
  
 -# as_fn_error ERROR [LINENO LOG_FD]
 -# ---------------------------------
 +# as_fn_error STATUS ERROR [LINENO LOG_FD]
 +# ----------------------------------------
  # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
  # provided, also output the error to LOG_FD, referencing LINENO. Then exit the
 -# script with status $?, using 1 if that was 0.
 +# script with STATUS, using 1 if that was 0.
  as_fn_error ()
  {
 -  as_status=$?; test $as_status -eq 0 && as_status=1
 -  if test "$3"; then
 -    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 -    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
 +  as_status=$1; test $as_status -eq 0 && as_status=1
 +  if test "$4"; then
 +    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
 +    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
    fi
 -  $as_echo "$as_me: error: $1" >&2
 +  $as_echo "$as_me: error: $2" >&2
    as_fn_exit $as_status
  } # as_fn_error
  
@@@ -15464,7 -13889,7 +15475,7 @@@ $as_echo X"$as_dir" 
        test -d "$as_dir" && break
      done
      test -z "$as_dirs" || eval "mkdir $as_dirs"
 -  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
 +  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
  
  
  } # as_fn_mkdir_p
@@@ -15517,8 -13942,8 +15528,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.90, which was
 -generated by GNU Autoconf 2.65.  Invocation command line was
 +This file was extended by emacs $as_me 24.0.50, which was
 +generated by GNU Autoconf 2.67.  Invocation command line was
  
    CONFIG_FILES    = $CONFIG_FILES
    CONFIG_HEADERS  = $CONFIG_HEADERS
  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.90
 -configured by $0, generated by GNU Autoconf 2.65,
 +emacs config.status 24.0.50
 +configured by $0, generated by GNU Autoconf 2.67,
    with options \\"\$ac_cs_config\\"
  
 -Copyright (C) 2009 Free Software Foundation, Inc.
 +Copyright (C) 2010 Free Software Foundation, Inc.
  This config.status script is free software; the Free Software Foundation
  gives unlimited permission to copy, distribute and modify it."
  
@@@ -15603,16 -14028,11 +15614,16 @@@ ac_need_defaults=
  while test $# != 0
  do
    case $1 in
 -  --*=*)
 +  --*=?*)
      ac_option=`expr "X$1" : 'X\([^=]*\)='`
      ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
      ac_shift=:
      ;;
 +  --*=)
 +    ac_option=`expr "X$1" : 'X\([^=]*\)='`
 +    ac_optarg=
 +    ac_shift=:
 +    ;;
    *)
      ac_option=$1
      ac_optarg=$2
      $ac_shift
      case $ac_optarg in
      *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
 +    '') as_fn_error $? "missing file argument" ;;
      esac
      as_fn_append CONFIG_FILES " '$ac_optarg'"
      ac_need_defaults=false;;
      ac_need_defaults=false;;
    --he | --h)
      # Conflict between --help and --header
 -    as_fn_error "ambiguous option: \`$1'
 +    as_fn_error $? "ambiguous option: \`$1'
  Try \`$0 --help' for more information.";;
    --help | --hel | -h )
      $as_echo "$ac_cs_usage"; exit ;;
      ac_cs_silent=: ;;
  
    # This is an error.
 -  -*) as_fn_error "unrecognized option: \`$1'
 +  -*) as_fn_error $? "unrecognized option: \`$1'
  Try \`$0 --help' for more information." ;;
  
    *) as_fn_append ac_config_targets " $1"
@@@ -15700,7 -14119,7 +15711,7 @@@ 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"
 +GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"
  
  _ACEOF
  
    case $ac_config_target in
      "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h:src/config.in" ;;
      "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 -    "lib-src/Makefile.c") CONFIG_FILES="$CONFIG_FILES lib-src/Makefile.c:lib-src/Makefile.in" ;;
 +    "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" ;;
      "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
  
 -  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
 +  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
    esac
  done
  
@@@ -15762,31 -14181,14 +15773,31 @@@ $debug |
  {
    tmp=./conf$$-$RANDOM
    (umask 077 && mkdir "$tmp")
 -} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
  
  # 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
@@@ -15796,7 -14198,7 +15807,7 @@@ if test "x$ac_cr" = x; the
  fi
  ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
  if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
 -  ac_cs_awk_cr='\r'
 +  ac_cs_awk_cr='\\r'
  else
    ac_cs_awk_cr=$ac_cr
  fi
  echo 'BEGIN {' >"$tmp/subs1.awk" &&
  _ACEOF
  
 +# Create commands to substitute file output variables.
 +{
 +  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
 +  echo 'cat >>"\$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" &&
    echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
    echo "_ACEOF"
  } >conf$$subs.sh ||
 -  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 +  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
  ac_delim='%!_!# '
  for ac_last_try in false false false false false :; do
    . ./conf$$subs.sh ||
 -    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 +    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
  
    ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
    if test $ac_delim_n = $ac_delim_num; then
      break
    elif $ac_last_try; then
 -    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 +    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
    else
      ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
    fi
@@@ -15891,7 -14282,7 +15902,7 @@@ _ACAW
  cat >>"\$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
@@@ -15927,28 -14312,20 +15938,28 @@@ if sed "s/$ac_cr//" < /dev/null > /dev/
  else
    cat
  fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
 -  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 +  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
  _ACEOF
  
 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 +# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
 +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
  # trailing colons and then remove the whole line if VPATH becomes empty
  # (actually we leave an empty line to preserve line numbers).
  if test "x$srcdir" = x.; then
 -  ac_vpsub='/^[        ]*VPATH[        ]*=/{
 -s/:*\$(srcdir):*/:/
 -s/:*\${srcdir}:*/:/
 -s/:*@srcdir@:*/:/
 -s/^\([^=]*=[   ]*\):*/\1/
 +  ac_vpsub='/^[        ]*VPATH[        ]*=[    ]*/{
 +h
 +s///
 +s/^/:/
 +s/[    ]*$/:/
 +s/:\$(srcdir):/:/g
 +s/:\${srcdir}:/:/g
 +s/:@srcdir@:/:/g
 +s/^:*//
  s/:*$//
 +x
 +s/\(=[         ]*\).*/\1/
 +G
 +s/\n//
  s/^[^=]*=[     ]*$//
  }'
  fi
@@@ -15976,7 -14353,7 +15987,7 @@@ for ac_last_try in false false :; d
    if test -z "$ac_t"; then
      break
    elif $ac_last_try; then
 -    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
 +    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
    else
      ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
    fi
@@@ -16061,7 -14438,7 +16072,7 @@@ cat >>$CONFIG_STATUS <<_ACEOF || ac_wri
  _ACAWK
  _ACEOF
  cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 -  as_fn_error "could not setup config headers machinery" "$LINENO" 5
 +  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
  fi # test -n "$CONFIG_HEADERS"
  
  
    esac
    case $ac_mode$ac_tag in
    :[FHL]*:*);;
 -  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
 +  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
    :[FH]-) ac_tag=-:-;;
    :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
    esac
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
 -         as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
 +         as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
        esac
        case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
        as_fn_append ac_file_inputs " '$ac_f'"
@@@ -16129,7 -14506,7 +16140,7 @@@ $as_echo "$as_me: creating $ac_file" >&
  
      case $ac_tag in
      *:-:* | *:-) cat >"$tmp/stdin" \
 -      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
 +      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
      esac
      ;;
    esac
@@@ -16259,28 -14636,23 +16270,28 @@@ s&@abs_top_builddir@&$ac_abs_top_buildd
  s&@INSTALL@&$ac_INSTALL&;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 "$tmp/subs.awk"
 +else
 +  $AWK -f "$tmp/subs.awk" | $SHELL
 +fi >$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"; } &&
    { $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
 +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;}
 +which seems to be undefined.  Please make sure it is defined" >&2;}
  
    rm -f "$tmp/stdin"
    case $ac_file in
    -) cat "$tmp/out" && rm -f "$tmp/out";;
    *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
    esac \
 -  || as_fn_error "could not create $ac_file" "$LINENO" 5
 +  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
   ;;
    :H)
    #
        $as_echo "/* $configure_input  */" \
        && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
      } >"$tmp/config.h" \
 -      || as_fn_error "could not create $ac_file" "$LINENO" 5
 +      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
      if diff "$ac_file" "$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" \
 -      || as_fn_error "could not create $ac_file" "$LINENO" 5
 +      || 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" \
 -      || as_fn_error "could not create -" "$LINENO" 5
 +      || as_fn_error $? "could not create -" "$LINENO" 5
    fi
   ;;
  
@@@ -16321,9 -14693,52 +16332,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
@@@ -16340,7 -14755,7 +16351,7 @@@ _ACEO
  ac_clean_files=$ac_clean_files_save
  
  test $ac_write_fail = 0 ||
 -  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 +  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
  
  
  # configure is writing to config.log, and then calls config.status.
@@@ -16361,7 -14776,7 +16372,7 @@@ if test "$no_create" != yes; the
    exec 5>>config.log
    # Use ||, not &&, to avoid exiting from the if with $? = 1, which
    # would make configure fail if this is the last instruction.
 -  $ac_cs_success || as_fn_exit $?
 +  $ac_cs_success || as_fn_exit 1
  fi
  if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
diff --combined configure.in
index a4ace0aa8fb2a5d01f3253f648ebf8c02e33050d,ac42e7cfde1e18458c6a759d18a5b466cc78e524..cbb0298097fac90bfe25389db6827bdbfd547efc
@@@ -2,11 -2,9 +2,11 @@@ 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  Free Software Foundation, Inc.
 +dnl  Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004,
 +dnl    2005, 2006, 2007, 2008, 2009, 2010
 +dnl    Free Software Foundation, Inc.
  dnl
  dnl  This file is part of GNU Emacs.
  dnl
@@@ -23,8 -21,8 +23,8 @@@ 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.90)
 +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)
  
@@@ -32,10 -30,6 +32,10 @@@ dnl Support for --program-prefix, --pro
  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'
@@@ -97,26 -91,10 +97,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])
@@@ -129,7 -107,7 +129,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
@@@ -155,8 -132,6 +155,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])
@@@ -170,23 -145,20 +170,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],
@@@ -200,7 -172,7 +200,7 @@@ f
  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([gnustep-conf],dnl
@@@ -308,16 -280,6 +308,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],
@@@ -396,7 -359,7 +396,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
    *-*-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 ;;
 +      arm*)             machine=arm ;;
 +      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 ;;
 +      arm-*)       machine=arm ;;
 +      hppa-*)      machine=hp800 ;;
 +      i[3456]86-*) machine=intel386 ;;
 +      m68k-*)      machine=m68k ;;
 +      powerpc-*)   machine=macppc ;;
 +      mips-*)      machine=mips ;;
 +      mipse[bl]-*) machine=mips ;;
 +      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 ;;
 +      arm-*)     machine=arm ;;
 +      hppa-*)    machine=hp800 ;;
 +      i386-*)    machine=intel386 ;;
 +      powerpc-*) machine=macppc ;;
 +      sparc*)    machine=sparc ;;
 +      vax-*)     machine=vax ;;
      esac
    ;;
  
    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
    ;;
  
  
    *-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
      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
@@@ -655,6 -654,22 +655,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
      ;;
@@@ -722,10 -737,14 +722,10 @@@ 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
@@@ -757,58 -776,15 +757,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)
@@@ -837,7 -813,7 +837,7 @@@ f
  if test "$MAKEINFO" = "no"; then
    if test "x${with_makeinfo}" = "xno"; then
      MAKEINFO=off
 -  elif ! test -e $srcdir/info/emacs; then
 +  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
  
  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.
@@@ -862,170 -840,160 +862,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.
 -
 -### 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
 +# The value of CPP is a quoted variable reference, so we need to do this
 +# to get its actual value...
 +CPP=`eval "echo $CPP"`
  
 -#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
 +dnl Not used by any currently supported platform.
 +dnl The function dump-emacs will not be defined and temacs will do
 +dnl (load "loadup") automatically unless told otherwise.
 +CANNOT_DUMP=no
 +case "$opsys" in
 +  your-opsys-here)
 +   CANNOT_DUMP=yes
 +   AC_DEFINE(CANNOT_DUMP, 1, [Define if Emacs cannot be dumped on your system.])
 +  ;;
 +esac
 +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...
 +   test "$machine" = "mips" && LD_SWITCH_SYSTEM="-G 0"
 +   ;;
  
 -#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:
@@@ -1034,84 -1002,30 +1034,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
@@@ -1167,8 -1081,7 +1167,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)],
@@@ -1357,15 -1257,15 +1357,15 @@@ AH_TEMPLATE(POINTER_TYPE
            [Define as `void' if your compiler accepts `void *'; otherwise
             define as `char'.])dnl
  
 -
 -
 -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
 +dnl Check for endianess
 +AC_C_BIGENDIAN
  
  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}
@@@ -1452,9 -1340,6 +1452,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
@@@ -1484,39 -1369,27 +1484,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.
@@@ -1617,29 -1476,11 +1617,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.
@@@ -1686,18 -1517,6 +1686,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"
  
@@@ -1800,15 -1618,6 +1800,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
@@@ -1822,11 -1631,12 +1822,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.
@@@ -1982,35 -1776,14 +1982,37 @@@ if test "${HAVE_X11}" = "yes" && test "
     PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
     if test "$HAVE_GCONF" = yes; then
        AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
+       dnl Newer GConf doesn't link with g_objects, so this is not defined.
+       AC_CHECK_FUNCS([g_type_init])
     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)
      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,
@@@ -2070,11 -1840,6 +2072,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
@@@ -2090,18 -1855,6 +2092,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 "$machine" in
 +  ## These machines 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>],
@@@ -2120,8 -1872,16 +2122,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
@@@ -2323,7 -2083,6 +2325,7 @@@ els
      HAVE_LIBOTF=no
      HAVE_M17N_FLT=no
  fi
 +
  ### End of font-backend (under X11) section.
  
  AC_SUBST(FREETYPE_CFLAGS)
@@@ -2337,7 -2096,6 +2339,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,
@@@ -2361,14 -2119,11 +2363,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.2.0, 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,
@@@ -2587,24 -2304,13 +2589,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 \
 +random lrand48 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 \
 +__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)
 +cfmakeraw cfsetspeed isnan copysign __executable_start)
  
  AC_CHECK_HEADERS(sys/un.h)
  
@@@ -2706,102 -2370,10 +2708,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)
 +    if test $ac_cv_search_tputs = -lterminfo; then
 +      TERMINFO=yes
 +      LIBS_TERMCAP="-lterminfo"
 +    else
 +      LIBS_TERMCAP="-ltermcap"
 +    fi
 +    ;;
 +
 +esac
 +
 +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?
  
 +# 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>
@@@ -2829,9 -2401,8 +2831,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)
@@@ -2952,6 -2459,14 +2954,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);
@@@ -3112,20 -2627,19 +3114,20 @@@ if test "x$GCC" = xyes 
  fi
  
  #### Find out which version of Emacs this is.
 -[version=`grep 'defconst[      ]*emacs-version' ${srcdir}/lisp/version.el \
 +[version=`grep 'const char emacs_version' ${srcdir}/src/emacs.c \
         | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`]
  if test x"${version}" = x; then
 -  AC_MSG_ERROR([can't find current emacs version in `${srcdir}/lisp/version.el'.])
 +  AC_MSG_ERROR([can't find current emacs version in `${srcdir}/src/emacs.c'.])
  fi
  if test x"${version}" != x"$PACKAGE_VERSION"; then
 -  AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/lisp/version.el'.])
 +  AC_MSG_WARN([version mismatch between `${srcdir}/configure.in' and `${srcdir}/src/emacs.c'.])
  fi
  
  ### 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)
@@@ -3146,14 -2660,12 +3148,14 @@@ 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)
@@@ -3162,7 -2674,11 +3164,7 @@@ 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}",
@@@ -3173,303 -2689,56 +3175,303 @@@ AC_DEFINE_UNQUOTED(config_machfile,  "$
                   [Define to the used machine dependent file.])
  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)
 +      ## Note that m/arm.h never bothered to undefine LIB_GCC first.
 +      if test "$machine" = "arm"; then
 +        LIB_GCC="-lgcc_s"
 +      else
 +        ## 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=
 +      fi
 +      ;;
 +
 +    ## 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.
@@@ -3500,12 -2769,37 +3502,12 @@@ 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'.  */
  #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
  /* 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
  
  #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__
@@@ -3607,17 -2942,23 +3609,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
 +
 +/* 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 */
  
  /*
@@@ -3695,17 -3039,12 +3697,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-src/Makefile oldXMenu/Makefile \
        doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
 -      doc/lispref/Makefile src/Makefile.c:src/Makefile.in \
 +      doc/lispref/Makefile src/Makefile \
        lwlib/Makefile lisp/Makefile leim/Makefile, [
  
  ### Make the necessary directories, if they don't exist.
@@@ -3762,13 -3113,59 +3764,13 @@@ 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
  fi
  
 -], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPP_NEED_TRADITIONAL="$CPP_NEED_TRADITIONAL" CPPFLAGS="$CPPFLAGS" cpp_undefs="$cpp_undefs"])
 +], [GCC="$GCC" NON_GNU_CPP="$NON_GNU_CPP" CPP="$CPP" CPPFLAGS="$CPPFLAGS"])
  
 -m4_if(dnl     Do not change this comment
 -   arch-tag: 156a4dd5-bddc-4d18-96ac-f37742cf6a5e
 -)dnl
diff --combined doc/lispref/ChangeLog
index d6853e0066d60832a5e119b9f0bc2f84088c970b,79d6f71c1b4053a67d57c8890fef28a051748cb1..8f57bc45da57b8e4e789a4d29b13f340878fa005
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
++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.
  
 -      * functions.texi (Obsolete Functions): Document
 -      set-advertised-calling-convention.
 +      * functions.texi (Obsolete Functions):
 +      Document set-advertised-calling-convention.
  
        * minibuf.texi (Basic Completion): Document completion-in-region.
        (Programmed Completion): Document completion-annotate-function.
  
        * 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  Free Software Foundation, Inc.
 +  Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 +    2007, 2008, 2009, 2010  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: 985ae0ce-df29-475b-b3f8-4bbcbf6f7fda
diff --combined doc/lispref/loading.texi
index dee2a0252ebc897314b6396d7de9634fa392513e,bb8c34caddfb2d88a344ac3bad238b7c6339ee7f..05d836140c73eeb59356085afac34144c6254a69
@@@ -107,6 -107,10 +107,10 @@@ in @code{load-path}, where @code{nil} s
  @code{load-path}, then all three suffixes in the second directory, and
  so on.  @xref{Library Search}.
  
+ Whatever the name under which the file is eventually found, and the
+ directory where Emacs found it, Emacs sets the value of the variable
+ @code{load-file-name} to that file's name.
  If you get a warning that @file{foo.elc} is older than @file{foo.el}, it
  means you should consider recompiling @file{foo.el}.  @xref{Byte
  Compilation}.
@@@ -157,6 -161,12 +161,12 @@@ This variable is non-@code{nil} if Emac
  file, and it is @code{nil} otherwise.
  @end defvar
  
+ @defvar load-file-name
+ When Emacs is in the process of loading a file, this variable's value
+ is the name of that file, as Emacs found it during the search
+ described earlier in this section.
+ @end defvar
  @defvar load-read-function
  @anchor{Definition of load-read-function}
  @c do not allow page break at anchor; work around Texinfo deficiency.
@@@ -367,6 -377,13 +377,6 @@@ example) is read without decoding, the 
  unibyte text, and its string constants will be unibyte strings.
  @xref{Coding Systems}.
  
 -  To make the results more predictable, Emacs always performs decoding
 -into the multibyte representation when loading Lisp files, even if it
 -was started with the @samp{--unibyte} option.  This means that string
 -constants with non-@acronym{ASCII} characters translate into multibyte
 -strings.  The only exception is when a particular file specifies no
 -decoding.
 -
    The reason Emacs is designed this way is so that Lisp programs give
  predictable results, regardless of how Emacs was started.  In addition,
  this enables programs that depend on using multibyte text to work even
diff --combined doc/lispref/text.texi
index 04e1e7141331ffcbf648042498c328876ce9be58,2510607475b03e0ade3e06fb8d702c2d38abb516..b6723a0bee4d2f15b33f0247ea63d521d1e17234
@@@ -59,7 -59,6 +59,7 @@@ the character after point
                         position stored in a register.
  * Base 64::          Conversion to or from base 64 encoding.
  * MD5 Checksum::     Compute the MD5 "message digest"/"checksum".
 +* Parsing HTML::     Parsing HTML and XML.
  * Atomic Changes::   Installing several buffer changes "atomically".
  * Change Hooks::     Supplying functions to be run when text is changed.
  @end menu
@@@ -901,10 -900,10 +901,10 @@@ from the buffer.  It returns @code{nil}
  The command does not set @code{this-command} to @code{kill-region}, so a
  subsequent kill command does not append to the same kill ring entry.
  
- Don't call @code{copy-region-as-kill} in Lisp programs unless you aim to
- support Emacs 18.  For newer Emacs versions, it is better to use
- @code{kill-new} or @code{kill-append} instead.  @xref{Low-Level Kill
- Ring}.
+ @c FIXME Why is it better?  Why isn't copy-region-as-kill obsolete then?
+ @c Why is it used in many places in Emacs?
+ In Lisp programs, it is better to use @code{kill-new} or
@code{kill-append} instead of this command.  @xref{Low-Level Kill Ring}.
  @end deffn
  
  @node Yanking
@@@ -1042,8 -1041,8 +1042,8 @@@ text property, if there is one
  @subsection Low-Level Kill Ring
  
    These functions and variables provide access to the kill ring at a
- lower level, but still convenient for use in Lisp programs, because they
- take care of interaction with window system selections
+ lower level, but are still convenient for use in Lisp programs,
because they take care of interaction with window system selections
  (@pxref{Window System Selections}).
  
  @defun current-kill n &optional do-not-move
@@@ -1127,13 -1126,16 +1127,13 @@@ use @code{string=} to compare it with t
  @defvar interprogram-cut-function
  This variable provides a way of communicating killed text to other
  programs, when you are using a window system.  Its value should be
 -@code{nil} or a function of one required and one optional argument.
 +@code{nil} or a function of one required argument.
  
  If the value is a function, @code{kill-new} and @code{kill-append} call
 -it with the new first element of the kill ring as the first argument.
 -The second, optional, argument has the same meaning as the @var{push}
 -argument to @code{x-set-cut-buffer} (@pxref{Definition of
 -x-set-cut-buffer}) and only affects the second and later cut buffers.
 +it with the new first element of the kill ring as the argument.
  
  The normal use of this function is to set the window system's primary
 -selection (and first cut buffer) from the newly killed text.
 +selection from the newly killed text.
  @xref{Window System Selections}.
  @end defvar
  
@@@ -3230,16 -3232,12 +3230,16 @@@ the @code{line-prefix} variable).  @xre
  @cindex hooks for changing a character
  @kindex modification-hooks @r{(text property)}
  If a character has the property @code{modification-hooks}, then its
 -value should be a list of functions; modifying that character calls all
 -of those functions.  Each function receives two arguments: the beginning
 -and end of the part of the buffer being modified.  Note that if a
 -particular modification hook function appears on several characters
 -being modified by a single primitive, you can't predict how many times
 -the function will be called.
 +value should be a list of functions; modifying that character calls
 +all of those functions before the actual modification.  Each function
 +receives two arguments: the beginning and end of the part of the
 +buffer being modified.  Note that if a particular modification hook
 +function appears on several characters being modified by a single
 +primitive, you can't predict how many times the function will
 +be called.
 +Furthermore, insertion will not modify any existing character, so this
 +hook will only be run when removing some characters, replacing them
 +with others, or changing their text-properties.
  
  If these functions modify the buffer, they should bind
  @code{inhibit-modification-hooks} to @code{t} around doing so, to
@@@ -4111,49 -4109,6 +4111,49 @@@ using the specified or chosen coding sy
  coding instead.
  @end defun
  
 +@node Parsing HTML
 +@section Parsing HTML
 +@cindex parsing html
 +@cindex parsing xml
 +
 +Emacs provides an interface to the @code{libxml2} library via two
 +functions: @code{html-parse-buffer} and @code{xml-parse-buffer}.  The
 +HTML function will parse ``real world'' HTML and try to return a
 +sensible parse tree, while the XML function is somewhat stricter about
 +syntax.
 +
 +They both take a two optional parameter.  The first is a buffer, and
 +the second is a base URL to be used to expand relative URLs in the
 +document, if any.
 +
 +Here's an example demonstrating the structure of the parsed data you
 +get out.  Given this HTML document:
 +
 +@example
 +<html><hEad></head><body width=101><div class=thing>Foo<div>Yes
 +@end example
 +
 +You get this parse tree:
 +
 +@example
 +(html
 + (head)
 + (body
 +  (:width . "101")
 +  (div
 +   (:class . "thing")
 +   (text . "Foo")
 +   (div
 +    (text . "Yes\n")))))
 +@end example
 +
 +It's a simple tree structure, where the @code{car} for each node is
 +the name of the node, and the @code{cdr} is the value, or the list of
 +values.
 +
 +Attributes are coded the same way as child nodes, but with @samp{:} as
 +the first character.
 +
  @node Atomic Changes
  @section Atomic Change Groups
  @cindex atomic changes
@@@ -4324,6 -4279,4 +4324,4 @@@ code that is itself run from a modifica
  @code{inhibit-modification-hooks} to @code{nil}.
  @end defvar
  
- @ignore
-    arch-tag: 3721e738-a1cb-4085-bc1a-6cb8d8e1d32b
- @end ignore
diff --combined doc/misc/ChangeLog
index 21835c82f67fd4a08297c9d4997089ff0488a3ed,a47dff59e930a950ed333b6dd15b4f25c13a30a9..f9e55ffb5ee669ade049cd999061121d071f7a69
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +2010-11-18  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Misc Article): Document gnus-inhibit-images.
 +
++2010-11-17  Glenn Morris  <rgm@gnu.org>
+       * edt.texi: Remove information about Emacs 19.
 -2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
++2010-11-17  Michael Albinus  <michael.albinus@gmx.de>
+       * trampver.texi: Update release number.
 -2010-11-03  Jay Belanger  <jay.p.belanger@gmail.com>
 +2010-11-12  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Article Washing): Fix typo.
 +
 +2010-11-11  Noorul Islam  <noorul@noorul.com>
 +
 +      * org.texi: Fix typo.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Using capture): Explain that refiling is
 +      sensitive to cursor position.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Images and tables): Add cross reference to link section.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi: Document the <c> cookie.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi: multi-line header arguments :PROPERTIES: :ID:
 +      b77c8857-6c76-4ea9-8a61-ddc2648d96c4 :END:.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (CSS support): Document :HTML_CONTAINER_CLASS: property.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Project alist): Mention that this is a property list.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document that
 +      file names remain visible when encrypting the MobileOrg files.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document which
 +      versions are needed for encryption.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (noweb): Update :noweb documentation to
 +      reflect the new "tangle" argument.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Batch execution): Improve tangling script in
 +      documentation.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Handling links):
 +      (In-buffer settings): Document inlining images on startup.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document use of
 +      crypt password.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Add date related link type escapes.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Add mew in table for link type
 +      escapes.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Fix typo in link type escapes.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks): Another documentation tweak.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks): Documentation tweak.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks):
 +      Update documentation to mention inline code block syntax.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (comments): Improve wording.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (comments): Document the new :comments header arguments.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Installation): Remove the special
 +      installation instructions for XEmacs.
 +
 +2010-11-11  Jambunathan K  <kjambunathan@gmail.com>  (tiny change)
 +
 +      * org.texi (Easy Templates): New section.  Documents quick
 +      insertion of empty structural elements.
 +
 +2010-11-11  Noorul Islam  <noorul@noorul.com>
 +
 +      * org.texi: Fix doc.
 +
 +2010-11-11  Jambunathan K  <kjambunathan@gmail.com>  (tiny change)
 +
 +      * org.texi (The date/time prompt): Document specification
 +      of time ranges.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Internal links): Document the changes in
 +      internal links.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Agenda commands): Document the limitation for
 +      the filter preset - it can only be used for an entire agenda
 +      view, not in an individual block in a block agenda.
 +
 +2010-11-11  Eric S Fraga  <e.fraga@ucl.ac.uk>
 +
 +      * org.texi (iCalendar export): Document alarm creation.
 +
 +2010-11-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Type Conversion): Introduce `:unix-fd' type mapping.
 +
 +2010-11-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Washing): Document gnus-article-treat-non-ascii.
 +
 +2010-11-09  Jay Belanger  <jay.p.belanger@gmail.com>
  
        * calc.texi: Use emacsver.texi to determine Emacs version.
  
 -2010-10-30  Glenn Morris  <rgm@gnu.org>
 +2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
 +      since that works by default.
 +
 +2010-11-03  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
 +
 +      * gnus.texi (Customizing the IMAP Connection): Document
 +      `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
 +
 +2010-11-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Remote shell setup): New item "Interactive shell
 +      prompt".  Reported by Christian Millour <cm@abtela.com>.
 +      (Remote shell setup, Remote processes): Use @code{} for
 +      environment variables.
 +
 +2010-11-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * ediff.texi (Quick Help Commands, Miscellaneous):
 +      * gnus.texi (Agent Variables, Configuring nnmairix): Spelling fix.
 +
 +2010-10-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Paging the Article): Document C-u g/C-u C-u g.
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * mh-e.texi (Preface, From Bill Wohler): Change 23 to past tense.
  
 -2010-10-29  Glenn Morris  <rgm@gnu.org>
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * cc-mode.texi: Remove reference to defunct viewcvs URL.
  
 -2010-10-22  Juanma Barranquero  <lekktu@gmail.com>
 +2010-10-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Client-Side IMAP Splitting): Mention
 +      nnimap-unsplittable-articles.
 +
 +2010-10-29  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Finding the News): Remove references to obsoletes
 +      variables `gnus-nntp-server' and `gnus-secondary-servers'.
 +
 +2010-10-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Add -I$(emacsdir).
 +      (ENVADD): Remove extra -I$(emacsdir), included in $(MAKEINFO).
 +      ($(infodir)/efaq): Remove -I$(emacsdir), included in $(MAKEINFO).
 +      ($(infodir)/calc, calc.dvi): Depend on $(emacsdir)/emacsver.texi.
 +
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO, ENVADD): Add $emacsdir to include path.
 +      (($(infodir)/calc, calc.dvi, calc.pdf): Depend on emacsver.texi.
 +      ($(infodir)/efaq): Remove -I option now in $MAKEINFO.
 +
 +2010-10-25  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Mail-mode integration): Add alternative key bindings
 +      for epa-mail commands; escape comma.
 +      Don't use the word "PGP", since it is a non-free program.
 +
 +2010-10-24  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi: Use emacsver.texi to determine Emacs version.
 +
 +2010-10-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * gnus.texi (Group Parameters, Buttons): Fix typos.
  
 +2010-10-22  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * gnus.texi (Subscription Commands): Mention that you can also
 +      subscribe to new groups via the Server buffer, which is probably more
 +      convenient when subscribing to many groups.
 +
 +2010-10-21  Julien Danjou  <julien@danjou.info>
 +
 +      * message.texi (Message Headers): Allow message-default-headers to be a
 +      function.
 +
 +2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-news.texi: Mention new archive defaults.
 +
 +2010-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (RSS): Remove nnrss-wash-html-in-text-plain-parts.
 +
 +2010-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document the function value of
 +      gnus-blocked-images.
 +      (Article Washing): shr and gnus-w3m, not the direct function names.
 +
 +2010-10-20  Julien Danjou  <julien@danjou.info>
 +
 +      * emacs-mime.texi (Flowed text): Add a note about mml-enable-flowed
 +      variable.
 +
 +2010-10-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): The port strings are
 +      strings.
 +      (Document Groups): Mention git.
 +
 +2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs
 +      bzr/Gnus git sync.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last
 +      change.
 +
 +2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix up the
 +      @item syntax for in-Emacs makeinfo.
 +
 +2010-10-13  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix syntax and
 +      trim sentence.
 +
 +2010-10-12  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Caching Passphrases):
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Clarify
 +      some configurations require to set up gpg-agent.
 +
 +2010-10-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (.texi.dvi): Remove unnecessary suffix rule.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Spam Package Introduction): Mention `$'.
 +
 +2010-10-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (emacsdir): New variable.
 +      ($(infodir)/efaq, faq.dvi): Depend on emacsver.texi.
 +      (ENVADD, $(infodir)/efaq): Add -I$(emacsdir).
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (mostlyclean): Delete *.toc.
 +
 +      * Makefile.in: Use $< in rules.
 +
 +      * Makefile.in (maintainer-clean): Remove harmless, long-standing error.
 +
 +      * Makefile.in ($(infodir)): Delete rule.
 +      (mkinfodir): New.  Use it in all the info rules, rather than depending
 +      on infodir.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * gnus.texi (Article Washing): Fix previous change.
 +
 +      * Makefile.in (emacsdir): New variable.
 +      ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo.
 +      Depend on emacsver.texi.
 +
 +      * faq.texi (VER): Replace with EMACSVER from emacsver.texi.
 +
 +      * Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules.
 +
 +2010-10-08  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi: Add mm-shr.
 +
 +2010-10-08  Ludovic Courtès  <ludo@gnu.org>
 +
 +      * gnus.texi (Finding the Parent, The Gnus Registry)
 +      (Registry Article Refer Method): Update docs for nnregistry.el.
 +
 +2010-10-08  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * auth.texi (Help for users)
 +      (GnuPG and EasyPG Assistant Configuration): Update docs.
 +
  2010-10-08  Glenn Morris  <rgm@gnu.org>
  
        * cl.texi (Organization, Installation, Old CL Compatibility):
        Deprecate cl-compat for new code.
 -
 -2010-10-07  Glenn Morris  <rgm@gnu.org>
 +      (Usage, Installation): Remove outdated information.
  
        * eudc.texi (CCSO PH/QI, LDAP Requirements): Remove old information.
  
 +2010-10-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly.
 +
 +2010-10-06  Julien Danjou  <julien@danjou.info>
 +
 +      * sieve.texi (Manage Sieve API): Document sieve-manage-authenticate.
 +
 +      * message.texi (PGP Compatibility): Remove reference to gpg-2comp,
 +      broken link.
 +
 +      * gnus-faq.texi (FAQ 8-3): Remove references to my.gnus.org.
 +
 +      * gnus.texi (Comparing Mail Back Ends): Remove broken link and allusion
 +      to ReiserFS.
 +
 +      * gnus-faq.texi (FAQ 5-5): Fix Flyspell URL.
 +      (FAQ 7-1): Fix getmail URL.
 +
 +2010-10-06  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Caching Passphrases): New section.
 +
  2010-10-06  Glenn Morris  <rgm@gnu.org>
  
 -      * cl.texi (Usage, Installation): Remove outdated information.
 +      * Makefile.in (SHELL): Set it.
 +      (info): Move the mkdir dependency to the individual info files.
 +      (mostlyclean): Tidy up.
 +      (clean): Only delete the specific dvi and pdf files.
 +      (maintainer-clean): Be more restrictive in what we delete.
 +      ($(infodir)): Add parallel build workaround.
 +
 +2010-10-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Misc Article): Document gnus-widen-article-window.
 +
 +2010-10-03  Julien Danjou  <julien@danjou.info>
 +
 +      * emacs-mime.texi (Display Customization): Update
 +      mm-inline-large-images documentation and add documentation for
 +      mm-inline-large-images-proportion.
 +
 +2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Frequently Asked Questions): Mention
 +      remote-file-name-inhibit-cache.
 +
 +2010-10-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Splitting Mail): Fix @xref syntax.
 +      (Splitting Mail): Really fix the @ref syntax.
 +
 +2010-10-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Splitting Mail): Mention the new fancy splitting
 +      function.
 +      (Article Hiding): Add google banner example.  Suggested by Benjamin
 +      Xu.
 +
 +2010-09-30  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus.texi (Spam Package Configuration Examples, SpamOracle): Remove
 +      nnimap-split-rule from examples.
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Mail Source Specifiers): Remove webmail.el mentions.
 +      (NNTP): Document nntp-server-list-active-group.  Suggested by Barry
 +      Fishman.
 +      (Client-Side IMAP Splitting): Add nnimap-split-fancy.
 +
 +2010-09-30  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Gravatars): Fix documentation about
 +      gnu-gravatar-properties.
 +
 +2010-09-29  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Bug Reports): New section.
 +
 +2010-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (top_srcdir): Remove unused variable.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Using IMAP): Remove the @acronyms from the headings.
 +      (Client-Side IMAP Splitting): Document 'default.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): Document
 +      nnimap-fetch-partial-articles.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-news.texi: Mention nnimap-inbox.
 +
 +      * gnus.texi (Picons): Document gnus-picon-inhibit-top-level-domains.
 +
 +2010-09-26  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Oort Gnus): Remove mention of ssl.el.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Security): Remove gpg.el mention.
 +
 +2010-09-26  Andreas Seltenreich  <seltenreich@gmx.de>
 +
 +      * gnus.texi (Browse Foreign Server): New variable
 +      gnus-browse-subscribe-newsgroup-method.
 +
 +      * gnus-news.texi: Mention it.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (NoCeM): Removed.
 +      (Startup Variables): No jingle.
 +
 +2010-09-25  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * woman.texi (Interface Options): xz compression is now supported.
 +
 +2010-09-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Commands): Document gnus-fetch-partial-articles.
 +      (Unavailable Servers): Document gnus-server-copy-server.
 +      (Using IMAP): Document the new nnimap.
 +
 +2010-09-25  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Customizing Articles): Remove gnus-treat-translate.
 +
 +2010-09-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * url.texi (Disk Caching): Tweak previous change.
 +
 +2010-09-24  Julien Danjou  <julien@danjou.info>
 +
 +      * url.texi (Disk Caching): Mention url-cache-expire-time,
 +      url-cache-expired, and url-fetch-from-cache.
 +
 +2010-09-24  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi: Add Gravatars.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Startup Variables): Mention gnus-use-backend-marks.
 +
 +2010-09-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Expunging mailboxes): Update name of the expunging
 +      command.
 +
 +2010-09-20  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * emacs-mime.texi (rfc2047): Update description for
 +      rfc2047-encode-parameter.
 +
 +2010-09-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove "ssh1_old", "ssh2_old" and
 +      "fish" methods.
 +      (External methods): Remove "scp1_old" and "scp2_old" methods.
 +
 +2010-09-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi: Remove Japanese manual.  Fix typo.
 +
 +      * trampver.texi: Update release number.  Remove japanesemanual.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * org.texi: Restore clobbered changes (copyright years, untabify).
 +
 +2010-09-04  Julien Danjou  <julien@danjou.info>  (tiny change)
 +
 +      * gnus.texi (Adaptive Scoring): Fix typo.
 +
 +2010-09-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Display): Document gnus-html-show-images.
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cl.texi (Basic Setf): Remove x-get-cut-buffer and x-get-cutbuffer.
 +
 +2010-09-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document gnus-max-image-proportion.
 +
 +2010-08-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document gnus-blocked-images.
 +
 +      * message.texi (Wide Reply): Document message-prune-recipient-rules.
 +
 +2010-08-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Summary Mail Commands): Note that only the addresses from
 +      the first message are used for wide replies.
 +      (Changing Servers): Remove documentation on gnus-change-server and
 +      friends, since it's been removed.
 +
 +2010-08-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Drafts): Mention B DEL.
 +
 +2010-08-29  Tim Landscheidt  <tim@tim-landscheidt.de>  (tiny change)
 +
 +      * gnus.texi (Delayed Articles): Mention that the Date header is the
 +      original one, even if you delay.
 +
 +2010-08-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Asynchronous Fetching): Document
 +      gnus-async-post-fetch-function.
 +      (HTML): Made into its own section.
  
  2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
  
  
        * trampver.texi: Update release number.
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Alternative Buses): New chapter.
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cl.texi (Mapping over Sequences): Rename mapc => cl-mapc.
 +
 +2010-08-09  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Customizing Calc): Rearrange description of new
 +      variables to match the presentation of other variables.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * org.texi (Footnotes, Tables in HTML export): Fix typos.
  
 -2010-07-23  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-08  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Making Selections, Selecting Subformulas)
 +      (Customizing Calc): Mention how to use faces to emphasize selected
 +      sub-formulas.
 +
 +2010-08-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (External packages): File attributes cache flushing
 +      for asynchronous processes.
 +
 +2010-08-01  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance the manual for the latest Java Mode.
 +
 +      * cc-mode.texi (Syntactic Symbols): New symbols annotation-top-cont and
 +      annotation-var-cont.
 +      (Java Symbols): Page renamed from Anonymous Class Symbol.  Document the
 +      two new symbols.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Traces and Profiles): Describe verbose level 9.
 +
 +2010-07-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * nxml-mode.texi (Limitations): Remove obsolete discussion (Bug#6708).
  
 +2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * org.texi: Fix typo in previous change (2010-07-19T09:47:27Z!carsten.dominik@gmail.com).
 +
 +2010-07-19  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi: Add macros to get plain quotes in PDF output.
 +      List additional contributors.
 +      (Capture): New section, replaces the section about remember.
 +      (Working With Source Code): New chapter, focused on documenting Org
 +      Babel.
 +      (Code evaluation security): New section.
 +      (MobileOrg): Document DropBox support.
 +      (TaskJuggler export): Document taskjuggler and Gantt chart support.
 +      (Special symbols): Show how to display UTF8 characters for entities.
 +      (Global TODO list): Clarify the use of the "M" key and the differences
 +      to the "m" key.
 +      (RSS Feeds): Mention Atom feeds as well.
 +      (Setting tags): Remove paragraph about
 +      `org-complete-tags-always-offer-all-agenda-tags'.
 +
 +2010-07-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove remark about doubled "-t"
 +      argument.
 +      (Frequently Asked Questions): Recommend "sshx" and "scpx" for
 +      echoing shells.
 +
 +2010-07-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove "kludgy" phrase.
 +      (Filename Syntax): Describe port numbers.
 +
 +2010-07-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Top): Introduce Index.  Emphasize "nil" whereever
 +      forgotten.
 +      (Type Conversion): Precise conversion of natural numbers.
 +      (Errors and Events): Add "debugging" to concept index.  Add variable
 +      `dbus-debug'.
 +
 +2010-07-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Receiving Method Calls): Add optional argument
 +      EMITS-SIGNAL to `dbus-register-property'.
 +
  2010-06-27  Alex Schroeder  <alex@gnu.org>
  
        * nxml-mode.texi (Commands for locating a schema): Fix typo.
        * idlwave.texi (Load-Path Shadows):
        * org.texi (Handling links): Fix typos.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-06-07  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * Version 23.2 released.
 +      * gnus.texi (Interactive): Explain effect of gnus-expert-user better.
 +
 +2010-05-26  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * eshell.texi (Built-ins): Describe, how to disable a built-in command
 +      by an alias.  (Bug#6226)
 +
 +2010-05-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Manipulating Vectors): Mention that vectors can
 +      be used to determine bins for `calc-histogram'.
  
 -2010-05-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +2010-05-13  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi: Remove "\turnoffactive" commands throughout.
 +
 +2010-05-08  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
        * url.texi (HTTP language/coding, Customization):
        * message.texi (Header Commands, Responses):
        * cl.texi (Argument Lists): Fix typos.
  
 -2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * ede.texi (EDE Mode): Refer to init file rather than `.emacs'.  Note
 -      that Development menu is always available.
 +      * ede.texi (EDE Mode): Refer to init file rather than `.emacs'.
 +      Note that Development menu is always available.
        (Creating a project): Fix terminology.
        (Add/Remove files): Fix typo.
  
 -2010-04-17  Teodor Zlatanov  <tzz@lifelogs.com>
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-01  Daniel E. Doherty  <ddoherty03@gmail.com>  (tiny change)
 +
 +      * calc.texi (Tutorial): Use "^{\prime}" to indicate primes.
 +
 +2010-05-01  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods, Default Method):
 +      Mention `tramp-inline-compress-start-size'.
 +
 +2010-04-18  Teodor Zlatanov  <tzz@lifelogs.com>
  
        * gnus.texi (Gnus Versions, Oort Gnus): Mention the Git repo instead of
        the CVS repo.  Put the Git repo in the news section.
  
 -      * gnus-coding.texi (Gnus Maintainance Guide): Fixed title typo.
 +      * gnus-coding.texi (Gnus Maintainance Guide): Fix title typo.
        Removed some mentions of CVS.  Mention the new Git repo.
  
 -2010-04-15  Andreas Seltenreich  <seltenreich@gmx.de>
 +2010-04-18  Andreas Seltenreich  <seltenreich@gmx.de>
  
        * gnus.texi (Score File Format): Fix typo.  Reported by Štěpán Němec.
        (Mail Group Commands): Add index entry.
  
 -2010-04-15  Glenn Morris  <rgm@gnu.org>
 +2010-04-18  Glenn Morris  <rgm@gnu.org>
  
        * info.texi (Search Index): Mention Emacs's Info-virtual-index.
  
 -2010-03-14  Michael Albinus  <michael.albinus@gmx.de>
 +2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Radix modes): Mention that the option prefix will
 +      turn on twos-complement mode.
 +      (Inverse and Hyperbolic Flags): Mention the Option flag.
 +
 +2010-04-15  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (LaTeX and PDF export): Add a footnote about xetex.
 +      (LaTeX/PDF export commands): Rename and Move section.
 +      (Sectioning structure): Update.
 +      (References): New use case for field coordinates.
 +      (The export dispatcher): Rename from ASCII export.
 +      (Setting up the staging area): Document the availability of
 +      encryption for MobileOrg.
 +      (Images and tables): Document how to reference labels.
 +      (Index entries): New section.
 +      (Generating an index): New section.
 +      (Column width and alignment): Document that <N> now
 +      means a fixed width, not a maximum width.
 +      (Publishing options): Document the :email option.
 +      (Beamer class export): Fix bug in the BEAMER example.
 +      (Refiling notes): Document refile logging.
 +      (In-buffer settings): Document refile logging keywords.
 +      (Drawers): Document `C-c C-z' command.
 +      (Agenda commands): Mention the alternative key `C-c C-z'.
 +      (Special properties): Document the BLOCKED property.
 +      (The spreadsheet): Mention the formula editor.
 +      (References): Document field coordinates.
 +      (Publishing action): Correct the documentation for the
 +      publishing function.
 +      (The date/time prompt): Document that we accept dates
 +      like month/day/year.
 +      (Cooperation): Document the changes in table.el support.
 +      (Faces for TODO keywords, Faces for TODO keywords)
 +      (Priorities): Document the easy colors.
 +      (Visibility cycling): Document the new double prefix
 +      arg for `org-reveal'.
 +      (Cooperation): Remember.el is part of Emacs.
 +      (Clean view): Mention that `wrap-prefix' is also set by
 +      org-indent-mode.
 +      (Agenda commands): Add information about prefix args to
 +      scheduling and deadline commands.
 +      (Search view): Point to the docstring of
 +      `org-search-view' for more details.
 +      (Agenda commands): Document that `>' prompts for a date.
 +      (Setting tags): Document variable
 +      org-complete-tags-always-offer-all-agenda-tags.
 +      (Column attributes): Cross-reference special properties.
 +
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Synchronize with Tramp repository.
 +
 +      * tramp.texi (Auto-save and Backup): Remove reference to Emacs 21.
 +      (Frequently Asked Questions): Adapt supported (X)Emacs versions.  Adapt
 +      supported MS Windows versions.  Remove obsolete URL.  Use the $()
 +      syntax, texi2dvi reports errors with the backquotes.
  
        * trampver.texi: Update release number.
  
 +2010-04-01  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus.texi (Finding the News): Add pointers to the Server buffer
 +      because it's essential.
 +
 +2010-03-31  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (MIME Commands): Update description of
 +      gnus-article-browse-html-article.
 +
 +2010-03-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Secret Service API): Add TODO node.
 +      (Help for users): Explain the new source options for `auth-sources'.
 +
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * trampver.texi: Update release number.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
  
        * faq.texi (Escape sequences in shell output): Note that ansi-color is
  2010-01-17  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Add GNU Emacs 23 and
 -      SXEmacs 22 to the supported systems.  New item for hung ssh sessions.
 +      SXEmacs 22 to the supported systems.  New item for hung ssh sessions.
  
  2010-01-17  Glenn Morris  <rgm@gnu.org>
  
        (Agenda commands): Document new bulk commands.
        (Plain lists): Document new behavior of
        `org-cycle-include-plain-lists'.
 -       Hyphenation only in TeX.
 +      Hyphenation only in TeX.
        (Clocking work time): Document the key to update effort
        estimates.
        (Clocking work time): Document the clock time display.
  2008-06-15  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus.texi (Mail Source Customization): Correct values of
 -       `mail-source-delete-incoming'.  Reported by Tassilo Horn.
 +      `mail-source-delete-incoming'.  Reported by Tassilo Horn.
        (Oort Gnus): Fix version comment for mml-dnd-protocol-alist.
  
  2008-06-14  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus-news.texi, gnus-coding.texi, sasl.texi: New files.
  
 -2007-10-28  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (tiny change)
 -
 -      * gnus-faq.texi ([5.12]): Remove reference to discontinued service.
 -
  2007-10-28  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus.texi (Sorting the Summary Buffer): Remove
  
        * org.texi (Progress logging): New section.
  
 -2006-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * viper.texi (Viper Specials):
 -      * gnus.texi (Example Setup):
 -      * faq.texi (Backspace invokes help):
 -      * dired-x.texi (Optional Installation Dired Jump):
 -      * calc.texi (Defining Simple Commands): Use ;; instead of ;;; to better
 -      follow coding conventions.
 -
 -2006-05-18  Reiner Steib  <Reiner.Steib@gmx.de>
 -
 -      * gnus.texi (Saving Articles): Clarify gnus-summary-save-article-mail.
 -
  2006-06-06  Carsten Dominik  <dominik@science.uva.nl>
  
        * org.texi (ASCII export): Document indentation adaptation.
  
        * org.texi: Small typo fixes.
  
 +2006-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * viper.texi (Viper Specials):
 +      * gnus.texi (Example Setup):
 +      * faq.texi (Backspace invokes help):
 +      * dired-x.texi (Optional Installation Dired Jump):
 +      * calc.texi (Defining Simple Commands): Use ;; instead of ;;; to better
 +      follow coding conventions.
 +
  2006-05-29  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Disable zsh zle.
  
        * gnus.texi (Article Washing): Additions.
  
 -2006-01-08  Alex Schroeder  <alex@gnu.org>
 -
 -      * pgg.texi (Caching passphrase): Rewording.
 -
  2006-01-13  Carsten Dominik  <dominik@science.uva.nl>
  
        * org.texi (Agenda commands): Document tags command.
  
        * org.texi (FAQ): Document `org-table-tab-jumps-over-hlines'.
        (Agenda): Document commands `org-cycle-agenda-files' and
 -      `org-agenda-file-to-front'
 +      `org-agenda-file-to-front'.
        (Built-in table editor): Document `org-table-sort-lines'.
        (HTML formatting): Export of hand-formatted lists.
  
  
  2000-12-14  Dave Love  <fx@gnu.org>
  
 -      * Makefile.in (mostlyclean): Remove gnustmp.*
 +      * Makefile.in (mostlyclean): Remove gnustmp.*.
        (gnus.dvi): Change rule to remove @latex stuff.
  
  2000-10-19  Eric M. Ludlam  <zappo@ultranet.com>
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; fill-column: 79
 -;; 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  Free Software Foundation, Inc.
 +  Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
 +    2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 +    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: 08b2903e-900c-4c72-a4a9-e76416a80803
diff --combined etc/NEWS.23
index aa8f47f2e2b3aa486718ca3f0b6bfbc4d1985e01,0000000000000000000000000000000000000000..0d37746d46061d988525fefd20c577fb0bb57b55
mode 100644,000000..100644
--- /dev/null
@@@ -1,2443 -1,0 +1,2448 @@@
 +GNU Emacs NEWS -- history of user-visible changes.
 +
 +Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 +See the end of the file for license conditions.
 +
 +Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
 +If possible, use M-x report-emacs-bug.
 +
 +This file is about changes in Emacs version 23.
 +
 +See files NEWS.22, NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17
 +for changes in older Emacs versions.
 +
 +You can narrow news to a specific version by calling `view-emacs-news'
 +with a prefix argument or by typing C-u C-h C-n.
 +
 +\f
 +* Installation Changes in Emacs 23.3
 +
 +* Startup Changes in Emacs 23.3
 +
 +* Changes in Emacs 23.3
 +
 +** The nextstep port can have different modifiers for the left and right
 +alt/option key by customizing the value for ns-right-alternate-modifier.
 +
 +\f
 +* Editing Changes in Emacs 23.3
 +
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 23.3
 +
 +---
 +** The appt-add command takes an optional argument for the warning time.
 +This can be used in place of the default appt-message-warning-time.
 +
 +** Obsolete packages
 +
 ++++
 +*** lmenu.el and cl-compat.el are now obsolete.
 +
 +\f
 +* New Modes and Packages in Emacs 23.3
 +** smie.el is a generic navigation and indentation engine.
 +It takes a simple BNF description of the grammar, and provides both
 +sexp-style navigation (jumping over begin..end pairs) as well as
 +indentation, which can be adjusted via ad-hoc indentation rules.
 +\f
 +* Incompatible Lisp Changes in Emacs 23.3
 +
++** posn-col-row now excludes the header line from the row count
++If the frame has a header line, posn-col-row will count row numbers
++starting from the first line of text below the header line.
++
 +\f
 +* Lisp changes in Emacs 23.3
 +
 +** `e' and `pi' are now called `float-e' and `float-pi'.
 +  The old names are obsolete.
 +** The use of unintern without an obarray arg is declared obsolete.
 +** The function `princ-list' is declared obsolete.
++** The yank-handler argument to kill-region and friends is declared obsolete.
 +** New function byte-to-string, like char-to-string but for bytes.
 +
 +\f
 +* Changes in Emacs 23.3 on non-free operating systems
 +
 +\f
 +* Installation Changes in Emacs 23.2
 +
 +** New configure options for Emacs developers.
 +These are not new features; only the configure flags are new.
 +
 +*** --enable-profiling builds Emacs with profiling enabled.
 +This might not work on all platforms.
 +
 +*** --enable-checking[=OPTIONS] builds emacs with extra runtime checks.
 +
 +** `make install' now consistently ignores umask, creating a
 +world-readable install.
 +
 +** Emacs compiles with Gconf support, if it is detected.
 +Use the configure option --without-gconf to disable this.
 +This is used by the `font-use-system-font' feature (see below).
 +
 +* Startup Changes in Emacs 23.2
 +
 +** The command-line option -Q (--quick) also inhibits loading X resources.
 +However, if Emacs is compiled with the Lucid or Motif toolkit, X
 +resource settings for the graphical widgets are still applied.
 +On Windows, the -Q option causes Emacs to ignore Registry settings,
 +but environment variables set on the Registry are still honored.
 +
 +*** The new variable `inhibit-x-resources' shows whether X resources
 +were loaded.
 +
 +** New command-line option -mm (--maximized) maximizes the initial frame.
 +
 +* Changes in Emacs 23.2
 +
 +** The maximum size of buffers (and the largest fixnum) is doubled.
 +On typical 32bit systems, buffers can now be up to 512MB.
 +
 +** The default value of `trash-directory' is now nil.
 +This means that `move-file-to-trash' trashes files according to
 +freedesktop.org specifications, the same method used by the Gnome,
 +KDE, and XFCE desktops.  (This change has no effect on Windows, which
 +uses `system-move-file-to-trash' for trashing.)
 +
 +** The pointer now becomes invisible when typing.
 +Customize `make-pointer-invisible' to disable this feature.
 +
 +** Font changes
 +
 +*** Emacs can use the system default monospaced font in Gnome.
 +To enable this feature, set `font-use-system-font' to non-nil (it is
 +nil by default).  If the system default changes, Emacs changes also.
 +This feature requires Gconf support, which is automatically included
 +at compile-time if configure detects the gconf libraries (you can
 +disable this with the configure option --without-gconf).
 +
 +*** On X11, Emacs reacts to Xft changes made by configuration tools,
 +via the XSETTINGS mechanism.  This includes antialias, hinting,
 +hintstyle, RGBA, DPI and lcdfilter changes.
 +
 +** Killing a buffer with a running process now asks for confirmation.
 +To remove this query, remove `process-kill-buffer-query-function' from
 +`kill-buffer-query-functions', or set the appropriate process flag
 +with `set-process-query-on-exit-flag'.
 +
 +** File-local variable changes
 +
 +*** Specifying a minor mode as a local variables enables that mode,
 +unconditionally.  The previous behavior, toggling the mode, was
 +neither reliable nor generally desirable.
 +
 +*** There are new commands for adding and removing file-local variables:
 +`add-file-local-variable', `delete-file-local-variable',
 +`add-file-local-variable-prop-line', and
 +`delete-file-local-variable-prop-line'.
 +
 +*** There are new commands for adding and removing directory-local variables,
 +and copying them to and from file-local variable lists:
 +`add-dir-local-variable', `delete-dir-local-variable',
 +`copy-dir-locals-to-file-locals',
 +`copy-dir-locals-to-file-locals-prop-line' and
 +`copy-file-locals-to-dir-locals'.
 +
 +** Internationalization changes
 +
 +*** Unibyte sessions are now considered obsolete.
 +This refers to the EMACS_UNIBYTE environment variable as well as the
 +--unibyte, --multibyte, --no-multibyte, and --no-unibyte command line
 +arguments.  Customizing enable-multibyte-characters and setting
 +default-enable-multibyte-characters are also deprecated.
 +
 +*** New coding system `utf-8-hfs'.
 +This is suitable for default-file-name-coding-system on Mac OS X; see
 +international/ucs-normalize.el.
 +
 +** Function arguments in *Help* buffers are now shown in upper-case.
 +Customize `help-downcase-arguments' to t to show them in lower-case.
 +
 +** New command `async-shell-command', bound globally to `M-&'.
 +This executes the command asynchronously, similar to calling `M-!' and
 +manually adding an ampersand to the end of the command.  With `M-&',
 +you don't need the ampersand.  The output appears in the buffer
 +`*Async Shell Command*'.
 +
 +** When running in a new enough xterm (newer than version 242), Emacs
 +asks xterm what the background color is and it sets up faces
 +accordingly for a dark background if needed (the current default is to
 +consider the background light).
 +
 +\f
 +* Editing Changes in Emacs 23.2
 +
 +** Kill-ring and selection changes
 +
 +*** If `select-active-regions' is t, any active region automatically
 +becomes the primary selection (for interaction with other window
 +applications).  If you enable this, you might want to bind
 +`mouse-yank-primary' to Mouse-2.
 +
 +*** When `save-interprogram-paste-before-kill' is non-nil, the kill
 +commands save the interprogram-paste selection into the kill ring
 +before doing anything else.  This avoids losing the selection.
 +
 +*** When `kill-do-not-save-duplicates' is non-nil, identical
 +subsequent kills are not duplicated in the `kill-ring'.
 +
 +** Completion changes
 +
 +*** The new command `completion-at-point' provides mode-sensitive completion.
 +
 +*** tab-always-indent set to `complete' lets TAB do completion as well.
 +
 +*** The new completion-style `initials' is available.
 +For instance, this can complete M-x lch to list-command-history.
 +
 +*** The new variable `completions-format' determines how completions
 +are displayed in the *Completions* buffer.  If you set it to
 +`vertical', completions are sorted vertically in columns.
 +
 +** The default value of `blink-matching-paren-distance' is increased.
 +
 +** M-n provides more default values in the minibuffer for commands
 +that read file names.  These include the file name at point (when ffap
 +is loaded without ffap-bindings), the file name on the current line
 +(in Dired buffers), and the directory names of adjacent Dired windows
 +(for Dired commands that operate on several directories, such as copy,
 +rename, or diff).
 +
 +** M-r is bound to the new `move-to-window-line-top-bottom'.
 +This moves point to the window center, top and bottom on successive
 +invocations, in the same spirit as the C-l (recenter-top-bottom)
 +command.
 +
 +** The new variable `recenter-positions' determines the default
 +cycling order of C-l (`recenter-top-bottom').
 +
 +** The abbrevs file is now a file named abbrev_defs in
 +user-emacs-directory; but the old location, ~/.abbrev_defs, is used if
 +that file exists.
 +
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 23.2
 +
 +** The bookmark menu has a narrowing search via bookmark-bmenu-search.
 +
 +** Calc
 +
 +*** The Calc settings file is now a file named calc.el in
 +user-emacs-directory; but the old location, ~/.calc.el, is used if
 +that file exists.
 +
 +*** Graphing commands (`g f' etc.) now work on MS-Windows, if you have
 +the native Windows port of Gnuplot version 3.8 or later installed.
 +
 +** Calendar and diary
 +
 +*** Fancy diary display is now the default.
 +If you prefer the simple display, customize `diary-display-function'.
 +
 +*** The diary's fancy display now enables view-mode.
 +
 +*** The command `calendar-current-date' accepts an optional argument
 +giving an offset from today.
 +
 +** Desktop
 +
 +*** The default value for `desktop-buffers-not-to-save' is nil.
 +This means Desktop will try restoring all buffers, when you restart
 +your Emacs session.  Also, `desktop-buffers-not-to-save' is only
 +effective for buffers that have no associated file.  If you want to
 +exempt buffers that do correspond to files, customize the value of
 +`desktop-files-not-to-save' instead.
 +
 +** Dired
 +
 +*** The new variable `dired-auto-revert-buffer', if non-nil, causes
 +Dired buffers to be reverted automatically on revisiting them.
 +
 +** DocView
 +
 +*** When `doc-view-continuous' is non-nil, scrolling a line
 +on the page edge advances to the next/previous page.
 +
 +** Elint
 +
 +*** Elint now uses compilation-mode.
 +
 +*** Elint can now scan individual files and whole directories,
 +and can be run in batch mode.
 +
 +*** Elint does a more thorough initialization, and recognizes more built-in
 +functions and variables.  Customize `elint-scan-preloaded' if you want
 +to sacrifice some accuracy for a faster startup.
 +
 +*** Elint attempts some basic understanding of featurep and (f)boundp tests.
 +
 +*** Customize `elint-ignored-warnings' to suppress some warnings.
 +
 +** GDB-UI
 +
 +*** Toolbar functionality for reverse debugging.  Display of STL
 +collections as watch expressions.  These features require GDB 7.0 or later.
 +
 +** Grep
 +
 +*** A new command `zrgrep' searches recursively in gzipped files.
 +
 +** Info
 +
 +*** The new command `Info-virtual-index' bound to "I" displays a menu of
 +matched topics found in the index.
 +
 +*** The new command `info-finder' replaces finder.el with a virtual Info
 +manual that generates an Info file which gives the same information
 +through a menu structure.
 +
 +** LaTeX mode now provides completion (via completion-at-point).
 +
 +** Message mode is now the default mode for composing mail.
 +
 +The default for `mail-user-agent' is now message-user-agent, so the
 +C-x m (`compose-mail') command uses Message mode instead of Mail mode.
 +
 +Message mode has been included in Emacs, as part of the Gnus package,
 +for several years.  It provides several features that are absent in
 +Mail mode, such as MIME handling.
 +
 +*** If the user has not customized mail-user-agent, `compose-mail'
 +checks for Mail mode customizations, and issues a warning if these
 +customizations are found.  This alerts users who may otherwise be
 +unaware that their mail configuration has changed.
 +
 +To disable this check, set compose-mail-user-agent-warnings to nil.
 +
 +** The default value of mail-interactive is t, since Emacs 23.1.
 +(This was not announced at the time.)  It means that when sending mail,
 +Emacs will wait for the process sending mail to return.  If you
 +experience delays when sending mail, you may wish to set this to nil.
 +
 +** nXML mode is now the default for editing XML files.
 +
 +** pcomplete provides a new command `pcomplete-std-completion' which
 +is similar to `pcomplete' but using the standard completion UI code.
 +
 +** Shell (and other comint modes)
 +
 +*** M-s is no longer bound to `comint-next-matching-input'.
 +
 +*** M-r is now bound to `comint-history-isearch-backward-regexp'.
 +This starts an incremental search of the comint/shell input history.
 +
 +*** ansi-color is now enabled by default in Shell mode.
 +To disable it, set ansi-color-for-comint-mode to nil.
 +
 +** Tramp
 +
 +*** New connection methods "rsyncc", "imap" and "imaps".
 +On systems which support GVFS-Fuse, Tramp offers also the new
 +connection methods "dav", "davs", "obex" and "synce".
 +
 +** VC and related modes
 +
 +*** When using C-x v v or C-x v i on a unregistered file that is in a
 +directory not controlled by any VCS, ask the user what VC backend to
 +use to create a repository, create a new repository and register the
 +file.
 +
 +*** New command `vc-root-print-log', bound to `C-x v L'.
 +This displays a `*vc-change-log*' buffer showing the history of the
 +version-controlled directory tree as a whole.
 +
 +*** New command `vc-root-diff', bound to `C-x v D'.
 +This is similar to `vc-diff', but compares the entire directory tree
 +of the current VC directory with its working revision.
 +
 +*** `C-x v l' and `C-x v L' do not show the full log by default.
 +The number of entries shown can be chosen interactively with a prefix
 +argument, or by customizing vc-log-show-limit.  The `*vc-change-log*'
 +buffer now contains buttons at the end of the buffer, which can be
 +used to increase the number of entries shown.  RCS, SCCS, and CVS do
 +not support this feature.
 +
 +*** vc-annotate supports annotations through file copies and renames,
 +it displays the old names for the files and it can show logs/diffs for
 +the corresponding lines.  Currently only Git and Mercurial take
 +advantage of this feature.
 +
 +*** The log command in vc-annotate can display a single log entry
 +instead of redisplaying the full log.  The RCS, CVS and SCCS VC
 +backends do not support this.
 +
 +*** When a file is not found, VC will not try to check it out of RCS anymore.
 +
 +*** Diff and log operations can be used from Dired buffers.
 +
 +*** vc-git changes
 +
 +**** The short log format for git makes use of the graph display,
 +so it's not supported on git versions earlier than 1.5.6.
 +
 +**** vc-dir uses the --relative option of git, and so requires at least
 +git version 1.5.5.
 +
 +**** Support for operating with stashes has been added to vc-dir:
 +the stash list is displayed in the *vc-dir* header, stashes can be
 +created, removed, applied and their content displayed.
 +
 +*** vc-bzr supports operating with shelves: the shelve list is
 +displayed in the *vc-dir* header, shelves can be created, removed and applied.
 +
 +*** log-edit-strip-single-file-name controls whether or not single filenames
 +are stripped when copying text from the ChangeLog to the *VC-Log* buffer.
 +
 +** Miscellaneous
 +
 +*** Interactively `multi-isearch-buffers' and `multi-isearch-buffers-regexp'
 +read buffer names to search, one by one, ended with RET.  With a prefix
 +argument, they ask for a regexp, and search in buffers whose names match
 +the specified regexp.  Interactively `multi-isearch-files' and
 +`multi-isearch-files-regexp' read file names to search, one by one,
 +ended with RET.  With a prefix argument, they ask for a wildcard, and
 +search in file buffers whose file names match the specified wildcard.
 +
 +*** Autorevert Tail mode now works also for remote files.
 +
 +*** The new eshell built-in commands `su' and `sudo' support Tramp.
 +Thus, they change `default-directory' to reflect the new user id, and
 +let commands run under that user's permissions.  This works even when
 +`default-directory' is already remote.  Calling the external commands
 +is possible via `*su' or `*sudo', respectively.
 +
 +** Obsolete packages
 +
 +*** sym-comp.el is now obsolete, superseded by completion-at-point.
 +
 +*** lucid.el and levents.el are now obsolete.
 +
 +\f
 +* New Modes and Packages in Emacs 23.2
 +
 +** CEDET (the Collection of Emacs Development Tools) is now in Emacs.
 +This is a collection of packages to aid with using Emacs as an IDE
 +(integrated development environment):
 +
 +*** The Semantic package allows the use of parsers to intelligently
 +edit and navigate source code.  Parsers for C/C++, Java, Javascript,
 +and several other languages are included by default, and Semantic can
 +also interface with external tools such as GNU Global and GNU Idutils.
 +
 +To enable Semantic, use the global minor mode `semantic-mode'.
 +See the Semantic manual for details.
 +
 +*** EDE (Emacs Development Environment) is a package for managing code
 +projects, including features such as automatic Makefile generation.
 +
 +To enable EDE, use the minor mode `global-ede-mode'.
 +See the EDE manual for details.
 +
 +*** SRecode is a library for recoding Semantic tags back into source
 +code.  It is currently used by some parts of Semantic and EDE; in the
 +future, it may be used for code generation features.
 +
 +*** The EIEIO library implements a subset of the Common Lisp Object
 +System (CLOS).  It is used by the other CEDET packages.
 +
 +** mpc.el is a front end for the Music Player Daemon.  Run it with M-x mpc.
 +
 +** htmlfontify.el turns a fontified Emacs buffer into an HTML page.
 +
 +** js.el is a new major mode for JavaScript files.
 +
 +** imap-hash.el is a new library to address IMAP mailboxes as hashtables.
 +
 +\f
 +* Incompatible Lisp Changes in Emacs 23.2
 +
 +** The Lisp reader turns integers that are too large/small into floats.
 +For instance, on machines where `536870911' is the largest integer,
 +reading `536870912' gives the floating-point object `536870912.0'.
 +
 +This change only concerns the Lisp reader; it does not affect how
 +actual integer objects overflow.
 +
 +** Several obsolete functions removed.
 +The functions have been obsolete since Emacs 19, and are unlikely to
 +be in use:
 +
 +  time-stamp-month-dd-yyyy, time-stamp-dd/mm/yyyy, time-stamp-mon-dd-yyyy
 +  time-stamp-dd-mon-yy, time-stamp-yy/mm/dd, time-stamp-yyyy/mm/dd,
 +  time-stamp-yyyy-mm-dd, time-stamp-yymmdd, time-stamp-hh:mm:ss,
 +  time-stamp-hhmm, baud-rate
 +
 +** Support for generating Emacs 18 compatible bytecode (by setting
 +the variable `byte-compile-compatibility') has been removed.
 +
 +** In image-mode.el `image-mode-maybe' is obsolete.
 +Instead, you can either use `image-mode' (which displays an image file
 +as the actual image initially), or `image-mode-as-text' (when you want
 +to display an image file as text initially).  `image-mode-as-text' is a
 +combination of a non-image mode from `auto-mode-alist' (or Fundamental
 +mode) and `image-minor-mode'.  `image-minor-mode' provides a `C-c C-c'
 +key binding to toggle image display.
 +`image-toggle-display-text' removes image properties.
 +`image-toggle-display-image' adds image properties.
 +`image-toggle-display' toggles between `image-mode-as-text' and `image-mode'.
 +
 +\f
 +* Lisp changes in Emacs 23.2
 +
 +** All the default-FOO variables that hold the default value of the FOO
 +variable, are now declared obsolete.
 +
 +** read-key is a function halfway between read-event and read-key-sequence.
 +It reads a single key, but obeys input and escape sequence decoding.
 +
 +** Frame parameter changes
 +
 +*** You can give the `fullscreen' frame parameter the value `maximized'.
 +This maximizes the frame.
 +
 +*** The new frame parameter `sticky' makes Emacs frames sticky in
 +virtual desktops.
 +
 +** Completion changes
 +
 +*** completion-base-size is obsoleted by completion-base-position.
 +This change causes a few backward incompatibilities, mostly with
 +choose-completion-string-functions where the `mini-p' argument has
 +been replaced by a `base-position' argument, and where the `base-size'
 +argument is now always nil.
 +
 +*** New function `completion-in-region' to use the standard completion
 +facilities on a particular region of text.
 +
 +*** The 4th arg to all-completions (aka hide-spaces) is declared obsolete.
 +
 +*** completion-annotate-function specifies how to compute annotations
 +for completions displayed in *Completions*.
 +
 +** Minibuffer changes
 +
 +*** read-file-name-predicate is obsolete.  It was used to pass the predicate
 +to read-file-name-internal because read-file-name-internal abused its `pred'
 +argument to pass the current directory, but this hack is not needed
 +any more.
 +
 +** Changes to file-manipulation functions
 +
 +*** `delete-directory' has an optional parameter RECURSIVE.
 +
 +*** New function `copy-directory', which copies a directory recursively.
 +
 +** called-interactively-p now takes one argument and replaces interactive-p
 +which is now marked obsolete.
 +
 +** New function set-advertised-calling-convention makes it possible
 +to obsolete arguments as well as make some arguments mandatory.
 +
 +** You can control which binding is preferentially shown in menus and
 +docstrings by adding a `:advertised-binding' property to the corresponding
 +command's symbol.  That property can hold a single binding or a list
 +of bindings.
 +
 +** Network and process changes
 +
 +*** start-process-shell-command and start-file-process-shell-command
 +now only take a single `command' argument.
 +
 +*** The new variable `process-file-side-effects' should be set to nil
 +if a `process-file' call does not change a remote file.  This allows
 +file name handlers such as Tramp to optimizations.
 +
 +*** make-network-process can now also create `seqpacket' Unix sockets.
 +
 +** Loading changes
 +
 +*** eval-next-after-load is obsolete.
 +
 +*** New hook `after-load-functions' run after loading an Elisp file.
 +
 +** Byte compilation changes
 +
 +*** Changing the file-names generated by byte-compilation by redefining
 +the function `byte-compile-dest-file' before loading bytecomp.el is obsolete.
 +Instead, customize byte-compile-dest-file-function.
 +
 +*** `byte-compile-warnings' has new members, `constants' and `suspicious'.
 +
 +** New macro with-silent-modifications to tweak text properties without
 +affecting the buffer's modification state.
 +
 +** Hash tables have a new printed representation that is readable.
 +The feature `hashtable-print-readable' identifies this new
 +functionality.
 +
 +** New functions for performing Unicode normalization:
 +ucs-normalize-NFD-region, ucs-normalize-NFD-string,
 +ucs-normalize-NFC-region, ucs-normalize-NFC-string,
 +ucs-normalize-NFKD-region, ucs-normalize-NFKD-string,
 +ucs-normalize-NFKC-region, ucs-normalize-NFKC-string,
 +ucs-normalize-HFS-NFD-region, ucs-normalize-HFS-NFD-string,
 +ucs-normalize-HFS-NFC-region, ucs-normalize-HFS-NFC-string.
 +
 +** Face aliases can now be marked as obsolete, using the macro
 +`define-obsolete-face-alias'.
 +
 +** New function `window-full-height-p', analogous to the full-width version.
 +
 +\f
 +* Changes in Emacs 23.2 on non-free operating systems
 +
 +** On MS-Windows, `display-time' now displays the system load average
 +as well as the time, as it does on GNU and Unix.
 +
 +\f
 +* Installation Changes in Emacs 23.1
 +
 +** The default X toolkit is now Gtk+, rather than Lucid.
 +The configure option `--with-gtk' has been removed.  Gtk is now the
 +default toolkit, but you can use --with-x-toolkit=gtk if necessary.
 +
 +** New font code.
 +Fonts are handled by new code capable of dealing with multiple font
 +backends.  This uses the freetype and fontconfig libraries.
 +
 +*** Emacs now accepts font names supplied in the fontconfig format
 +(e.g. "monospace-12:bold") and GTK format (e.g. "Monospace Bold 12").
 +
 +*** Added support for local fonts (fonts installed on the machine
 +where Emacs is running).
 +
 +*** Added support for the Xft library for antialiasing.
 +
 +*** Added support for the otf library for complex text layout by
 +OpenType fonts.
 +
 +*** Added support for the m17n library for text shaping.
 +
 +** Changes to image support
 +
 +*** configure now checks for libgif before libungif when searching for
 +a GIF library.
 +
 +*** Emacs now supports the SVG image format through librsvg2.
 +
 +*** Emacs now supports multi-page TIFF images.
 +
 +** New NeXTSTEP-based port.
 +This provides support for GNUstep (via the GNUstep libraries) and Mac
 +OS X (via the Cocoa libraries).
 +
 +Specify --with-ns to configure for this.  By default, a self-contained
 +app will be built (containing all lisp).  To install/share lisp with
 +other emacsen (e.g. X11 build) use --disable-ns-self-contained.  See
 +nextstep/README and nextstep/INSTALL in the Emacs source directory.
 +
 +** Mac OS X is no longer supported via Carbon.
 +Use the NeXTSTEP port, described above.
 +
 +** The new configuration option "--with-dbus" enables D-Bus language
 +bindings for Emacs.
 +
 +** Support for many obsolete platforms has been removed.
 +See the list at the end of etc/MACHINES for details.
 +
 +*** Support for systems without alloca has been removed.
 +
 +*** Support for Sun windows has been removed.
 +
 +*** The `emacstool' utility has been removed.
 +
 +** The following platforms will be removed in a future Emacs version:
 +If you are still using Emacs on one of these platforms, please email
 +emacs-devel@gnu.org to inform the Emacs developers.
 +
 +*** Old GNU/Linux systems based on libc version 5.
 +
 +*** Old FreeBSD, NetBSD, and OpenBSD systems based on the COFF
 +executable format.
 +
 +*** Solaris versions 2.6 and below.
 +
 +*** Solaris on IBM RS6000 machines.
 +
 +*** UNIX System V (the original SysV, not later platforms based on it).
 +
 +*** Unixware on non-x86 machines.
 +
 +*** Platforms not supporting shared libraries (i.e., requiring the
 +NO_SHARED_LIBS compilation flag).
 +
 +** The configure options `--with-gcc', `--without-gcc' have been removed.
 +Configure will use gcc by default.  Set the CC environment variable if
 +you need control over which C compiler is used.
 +
 +** The refcards are now shipped as PDF files.
 +
 +** The manuals are now licensed under the GNU Free Documentation License v1.3,
 +or any later version.
 +
 +** Emacs 23 comes with a new set of default icons.
 +Various resolutions are available as etc/images/icons/hicolor/*/apps/emacs.png.
 +The Emacs 22 icon is available as `emacs22.png' in the same location.
 +\f
 +* Changes in Emacs 23.1
 +
 +** Improved X Window System support
 +
 +*** Emacs now supports using both X displays and ttys in one session.
 +With an Emacs server active (M-x server-start), `emacsclient -t'
 +creates a tty frame connected to the running emacs server.  You can
 +use any number of different ttys.  `emacsclient -c' creates a new X11
 +frame on the current $DISPLAY (or a tty frame if $DISPLAY is not set).
 +There may be problems if a display exits unexpectedly and Emacs is compiled
 +with Gtk+, see etc/PROBLEMS.
 +
 +You can test for the presence of this feature in your Lisp code by
 +testing for the `multi-tty' feature.
 +
 +*** Emacs starts in the background, as a daemon, when given the
 +--daemon command line argument.  It disconnects from the terminal and
 +starts the server.  Clients can connect and create graphical or
 +terminal frames using emacsclient.
 +
 +**** emacsclient starts emacs in daemon mode and connects to it when
 +--alternate-editor="" is used (or when the evironment variable
 +ALTERNATE_EDITOR is set to "") and emacsclient cannot connect to an
 +emacs server.
 +
 +*** The new command close-display-connection closes a connection to a
 +remote display.  There are some bugs for Gtk+.  See etc/PROBLEMS.
 +
 +*** Emacs now supports the XEmbed specification.
 +You can embed Emacs in another application on X11.  The new command line
 +option --parent-id is used to pass the parent window id to Emacs.  See
 +http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
 +for details about XEmbed.
 +
 +*** Emacs can now set the frame opacity.
 +The opacity of a frame can be controlled by setting the `alpha' frame
 +parameter.  This only takes effect on a compositing window manager for
 +the X Window System, such as Compiz, Beryl and Compiz Fusion, on Mac
 +OS X, or on Windows 2000 and later versions of Windows.
 +
 +The alpha parameter should be an integer between 0 (transparent) and
 +100 (opaque), or a float number between 0.0 and 1.0.  It can also be a
 +cons cell (ACTIVE . INACTIVE), where ACTIVE is the opacity of an
 +active frame and INACTIVE is the opacity of non-active frames.
 +
 +The variable `frame-alpha-lower-limit' defines a lower bound for the
 +opacity; the default is 20.
 +
 +** Internationalization changes
 +
 +*** The Emacs character set is now a superset of Unicode.
 +(It has about four times the code space, which should be plenty).
 +
 +The internal encoding used for buffers and strings is now
 +Unicode-based and called `utf-8-emacs' (`emacs-internal' is an alias
 +for this).  This encoding is backward-compatible with Unicode's UTF-8
 +encoding.  The internal encoding previously used by Emacs,
 +`emacs-mule', is still available for reading and writing files.
 +
 +During byte-compilation, Emacs 23 uses `utf-8-emacs' to write files.
 +As a result, byte-compiled files containing non-ASCII characters can't
 +be read by earlier versions of Emacs.  Files compiled by Emacs 20, 21,
 +or 22 are loaded correctly as `emacs-mule' (whether or not they
 +contain multibyte characters).  This takes somewhat more time, so it
 +may be worth recompiling existing .elc files which don't need to be
 +shared with older Emacsen.
 +
 +*** There are new coding systems/aliases; see M-x list-coding-systems.
 +
 +*** There is a new charset implementation with many new charsets.
 +See M-x list-character-sets.  New charsets can be defined conveniently
 +as tables of unicodes.
 +
 +*** There are new language environments for Chinese-GBK,
 +Chinese-GB18030, Khmer, Bengali, Punjabi, Gujarati, Oriya, Telugu,
 +Sinhala, and TaiViet.
 +
 +*** The minor modes unify-8859-on-encoding-mode and
 +unify-8859-on-decoding-mode are obsolete.
 +
 +*** `ucs-insert' is bound to `C-x 8 RET' and in addition to hex numbers
 +accepts numbers in hash notation (e.g. #o21430 for octal, or #10r8984 for
 +decimal).  It also accepts Unicode character names with completion.
 +
 +*** The `cyrillic-translit' input method supports many new characters.
 +Common typographical characters available from Unicode were added to
 +`cyrillic-translit': punctuation marks, accented characters, fractions,
 +and others.
 +
 +** Emacs now supports serial port access on GNU/Linux, Unix, and
 +Windows.  The new command `serial-term' starts an interactive terminal
 +on a serial port.  The serial port can be configured at runtime with
 +the mode-line mouse menu.
 +
 +** Menu Bar changes
 +
 +*** In the Options menu, the "Set Default Font" item applies the
 +selected font to the `default' face on all frames, not just the
 +current frame.  Furthermore, if Emacs is compiled with both GTK and
 +Fontconfig support, the "Set Default Font" item uses the GTK font
 +selection dialog instead of an Emacs pop-up menu.
 +
 +*** The font setting chosen by "Set Default Font" is saved if the
 +"Save Options" item is used.
 +
 +*** The Tools menu contains a new Encryption/Decryption submenu.
 +This contains commands provided by EasyPG, the newly-included
 +interface to GnuPG (see New Modes and Packages).
 +
 +*** In the Options menu, the "Truncate Long Lines in the Buffer" entry
 +has been replaced with a submenu offering three different ways to
 +handle long lines: truncation, continuation at the window edge, and
 +the new word wrapping behavior (see Editing Changes, below).
 +
 +*** Improvements to menus for major and minor modes
 +More major and minor modes now have a mode specific menu, and existing
 +mode menus have been improved to include more functionality.
 +
 +** Mode-line changes
 +
 +*** The mode-line displays a `@', instead of `-', if the
 +default-directory for the current buffer is on a remote machine.
 +
 +*** The mode-line displays a mode menu when mouse-1 is clicked on a
 +minor mode, in the same way as it already did for major modes.
 +
 +*** The `mode-line-emphasis' face is used to highlight certain
 +mode-line information (e.g. waiting for a VC command to finish).
 +
 +*** The mode-line tooltips have been improved to provide more details.
 +
 +*** The VC, line/colum number and minor mode indicators on the mode
 +line are now interactive: mouse-1 can be used on them to pop up a menu.
 +
 +** File deletion can make use of the Recycle Bin or system Trash folder.
 +Set `delete-by-moving-to-trash' non-nil to use this.  Deleted files
 +and directories will then be sent to the Recycle Bin on Windows, and
 +to `trash-directory' on other systems.
 +
 +** Directory-local variables can now be defined.
 +By default, Emacs looks in .dir-locals.el for directory-local
 +variables.  For more information, see `dir-locals-set-directory-class'
 +and `dir-locals-set-class-variables'.
 +
 +** Emacs can now use `auth-source' for authentication.
 +`smtpmail' and `url' (Tramp and Gnus also) use `auth-source' to obtain
 +login names and passwords.  The match, if found, is reported
 +in *Messages* with the password blanked out.
 +
 +** `where-is-preferred-modifier' can specify your favorite modifier.
 +
 +\f
 +* Startup Changes in Emacs 23.1
 +
 +** The option `inhibit-startup-screen' (with aliases to old names
 +`inhibit-splash-screen' and `inhibit-startup-message') doesn't inhibit
 +display of the initial message in the *scratch* buffer.  If you don't
 +want to display the initial message in the *scratch* buffer at startup,
 +you can set the option `initial-scratch-message' to nil.
 +
 +** New user option `initial-buffer-choice' specifies what to display
 +after starting Emacs: startup screen, *scratch* buffer, visiting a
 +file or directory.
 +
 +** New alias `argv' for `command-line-args-left'
 +This is a convenience alias, so that one can write `(pop argv)'
 +inside of --eval command line arguments in order to access
 +following arguments.
 +
 +** The abbrev file is no longer read at startup in batch mode.
 +
 +** Emacs now supports invocation by an X session manager.
 +It can save a session and restore it later.  See the documentation of
 +the functions `emacs-session-save' and `emacs-session-restore'.
 +(Actually, this feature was introduced with Emacs 22, but it was not
 +documented.)
 +\f
 +* Incompatible Editing Changes in Emacs 23.1
 +
 +** In Dired, `dired-flag-garbage-files' is rebound from `&' to `%&'
 +on the regexp command prefix map.
 +
 +** In Dired-x, all command guesses for ! are now added to the default
 +list accessible by M-n instead of pushing all guesses temporarily into
 +the history list.
 +
 +** In Isearch mode, a special case of typing `C-w' at the beginning of
 +the minibuffer that toggles word search (i.e. using key sequences
 +`C-s RET C-w' or `C-s M-e C-w') is obsolete.  You can use the global key
 +`M-s w' to start word search, or type `M-s w' in Isearch mode to
 +toggle word search.  To start nonincremental word search you can now use
 +`M-s w RET' and `M-s w C-r RET' instead of `C-s RET C-w' and `C-r RET C-w'.
 +
 +** In Info, `Info-search' is unbound from `M-s' to allow using `M-s w'
 +for word search as well as other search commands from the global prefix
 +key `M-s'.  `Info-search' is still bound to `s', and also incremental
 +search commands `C-s', `C-M-s', `C-r', `C-M-r' are available for searching
 +through multiple Info nodes, together with their nonincremental versions
 +`C-s RET', `C-r RET', `C-M-s RET', `C-M-r RET', `M-s w RET'.
 +
 +** In Text mode, `center-line' and `center-paragraph' are rebound from
 +`M-s' and `M-S' to global keys `M-o M-s' and `M-o M-S' on the global
 +prefix map `M-o', which is intended for such formatting commands.
 +
 +** The following input methods were removed in Emacs 22.2, but this was
 +not advertised: danish-alt-postfix, esperanto-alt-postfix,
 +finnish-alt-postfix, german-alt-postfix, icelandic-alt-postfix,
 +norwegian-alt-postfix, scandinavian-alt-postfix, spanish-alt-postfix,
 +and swedish-alt-postfix.  Use the versions without "alt-", which are
 +identical.
 +
 +\f
 +* Editing Changes in Emacs 23.1
 +
 +** The C-n and C-p line-motion commands now move by screen lines,
 +taking continued lines and variable-width characters into account.
 +Setting `line-move-visual' to nil reverts this to the previous
 +behavior (i.e., motion by logical lines based on buffer contents
 +alone).
 +
 +** C-x C-c now invokes `save-buffers-kill-terminal', and C-z now
 +invokes `suspend-frame'.  These changes are for compatibility with the
 +new multi-tty support (see `Improved X Window System support' above).
 +
 +** Mark changes
 +
 +*** Transient Mark mode is now on by default.
 +
 +*** mark-even-if-inactive now defaults to t
 +
 +*** When Transient Mark mode is on, C-SPC C-SPC pushes a mark without
 +activating it.
 +
 +*** When Transient Mark mode is on, M-q now fills the region if the
 +region is active.  Otherwise, it fills the current paragraph.
 +
 +*** When Transient Mark mode is on, M-$ now checks spelling of the
 +region if the region is active.  Otherwise, it checks spelling of the
 +word at point.
 +
 +*** When Transient Mark mode is on, TAB now indents the region if the
 +region is active.
 +
 +*** The variable `use-empty-active-region' controls whether an empty
 +active region in Transient Mark mode should make commands operate on
 +that empty region.
 +
 +** Temporarily active regions
 +
 +*** The new variable shift-select-mode, non-nil by default, controls
 +shift-selection.  When Shift Select mode is on, shift-translated
 +motion keys (e.g. S-left and S-down) activate and extend a temporary
 +region, similar to mouse-selection.
 +
 +*** Temporarily active regions, created using shift-selection or
 +mouse-selection, are not necessarily deactivated in the next command.
 +They are only deactivated after point motion commands that are not
 +shift-translated, or after commands that would ordinarily deactivate
 +the mark in Transient Mark mode (e.g., any command that modifies the
 +buffer).
 +
 +** Minibuffer and completion changes
 +
 +*** Emacs may ask for confirmation before opening a non-existent file
 +or buffer.  By default, Emacs requests confirmation if you type RET
 +immediately after TAB, and the resulting input is not an existing file
 +or buffer; this usually happens when the minibuffer input did not
 +complete far enough and you entered RET by mistake.  In that case,
 +Emacs puts the message "[Confirm]" in the minibuffer; type RET again
 +to create the file or buffer.
 +
 +The new variable confirm-nonexistent-file-or-buffer determines whether
 +Emacs asks for confirmation.  The default value is `after-completion'.
 +If you change it to t, Emacs always asks for confirmation; if you
 +change it to nil, Emacs never asks for confirmation.
 +
 +*** The rules for performing completion have been changed.
 +When generating completion alternatives, Emacs now takes the
 +minibuffer text after point, if any, into account: this text is
 +treated as a substring of the remaining part of the completion
 +alternative (i.e., the part not matched by the minibuffer text before
 +point).  If no completion alternatives are found this way, Emacs
 +attempts to perform partial-completion.  If still no completion
 +alternatives are found, we fall back on the Emacs 22 rules for
 +performing completion.
 +
 +The new variable `completion-styles' can be customized to choose your
 +favorite completion style.
 +
 +*** When M-n in the minibuffer reaches the end of the list of defaults,
 +it adds the completion list to the end, so next M-n continues putting
 +completion items to the minibuffer.  The same principle applies to
 +incremental search commands as well: C-s or C-M-s starts searching
 +the default values and after the end of defaults they continue
 +searching minibuffer completion items.
 +
 +*** Minibuffer input of shell commands now comes with completion.
 +
 +*** In the `C-x d' (Dired) prompt, typing M-n gives the visited file
 +name of the current buffer.
 +
 +*** In the M-! (shell-command) prompt, M-n provides some default commands.
 +These are guessed using the file extension of the current file, based
 +on the file-handlers specified in the operating system's `mailcap'
 +file.  The ! command in Dired (dired-do-shell-command) works
 +similarly, using the file displayed on the current line.
 +
 +*** A list of regexp default values is available via M-n for `occur',
 +`keep-lines', `flush-lines' and `how-many'.  This list includes the active
 +region in transient-mark-mode, the word under the cursor, the last Isearch
 +regexp, the last Isearch string and the last replacement regexp.
 +
 +*** When enable-recursive-minibuffers is non-nil, operations which use
 +switch-to-buffer (such as C-x b and C-x C-f) do not fail any more when
 +used in a minibuffer or a dedicated window.  Instead, they fallback on
 +using pop-to-buffer, which will use some other window.  This change
 +has no effect when enable-recursive-minibuffers is nil (the default).
 +
 +*** Isearch started in the minibuffer searches in the minibuffer history.
 +Reverse Isearch commands (C-r, C-M-r) search in previous minibuffer
 +history elements, and forward Isearch commands (C-s, C-M-s) search in
 +next history elements.  When the reverse search reaches the first history
 +element, it wraps to the last history element, and the forward search
 +wraps to the first history element.  When the search is terminated, the
 +history element containing the search string becomes the current.
 +
 +*** The variable read-file-name-completion-ignore-case overrides
 +completion-ignore-case for file name completion.
 +
 +*** The variable read-buffer-completion-ignore-case overrides
 +completion-ignore-case for buffer name completion.
 +
 +*** The new command `minibuffer-force-complete' chooses one of the
 +possible completions, rather than stopping at the common prefix.
 +
 +*** If `completion-auto-help' is `lazy', Emacs shows the completions
 +buffer only on the second attempt to complete.  This was already
 +supported in `partial-completion-mode'.
 +
 +** Face changes
 +
 +*** S-down-mouse-1 now pops up a menu for changing the font and text
 +size of the default face in the current buffer.  The face is changed
 +via face remapping (see Lisp changes, below).
 +
 +*** New commands to change the default face size in the current buffer.
 +To increase it, type `C-x C-+' or `C-x C-='.  To decrease it, type
 +`C-x C--'.  To restore the default (global) face size, type `C-x C-0'.
 +These work via Text Scale mode, a new minor mode.
 +
 +The final key in the above commands may be repeated without the
 +leading `C-x', e.g. `C-x C-= C-= C-=' increases the face height by
 +three steps.  Each step scales the height of the default face by the
 +value of the variable `text-scale-mode-step'.
 +
 +*** The commands buffer-face-mode and buffer-face-set can be used to
 +remap the default face in the current buffer.  See "Buffer Face mode",
 +under New Modes and Packages.
 +
 +** Primary selection changes
 +
 +*** You can disable kill ring commands from accessing the primary
 +selection by setting `x-select-enable-primary' to nil.
 +
 +** Continuation lines can now be wrapped at word boundaries
 +(word-wrapping).  This is controlled by the new per-buffer variable
 +`word-wrap'.  Word wrapping does not take place if continuation lines
 +are not shown, e.g. if truncate-lines is non-nil.  The most convenient
 +way to enable word-wrapping is using the new minor mode Visual Line
 +mode; in addition to setting `word-wrap' to t, this rebinds some
 +editing commands to work on screen lines rather than text lines.  See
 +New Modes and Packages, below.
 +
 +** Window management changes
 +
 +*** truncate-partial-width-windows now accepts integer values, which
 +specify a minimum window width for partial-width windows, below which
 +lines are truncated.  The default has been changed to 50.
 +
 +*** The new command balance-windows-area balances windows both
 +vertically and horizontally.
 +
 +*** pop-to-buffer now always sets input focus when the popped-to window
 +is on a different frame.
 +
 +** Miscellaneous changes:
 +
 +*** C-l is bound to the new command recenter-top-bottom, rather than recenter.
 +This moves the current line to window center, top and bottom on
 +successive invocations.
 +
 +*** scroll-preserve-screen-position also preserves the column position.
 +
 +*** If `yank-pop-change-selection' is t, rotating the kill ring also
 +updates the selection or clipboard to the current yank, just as M-w
 +would do so with the text it copies to the kill ring.
 +
 +*** C-M-% now shows replacement as it would look in the buffer, with
 +`\N' and `\&' substituted according to the match.  Old behavior can be
 +restored by customizing `query-replace-show-replacement'.
 +
 +*** The command shell prompts for the default directory, when it is
 +called with a prefix and the default directory is a remote file name.
 +This is because some file name handlers (like ange-ftp) are not able to
 +run processes remotely.
 +
 +*** The new command kill-matching-buffers kills buffers whose name
 +matches a regexp.
 +
 +*** The value of comment-style now defaults to `indent'.
 +Thefore, comment-start markers are inserted at the current indentation
 +of the region to comment, rather than the leftmost column.
 +
 +*** The new commands `pp-macroexpand-expression' and
 +`pp-macroexpand-last-sexp' pretty-print macro expansions.
 +
 +*** The new command `set-file-modes' allows to set file's mode bits.
 +The mode bits can be specified in symbolic notation, like with GNU
 +Coreutils, in addition to an octal number.  `chmod' is a new
 +convenience alias for this function.
 +
 +*** `next-error-recenter' specifies how next-error should recenter the
 +visited source file.  Its value can be a number (for example, 0 for
 +top line, -1 for bottom line), or nil for no recentering.
 +
 +*** When typing in a password in the echo area, C-y yanks the current
 +kill into the password.
 +
 +*** Tooltip frame parameters `font' and `color' in `tooltip-frame-parameters'
 +are ignored.  Customize the `tooltip' face instead.
 +
 +*** `mkdir' is a new convenience alias for `make-directory'.
 +\f
 +* New Modes and Packages in Emacs 23.1
 +
 +** Auto Composition Mode is a minor mode that composes characters
 +automatically when they are displayed.  It is globally on by default.
 +It uses `auto-composition-function' (default `auto-compose-chars').
 +
 +** Bubbles, a new game, is similar to SameGame.
 +
 +** Buffer Face mode is a minor mode for remapping the default face in
 +the current buffer.  The variable `buffer-face-mode-face' specifies
 +the face to remap to.  The command `buffer-face-set' prompts for a
 +face name, sets `buffer-face-mode-face' to it, and enables
 +buffer-face-mode.  See "Face changes", under Editing Changes, for a
 +description of face remapping.
 +
 +** butterfly flips the desired bit on the drive platter.
 +See http://xkcd.com/378/
 +
 +** bug-reference.el provides clickable links to bug reports.
 +
 +** dbus.el provides D-Bus language bindings.
 +D-Bus is an inter-process communication mechanism for applications
 +residing on the same host.  See the manual for details.
 +
 +** DocView mode allows viewing of PDF, PostScript and DVI documents.
 +One can also search for a regular expression in the document.  For
 +details, see the commentary in doc-view.el.
 +
 +PDF and DVI files are now opened in Doc View mode by default.
 +
 +In Postcript mode, C-c C-c launches Doc View minor mode for viewing
 +the postscript file.
 +
 +** EasyPG provides an interface to the GNU Privacy Guard (GnuPG).
 +It includes a GnuPG keyring browser, cryptographic operations on
 +regions and files, and automatic encryption of *.gpg files.  For
 +details, see the EasyPG Assistant User's Manual.
 +
 +** json.el is a library for parsing and generating JSON
 +(JavaScript Object Notation), a lightweight data-interchange format.
 +
 +** linum.el is a new minor mode to display line numbers for the
 +current buffer.
 +
 +** mairix.el is an interface to mairix, a free tool for indexing and
 +searching locally stored mail.  It allows you to query mairix and
 +display the search results with Rmail, Gnus and VM.  Note that there
 +is an existing Gnus back end, nnmairix.el, which should be used with
 +Maildir/MH setups.
 +
 +** minibuffer-depth-indicate-mode shows the minibuffer depth in the prompt.
 +
 +** nXML Mode
 +This is a new mode for editing XML documents.  It allows a schema to
 +be associated with the XML document being edited, using Relax NG as
 +the schema language.  The schema is used to provide two key features:
 +
 +*** Continuous validation.  nXML validates as you type, highlighting
 +any invalid parts of your document.
 +
 +*** Completion.  nXML can assist you in entering an element name,
 +attribute name or data value by using information about what is
 +allowed by the schema in that context.
 +
 +** proced.el provides a Dired-like interface for operating on
 +processes.  Proced makes an Emacs buffer containing a listing of the
 +current processes.  You can use the normal Emacs commands to move
 +around in this buffer, and special Proced commands to operate on the
 +processes listed.  It is currently only functional on GNU/Linux,
 +MS-Windows and Solaris.
 +
 +** Remember Mode is a mode for jotting down things to remember.
 +Notes can be saved to a Diary file.  For details, see the Remember
 +Manual.
 +
 +** RST mode is a major mode for editing reStructuredText files.
 +
 +** Ruby mode is a major mode for Ruby files.
 +
 +** Visual Line mode provides support for editing by visual lines.
 +It turns on word-wrapping in the current buffer, and rebinds C-a, C-e,
 +and C-k to commands that operate by visual lines instead of logical
 +lines.  This is a more reliable replacement for longlines-mode.
 +This can also be turned on using the menu bar, via
 +Options -> Line Wrapping in this Buffer -> Word Wrap
 +
 +** xesam.el is an implementation of Xesam, an interface to (desktop)
 +search engines like Beagle, Strigi, and Tracker.  The Xesam API
 +requires D-Bus for communication.
 +
 +** zeroconf.el offers service discovery and service publishing
 +interfaces according to the zeroconf specification.  It communicates
 +with Avahi, a zeroconf implementation, via D-Bus messages on systems
 +which have installed this software.
 +
 +** There is a new `whitespace' package.
 +(The pre-existing one has been renamed to `old-whitespace'.)
 +Now, besides reporting bogus blanks, the whitespace package has a
 +minor mode and a global minor mode to visualize blanks (TAB, (HARD)
 +SPACE and NEWLINE).  The visualization is made via faces and/or display
 +table.  It can also indicate lines that extend beyond a given column,
 +trailing blanks, and empty lines at the start or end of a buffer.
 +See `whitespace-style' for more details.  The `whitespace-action' option
 +specifies what to do when a buffer is visited, killed, or written.
 +
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 23.1
 +
 +** Abbrev has been rewritten in Elisp and extended with more flexibility.
 +
 +*** New functions: abbrev-get, abbrev-put, abbrev-table-get, abbrev-table-put,
 +abbrev-table-p, abbrev-insert, abbrev-table-menu.
 +
 +*** Special hook `abbrev-expand-functions' obsoletes `pre-abbrev-expand-hook'.
 +
 +*** `make-abbrev-table', `define-abbrev', `define-abbrev-table' all take
 +extra arguments for arbitrary properties.
 +
 +*** New variable `abbrev-minor-mode-table-alist'.
 +
 +*** `local-abbrev-table' can hold a list of abbrev-tables.
 +
 +*** Abbrevs have now the following special properties:
 +`:count', `:system', `:enable-function', `:case-fixed'.
 +
 +*** Abbrev-tables have now the following special properties:
 +`:parents', `:case-fixed', `:enable-function', `:regexp',
 +`abbrev-table-modiff'.
 +
 +** Apropos
 +
 +*** `apropos-library' describes the elements defined in a given library.
 +
 +*** Set `apropos-compact-layout' is you want a more compact (but wider) layout.
 +
 +** Archive Mode has basic support to browse Rar archives.
 +Note, however, that the free version of the unrar command only handles
 +versions 1 and 2 of the Rar format.
 +
 +** BibTeX mode
 +
 +*** New command `bibtex-initialize' (re)initializes BibTeX buffers.
 +
 +*** New `bibtex-entry-format' options `whitespace', `braces', and
 +`string', disabled by default.
 +
 +*** New variable `bibtex-cite-matcher-alist' contains rules to
 +identify cited keys in BibTeX entries, used by `bibtex-find-crossref'.
 +
 +*** Command `bibtex-url' allows multiple URLs per entry.
 +
 +** Bookmarks
 +
 +*** bookmark.el saves bookmarks in a pre-Emacs-23-incompatible file format
 +bookmark.el can read a .emacs.bmk file saved by an older Emacs, but an
 +older Emacs cannot read one saved by Emacs 23.
 +
 +** Calendar and diary
 +
 +*** There is a new date style, `iso', essentially year/month/day.
 +The variable `european-calendar-style' is obsolete - use `calendar-date-style'.
 +Similarly, the commands `american-calendar' and `european-calendar'
 +should be replaced by `calendar-set-date-style'.
 +
 +*** The calendar namespace has been rationalized.
 +All functions and variables now begin with a `calendar-', `diary-', or
 +`holiday-' prefix.  The various calendar systems have secondary
 +prefixes, eg `calendar-french-'.  The old names you are likely to use
 +directly still exist, for the time being, as aliases, but please start
 +using the new names.
 +
 +*** The whitespace in the calendar layout can be customized.
 +See the variables:
 +calendar-left-margin, calendar-intermonth-spacing, calendar-column-width,
 +calendar-day-header-width, and calendar-day-digit-width.
 +
 +*** Text (e.g. ISO weeks) can be displayed between the calendar months.
 +See the variables calendar-intermonth-header and calendar-intermonth-text.
 +
 +*** The function `holiday-chinese' computes holidays on the Chinese calendar.
 +It has been used to add items to the list `holiday-oriental-holidays'.
 +
 +*** `diary-remind' accepts a negative number -DAYS as a shorthand for
 +the list (1 2 ... DAYS).
 +
 +** Change Log mode
 +
 +*** The new command C-c C-f (change-log-find-file) finds the file
 +associated with the current log entry.
 +
 +*** The new command C-c C-c (change-log-goto-source) goes to the
 +source code associated with a log entry.
 +
 +** Compile and grep modes
 +
 +*** The mode-line entry for the *compilation* and *grep* buffer is color coded.
 +It has different colors for to show that: (a) the command is still
 +running, (b) successful completion, (c) error.
 +
 +*** compilation-auto-jump-to-first-error tells `compile' to jump to
 +the first error encountered during compilations.
 +
 +*** compilation-scroll-output accepts a new value, `first-error', which
 +says to stop auto scrolling at the first error that occurs.
 +
 +*** The `cc' alias for C++ files in `grep-file-aliases' has been
 +improved.  `hh' can be used to match C++ header files and `cchh' both
 +C++ sources and headers.
 +
 +** Copyright
 +
 +*** You can specify your copyright holders' names.
 +Only copyright lines with holders matching `copyright-names-regexp' are
 +considered for update.
 +
 +*** Copyrights can be at the end of the buffer.
 +This is controlled by `copyright-at-end-flag' (used by, e.g., change-log-mode).
 +
 +** Custom
 +
 +*** defcustom accepts new keyword arguments, `:safe' and `:risky', which
 +set a variable's `safe-local-variable' and `risky-local-variable' property.
 +
 +** Diff mode
 +
 +*** diff-refine-hunk highlights word-level details of changes in a diff hunk.
 +It's used automatically as you move through hunks, see
 +diff-auto-refine-mode.  It is bound to `C-c C-b'.
 +
 +*** diff-add-change-log-entries-other-window iterates through the diff
 +buffer and tries to create ChangeLog entries for each change.
 +It is bound to `C-x 4 A'.
 +
 +*** Turning on `whitespace-mode' in a diff buffer will show trailing
 +whitespace problems in the modified lines.
 +
 +** Dired
 +
 +*** In Dired, C-x C-q now runs the command wdired-change-to-wdired-mode,
 +and C-x C-q in wdired-mode exits it with asking a question about
 +saving changes.
 +
 +*** `&' runs the command `dired-do-async-shell-command' that executes
 +the command asynchronously without the need to manually add ampersand
 +to the end of the command.  Its output appears in the buffer `*Async Shell
 +Command*'.
 +
 +*** `M-s f C-s' and `M-s f M-C-s' run Isearch that matches only at file names.
 +When a new user option `dired-isearch-filenames' is t, then even ordinary
 +Isearch started with `C-s' and `C-M-s' matches only at file names in the
 +Dired buffer.  When `dired-isearch-filenames' is `dwim' then activation of
 +file name Isearch depends on the position of point - if point is on a file
 +name initially, then Isearch matches only file names, otherwise it matches
 +everywhere in the Dired buffer.  You can toggle file names matching on or
 +off by typing `M-s f' in Isearch mode.
 +
 +*** `M-s a C-s' and `M-s a M-C-s' run multi-file Isearch on the marked files.
 +They visit the first marked file in the sequence and display the usual Isearch
 +prompt for a string or a regexp where all Isearch commands are available.
 +
 +*** `Q' in Dired provides two new keys for multi-file replacement.
 +The upper case key `Y' replaces all remaining matches in all remaining files
 +with no more questions.  The upper case key `N' stops doing replacements
 +in the current file and skips to the next file.  These multi-file keys
 +are available for all commands that use `tags-query-replace'
 +including `dired-do-query-replace-regexp', `vc-dir-query-replace-regexp',
 +`reftex-query-replace-document'.
 +
 +** Fortran
 +
 +*** The line length of fixed-form Fortran is not fixed at 72 any more.
 +Customize the variable `fortran-line-length' to change it.
 +
 +*** In Fortran mode, M-; is now bound to the standard comment-dwim,
 +rather than fortran-indent-comment.
 +
 +*** (The increasingly misnamed) F90 mode supports Fortran 2003 syntax.
 +
 +** Gnus
 +
 +*** The Gnus package has been updated
 +There are many new features, bug fixes and improvements; see the file
 +GNUS-NEWS or the node "No Gnus" in the Gnus manual for details.
 +
 +*** In Emacs 23, Gnus uses Emacs' new internal coding system `utf-8-emacs' for
 +saving articles, drafts, and ~/.newsrc.eld.  These file may not be read
 +correctly in Emacs 22 and below.  If you want to Gnus across different Emacs
 +versions, you may set `mm-auto-save-coding-system' to `emacs-mule'.
 +
 +*** Passwords are consistently loaded through `auth-source'
 +Gnus can use `auth-source' for POP and IMAP passwords.  Also see that
 +`smtpmail' and `url' support `auth-source' for SMTP and HTTP/HTTPS/RSS
 +authentication respectively.
 +
 +** Help mode
 +
 +*** New macro `with-help-window' should set up help windows better
 +than `with-output-to-temp-buffer' with `print-help-return-message'.
 +
 +*** New option `help-window-select' permits to customize whether help
 +window shall be automatically selected when invoking help.
 +
 +*** New variable `help-window-point-marker' permits one to specify a new
 +position for point in help window (for example in `view-lossage').
 +
 +** Isearch
 +
 +*** New command `isearch-forward-word' bound globally to `M-s w' starts
 +incremental word search.  New command `isearch-toggle-word' bound to the
 +same key `M-s w' in Isearch mode toggles word searching on or off
 +while Isearch is active.
 +
 +*** New command `isearch-highlight-regexp' bound to `M-s h r' in Isearch
 +mode runs `highlight-regexp' (`hi-lock-face-buffer') with the current
 +search string as its regexp argument.  The same key `M-s h r' and
 +other keys on the `M-s h' prefix are bound globally to the command
 +`highlight-regexp' and other hi-lock commands.
 +
 +*** New command `isearch-occur' bound to `M-s o' in Isearch mode
 +runs `occur' with the current search string.  The same key `M-s o'
 +is bound globally to the command `occur'.
 +
 +*** Isearch can now search through multiple ChangeLog files.
 +When running Isearch in a ChangeLog file, if the search fails,
 +then another C-s tries searching the previous ChangeLog,
 +if there is one (e.g. going from ChangeLog to ChangeLog.12).
 +This is enabled if multi-isearch-search is non-nil.
 +
 +*** Two new commands to start Isearch on a list of marked buffers
 +for buff-menu.el and ibuffer.el are bound to the keys `M-s a C-s' and
 +`M-s a M-C-s'.
 +
 +*** The part of an Isearch that failed to match is highlighted in
 +`isearch-fail' face.
 +
 +*** `C-h C-h' in Isearch mode displays isearch-specific Help screen,
 +`C-h b' displays all Isearch key bindings, `C-h k' displays the full
 +documentation of the given Isearch key sequence, `C-h m' displays
 +documentation for Isearch mode.  All the other Help commands exit
 +Isearch mode and execute their global definitions.
 +
 +*** When started in the minibuffer, Isearch searches in the minibuffer
 +history.  See `Minibuffer changes', above.
 +
 +** MH-E
 +
 +*** Upgraded to MH-E version 8.2.  See MH-E-NEWS for details.
 +
 +** Python
 +*** The file etc/emacs.py now supports both Python 2 and 3, meaning
 +that either version can be used as inferior Python by python.el.
 +
 +*** Python mode now has `pdbtrack' functionality.  When using pdb to
 +debug a Python program, pdbtrack notices the pdb prompt and displays
 +the source file and line that the program is stopped at, much the same
 +way as gud-mode does for debugging C programs with gdb.
 +
 +** Recentf
 +
 +*** The default value of `recentf-keep' prevents from checking of
 +remote files, if there is no established connection to the
 +corresponding remote host.
 +
 +** Rmail
 +
 +*** Rmail no longer converts the messages to Babyl format.
 +Instead, it uses UNIX mbox format, both on disk and in Rmail buffers,
 +and does conversion and decoding when a message is displayed.
 +
 +The first time you visit an Rmail file in Babyl format, Rmail
 +automatically converts it to mbox format.  This is a one-time
 +conversion, but it can take a few minutes, depending on how fast is
 +your machine and on the size of the file.  You should find the rest of
 +Rmail usage unaltered.
 +
 +However, M-x set-rmail-inbox-list now lasts only for one session
 +because there is no way to save the list of inbox files in an
 +mbox-format file.
 +
 +Also, whereas with Babyl format M-x find-file would switch to Rmail
 +mode, with mbox format this is no longer the case (there being no way
 +to add an "-*- rmail-*-" cookie to an mbox file).  Use C-u M-x rmail
 +instead.
 +
 +If you have written any extensions to Rmail, they are likely to need
 +updating.  Conceptually, the Rmail buffer that you see is no longer
 +just a narrowed portion of the whole.  So you cannot access the whole
 +of a message (or message collection) by a simple save-restriction and
 +widen.  Instead, there are two buffers: the rmail-buffer, and the
 +rmail-view-buffer.  The former is the buffer that you see, the latter
 +is invisible.  Most of the time, the invisible `view' buffer contains
 +the full contents of the Rmail file, and the Rmail buffer contains a
 +decoded copy of the current message (with only a subset of the
 +headers).  In this state, Rmail is said to be `swapped'.
 +
 +You may find the following functions useful:
 +
 +`rmail-get-header' and `rmail-set-header' get or set the value of a
 +message header, whether or not it is currently visible.
 +
 +`rmail-apply-in-message' is a general purpose function that calls a
 +function (with arguments) which you specify on the full text of a given
 +message.  To further narrow to just the headers, search forward for "\n\n".
 +
 +*** The new command `rmail-mime' displays MIME messages.
 +It is bound to `v' in Rmail buffers and summaries.  It displays plain
 +text and multipart messages in a temporary buffer, and offers buttons
 +to save attachments.
 +
 +*** The command `rmail-redecode-body' no longer accepts the optional arg RAW.
 +Since Rmail now holds messages in their original undecoded form in a
 +separate buffer, `rmail-redecode-body' no longer encodes the original
 +message, and therefore there should be no need to avoid encoding it.
 +
 +*** The o command is now `rmail-output'.  It is an all-purpose command
 +for copying messages from Rmail and appending them to files.  It
 +handles Babyl-format files as well as mbox-format files, and it
 +handles both kinds properly when they are visited in Emacs.  It always
 +copies the full headers of the message.
 +
 +*** The C-o command is now `rmail-output-as-seen'.  It uses
 +the message as displayed, appending it to an mbox file.
 +
 +*** The modified status of the Rmail buffer is reported in the mode-line.
 +Previously, this information was hidden.
 +
 +** TeX modes
 +
 +*** New option latex-indent-within-escaped-parens
 +permits to customize indentation of LaTeX environments delimited
 +by escaped parens.
 +
 +** T-mouse Mode
 +
 +*** If the gpm mouse server is running and t-mouse-mode is enabled,
 +Emacs uses a Unix socket in a GNU/Linux console to talk to server,
 +rather than faking events using the client program mev.  This C level
 +approach provides mouse highlighting and help echoing in the
 +minibuffer.
 +
 +** Tramp
 +
 +*** New connection methods.
 +The new methods "plinkx", "plink2", "psftp", "sftp" and "fish" have
 +been introduced.  There are also new so-called gateway methods
 +"tunnel" and "socks".
 +
 +*** IPv6 addresses.
 +IPv6 addresses are supported now as host names.  They must be embedded
 +in square brackets, like in "/ssh:[::1]:".
 +
 +*** Multihop syntax has been removed.
 +The pseudo-method "multi" has been removed.  Instead, multi hops
 +can be specified by the new variable `tramp-default-proxies-alist'.
 +
 +*** More default settings.
 +Default values can be set via the variables `tramp-default-user',
 +`tramp-default-user-alist' and `tramp-default-host'.
 +
 +*** Connection information is cached.
 +In order to reduce connection setup, information about used
 +connections is kept persistently in a file.  The name of this file is
 +defined in the variable `tramp-persistency-file-name'.
 +
 +*** Control of remote processes.
 +Running processes on a remote host can be controlled by settings in
 +`tramp-remote-path' and `tramp-remote-process-environment'.
 +
 +*** Success of remote copy is checked.
 +When the variable `file-precious-flag' is set, the success of a remote
 +file copy is checked via the file's checksum.
 +
 +*** Passwords can be read from an authentification file.
 +Tramp uses the package `auth-source' to read passwords from a file, if
 +necessary.
 +
 +** VC and related modes
 +
 +*** VC now supports applying VC operations to a set of files at a time.
 +This enables VC to work much more effectively with changeset-oriented
 +version-control systems such as Subversion, GNU Arch, Mercurial, Git
 +and Bzr.  VC will now pass a multiple-file commit to these systems as
 +a single changeset.
 +
 +*** vc-dir is a new command that displays file names and their VC
 +status.  It allows to apply various VC operations to a file, a
 +directory or a set of files/directories.
 +
 +*** VC switches are no longer appended, rather the first non-nil value is used.
 +(This was for the most part true in Emacs 22, but was not advertised).
 +This is because there is an increasing variety of VC systems, and they
 +do not all accept the same "common" options.  For example, a CVS diff
 +command used to append the values of `vc-cvs-diff-switches',
 +`vc-diff-switches', and `diff-switches'.  Now the first non-nil value
 +from that sequence is used.  The special value `t' means "no switches".
 +
 +*** Clicking on the VC mode-line entry now pops the VC menu.
 +
 +*** The VC mode-line entry now has a tooltip that explains the VC file status.
 +
 +*** In VC Annotate mode, the key bindings have changed to use lower
 +case keys instead of the upper case keys used in the past.
 +
 +*** In VC Annotate mode, for VC systems that support changesets, you can
 +see the diff for the whole changeset (not only for the current file)
 +by typing the D key.  Using the "Show changeset diff of revision at
 +line" menu entry does the same thing.
 +
 +*** In VC Annotate mode, you can type v to toggle the annotation visibility.
 +
 +*** In VC Annotate mode, you can type f to show the file revision on
 +the current line.
 +
 +*** Asynchronous VC commands display [Waiting...] in the mode-line
 +of the corresponding buffer as long as the asynchronous process is
 +active.
 +
 +*** Log entries can be modified using the key "e" in log-view.
 +For now only CVS, RCS, SCCS and SVN support this functionality.
 +This is done by the `modify-change-comment' backend function.
 +
 +*** In log-view-mode, for VC systems that support changesets, you can
 +see the diff for the whole changeset (not only for the current file)
 +by typing the D key or using the "Changeset Diff" menu entry.
 +
 +*** In Log Edit mode,  C-c C-d now shows the diff for the files involved.
 +
 +*** vc-git supports the "git grep" command.
 +
 +*** VC Support for Meta-CVS has been removed for lack of a maintainer able
 +to update it to the new VC.
 +
 +** Miscellaneous
 +
 +*** comint-mode uses `start-file-process' now (see Lisp Changes).
 +If `default-directory' is a remote file name, subprocesses are started
 +on the corresponding remote system.
 +
 +*** Eldoc highlights the function argument under point
 +with the face `eldoc-highlight-function-argument'.
 +
 +*** In Etags, the --members option is now the default.
 +Use --no-members if you want the old default behavior of not tagging
 +struct members in C, members variables in C++ and variables in PHP.
 +
 +*** The `gdb' command only works with the graphical interface now.
 +Use `gud-gdb' if you want the (old) text command mode.
 +
 +*** goto-address.el provides two new minor modes, goto-address-mode and
 +goto-address-prog-mode, which buttonize URLS and email addresses.
 +
 +*** The new command `eshell/info' runs info in an eshell buffer.
 +
 +*** The new variable `ffap-rfc-directories' specifies a list of local
 +directories in which `ffap-rfc' will first search for RFCs.
 +
 +*** hide-ifdef-mode allows shadowing ifdef-blocks instead of hiding them.
 +See option `hide-ifdef-shadow' and function `hide-ifdef-toggle-shadowing'.
 +
 +*** `icomplete-prospects-height' now supercedes `icomplete-prospects-length'.
 +
 +*** Info displays breadcrumbs in the header of the page.
 +See Info-breadcrumbs-depth to control it.
 +
 +*** net-utils has an `iwconfig' command, similar to the existing `ifconfig'.
 +It is used to configure wireless interfaces.
 +
 +*** The pcmpl-unix package supports hostname completion for ssh and scp.
 +
 +*** sgml-electric-tag-pair-mode lets you simultaneously edit matched tag pairs.
 +
 +*** smerge-refine highlights word-level details of changes in conflict.
 +It's used automatically as you move through conflicts, see
 +smerge-auto-refine-mode.
 +
 +*** talk.el has been extended for multiple tty support.
 +
 +*** A new command `display-time-world' has been added to the Time
 +package.  It creates a buffer with an updating time display using
 +several time zones.
 +
 +*** The appearance of superscript and subscript in TeX is more customizable.
 +See the documentation of the variables: tex-fontify-script,
 +tex-font-script-display, tex-suscript-height-ratio, and
 +tex-suscript-height-minimum.
 +
 +*** view-remove-frame-by-deleting is now by default t
 +since users found iconification of view-mode frames distracting.
 +
 +*** WoMan tries to add locale-specific manual page directories to the
 +search path.  This can be disabled by setting `woman-locale' to nil.
 +
 +\f
 +* Changes in Emacs 23.1 on non-free operating systems
 +
 +** Case is now considered significant in completion on MS-Windows.
 +The default value of `completion-ignore-case' is now nil on
 +MS-Windows, the same as it is for other operating systems.  The
 +variable doesn't apply to reading a file name -- in that case Emacs
 +heeds `read-file-name-completion-ignore-case' instead.
 +
 +** IPv6 is supported on MS-Windows.
 +Emacs now supports IPv6 on Windows XP and later, and earlier versions
 +of Windows with third party IPv6 stacks installed.  In Emacs 22, IPv6 was
 +supported on other platforms, but not on Windows due to using the winsock
 +1.1 header file, even though Emacs was linking to the winsock 2 library.
 +
 +** Busy cursor (hourglass) now displays on MS-Windows.
 +When Emacs is busy, an hourglass mouse cursor is displayed on Windows.
 +In Emacs 22 only X supported the busy cursor.
 +
 +** Battery status is available on MS-Windows
 +Emacs can now display the battery status in the mode-line when enabled with
 +display-battery-mode or from the Options menu.  More verbose battery
 +information is also available with the command `battery'.  In Emacs 22
 +battery status was supported only on GNU/Linux and Mac.
 +
 +** More keys available on MS-Windows.
 +Keys normally associated with IMEs, and some exotic keys not normally found
 +on standard keyboards have been given names so they can be bound to functions
 +inside Emacs.  If there are keys on your keyboard that have not been exposed
 +to Emacs in the past, try C-h k to see if they are available now.
 +
 +Emacs can now bind functions to the extra buttons for media player and
 +browser control present on some keyboards.  These buttons are disabled
 +by default, since enabling them prevents their system-wide use when
 +Emacs has focus.  To enable them, set the variable
 +w32-pass-multimedia-buttons to nil.  See the doc string of that variable
 +for the list of extra keys that are available.
 +
 +** BDF fonts no longer supported on MS-Windows.
 +The font backend was completely rewritten for this release.  The focus
 +on Windows has been getting acceptable performance and full unicode
 +support, including complex script shaping for native Windows fonts.  A
 +rewrite of the BDF font support has not happened due to lack of time
 +and developers.  If demand still exists for such a backend even with
 +the improved language support for native Windows fonts, future
 +development in this direction will most likely be based on the
 +freetype library, giving access to a wider range of font formats.
 +
 +\f
 +* Incompatible Lisp Changes in Emacs 23.1
 +
 +** Variables cannot be both buffer-local and frame-local any more.
 +
 +** `functionp' returns nil for special forms.
 +I.e., it only returns t for objects that can be passed to `funcall'.
 +
 +** The behavior of map-char-table has changed.  It may call the
 +specified function with a cons (FROM . TO) as a key if characters in
 +that range have the same value.
 +
 +** Process changes
 +
 +*** The function `dired-call-process' has been removed.
 +
 +*** The multibyteness of process filters is now determined by the
 +coding-system used for decoding.  The functions
 +`process-filter-multibyte-p' and `set-process-filter-multibyte' are
 +obsolete.
 +
 +** The variable `byte-compile-warnings' can now be a list starting with `not',
 +meaning to disable the specified warnings.  The meaning of this list
 +may therefore be the reverse of what you expect (of course, this is
 +only an issue if you make use of the new `not' syntax).  Rather than
 +checking/manipulating elements directly, use the new functions
 +`byte-compile-warning-enabled-p', `byte-compile-disable-warning', and
 +`byte-compile-enable-warning.'
 +
 +** `mode-name' is no longer guaranteed to be a string.
 +Use `(format-mode-line mode-name)' to ensure a string value.
 +
 +** The function x-font-family-list has been removed.
 +Use the new function font-family-list (see Lisp Changes, below).
 +
 +** Internationalization changes
 +
 +*** The value of the function `charset-id' is now always 0.
 +
 +*** The functions `register-char-codings' and `coding-system-spec'
 +have been removed.
 +
 +*** The cpXXX coding systems are now supported automatically.
 +The functions cp-...-codepage, which you had to use in Emacs 22 to
 +enable support for these coding systems, have been deleted.
 +
 +*** The following features have been removed.  They were used for
 +displaying various scripts with specific fonts, and are no longer
 +needed now that OpenType font support is available:
 +
 +**** `devanagari' and `devan-util', and all associated devanagari-* and
 +dev-* functions and variables (formerly used for Devanagari script).
 +
 +**** `kannada' and `knd-util', and all associated kannada-* and knd-*
 +functions and variables (formerly used for Kannada script).
 +
 +**** `malayalam' and `mlm-util', and all associated malayalam-* and
 +mlm-* functions and variables (formerly used for Malayalam script).
 +
 +**** `tamil' and `tml-util, and all associated tamil-* and tml-*
 +functions and variables (formerly used for Tamil script).
 +
 +*** The meaning of NAME argument of `set-fontset-font' is changed.
 +Previously nil is accepted as the default fontset.  Now, nil is for
 +the fontset of the selected frame and t is for the default fontset.
 +
 +*** The meaning of FONTSET argument of `print-fontset' is changed.
 +Now, nil is for the fontset of the selected frame and t is for the
 +default fontset.
 +
 +** If a function in write-region-annotate-functions returns with a
 +different buffer current, Emacs no longer kills that buffer
 +automatically.  This behavior existed in previous versions of Emacs,
 +but was undocumented.  To kill a buffer after write-region, give the
 +variable `write-region-post-annotation-function' a buffer-local value
 +of `kill-buffer'.
 +
 +** The variable temp-file-name-pattern has been removed.
 +This variable was only used by call-process-region, which now uses
 +temporary-file-directory instead.
 +
 +** The COUNT and SYSTEM-FLAG arguments to define-abbrev have been
 +removed.  The function now takes extra arguments for specifying
 +arbitrary abbrev properties.
 +
 +** end-of-defun-function is now guaranteed to work only when called
 +from the start of a defun.  It must now leave point exactly at the end
 +of defun, since `end-of-defun' now itself moves forward over
 +whitespace after calling it.
 +
 +\f
 +* Lisp Changes in Emacs 23.1
 +
 +** The new variable `generate-autoload-cookie' controls the magic comment
 +string used by `update-file-autoloads' to find autoloaded forms.  The
 +variable `generated-autoload-file' similarly controls the name of the
 +file where `update-file-autoloads' writes the calls to `autoload'.
 +The default values are ";;;###autoload" and `loaddefs.el',
 +respectively.
 +
 +** New primitives `list-system-processes' and `process-attributes'
 +let Lisp programs access the processes that are running on the local
 +machine.  See the doc strings of these functions for more details.
 +Not all platforms support accessing this information; on those that
 +don't, these primitives will return nil.
 +
 +** New variable `user-emacs-directory'.
 +Use this instead of "~/.emacs.d".
 +
 +** If a local hook function has a non-nil `permanent-local-hook'
 +property, `kill-all-local-variables' does not remove it from the local
 +value of the hook variable; it remains even if you change major modes.
 +
 +** `frame-inherited-parameters' lets new frames inherit parameters from
 +the selected frame.
 +
 +** New keymap `input-decode-map' overrides like key-translation-map, but
 +applies before function-key-map.  Also it is terminal-local contrary to
 +key-translation-map.  Terminal-specific key-sequences are generally added to
 +this map rather than to function-key-map now.
 +
 +** `ignore-errors' is now a standard macro (does not require the CL package).
 +
 +** `interprogram-paste-function' can now return one string or a list
 +of strings.  In the latter case, Emacs puts the second and following
 +strings on the kill ring.
 +
 +** In `condition-case', a handler can specify "let the debugger run first".
 +You do this by writing `debug' in the list of conditions to be handled,
 +like this:
 +
 +    (condition-case nil
 +      (foo bar)
 +      ((debug error) nil))
 +
 +** clone-indirect-buffer now runs the clone-indirect-buffer-hook.
 +
 +** `beginning-of-defun-function' now takes one argument, the count given to
 +`beginning-of-defun'.  (N.B. `end-of-defun-function' doesn't take any
 +arguments.)
 +
 +** `file-remote-p' has new optional parameters IDENTIFICATION and CONNECTED.
 +IDENTIFICATION specifies which part of the remote identifier has to be
 +returned.  With CONNECTED passed non-nil, it is checked whether a
 +remote connection has been established already.
 +
 +** The new macro `declare-function' suppresses compiler warnings about
 +undefined functions.
 +
 +** Changes to interactive function handling
 +
 +*** The new interactive spec code ^ says to first call
 +handle-shift-selection if shift-select-mode is non-nil, before reading
 +the command arguments.  This is used for shift-selection (see above).
 +
 +*** Built-in functions can now have an interactive specification that
 +is not a prompt string.  If the `intspec' parameter of a `DEFUN'
 +starts with a `(', the string is evaluated as a Lisp form.
 +
 +*** The interactive-form of a function can be added post-facto via the
 +`interactive-form' symbol property.  Mostly useful to add complex
 +interactive forms to subroutines.
 +
 +** Region changes
 +
 +*** Commands should use `use-region-p' to test whether there is
 +an active region that they should operate on.
 +
 +*** `region-active-p' returns non-nil when Transient Mark mode is
 +enabled and the mark is active.  Most commands that act specially on
 +the active region in Transient Mark mode should use `use-region-p'
 +instead of `region-active-p', because `use-region-p' obeys the new
 +user option `use-empty-active-region' (see Editing Changes, above).
 +
 +*** If a command sets `transient-mark-mode' to (only . OLDVAL), that
 +means to activate transient-mark-mode temporarily, until the next
 +unshifted point motion command or mark deactivation.  Afterwards,
 +reset transient-mark-mode to the value OLDVAL.  The values `only' and
 +`identity', introduced in Emacs 22, are now deprecated.
 +
 +** Emacs session information
 +
 +*** The new variables `before-init-time' and `after-init-time' record the
 +value of `current-time' before and after Emacs loads the init files.
 +
 +*** The new function `emacs-uptime' returns the uptime of an Emacs instance.
 +
 +*** The new function `emacs-init-time' returns the duration of the
 +Emacs initialization.
 +
 +** Changes affecting display-buffer
 +
 +*** display-buffer tries to be smarter when splitting windows.
 +The new option split-window-preferred-function lets you specify your own
 +function to pop up new windows.  Its default value split-window-sensibly
 +can split a window either vertically or horizontally, whichever seems
 +more suitable in the current configuration.  You can tune the behavior
 +of split-window-sensibly by customizing split-height-threshold and the
 +new option split-width-threshold.  Both options now take the value nil
 +to inhibit splitting in one direction.  Setting split-width-threshold to
 +nil inhibits horizontal splitting and gets you the behavior of Emacs 22
 +in this respect.  In any case, display-buffer may now split the largest
 +window vertically even when it is not as wide as the containing frame.
 +
 +*** If pop-up-frames has the value `graphic-only', display-buffer only
 +makes a separate frame on graphic displays.
 +
 +*** select-frame and set-frame-selected-window have a new optional
 +argument NORECORD.  If non-nil, this will avoid messing with the order
 +of recently selected windows and the buffer list.
 +
 +** Window parameters can now be defined.
 +These are analogous to frame parameters, but are associated with
 +individual windows.
 +
 +*** The new functions window-parameters, window-parameter, and
 +set-window-parameter are used to query and set window parameters.
 +
 +** Minibuffer and completion changes
 +
 +*** A list of default values can be specified for the DEFAULT argument of
 +functions `read-from-minibuffer', `read-string', `read-command',
 +`read-variable', `read-buffer', `completing-read'.  Elements of this list
 +are available for inserting into the minibuffer by typing `M-n'.
 +For empty input these functions return the first element of this list.
 +
 +*** New function `read-regexp' uses the regexp history and some useful
 +regexp defaults (string at point, last Isearch/replacement regexp/string)
 +via M-n when reading a regexp in the minibuffer.
 +
 +*** minibuffer-local-must-match-filename-map is now named
 +minibuffer-local-filename-must-match-map.
 +
 +*** The `require-match' argument to `completing-read' accepts the new
 +values `confirm-only' and `confirm-after-completion'.
 +
 +** Search and replacement changes
 +
 +*** The regexp form \(?<num>:<regexp>\) specifies the group number explicitly.
 +
 +*** New function `match-substitute-replacement' returns the result of
 +`replace-match' without actually using it in the buffer.
 +
 +*** The new variable `replace-search-function' determines the function
 +to use for searching in query-replace and replace-string.  The
 +function it specifies is called by `perform-replace' when its 4th
 +argument is nil.
 +
 +*** The new variable `replace-re-search-function' determines the
 +function to use for searching in `query-replace-regexp',
 +`replace-regexp', `query-replace-regexp-eval', and
 +`map-query-replace-regexp'.  The function it specifies is called by
 +`perform-replace' when its 4th argument is non-nil.
 +
 +*** New keymap `search-map' bound to `M-s' provides global bindings
 +for search related commands.
 +
 +*** New keymap `multi-query-replace-map' contains additonal keys bound
 +to `automatic-all' and `exit-current' for multi-buffer interactive replacement.
 +
 +*** The variable `inhibit-changing-match-data', if non-nil, prevents
 +the search and match primitives from changing the match data.
 +
 +*** New functions `word-search-forward-lax' and `word-search-backward-lax'.
 +These are like `word-search-forward and `word-search-backward', except
 +that the end of the search string need not match a word boundary,
 +unless it ends in whitespace.
 +
 +** File handling changes
 +
 +*** set-file-modes is now interactive and can take the mode value in
 +symbolic notation thanks to auxiliary functions.
 +
 +*** file-local-variables-alist stores an alist of file-local
 +variables defined in the current buffer.
 +
 +** Face-remapping
 +
 +*** Each face can be remapped to a different face definition using the
 +variable `face-remapping-alist'.  This is an alist that maps faces to
 +replacement definitions (which can be face names, lists of face names,
 +or attribute/value plists.  If this variable is buffer-local, the
 +remapping occurs only in that buffer.
 +
 +*** text-scale-mode remaps the default face to a larger or smaller
 +size in the current buffer.  This feature is used by the Buffer Face
 +menu and the new `C-x C-+', `C-x C--', and `C-x C-0' commands (see
 +Editing Changes, above).
 +
 +*** New functions:
 +
 +**** `face-remap-add-relative' adds a face remapping entry to the
 +current buffer.
 +
 +**** ``face-remap-remove-relative' removes a face remapping entry from
 +the current buffer.
 +
 +**** `face-remap-reset-base' restores a face to its global definition.
 +
 +**** `face-remap-set-base' sets the base remapping of a face.
 +
 +** Process changes
 +
 +*** The new function `start-file-process' is similar to `start-process',
 +but obeys file handlers.  The file handler is chosen based on
 +`default-directory'.  The functions `start-file-process-shell-command'
 +and `process-file-shell-command' are also new; they call internally
 +`start-file-process' and `process-file', respectively.
 +
 +*** The new function `process-lines' executes an external program and
 +returns its output as a list of lines.
 +
 +** Character code, representation, and charset changes.
 +
 +*** In multibyte buffers and strings, characters are represented by
 +UTF-8 byte sequences.  The character code space is now 0x0..0x3FFFFF
 +with no gap; code points 0x0..0x10FFFF are Unicode characters of the
 +same code points, while code points 0x3FFF80..0x3FFFFF are raw 8-bit
 +bytes.
 +
 +*** Generic characters no longer exist.
 +
 +*** The concept of a charset has changed.  A single character may
 +belong to multiple charsets (e.g. a-grave, U+00E0, belongs to charsets
 +unicode, iso-8859-1, iso-8859-3, etc).
 +
 +**** The dimension of a charset is now 1, 2, 3, or 4, and the size of
 +each dimension is no longer limited to 94 or 96.
 +
 +**** A dynamic charset priority list is used to infer the charset of
 +characters for display.
 +
 +*** The functions `split-char' and `make-char' now accept up to 4
 +positional codes instead of just 2.
 +
 +*** The functions `encode-char' and `decode-char' now accept any character sets.
 +
 +*** The function `define-charset' now accepts a completely different
 +form of arguments (old-style arguments still work).
 +
 +*** The value of the function `char-charset' depends on the current
 +priorities of charsets.
 +
 +*** The function get-char-code-property now accepts many Unicode base
 +character properties.  They are `name', `general-category',
 +`canonical-combining-class', `bidi-class', `decomposition',
 +`decimal-digit-value', `digit-value', `numeric-value', `mirrored',
 +`old-name', `iso-10646-comment', `uppercase', `lowercase', and
 +`titlecase'.
 +
 +*** The functions `modify-syntax-entry' and `modify-category-entry' now
 +accept a cons of characters as the first argument, and modify all
 +entries in that range of characters.
 +
 +*** Use of `translation-table-for-input' for character code unification
 +is now obsolete, since Emacs 23.1 and later uses Unicode as basis for
 +internal representation of characters.
 +
 +*** New functions:
 +
 +**** `characterp' returns t if and only if the argument is a character.
 +This replaces `char-valid-p', which is now obsolete.
 +
 +**** `max-char' returns the maximum character code (currently #x3FFFFF).
 +
 +**** `define-charset-alias' defines an alias of a charset.
 +
 +**** `set-charset-priority' sets priorities of charsets.
 +
 +**** `charset-priority-list' returns a prioritized list of charsets.
 +
 +**** `unibyte-string' makes a unibyte string from bytes.
 +
 +**** `define-char-code-property' defines a character code property.
 +
 +**** `char-code-property-description' returns the description string of
 +a character code property.
 +
 +*** New variables:
 +
 +**** `find-word-boundary-function-table' is a char-table of functions to
 +search for a word boundary.
 +
 +**** `char-script-table' is a char-table of script names.
 +
 +**** `char-width-table' is a char-table of character widths.
 +
 +**** `print-charset-text-property' controls how to handle `charset' text
 +property on printing a string.
 +
 +**** `printable-chars' is a char-table of printable characters.
 +
 +** Code conversion changes
 +
 +*** The new function `define-coding-system' should be used to define a
 +coding system instead of `make-coding-system' (which is now obsolete).
 +
 +*** The functions `encode-coding-region' and `decode-coding-region'
 +have an optional 4th argument to specify where the result of
 +conversion should go.
 +
 +*** The functions `encode-coding-string' and `decode-coding-string'
 +have an optional 4th argument specifying a buffer to store the result
 +of conversion.
 +
 +*** The new variable `inhibit-null-byte-detection' controls whether to
 +consider text with null bytes as binary data.  By default, it is
 +`nil', and Emacs uses `no-conversion' for any text containing null
 +bytes.
 +
 +*** The functions `set-coding-priority' and `make-coding-system' are obsolete.
 +
 +*** New functions:
 +
 +**** `with-coding-priority' executes Lisp code using the specified
 +coding system priority order.
 +
 +**** `check-coding-systems-region' checks if the text in the region is
 +encodable by the specified coding systems.
 +
 +**** `coding-system-aliases' returns a list of aliases of a coding system.
 +
 +**** `coding-system-charset-list' returns a list of charsets supported
 +by a coding system.
 +
 +**** `coding-system-priority-list' returns a list of coding systems
 +ordered by their priorities.
 +
 +**** `set-coding-system-priority' sets priorities of coding systems.
 +
 +**** `coding-system-from-name' returns a coding system matching with
 +the argument name.
 +
 +** There is a new input method, Robin, different from Quail.
 +It has three functionalities:
 + i) a simple input method (converts an ASCII sequence into a string).
 +ii) converts an existing buffer substring into another string
 +iii) reverse conversion (each character produced by a
 +robin rule can hold the original ASCII sequence as a char-code-property)
 +
 +*** The new function `robin-define-package' defines a Robin package.
 +
 +*** The new function `robin-modify-package' modifies an existing Robin package.
 +
 +*** The new function `robin-use-package' starts using a Robin package
 +as an input method.
 +
 +*** The new function `string-to-unibyte' is like `string-as-unibyte'
 +but signals an error if STRING contains a non-ASCII, non-eight-bit
 +character.
 +
 +** Changes related to the new font backend
 +
 +*** Which font backends to use can be specified by the X resource
 +"FontBackend".  For instance, to use both X core fonts and Xft fonts:
 +
 +Emacs.FontBackend: x,xft
 +
 +If this resource is not set, Emacs tries to use all font backends
 +available on your graphic device.
 +
 +*** New frame parameter `font-backend' specifies a list of
 +font-backends supported by the frame's graphic device.  On X, they are
 +currently `x' and `xft'.
 +
 +*** The function `set-fontset-font' now accepts a script name as the
 +second argument, and has an optional 5th argument to control how to
 +set the font.
 +
 +*** New functions:
 +
 +**** `fontp' checks if the argument is a font-spec or font-entity.
 +
 +**** `font-spec' creates a new font-spec object.
 +
 +**** `font-get' returns a font property value.
 +
 +**** `font-put' sets a font property value.
 +
 +**** `font-face-attributes' returns a plist of face attributes set by a font.
 +
 +**** `list-fonts' returns a list of font-entities matching a font spec.
 +
 +**** `find-font' returns the font-entity best matching the given font spec.
 +
 +**** `font-family-list' returns a list of family names of available fonts.
 +
 +**** `font-xlfd-name' returns an XLFD name of a given font spec, font
 +entity, or font object.
 +
 +**** `clear-font-cache' clears all font caches.
 +
 +** Changes related to multiple-terminal (multi-tty) support
 +
 +*** $TERM is now set to `dumb' for subprocesses.  If you want to know the
 +$TERM inherited by Emacs you will have to look inside initial-environment.
 +
 +*** $DISPLAY is now dynamically inherited from the frame's `display'.
 +
 +*** The `window-system' variable is now frame-local.  The new
 +`initial-window-system' variable contains the `window-system' value
 +for the first frame.  `window-system' is also now a function that
 +takes a frame argument.
 +
 +*** The `keyboard-translate-table' variable and the terminal and
 +keyboard coding systems are now terminal-local.
 +
 +*** You can specify a terminal device (`tty' parameter) and a terminal
 +type (`tty-type' parameter) to `make-terminal-frame'.
 +
 +*** The function `make-frame-on-display' now works during a tty
 +session.
 +
 +*** A new `terminal' data type.
 +The functions `get-device-terminal', `terminal-parameters',
 +`terminal-parameter', `set-terminal-parameter' use this data type.
 +
 +*** Function key sequences are now mapped using `local-function-key-map',
 +a new variable.  This inherits from the global variable function-key-map,
 +which is not used directly any more.
 +
 +*** New hooks:
 +
 +**** before-hack-local-variables-hook is called after setting new
 +variable file-local-variables-alist, and before actually applying the
 +file-local variables.
 +
 +**** `suspend-tty-functions' and `resume-tty-functions' are called
 +after a tty frame has been suspended or resumed, respectively.  The
 +functions are called with the terminal id of the frame being
 +suspended/resumed as a parameter.
 +
 +**** The special hook `delete-terminal-functions' is called before
 +deleting a terminal.
 +
 +*** New functions:
 +
 +**** `delete-terminal'
 +
 +**** `suspend-tty'
 +
 +**** `resume-tty'.
 +
 +*** `initial-environment' holds the environment inherited from Emacs's parent.
 +
 +** Redisplay changes
 +
 +*** For underlined characters, the distance between the underline and
 +the baseline is controlled by a new variable, `underline-minimum-offset'.
 +
 +*** You can now pass the value of the `invisible' property to
 +invisible-p to check whether it would cause the text to be invisible.
 +This is convenient when checking invisibility of text with no buffer
 +position (e.g. in before/after-strings).
 +
 +*** `clear-image-cache' can be told to flush only images of a specific file.
 +
 +*** `vertical-motion' can now be given a goal column.
 +It now accepts a cons cell (COLS . LINES) in its first argument, which
 +says to stop, where possible, at a pixel x-position equal to COLS
 +times the default column width.
 +
 +*** redisplay-end-trigger-functions, set-window-redisplay-end-trigger,
 +and window-redisplay-end-trigger are obsolete.  Use `jit-lock-register'
 +instead.
 +
 +*** The new variables `wrap-prefix' and `line-prefix' specify display
 +specs which are appended at display-time to every continuation line
 +and non-continuation line, respectively.  In addition, Emacs
 +recognizes the `wrap-prefix' and `line-prefix' text or overlay
 +properties; these have the same effects as the variables of the same
 +name, but take precedence.
 +
 +** The Lisp interpreter now treats non-breaking space as whitespace.
 +
 +** Miscellaneous new functions
 +
 +*** `apply-partially' performs a "curried" application of a function.
 +
 +*** `buffer-swap-text' swaps text between two buffers.  This can be
 +useful for modes such as tar-mode, archive-mode, RMAIL.
 +
 +*** `combine-and-quote-strings' produces a single string from a list of strings
 +sticking a separator string in between each pair, and quoting those
 +strings that include the separator as their substring.  Useful for
 +consing shell command lines from the individual arguments.
 +
 +*** `custom-note-var-changed' tells Custom to treat the change in a
 +certain variable as having been made within Custom.
 +
 +*** `face-all-attributes' returns an alist describing all the basic
 +attributes of a given face.
 +
 +*** `format-seconds' converts a number of seconds into a readable
 +string of days, hours, etc.
 +
 +*** `image-refresh' refreshes all images associated with a given image
 +specification.
 +
 +*** `locate-user-emacs-file' helps packages to select the appropriate
 +place to save user-specific files.  It defaults to `user-emacs-directory'
 +unless the file already exists at $HOME.
 +
 +*** `read-color' reads a color name using the minibuffer.
 +
 +*** `read-shell-command' does what its name says, with completion.  It
 +uses the minibuffer-local-shell-command-map for that.
 +
 +*** `split-string-and-unquote' splits a string into a list of substrings
 +on the boundaries of a given delimiter, and unquotes the substrings that
 +are quoted.  Useful for taking apart shell commands.
 +
 +*** The two new functions `looking-at-p' and `string-match-p' can do
 +the same matching as `looking-at' and `string-match' without changing
 +the match data.
 +
 +*** The two new functions `make-serial-process' and
 +`serial-process-configure' provide a Lisp interface to the new serial
 +port support (see Emacs changes, above).
 +
 +** Miscellaneous new variables
 +
 +*** `auto-save-include-big-deletions', if non-nil, means auto-save is
 +not turned off automatically after a big deletion.
 +
 +*** `read-circle', if nil, disables the reading of recursive Lisp
 +structures using the #N= and #N# syntax.
 +
 +*** `this-command-keys-shift-translated' is non-nil if the key
 +sequence invoking the current command was found by shift-translation.
 +
 +*** `window-point-insertion-type' determines the insertion-type of the
 +marker used for window-point.
 +
 +*** bookmark provides `bookmark-make-record-function' so special major
 +modes like Info can teach bookmark.el how to save and restore the
 +relevant data.
 +
 +*** `fill-forward-paragraph-function' specifies which function the
 +filling code should use to find paragraph boundaries.
 +
 +\f
 +* New Packages for Lisp Programming in Emacs 23.1
 +
 +** The new package avl-tree.el deals with the AVL tree data structure.
 +
 +** The new package check-declare.el verifies the accuracy of
 +declare-function macros (see Lisp Changes, above).
 +
 +** find-cmd.el can build `find' commands using lisp syntax.
 +
 +** The package misearch.el has been added.  It allows Isearch to search
 +through multiple buffers.  A variable `multi-isearch-next-buffer-function'
 +defines the function to call to get the next buffer to search in the series
 +of multiple buffers.  Top-level functions `multi-isearch-buffers',
 +`multi-isearch-buffers-regexp', `multi-isearch-files' and
 +`multi-isearch-files-regexp' accept a single argument that specifies
 +a list of buffers/files to search for a string/regexp.
 +
 +** The new major mode `special-mode' is intended as a parent for
 +major modes such as those that set the "'mode-class 'special" property.
 +
 +\f
 +----------------------------------------------------------------------
 +This file is part of GNU Emacs.
 +
 +GNU Emacs is free software: you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
 +the Free Software Foundation, either version 3 of the License, or
 +(at your option) any later version.
 +
 +GNU Emacs is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 +
 +\f
 +Local variables:
 +mode: outline
 +paragraph-separate: "[        \f]*$"
 +end:
 +
 +arch-tag: e759449d-88b3-4de4-9900-3a6c3dfa23e2
diff --combined lib-src/ChangeLog
index e402fe44f94adf797c3b0d7dcf71450be272e365,ba98132521da7241a09a6a681b76a73fa93fae98..d1745a893bfefccbab5554cb61d767b7b6facea0
 -2010-11-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
++2010-11-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+       * emacsclient.c (set_local_socket) [DARWIN_OS]: Add fall-back
+       definition of _CS_DARWIN_USER_TEMP_DIR for Mac OS X 10.4 and older.
 -2010-10-01  Glenn Morris  <rgm@gnu.org>
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * test-distrib.c: Remove include guards for config.h and fcntl.h.
 +      (O_RDONLY): Do not define.
 +      (cool_read): Fix type for variable "sofar".
 +
 +2010-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * makefile.w32-in (OTHER_PLATFORM_SUPPORT): Remove easymenu.elc.
 +
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * digest-doc.c, sorted-doc.c: Remove files.
 +      * Makefile.in (UTILITIES): Remove digest-doc and sorted-doc.
 +      (digest-doc${EXEEXT}, sorted-doc${EXEEXT}): Remove rules.
 +      * makefile.w32-in (ALL): Remove digest-doc and sorted-doc.
 +      ($(BLD)/sorted-doc.exe, $(BLD)/digest-doc.exe, sorted-doc, digest-doc)
 +      ($(BLD)/digest-doc.$(O), $(BLD)/sorted-doc.$(O)): Remove rules.
 +      (install): Don't install digest-doc.exe or sorted-doc.exe.
 +
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (PROFILING_LDFLAGS): Remove, not needed.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * b2m.c, b2m.pl: Remove files.
 +      * Makefile.in (INSTALLABLES): Remove b2m.
 +      * makefile.w32-in ($(BLD)/b2m.$(O)): Remove.
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
  
        * emacsclient.c (set_local_socket) [DARWIN_OS]: Try as a fall-back
        DARWIN_USER_TEMP_DIR.  (Bug#3992)
  
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * test-distrib.c (cool_read):
 +      * movemail.c (main, concat):
 +      * make-docfile.c (scan_file, write_c_args):
 +      * emacsclient.c (get_server_config): Fix -Wconversion warning.
 +      (egetenv): Move conditional definition earlier.
 +      (progname): Use const.
 +      * sorted-doc.c (xstrdup): Use const.
 +
 +      * Makefile.in: Remove ^L, old makes choke on it.
 +
 +2010-10-02  Wolfgang Schnerring  <wosc@wosc.de>  (tiny change)
 +
 +      * emacsclient.c (main): Return EXIT_FAILURE if Emacs sends us an
 +      error string (Bug#6963).
 +
 +2010-10-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (tags): Remove target.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (tags, TAGS): New targets.
 +
 +2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacsclient.c (get_server_config): Don't read Emacs pid from
 +      the authentication file.
 +
 +2010-09-29  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (../src/config.h): Remove target, it is stale.
 +
 +      * emacsclient.c (main): Remove unused variables.
 +      (start_daemon_and_retry_set_socket): Use EXIT_FAILURE.
 +
 +2010-09-25  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * etags.c (compressors, print_language_names): Support xz compression.
 +
 +2010-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * fakemail.c: Include stdlib.h for getenv.  Remove declaration of
 +      popen, fclose and pclose.
 +      (my_name, fatal, error, put_line): Use const char*.
 +      (main): Remove extern getenv, mail_program_name is const char*.
 +
 +      * update-game-score.c (get_prefix, write_scores, main): Use const char*.
 +
 +      * sorted-doc.c (error, fatal, states): Use const char *.
 +
 +      * pop.h (pop_multi_first): Use const char *.
 +      (_ARGS): Remove.
 +
 +      * pop.c (pop_multi_first, socket_connection, sendline): Use const char*.
 +
 +      * movemail.c (fatal, error, concat): Use const char *.
 +
 +      * make-docfile.c (error, fatal, scan_c_file, scan_lisp_file): Use
 +      const char *.
 +
 +      * etags.c (compressor, language, Ada_suffix, Ada_help, Asm_suffixes)
 +      (Asm_help, default_C_suffixes, default_C_help, Cplusplus_suffixes)
 +      (Cplusplus_help, Cjava_suffixes, Cobol_suffixes, Cstar_suffixes)
 +      (Erlang_suffixes, Erlang_help, Forth_suffixes, Forth_help)
 +      (Fortran_suffixes, Fortran_help, HTML_suffixes,  HTML_help)
 +      (Lisp_suffixes, Lisp_help, Lua_suffixes, Lua_help)
 +      (Makefile_filenames, Makefile_help, Objc_suffixes, Objc_help)
 +      (Pascal_suffixes, Pascal_help, Perl_suffixes, Perl_interpreters)
 +      (Perl_help, PHP_suffixes, PHP_help, plain_C_suffixses, PS_suffixes)
 +      (PS_help, Prolog_suffixes, Prolog_help, Python_suffixes, Python_help)
 +      (Scheme_suffixes, Scheme_help, TeX_suffixes, TeX_help, Texinfo_suffixes)
 +      (Texinfo_help, Yacc_suffixes, Yacc_help, auto_help, none_help)
 +      (no_lang_help, print_language_names)
 +      (get_language_from_interpreter, get_language_from_filename)
 +      (init, make_tag, struct C_stab_entry, write_classname, TEX_defenv)
 +      (TEX_decode_env, nocase_tail, savestr, savenstr, fatal, pfatal)
 +      (concat): Use const char*.
 +
 +      * emacsclient.c (message, sock_err_message, send_to_emacs)
 +      (quote_argument, set_local_socket)
 +      (start_daemon_and_retry_set_socket): Use const char*.
 +
 +      * ebrowse.c (struct member): filename, def_filename is const.
 +      (struct sym): filename, sfilename is const.
 +      (struct kw): name is const.
 +      (add_sym, yyerror, token_string, insert_keyword, main): Use const char*.
 +
 +      * b2m.c (concat, fatal): Use const char*.
 +      (main): Don't assign labels a string literal.
 +
 +2010-08-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ebrowse.c (usage, version, mark_virtual):
 +      Remove duplicate declarations.
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacsclient.c: Move socket related #includes together with the
 +      rest of the #includes.  Move WINDOWSNT includes closer together.
 +      (HAVE_CONFIG_H): Remove.
 +      (NO_RETURN): Remove, defined in config.h.
 +      (main): Convert definition to standard C.
 +
 +2010-07-29  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * make-docfile.c (write_c_args): Warn for old-style empty arglist ().
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacsclient.c (getcwd): Fix previous change: make getcwd
 +      conditional on HAVE_GETCWD and declare with the correct POSIX
 +      profile (for some reason MinGW headers define its 2nd arg as int,
 +      not size_t; but getcwd is not used on Windows nonetheless).
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacsclient.c (getcwd, w32_getenv):
 +      * ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes.
 +
 +2010-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * update-game-score.c (usage): Add NO_RETURN specifier.
 +      * movemail.c (fatal, pfatal_with_name, pfatal_and_delete):
 +      * make-docfile.c (fatal):
 +      * hexl.c (usage):
 +      * fakemail.c (fatal):
 +      * etags.c (fatal, suggest_asking_for_help, pfatal):
 +      * emacsclient.c (fatal):
 +      * b2m.c (fatal): Likewise.
 +
 +2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * make-docfile.c (write_c_args): Correctly handle prefixes of "defalt".
 +
 +2010-07-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacsclient.c (get_current_dir_name, w32_get_resource)
 +      (w32_getenv, w32_set_user_model_id, w32_window_app, w32_execvp)
 +      (close_winsock, initialize_sockets, w32_find_emacs_process)
 +      (w32_give_focus):
 +      * ntlib.c (getlogin, getuid, getgid, getegid):
 +      Convert definitions to standard C.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS)
 +      (PROFILING_LDFLAGS): Set from substitution.
 +      (BASE_CFLAGS): Add  ${C_WARNINGS_SWITCH}.
 +      (ALL_CFLAGS, CPP_CFLAGS): Add ${PROFILING_CFLAGS}.
 +      (LINK_CFLAGS): Add ${PROFILING_LDFLAGS}.
 +
 +2010-07-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (lisp2): Change hebrew.el to hebrew.elc (see
 +      2010-07-12T05:25:46Z!handa@etlken).
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * emacsclient.c (set_local_socket): Use strchr, strrchr instead of
 +      index, rindex.
 +      * movemail.c (mail_spool_name, popmail): Likewise.
 +      * pop.c (pop_list): Likewise.
 +
 +2010-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (obj): Add menu.o, bidi.o, w32uniscribe.o,
 +      and unexw32.o.  (Bug#6603)
 +
 +2010-07-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * Makefile.in ($(DESTDIR)${archlibdir}): Convert spaces to TABs.
 +
 +2010-07-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * make-docfile.c (write_c_args): Restructure scanning loop.
 +
 +2010-07-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * make-docfile.c (write_c_args): Deal with type names in DEFUN
 +      arguments.
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * update-game-score.c (P_): Remove macro.
 +      * ebrowse.c: Remove include guards.
 +      (P_): Remove macro.
 +
 +2010-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
 +      memcpy, memmove, memset.
 +      * pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.
 +
 +2010-07-06  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * movemail.c: Add MAIL_USE_POP around prototypes.
 +      Include <string.h> if HAVE_STRING_H.
 +      (strerror): Only declare if !HAVE_STRERROR.
 +      (fatal): Make static.
 +      (error): Likewise.
 +      (pfatal_with_name): Likewise.
 +      (pfatal_and_delete): Likewise.
 +      (concat): Likewise.
 +      (xmalloc): Likewise.
 +      (popmail): Likewise.
 +      (pop_retr): Likewise.
 +      (mbx_write): Likewise.
 +      (mbx_delimit_begin): Likewise.
 +      (mbx_delimit_end): Likewise.
 +
 +2010-07-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * fakemail.c (action): Convert function definitions to standard C.
 +      (add_a_stream):
 +      * test-distrib.c (cool_read):
 +      (main): Likewise.
 +
 +2010-07-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * sorted-doc.c (cmpdoc): Fix signature.
 +      (qsort_compare): Delete.
 +      (main): Remove cast.
 +
 +2010-07-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ebrowse.c (match_qualified_namespace_alias): Check for null pointer.
 +
 +2010-07-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix prototype warnings.
 +
 +      * ebrowse.c (match_qualified_namespace_alias):
 +      Pass sym* to find_namespace, not link*.
 +
 +      * emacsclient.c (send_to_emacs, quote_argument): Arg s is HSOCKET.
 +
 +      * sorted-doc.c (qsort_compare): New typedef.
 +      (main): Use it to cast cmpdoc.
 +
 +2010-07-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * update-game-score.c: Convert function definitions to standard C.
 +      * sorted-doc.c:
 +      * profile.c:
 +      * pop.c:
 +      * movemail.c:
 +      * make-docfile.c:
 +      * hexl.c:
 +      * fakemail.c:
 +      * etags.c:
 +      * ebrowse.c:
 +      * digest-doc.c:
 +      * b2m.c: Likewise.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * make-docfile.c (xmalloc, xrealloc, concat, readline, fatal):
 +      * b2m.c (scan_file, scan_lisp_file, scan_c_file): Convert to
 +      standard C prototypes.
 +
 +2010-07-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * ebrowse.c: Remove P_ and __P.
 +      * etags.c:
 +      * movemail.c:
 +      * pop.c:
 +      * update-game-score.c: Likewise.
 +
 +2010-06-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * movemail.c (error): Avoid warning when there are no args.
 +
 +2010-06-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (lisp2): Fix references to vc/vc-hooks.elc
 +      and vc/ediff-hook.elc.
 +
 +2010-06-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * ntlib.h: Remove code dealing with BSTRING.
 +
 +2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacsclient.c (longopts, decode_options, print_help_and_exit):
 +      New arg `-parent-id'.
 +      (main): Send parent-id to Emacs.
 +
 +2010-05-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (distclean): No more Makefile.c.
 +
 +2010-05-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * Makefile.in (STAMP_INST_SCRIPTS, STAMP_SCRIPS): New (Bug #6246).
 +      (all): Depend onSTAMP_INST_SCRIPTS, STAMP_SCRIPS (Bug #6246).
 +      (stamp-rcs2log, stamp-rcs-checkin, stamp-grep-changelog, stamp-vcdiff):
 +      New rules (Bug #6246).
 +      (clean): Remove stamp-* (Bug #6246).
 +
 +2010-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INSTALLABLES): Remove @LIB_SRC_EXTRA_INSTALLABLES@.
 +
 +2010-05-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (.m.o): Remove, there are no .m files.
 +      (BASE_CFLAGS): New variable.
 +      (ALL_CFLAGS, LINK_CFLAGS, CPP_CFLAGS): Use $BASE_CFLAGS.
 +      (check): Update the message.
 +      (update-game-score${EXEEXT}): Do not use $MOVE_FLAGS.
 +
 +      * Makefile.in: Convert comments to makefile format.
 +
 +      * Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset.
 +      (config.h) [MSDOS]: Do not include.
 +
 +2010-05-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBS_SYSTEM): Set with configure, not cpp.
 +      (LIBS_SYSTEM) [MSDOS]: Reset with MSDOS_LIBS_SYSTEM.
 +      (NOT_C_CODE): Remove, no longer used.
 +      (config.h) [!MSDOS]: No longer include.
 +      (LOADLIBES): Use LIBS_SYSTEM as a variable.
 +
 +      * Makefile.in (BLESSMAIL_TARGET): Set with configure, not cpp.
 +
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (THIS_IS_MAKEFILE): Remove, unused.
 +
  2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
  
        * Version 23.2 released.
  
 -2010-05-05  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +2010-05-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Minimize blessmail-related cpp usage.
 +      (BLESSMAIL_TARGET): New variable.
 +      (MOVEMAIL_NEEDS_BLESSING): Remove, replace by above variable.
 +      (blessmail): Always define this rule.
 +      (need-blessmail): New rule, split out from maybe-blessmail.
 +      (maybe-blessmail): Use BLESSMAIL_TARGET.
 +
 +2010-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Use @C_SWITCH_SYSTEM@, @C_SWITCH_MACHINE@ rather than
 +      @c_switch_system@, @c_switch_machine@.
 +
 +2010-04-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (LIBS_MACHINE): Remove all uses, unused.
 +
 +2010-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (ALL_CFLAGS, LINK_CFLAGS, CPP_CFLAGS): Move to the
 +      non-cpp section.
 +
 +2010-04-11  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE): Define using
 +      autoconf, not cpp.
 +      (ALL_CFLAGS): Use them as make variables.
 +
 +2010-04-07  Christoph  <cschol2112@googlemail.com>  (tiny change)
  
        * makefile.w32-in (OTHER_PLATFORM_SUPPORT): Use parenthesis
        for macros for nmake compatibility.
        possibility of symlink attack when movemail is setgid mail
        (CVE-2010-0825).
  
 -2010-03-19  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 +2010-04-02  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * Makefile.in (uninstall): Handle the case where archlibdir does
 -      not exist.  (Bug#5720)
 +      Remove extern errno declarations.
 +      * movemail.c:
 +      * etags.c:
 +      * emacsclient.c: Remove extern errno declarations.
 +
 +2010-03-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (KRB4LIB, DESLIB, KRB5LIB, CRYPTOLIB, COM_ERRLIB)
 +      (LIBHESIOD, LIBRESOLV): Make previous change a bit more friendly by
 +      defining these as Makefile variables.
 +      (LIBS_MOVE): Add LIBS_MAIL into this.
 +      (movemail${EXEEXT}): Just use LIBS_MOVE, not LIBS_MAIL as well.
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (KRB4LIB, DESLIB, KRB5LIB, CRYPTOLIB, COM_ERRLIB)
 +      (HESIODLIB, LIBS_MAIL): Set using autoconf rather than cpp.
 +      (BASE_CFLAGS): Remove (identical to CPP_CFLAGS).
 +
 +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-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
  
  2010-02-20  Kevin Ryde  <user42@zip.com.au>
  
  
  2010-01-29  Kester Habermann  <kester@linuxtag.org>  (tiny change)
  
 -      * etags.c (Fortran_functions): Handle recursive keyword
 -      (Bug#5484).
 +      * etags.c (Fortran_functions): Handle recursive keyword (Bug#5484).
  
  2010-01-11  Glenn Morris  <rgm@gnu.org>
  
  
  2008-02-01  Jason Rumney  <jasonr@gnu.org>
  
 -      * makefile.w32-in (obj): Sync with src/Makefile.in
 +      * makefile.w32-in (obj): Sync with src/Makefile.in.
        (TOOLTIP_SUPPORT, WINDOW_SUPPORT): New definitions.
        (WINNT_SUPPORT): Add term/w32-win.elc.
        (lisp1, lisp2): Sync with lisp in src/Makefile.in.
  
        * makefile.w32-in (WINNT_SUPPORT, MOUSE_SUPPORT, lisp): Revert to
        using .elc files.
 -      (lisp): Sync with list in src/Makefile.in
 +      (lisp): Sync with list in src/Makefile.in.
        (VMS_SUPPORT, MSDOS_SUPPORT): Define, so DOC files can be shared.
  
  2002-02-10  Paul Eggert  <eggert@twinsun.com>
  
  2000-03-02  Gerd Moellmann  <gerd@gnu.org>
  
 -      * etags.c (lisp_suffixes)  Add `LSP'.
 +      * etags.c (lisp_suffixes): Add `LSP'.
  
  2000-02-10  Francesco Potortì  <pot@gnu.org>
  
        * Makefile.in.in (install, maybe-blessmail): Don't cd ..;
        configure has already set $(INSTALL) to the proper relative path.
  
 -1995-06-27  Francesco Potortì  (pot@cnuce.cnr.it)
 -
 -      * etags.c (plain_C_entries): New function.
 -      (lowcase): New macro.
 -      (tail, Fortran_functions, Pascal_functions): Use new macro lowcase.
 -      (lang_suffixes): New suffix ".pc" for Pro*C files.
 -      (consider_token): Don't tag all tokens beginning with DEFUN & Co..
 -      (tail): Look for the end of the token when comparing.
 -      (takeprec): Since now tail behaves differently, use strneq.
 -
  1995-07-08  Paul Eggert  <eggert@twinsun.com>
  
        * rcs2log (datearg): Separate date from time with comma, not space,
        (main): Improve usage message.
        (error): Write to stderr, not stdout.
  
 -      * b2m.c cvtmail.c digest-doc.c emacsclient.c emacsserver.c etags.c
 -      fakemail.c hexl.c make-docfile.c profile.c sorted-doc.c test-distrib.c
 -      timer.c wakeup.c yow.c: Eliminate some -Wall warnings from unused
 -      variables and implicitly declared functions.
 +      * b2m.c, cvtmail.c, digest-doc.c, emacsclient.c, emacsserver.c:
 +      * etags.c, fakemail.c, hexl.c, make-docfile.c, profile.c, sorted-doc.c:
 +      * test-distrib.c, timer.c, wakeup.c, yow.c: Eliminate some -Wall
 +      warnings from unused variables and implicitly declared functions.
  
  1994-10-11  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
  
        (TOKEN): Member linestart removed.
        (linepos, prev_linepos, lb1): Deleted.
        (main): Call initbuffer on lbs array instead of lb1.
 -      (init): Removed the initialisation of the logical _gd array;
 +      (init): Removed the initialisation of the logical _gd array.
        (find_entries): A .sa suffix means assembler file.
        (C_create_stab): "auto", "void", "extern", "static" are st_C_typespec.
        All C state machines rewritten.
        * etags.c: Changes for VMS.
        Always define ETAGS on VMS.
        Define macros GOOD and BAD for success and failure exit codes.
 -      (begtk, intk): Allow `$' in identifiers
 +      (begtk, intk): Allow `$' in identifiers.
        (main): Don't support -B, -F or -u on VMS.
        Alternate loop for scanning filename arguments.
        (system): Delete definition of this function.
diff --combined lib-src/emacsclient.c
index b60b2661805de7e84e08e4dda7b096a69c4a0c25,4b45beb6901172d76aceb71d94b90e2dd942ac66..48ea3d22dc96dfe40f6d6d99f1a964fda88d8182
@@@ -18,7 -18,9 +18,7 @@@ You should have received a copy of the 
  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
  
  
 -#ifdef HAVE_CONFIG_H
  #include <config.h>
 -#endif
  
  #ifdef WINDOWSNT
  
@@@ -30,8 -32,6 +30,8 @@@
  # include <stdlib.h>
  # include <windows.h>
  # include <commctrl.h>
 +# include <io.h>
 +# include <winsock2.h>
  
  # define NO_SOCKETS_IN_FILE_SYSTEM
  
  # define CLOSE_SOCKET closesocket
  # define INITIALIZE() (initialize_sockets ())
  
 +char *w32_getenv (char *);
 +#define egetenv(VAR) w32_getenv(VAR)
 +
  #else /* !WINDOWSNT */
  
  # include "syswait.h"
  
  # ifdef HAVE_INET_SOCKETS
  #  include <netinet/in.h>
 +#  ifdef HAVE_SOCKETS
 +#    include <sys/types.h>
 +#    include <sys/socket.h>
 +#    include <sys/un.h>
 +#  endif /* HAVE_SOCKETS */
  # endif
 -
  # include <arpa/inet.h>
  
  # define INVALID_SOCKET -1
@@@ -65,8 -58,6 +65,8 @@@
  #  define WCONTINUED 8
  # endif
  
 +#define egetenv(VAR) getenv(VAR)
 +
  #endif /* !WINDOWSNT */
  
  #undef signal
  #include <stdio.h>
  #include "getopt.h"
  #ifdef HAVE_UNISTD_H
 -#include <unistd.h>
 +# include <unistd.h>
  #endif
  
 -#ifdef WINDOWSNT
 -# include <io.h>
 -#else /* not WINDOWSNT */
 -# include <pwd.h>
 -#endif /* not WINDOWSNT */
 +#include <pwd.h>
  #include <sys/stat.h>
 -
  #include <signal.h>
  #include <errno.h>
  
 -\f
 -char *getenv (), *getwd ();
 -char *(getcwd) ();
  
 -#ifdef WINDOWSNT
 -char *w32_getenv ();
 -#define egetenv(VAR) w32_getenv(VAR)
 -#else
 -#define egetenv(VAR) getenv(VAR)
 +\f
 +char *getenv (const char *), *getwd (char *);
 +#ifdef HAVE_GETCWD
 +char *(getcwd) (char *, size_t);
  #endif
  
  #ifndef VERSION
  #define TRUE 1
  #endif
  
 -#ifndef NO_RETURN
 -#define NO_RETURN
 -#endif
 -
  /* Additional space when allocating buffers for filenames, etc.  */
  #define EXTRA_SPACE 100
  
  \f
  /* Name used to invoke this program.  */
 -char *progname;
 +const char *progname;
  
  /* The second argument to main. */
  char **main_argv;
@@@ -132,10 -136,7 +132,10 @@@ int eval = 0
  int current_frame = 1;
  
  /* The display on which Emacs should work.  --display.  */
 -char *display = NULL;
 +const char *display = NULL;
 +
 +/* The parent window ID, if we are opening a frame via XEmbed.  */
 +char *parent_id = NULL;
  
  /* Nonzero means open a new Emacs frame on the current terminal. */
  int tty = 0;
@@@ -148,14 -149,12 +148,14 @@@ const char *alternate_editor = NULL
  char *socket_name = NULL;
  
  /* If non-NULL, the filename of the authentication file.  */
 -char *server_file = NULL;
 +const char *server_file = NULL;
  
  /* PID of the Emacs server process.  */
  int emacs_pid = 0;
  
 -void print_help_and_exit () NO_RETURN;
 +void print_help_and_exit (void) NO_RETURN;
 +void fail (void) NO_RETURN;
 +
  
  struct option longopts[] =
  {
  #ifndef WINDOWSNT
    { "display",        required_argument, NULL, 'd' },
  #endif
 +  { "parent-id", required_argument, NULL, 'p' },
    { 0, 0, 0, 0 }
  };
  
  /* Like malloc but get fatal error if memory is exhausted.  */
  
  long *
 -xmalloc (size)
 -     unsigned int size;
 +xmalloc (unsigned int size)
  {
    long *result = (long *) malloc (size);
    if (result == NULL)
@@@ -233,7 -232,7 +233,7 @@@ xstrdup (const char *s
     Any other returned value must be freed with free.  This is used
     only when get_current_dir_name is not defined on the system.  */
  char*
 -get_current_dir_name ()
 +get_current_dir_name (void)
  {
    char *buf;
    char *pwd;
     Return NULL if the variable was not found, or it was empty.
     This code is based on w32_get_resource (w32.c).  */
  char *
 -w32_get_resource (predefined, key, type)
 -     HKEY predefined;
 -     char *key;
 -     LPDWORD type;
 +w32_get_resource (HKEY predefined, char *key, LPDWORD type)
  {
    HKEY hrootkey = NULL;
    char *result = NULL;
    variables in the registry if they don't appear in the environment.
  */
  char *
 -w32_getenv (envvar)
 -     char *envvar;
 +w32_getenv (char *envvar)
  {
    char *value;
    DWORD dwType;
  }
  
  void
 -w32_set_user_model_id ()
 +w32_set_user_model_id (void)
  {
    HMODULE shell;
    HRESULT (WINAPI * set_user_model) (wchar_t * id);
    /* On Windows 7 and later, we need to set the user model ID
       to associate emacsclient launched files with Emacs frames
       in the UI.  */
 -  shell = LoadLibrary("shell32.dll");
 +  shell = LoadLibrary ("shell32.dll");
    if (shell)
      {
        set_user_model
  }
  
  int
 -w32_window_app ()
 +w32_window_app (void)
  {
    static int window_app = -1;
    char szTitle[MAX_PATH];
           nonconsole apps.  Testing for the console title seems to work. */
        window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0);
        if (window_app)
 -        InitCommonControls();
 +        InitCommonControls ();
      }
  
    return window_app;
    This is necessary due to the broken implementation of exec* routines in
    the Microsoft libraries: they concatenate the arguments together without
    quoting special characters, and pass the result to CreateProcess, with
 -  predictably bad results.  By contrast, Posix execvp passes the arguments
 +  predictably bad results.  By contrast, POSIX execvp passes the arguments
    directly into the argv array of the child process.
  */
  int
 -w32_execvp (path, argv)
 -     char *path;
 -     char **argv;
 +w32_execvp (const char *path, char **argv)
  {
    int i;
  
@@@ -477,9 -482,9 +477,9 @@@ ttyname (int fd
  /* Display a normal or error message.
     On Windows, use a message box if compiled as a Windows app.  */
  void
 -message (int is_error, char *message, ...)
 +message (int is_error, const char *message, ...)
  {
 -  char msg [2048];
 +  char msg[2048];
    va_list args;
  
    va_start (args, message);
     The global variable `optind' will say how many arguments we used up.  */
  
  void
 -decode_options (argc, argv)
 -     int argc;
 -     char **argv;
 +decode_options (int argc, char **argv)
  {
    alternate_editor = egetenv ("ALTERNATE_EDITOR");
  
            current_frame = 0;
            break;
  
 +      case 'p':
 +        parent_id = optarg;
 +          current_frame = 0;
 +        break;
 +
        case 'H':
          print_help_and_exit ();
          break;
@@@ -634,7 -636,7 +634,7 @@@ an empty string")
  
  \f
  void
 -print_help_and_exit ()
 +print_help_and_exit (void)
  {
    /* Spaces and tabs are significant in this message; they're chosen so the
       message aligns properly both in a tty and in a Windows message box.
@@@ -654,8 -656,7 +654,8 @@@ The following OPTIONS are accepted:\n
  -e, --eval                    Evaluate the FILE arguments as ELisp expressions\n\
  -n, --no-wait         Don't wait for the server to return\n\
  -d DISPLAY, --display=DISPLAY\n\
 -                      Visit the file in the given display\n"
 +                      Visit the file in the given display\n\
 +--parent-id=ID          Open in parent window ID, via XEmbed\n"
  #ifndef NO_SOCKETS_IN_FILE_SYSTEM
  "-s SOCKET, --socket-name=SOCKET\n\
                        Set filename of the UNIX socket for communication\n"
@@@ -696,7 -697,9 +696,7 @@@ fail (void
  #if !defined (HAVE_SOCKETS) || !defined (HAVE_INET_SOCKETS)
  
  int
 -main (argc, argv)
 -     int argc;
 -     char **argv;
 +main (int argc, char **argv)
  {
    main_argv = argv;
    progname = argv[0];
  
  #else /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
  
 -#ifdef WINDOWSNT
 -# include <winsock2.h>
 -#else
 -# include <sys/types.h>
 -# include <sys/socket.h>
 -# include <sys/un.h>
 -#endif
 -
  #define AUTH_KEY_LENGTH      64
  #define SEND_BUFFER_SIZE   4096
  
 -extern char *strerror ();
 -extern int errno;
 +extern char *strerror (int);
  
  /* Buffer to accumulate data to send in TCP connections.  */
  char send_buffer[SEND_BUFFER_SIZE + 1];
@@@ -722,7 -734,8 +722,7 @@@ HSOCKET emacs_socket = 0
  /* On Windows, the socket library was historically separate from the standard
     C library, so errors are handled differently.  */
  void
 -sock_err_message (function_name)
 -     char *function_name;
 +sock_err_message (const char *function_name)
  {
  #ifdef WINDOWSNT
    char* msg = NULL;
     - the buffer is full (but this shouldn't happen)
     Otherwise, we just accumulate it.  */
  void
 -send_to_emacs (s, data)
 -     HSOCKET s;
 -     char *data;
 +send_to_emacs (HSOCKET s, const char *data)
  {
    while (data)
      {
 -      int dlen = strlen (data);
 +      size_t dlen = strlen (data);
        if (dlen + sblen >= SEND_BUFFER_SIZE)
        {
          int part = SEND_BUFFER_SIZE - sblen;
     any initial -.  Change spaces to underscores, too, so that the
     return value never contains a space.
  
 -   Does not change the string.  Outputs the result to STREAM.  */
 +   Does not change the string.  Outputs the result to S.  */
  void
 -quote_argument (s, str)
 -     HSOCKET s;
 -     char *str;
 +quote_argument (HSOCKET s, const char *str)
  {
    char *copy = (char *) xmalloc (strlen (str) * 2 + 1);
 -  char *p, *q;
 +  const char *p;
 +  char *q;
  
    p = str;
    q = copy;
     modifying the string in place.   Returns STR. */
  
  char *
 -unquote_argument (str)
 -     char *str;
 +unquote_argument (char *str)
  {
    char *p, *q;
  
  
  \f
  int
 -file_name_absolute_p (filename)
 -     const unsigned char *filename;
 +file_name_absolute_p (const unsigned char *filename)
  {
    /* Sanity check, it shouldn't happen.  */
    if (! filename) return FALSE;
  
  #ifdef WINDOWSNT
  /* Wrapper to make WSACleanup a cdecl, as required by atexit.  */
 -void
 -__cdecl close_winsock ()
 +void __cdecl
 +close_winsock (void)
  {
    WSACleanup ();
  }
  
  /* Initialize the WinSock2 library.  */
  void
 -initialize_sockets ()
 +initialize_sockets (void)
  {
    WSADATA wsaData;
  
  \f
  /*
   * Read the information needed to set up a TCP comm channel with
 - * the Emacs server: host, port, pid and authentication string.
 + * the Emacs server: host, port, and authentication string.
   */
  int
 -get_server_config (server, authentication)
 -     struct sockaddr_in *server;
 -     char *authentication;
 +get_server_config (struct sockaddr_in *server, char *authentication)
  {
    char dotted[32];
    char *port;
 -  char *pid;
    FILE *config = NULL;
  
    if (file_name_absolute_p (server_file))
      return FALSE;
  
    if (fgets (dotted, sizeof dotted, config)
 -      && (port = strchr (dotted, ':'))
 -      && (pid = strchr (port, ' ')))
 -    {
 -      *port++ = '\0';
 -      *pid++  = '\0';
 -    }
 +      && (port = strchr (dotted, ':')))
 +    *port++ = '\0';
    else
      {
        message (TRUE, "%s: invalid configuration info\n", progname);
  
    fclose (config);
  
 -  emacs_pid = atoi (pid);
 -
    return TRUE;
  }
  
  HSOCKET
 -set_tcp_socket ()
 +set_tcp_socket (void)
  {
    HSOCKET s;
    struct sockaddr_in server;
  
  /* Returns 1 if PREFIX is a prefix of STRING. */
  static int
 -strprefix (char *prefix, char *string)
 +strprefix (const char *prefix, const char *string)
  {
    return !strncmp (prefix, string, strlen (prefix));
  }
@@@ -1083,7 -1110,8 +1083,7 @@@ find_tty (char **tty_type, char **tty_n
     0 - success: none of the above */
  
  static int
 -socket_status (socket_name)
 -     char *socket_name;
 +socket_status (char *socket_name)
  {
    struct stat statbfr;
  
@@@ -1186,7 -1214,7 +1186,7 @@@ init_signals (void
  
  
  HSOCKET
 -set_local_socket ()
 +set_local_socket (void)
  {
    HSOCKET s;
    struct sockaddr_un server;
      int sock_status = 0;
      int default_sock = !socket_name;
      int saved_errno = 0;
 -    char *server_name = "server";
 -    char *tmpdir;
 +    const char *server_name = "server";
 +    const char *tmpdir;
  
 -    if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\'))
 -      { /* socket_name is a file name component.  */
 +    if (socket_name && !strchr (socket_name, '/')
 +      && !strchr (socket_name, '\\'))
 +      {
 +      /* socket_name is a file name component.  */
        server_name = socket_name;
        socket_name = NULL;
        default_sock = 1;       /* Try both UIDs.  */
        if (!tmpdir)
            {
  #ifdef DARWIN_OS
+ #ifndef _CS_DARWIN_USER_TEMP_DIR
+ #define _CS_DARWIN_USER_TEMP_DIR 65537
+ #endif
              size_t n = confstr (_CS_DARWIN_USER_TEMP_DIR, NULL, (size_t) 0);
              if (n > 0)
                {
@@@ -1395,7 -1424,9 +1398,7 @@@ FARPROC set_fg;  /* Pointer to AllowSet
  FARPROC get_wc;  /* Pointer to RealGetWindowClassA.  */
  
  BOOL CALLBACK
 -w32_find_emacs_process (hWnd, lParam)
 -     HWND hWnd;
 -     LPARAM lParam;
 +w32_find_emacs_process (HWND hWnd, LPARAM lParam)
  {
    DWORD pid;
    char class[6];
   * process id = emacs_pid.  If found, allow it to grab the focus.
   */
  void
 -w32_give_focus ()
 +w32_give_focus (void)
  {
    HANDLE user32;
  
@@@ -1461,7 -1492,7 +1464,7 @@@ start_daemon_and_retry_set_socket (void
        pid_t w;
        w = waitpid (dpid, &status, WUNTRACED | WCONTINUED);
  
 -      if ((w == -1) || !WIFEXITED (status) || WEXITSTATUS(status))
 +      if ((w == -1) || !WIFEXITED (status) || WEXITSTATUS (status))
        {
          message (TRUE, "Error: Could not start the Emacs daemon\n");
          exit (EXIT_FAILURE);
    else if (dpid < 0)
      {
        fprintf (stderr, "Error: Cannot fork!\n");
 -      exit (1);
 +      exit (EXIT_FAILURE);
      }
    else
      {
 -      char *d_argv[] = {"emacs", "--daemon", 0 };
 +      char emacs[] = "emacs";
 +      char daemon[] = "--daemon";
 +      char *d_argv[] = {emacs, daemon, 0 };
        if (socket_name != NULL)
        {
          /* Pass  --daemon=socket_name as argument.  */
 -        char *deq = "--daemon=";
 +        const char *deq = "--daemon=";
          char *daemon_arg = alloca (strlen (deq)
                                     + strlen (socket_name) + 1);
          strcpy (daemon_arg, deq);
  }
  
  int
 -main (argc, argv)
 -     int argc;
 -     char **argv;
 +main (int argc, char **argv)
  {
    int i, rl, needlf = 0;
    char *cwd, *str;
    char string[BUFSIZ+1];
    int null_socket_name, null_server_file, start_daemon_if_needed;
 +  int exit_status = EXIT_SUCCESS;
  
    main_argv = argv;
    progname = argv[0];
        int i;
        for (i = 0; environ[i]; i++)
          {
 -          char *name = xstrdup (environ[i]);
 -          char *value = strchr (name, '=');
            send_to_emacs (emacs_socket, "-env ");
            quote_argument (emacs_socket, environ[i]);
            send_to_emacs (emacs_socket, " ");
        send_to_emacs (emacs_socket, " ");
      }
  
 +  if (parent_id)
 +    {
 +      send_to_emacs (emacs_socket, "-parent-id ");
 +      quote_argument (emacs_socket, parent_id);
 +      send_to_emacs (emacs_socket, " ");
 +    }
 +
    /* If using the current frame, send tty information to Emacs anyway.
       In daemon mode, Emacs may need to occupy this tty if no other
       frame is available.  */
    fsync (1);
  
    /* Now, wait for an answer and print any messages.  */
 -  while ((rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0)
 +  while (exit_status == EXIT_SUCCESS
 +       && (rl = recv (emacs_socket, string, BUFSIZ, 0)) > 0)
      {
        char *p;
        string[rl] = '\0';
              printf ("\n");
            fprintf (stderr, "*ERROR*: %s", str);
            needlf = str[0] == '\0' ? needlf : str[strlen (str) - 1] != '\n';
 +        exit_status = EXIT_FAILURE;
          }
  #ifdef SIGSTOP
        else if (strprefix ("-suspend ", string))
            if (needlf)
              printf ("\n");
            printf ("*ERROR*: Unknown message: %s", string);
 -          needlf = string[0] == '\0' ? needlf : string[strlen (string) - 1] != '\n';
 +          needlf = string[0]
 +          == '\0' ? needlf : string[strlen (string) - 1] != '\n';
          }
      }
  
    fflush (stdout);
    fsync (1);
  
 +  if (rl < 0)
 +    exit_status = EXIT_FAILURE;
 +
    CLOSE_SOCKET (emacs_socket);
 -  return EXIT_SUCCESS;
 +  return exit_status;
  }
  
  #endif /* HAVE_SOCKETS && HAVE_INET_SOCKETS */
diff --combined lisp/ChangeLog
index dc5761109d7379d4861c8b73e2a78e68359a5cd0,4fb7c84f3c3409383e16a7898859ed17a9979a76..9fa66ca8022125509ac73ab4f2f862c0c97f7e2d
 -2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+ 2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * simple.el (kill-new, kill-append, kill-region):
+       * comint.el (comint-kill-region): Make the yank-handler argument obsolete.
 -2010-11-17  Glenn Morris  <rgm@gnu.org>
++2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * 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.
+       * 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-16  Ulrich Mueller  <ulm@gentoo.org>
++2010-11-18  Glenn Morris  <rgm@gnu.org>
+       * emacs-lisp/autoload.el (autoload-find-destination): The function
+       coding-system-eol-type may return non-numeric values.  (Bug#7414)
 -2010-11-13  Eli Zaretskii  <eliz@gnu.org>
++2010-11-18  Ulrich Mueller  <ulm@gentoo.org>
+       * server.el (server-force-stop): Ensure the server is stopped (Bug#7409).
 -2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
++2010-11-18  Eli Zaretskii  <eliz@gnu.org>
+       * subr.el (posn-col-row): Pay attention to header line.  (Bug#7390)
 -2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * 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-13  Glenn Morris  <rgm@gnu.org>
++2010-11-18  Chong Yidong  <cyd@stupidchicken.com>
+       * 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-12  Glenn Morris  <rgm@gnu.org>
++2010-11-18  Glenn Morris  <rgm@gnu.org>
+       * novice.el (disabled-command-function):
+       Fix 2009-11-15 change.  (Bug#7384)
 -2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
++2010-11-18  Glenn Morris  <rgm@gnu.org>
+       * calendar/calendar.el (diary-iso-date-forms): Make elements
+       mutually exclusive.  (Bug#7377)
 -2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
++2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * emacs-lisp/smie.el (smie-prec2->grammar): Obey equality constraints
+       when filling the remaining "unconstrained" values.
 -2010-11-11  Glenn Morris  <rgm@gnu.org>
++2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
+       safety predicate.
+       * files.el (safe-local-variable-p): Gracefully handle errors.
+       * 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-11-10  Glenn Morris  <rgm@gnu.org>
++2010-11-18  Glenn Morris  <rgm@gnu.org>
+       * ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
++2010-11-18  Glenn Morris  <rgm@gnu.org>
+       * printing.el (pr-menu-bind): Doc fix.
+       * speedbar.el (speedbar-toggle-images): Doc fix.
+       * progmodes/python.el (python-shell): Doc fix.
+       * wid-edit.el (widget-field-use-before-change)
+       (widget-use-overlay-change): Doc fixes.
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      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.
 +
 +      * 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-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * 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'.
 +
 +      * allout.el (allout-before-change-handler):
 +      Exempt edits to the (overlaid) character after the allout outline
 +      bullet from edit confirmation prompt.
 +
 +      * allout.el (allout-add-resumptions):
 +      Ensure that it respects correct buffer for keybindings.
 +
 +      * allout.el (allout-beginning-of-line):
 +      Use `allout-previous-single-char-property-change' alias for the sake of
 +      diverse compatibility.
 +
 +      * allout.el (allout-end-of-line):
 +      Use `allout-mark-active-p' to encapsulate respect for mark activity.
 +
 +2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * 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-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/characters.el (glyphless-char-display-control):
 +      Renamed from glyphless-char-control; all users changed.  Doc fix.
 +      Signal an error if display method is not one of the recognized
 +      symbols.
 +
 +2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * 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-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
 +
 +      * simple.el (count-words-region): New function.
 +
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * shell.el (shell-dir-cookie-re): New custom variable.
 +      (shell-dir-cookie-watcher): New function.
 +
 +      * vc/vc.el (vc-deduce-backend): Use default-directory in shell-mode
 +      and compilation-mode (bug#7350).
 +
 +      * vc/smerge-mode.el (smerge-refine): Choose better default part to
 +      highlight when one of them is empty.
 +
 +      * skeleton.el (skeleton-read): Don't use `newline' since it may strip
 +      trailing space.
 +      (skeleton-newline): New function.
 +      (skeleton-internal-1): Use it.
 +
 +      * simple.el (open-line): `newline' may strip trailing space.
 +
 +2010-11-12  Kevin Ryde  <user42@zip.com.au>
 +
 +      * international/mule-cmds.el (princ-list): Use mapc.
 +
 +2010-11-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-log-buffer): New constant.
 +      Use it to replace all instances of "*Compile-Log*"
 +
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase-let*, pcase-let): Add debug and
 +      indentation specs.
 +
 +2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * 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.
 +
 +2010-11-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/lucid.el: Don't warn about any CL functions in this file.
 +
 +      * 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.
 +
 +      * play/landmark.el (lm-prompt-for-move):
 +      * play/gomoku.el (gomoku-prompt-for-move): Remove nonsensical code.
 +
 +      * progmodes/idlw-complete-structtag.el: Remove unused dec `name'.
 +
 +      * progmodes/idlwave.el (idlwave-routine-entry-compare-twins)
 +      (idlwave-study-twins): Prefix dynamic local variable `name'.
 +      (idlwave-routine-twin-compare): Update for above change.
 +
 +      * 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.
 +
 +2010-11-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/browse-url.el (browse-url-browser-function): Change the
 +      default to use `browse-url-mail' on mailto: URLs.
 +
 +2010-11-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-read-all-archive-contents):
 +      Reset package-archive-contents to nil before re-reading.
 +
 +2010-11-10  Brandon Craig Rhodes  <brandon@rhodesmill.org>  (tiny change)
 +
 +      * textmodes/flyspell.el (flyspell-word): Do not re-check words
 +      already found as misspellings by (flyspell-large-region), just
 +      do highlighting (bug#7322).
 +
 +2010-11-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/octave-mod.el (octave-mark-block): Update for smie change.
 +
 +      * 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.
 +
 +      * emulation/tpu-extras.el (tpu-with-position): New macro.
 +      (tpu-paragraph, tpu-page, tpu-search-internal): Use it.
 +
 +      * textmodes/texnfo-upd.el (texinfo-pointer-name): Fix typo.
 +
 +      * 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.
 +
 +      * progmodes/cperl-mode.el (cperl-find-pods-heres, cperl-write-tags):
 +      No recent Emacs supports system-type `emx'.
 +
 +      * 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.
 +
 +      * 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.
 +
 +      * 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.
 +
 +      * net/net-utils.el (net-utils-remove-ctl-m): Use memq for system-types.
 +      (ping-program-options): Remove non-existent `linux' system-type.
 +
 +      * startup.el (package-initialize): Update declaration.
 +
 +      * 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.
 +
 +      * textmodes/remember.el (remember-time-to-seconds): Remove.
 +      (remember-store-in-mailbox): Use float-time.
 +
 +      * calendar/timeclock.el (timeclock-time-to-seconds): Make it an alias.
 +
 +      * 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.
 +
 +      * 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.
 +
  2010-11-09  Glenn Morris  <rgm@gnu.org>
  
        * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * minibuffer.el (minibuffer-completion-help): Specify the end of the
        completion field (bug#7211).
        Fix handling of backslash escapes.
        (python-quote-syntax): Adjust accordingly.
  
 -2010-11-08  Richard Levitte  <richard@levitte.org>  (tiny change)
 +2010-11-09  Richard Levitte  <richard@levitte.org>  (tiny change)
  
        * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
        (vc-mtn-workfile-branch): Adjust to new output format.
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * international/mule-cmds.el (princ-list): Mark as obsolete.
  
 -2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * emacs-lisp/smie.el: New package.
  
 -2010-11-06  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-09  Michael Albinus  <michael.albinus@gmx.de>
  
        * files.el (backup-by-copying-when-mismatch):
        Set `permanent-local' property.
        * net/tramp.el (tramp-handle-insert-file-contents): Do not set
        `permanent-local' property for `backup-by-copying-when-mismatch'.
  
 -2010-11-06  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
  
        * 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.
  
 -2010-11-07  Wilson Snyder  <wsnyder@wsnyder.org>
 +2010-11-09  Wilson Snyder  <wsnyder@wsnyder.org>
  
        * progmodes/verilog-mode.el (verilog-insert-one-definition)
        (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
        (verilog-preprocess): Use with-current-buffer and
        font-lock-fontify-buffer to cleanup style issues.
  
 -2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * net/trampver.el: Update release number.
 -
 -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-11-01  Glenn Morris  <rgm@gnu.org>
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
  
        * locate.el (locate, locate-mode): Doc fixes.
  
 -2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-09  Chong Yidong  <cyd@stupidchicken.com>
  
        * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
        user for confirmation.
        (server-start): Use server-force-stop for kill-emacs-hook, to
        avoid user interaction while killing Emacs.
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
  
 -      * 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.
 +      * 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-10-31  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
 +      * 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-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +      * 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).
  
 -      * 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.
 +2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc/diff-mode.el (diff-vc-backend): New var.
 +      * 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/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-10-31  Juri Linkov  <juri@jurta.org>
 +2010-11-03  Glenn Morris  <rgm@gnu.org>
  
 -      * vc/vc.el (vc-diff-internal): Set `revert-buffer-function'
 -      buffer-locally to lambda that re-runs the vc diff command.
 -      (Bug#6447)
 +      * progmodes/idlwave.el (idlwave-pset): Only used on XEmacs.
 +      (props): Remove unnecessary declaration.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * textmodes/ispell.el (ispell-init-process): On Emacs, always use
 +      set-process-query-on-exit-flag.
  
 -      * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
 +      * 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.
  
 -      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.
 +      * net/dbus.el (dbus-name-owner-changed-handler): Doc fix.
  
 -      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.
 +      * 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.
  
 -      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.
 +      * 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>
  
 -      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.
 +      * 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.
  
 -      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-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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
 +      * progmodes/perl-mode.el (perl-syntax-propertize-function):
 +      Handle __DATA__ and __END__.
  
 -      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-02  Noah Friedman  <friedman@splode.com>
  
 -      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.
 +      * 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-05-19  Glenn Morris  <rgm@gnu.org>
 +2010-11-02  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * vc-dir.el (vc-dir): Don't pop-up-windows.  (Bug#6204)
 +      * 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".
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
 -      * 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.
 +      * subr.el (version-separator, version-regexp-alist): Remove '*'
 +      from docstring.
 +      (version-list-<=, version<=, version=): Doc fix.
  
 -      * vc-git.el (vc-git-checkin): Use log-edit-extract-headers.
 -      (vc-git-commits-coding-system): Rename from git-commits-coding-system.
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
  
 -      * vc-dispatcher.el (vc-log-edit): Shorten names for
 -      log-edit-show-files.
 +      * faces.el (glyphless-char): Inherit underline for tty.
  
 -      * vc-bzr.el (vc-bzr-checkin): Use log-edit-extract-headers.
 -      (vc-bzr-conflicted-files): New function.
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
  
 -      * 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.
 +      Implement various display methods for glyphless characters.
  
 -      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with
 -      the windows/frames.
 +      * international/characters.el (char-acronym-table): New variable.
 +      (glyphless-char-control): New variable.
 +      (update-glyphless-char-display): New funciton.
  
 -      * vc-bzr.el (vc-bzr-shelve-apply): Don't use *vc-bzr-shelve*.
 +      * faces.el (glyphless-char): New face.
  
 -      * 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.
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-git.el (vc-git-revision-table): Include remote branches.
 +      * 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.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * emacs-lisp/smie.el (smie): New custom group.
 +      (smie-blink-matching-inners, smie-indent-basic): Add :group.
  
 -      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.
 +      * faces.el (xw-defined-colors, x-setup-function-keys):
 +      * mouse-sel.el (x-select-text):
 +      * term/w32console.el (x-setup-function-keys): Update declarations.
  
 -      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-heredoc): Declare.
  
 -      * 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.
 +      * textmodes/ispell.el (comment-add): Declare.
  
 -      * 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.
 +      * net/gnutls.el (gnutls-boot, gnutls-errorp, gnutls-error-string):
 +      Declare.
  
 -      * 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.
 +      * info.el (finder-keywords-hash, package-alist): Declare.
  
 -      Fix default-directory for vc-root-diff.
 -      * vc.el (vc-root-diff): Bind default-directory to the root
 -      directory for the diff command.
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-31  Sam Steingold  <sds@gnu.org>
 +      * finder.el (finder-compile-keywords): Don't use intern-soft,
 +      since package names may not yet exist in the obarray.
  
 -      * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
 -      `vc-hg-command' with a list of flags.
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-31  Glenn Morris  <rgm@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.
  
 -      * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to
 -      log-edit-before-checkin-process.
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
  
 -      * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry.
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): Fix previous change.
  
 -      * vc-bzr.el, vc-hg.el (log-edit-mode): Declare.
 +      * startup.el (package-enable-at-startup, package-initialize):
 +      Silence compiler.
  
 -      * vc-dispatcher.el (vc-start-logentry): Doc fix.
 -      (log-view-process-buffer, log-edit-extra-flags): Declare.
 +      * progmodes/ada-mode.el (ada-font-lock-syntactic-keywords):
 +      Silence compiler.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-10-31  Julien Danjou  <julien@danjou.info>
  
 -      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.
 +      * 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'.
  
 -      * vc.el (vc-default-log-edit-mode): New function.
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
 -      * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to
 -      log-edit.
 +      * 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.
  
 -      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-10-31  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-10-30  Michael Albinus  <michael.albinus@gmx.de>
 +      * term/x-win.el (x-get-selection-value): New function that gets
 +      PRIMARY with type as specified in x-select-request-type. (Bug#6802).
 +
 +2010-10-31  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-handle-insert-file-contents): For root,
        preserve owner and group when editing files.  (Bug#7289)
  
 -2010-10-29  Glenn Morris  <rgm@gnu.org>
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * speedbar.el (speedbar-mode):
        * play/fortune.el (fortune-in-buffer, fortune):
        * textmodes/bibtex.el (bibtex-validate, bibtex-validate-globally):
        Replace inappropriate uses of toggle-read-only.  (Bug#7292)
  
 -2010-10-28  Glenn Morris  <rgm@gnu.org>
 -
        * select.el (x-selection): Mark it as an obsolete alias.
  
 -2010-10-27  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 +2010-10-31  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
  
 -      * add-log.el (find-change-log): Use derived-mode-p rather than
 +      * vc/add-log.el (find-change-log): Use derived-mode-p rather than
        major-mode (bug#7284).
  
 -2010-10-27  Glenn Morris  <rgm@gnu.org>
 +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-23  Michael McNamara  <mac@mail.brushroad.com>
 +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.
  
 -      * 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)
 +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-23  Wilson Snyder  <wsnyder@wsnyder.org>
 +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-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>
  
 -      * comint.el (comint-password-prompt-regexp):
 -      Match "enter the password".  (Bug#7224)
 +      * textmodes/flyspell.el (flyspell-mode): If there was an error,
 +      say what it was.
  
 -2010-10-22  Juanma Barranquero  <lekktu@gmail.com>
 +      * frame.el (auto-hscroll-mode, cursor-in-non-selected-windows):
 +      Sync docs with C version.
  
 -      * progmodes/dcl-mode.el (dcl-electric-reindent-regexps):
 -      Fix typo in docstring.
 +      * 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.el (tramp-get-inline-coding): Return `nil' in case of
 -      errors.
 +      * 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.
  
 -      * net/trampver.el: Update release number.
 +2010-10-21  Daiki Ueno  <ueno@unixuser.org>
  
 -2010-10-20  Kenichi Handa  <handa@m17n.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.
  
 -      * face-remap.el (text-scale-adjust): Call read-event with a proper
 -      prompt.
 +2010-10-19  Alan Mackenzie  <acm@muc.de>
  
 -2010-10-19  Michael Albinus  <michael.albinus@gmx.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.
  
 -      * 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>.
 +      * 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-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +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-18  Chong Yidong  <cyd@stupidchicken.com>
 +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-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * emacs-lisp/regexp-opt.el (regexp-opt-group, regexp-opt-charset):
 -      Turn comments into docstrings.
 +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.el (tramp-open-connection-setup-interactive-shell):
 +      * 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-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * international/characters.el: Add category '|' (word breakable)
 -      to fullwidth characters.
 -
  2010-10-14  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmail.el (rmail-show-message-1): Catch an error of
        (ps-mule-begin-job): Fix for the case that only ENCODING is set in
        a font-spec (bug#7197).
  
 -2010-10-13  Glenn Morris  <rgm@gnu.org>
 +2010-10-14  Glenn Morris  <rgm@gnu.org>
  
        * mail/emacsbug.el (report-emacs-bug): Mention debbugs.gnu.org.
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +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-10  Jan Djärv  <jan.h.d@swipnet.se>
 +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.
  
        * cus-start.el (all): ns-right-alternate-modifier is new.
  
 -2010-10-10  Andreas Schwab  <schwab@linux-m68k.org>
 -
 -      * Makefile.in (ELCFILES): Update.
 -
 -2010-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +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-09  Richard Sharman  <richard_sharman@mitel.com>  (tiny change)
 -
 -      * progmodes/gdb-ui.el (gdb-mouse-toggle-breakpoint-margin)
 -      (gdb-mouse-toggle-breakpoint-fringe): Correct regexp to
 -      work when breakpoint number exceeds nine.
 -
 -2010-10-05  David Koppelman  <koppel@ece.lsu.edu>
 +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.
        (hi-lock-set-pattern): Only add keywords if font-lock-fontified
        non-nil; removed hook inhibit hack.
  
 -2010-10-09  Glenn Morris  <rgm@gnu.org>
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/shadow.el (find-emacs-lisp-shadows): Rename it...
        (load-path-shadows-find): ... to this.
  
        * 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/.
        (load-path-shadows-same-file-or-nonexistent): New name for the old
        shadow-same-file-or-nonexistent.
  
 -2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * minibuffer.el (completion--some, completion--do-completion)
        (minibuffer-complete-and-exit, minibuffer-completion-help)
        (completion-pcm--find-all-completions): Use lexical-let to
        avoid some false matches in variable completion (Bug#7056)
  
 -2010-10-03  Olof Ohlsson Sax  <olof.ohlsson.sax@gmail.com>  (tiny change)
 +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-03  Leo  <sdl.web@gmail.com>
 +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-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * minibuffer.el (completion--replace):
        Better preserve markers (bug#7138).
  
 -2010-09-29  Juanma Barranquero  <lekktu@gmail.com>
 +2010-10-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * server.el (server-process-filter): Doc fix.
  
 -2010-09-27  Drew Adams  <drew.adams@oracle.com>
 +2010-10-08  Drew Adams  <drew.adams@oracle.com>
  
        * dired.el (dired-save-positions): Doc fix.  (Bug#7119)
  
 -2010-09-27  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-10-08  Andreas Schwab  <schwab@linux-m68k.org>
  
        * Makefile.in (ELCFILES): Update.
  
 -      * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
 -      Avoid infinite recursion on erroneous lambda form.  (Bug#7114)
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
  
 -2010-09-27  Kenichi Handa  <handa@m17n.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.
        * international/mule-diag.el (describe-character-set): Use princ
        with proper print-length and print-level instead of insert.
  
 -2010-09-26  Juanma Barranquero  <lekktu@gmail.com>
 +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)
        * net/net-utils.el (ipconfig-program-options):
        Move aliases to options before the associated definitions.
  
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * newcomment.el (comment-normalize-vars): Better test validity of
        comment-end-skip.
  
 -2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +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'.
        * textmodes/artist.el (artist-spray-random-points):
        * play/bubbles.el (bubbles--initialize-images): Use new names.
  
 -2010-09-19  Eric M. Ludlam  <zappo@gnu.org>
 +2010-09-23  Eric M. Ludlam  <zappo@gnu.org>
  
        Update to CEDET 1.0's version of EIEIO.
  
        (eieio-eval-default-p): New function.
        (eieio-default-eval-maybe): Use it.
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +2010-09-23  Jan Moringen  <jan.moringen@uni-bielefeld.de>
  
        * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
        method-invocation-order.
        (call-next-method): Stow the replacement argument list for future
        call-next-method invocations.
  
 -2010-09-15  Glenn Morris  <rgm@gnu.org>
 +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.
  
        * 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):
        diary-included-files.  (Bug#6999)
        (appt-check): Doc fix.
  
 -2010-09-12  David Reitter  <david.reitter@gmail.com>
 +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-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +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-11  Sascha Wilde  <wilde@sha-bang.de>
 +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-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * font-lock.el (font-lock-beginning-of-syntax-function):
        Mark as obsolete.
  
 -2010-09-10  Glenn Morris  <rgm@gnu.org>
 +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-08  Masatake YAMATO  <yamato@redhat.com>
 +2010-09-14  Masatake YAMATO  <yamato@redhat.com>
  
        * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords):
        Fix typo.  (Bug#6976)
  
 -2010-09-06  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +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-style-face-p, whitespace-color-on): Adjust code.
        (whitespace-help-scroll): New fun.
  
 -2010-09-05  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 -
 -      * files.el (directory-abbrev-alist): Use \` as default regexp.
 +2010-09-14  Katsumi Yamaoka  <yamaoka@jpl.org>
  
 -      * 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.
 +      * calendar/time-date.el (format-seconds): Comment fix.
  
 -2010-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-09-13  Michael R. Mauger  <mmaug@yahoo.com>
  
 -      * textmodes/bibtex.el:
 -      * proced.el: Update to new email for Roland Winkler <winkler@gnu.org>.
 +      * 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-02  Glenn Morris  <rgm@gnu.org>
 +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): Renamed 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):
        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.
        (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-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.
  
        * net/trampver.el: Update release number.
  
 -2010-08-26  Magnus Henoch  <magnus.henoch@gmail.com>
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 -      empty argument to gvfs-copy.
 +      * help.el (help-map): Bind `C-h P' to describe-package.
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +      * menu-bar.el (menu-bar-describe-menu): Add describe-package.
  
 -      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 -      handle new TRASH arg of `delete-file'.
 +      * 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-26  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
  
 -      * net/tramp.el (tramp-handle-insert-directory): Don't use
 -      `forward-word', its default syntax could be changed.
 +      * language/misc-lang.el ("Arabic"): New language environment.
 +      Setup composition-function-table for Arabic characters.
  
 -2010-08-26  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 -            Michael Albinus  <michael.albinus@gmx.de>
 +      * international/fontset.el (setup-default-fontset): Fix typo for
 +      arabic OTF spec (fini->fina).
  
 -      Implement compression for inline methods.
 +2010-08-25  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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'.
 +      * menu-bar.el (menu-bar-set-tool-bar-position): Set frame parameter
 +      on all frames.
  
 -2010-08-26  Noah Lavine  <noah549@gmail.com>  (tiny change)
 +2010-08-24  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
 -      Detect ssh 'ControlMaster' argument automatically in some cases.
 +      * 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): Added 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/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 -      (tramp-default-method): Use it.
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-26  Karel Klíč  <kklic@redhat.com>
 +      * emacs-lisp/package.el (list-packages): Alias for
 +      package-list-packages.
  
 -      * net/tramp.el (tramp-file-name-for-operation):
 -      Add file-selinux-context.
 +2010-08-24  Kevin Ryde  <user42@zip.com.au>
  
 -2010-08-26  Łukasz Stelmach  <lukasz.stelmach@iem.pw.edu.pl>  (tiny change)
 +      * textmodes/flyspell.el (flyspell-check-tex-math-command): Doc fix
 +      (Bug#5651).
  
 -      * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
 +      * progmodes/ruby-mode.el (ruby): Add defgroup.
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * simple.el (beginning-of-buffer, end-of-buffer): Doc fix
 -      (Bug#6907).
 +      * 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-23  Chris Foote <chris@foote.com.au>  (tiny change)
 +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.
  
        * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
  
 -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): Eliminate funs.
 -
 -2010-08-21  Leo  <sdl.web@gmail.com>
 +2010-08-22  Leo  <sdl.web@gmail.com>
  
        Fix buffer-list rename&refresh after killing a buffer in ido.
 -      * lisp/ido.el: Revert Óscar's.
 +      * 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.
 +      * iswitchb.el (iswitchb-kill-buffer): Re-make the list.
  
 -2010-08-21  Kirk Kelsey  <kirk.kelsey@0x4b.net>  (tiny change)
 +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-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * subr.el (read-key): Don't echo keystrokes (bug#6883).
  
 -2010-08-21  Glenn Morris  <rgm@gnu.org>
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
  
        * menu-bar.el (menu-bar-games-menu): Add landmark.
  
 -2010-08-20  Glenn Morris  <rgm@gnu.org>
 +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-text-start): Remove declaration.
        (rmail-retry-failure): Require sendmail.
  
 -2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
  
 -2010-08-18  Michael Albinus  <michael.albinus@gmx.de>
 +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-18  Kenichi Handa  <handa@m17n.org>
 +2010-08-22  Kenichi Handa  <handa@m17n.org>
  
        * files.el: Add `word-wrap' as safe local variable.
  
 -2010-08-18  Glenn Morris  <rgm@gnu.org>
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
  
        * woman.el (woman-translate): Case matters.  (Bug#6849)
  
 -2010-08-14  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * simple.el (kill-region): Doc fix (Bug#6787).
  
 -2010-08-14  Glenn Morris  <rgm@gnu.org>
 +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-11  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-08-22  Andreas Schwab  <schwab@linux-m68k.org>
  
        * subr.el (ignore-errors): Add debug declaration.
  
 -2010-08-09  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
 +2010-08-22  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
  
        * whitespace.el (whitespace-color-off): Remove post-command-hook
        locally.
  
 -2010-08-08  Johan Bockgård  <bojohan@gnu.org>
 +2010-08-21  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).
 +      * vc/add-log.el (add-log-file-name): Don't get confused by symlinks.
  
 -      * 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-21  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +      * cus-edit.el (custom-group-value-create): Add extra newline
 +      before end line (Bug#6876).
  
 -      * 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-21  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-05  Juanma Barranquero  <lekktu@gmail.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.
  
 -      * 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-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
 -2010-08-04  Kenichi Handa  <handa@m17n.org>
 +      * 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.
  
 -      * language/cyrillic.el: Don't add "microsoft-cp1251" to
 -      ctext-non-standard-encodings-alist here.
 +2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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.
 +      * 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-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * simple.el (exchange-dot-and-mark): Mark obsolete, finally.
  
 -2010-08-03  Juanma Barranquero  <lekktu@gmail.com>
 +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-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * bindings.el (complete-symbol): Run completion-at-point as a fallback.
  
 -2010-08-02  Juanma Barranquero  <lekktu@gmail.com>
 +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-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * bindings.el (function-key-map): Add a S-tab => backtab fallback.
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * dabbrev.el (dabbrev-completion): Fix typo in docstring.
  
 -2010-08-01  MON KEY  <monkey@sandpframing.com>  (tiny change)
 +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-07-30  Leo  <sdl.web@gmail.com>
 +2010-08-08  Leo  <sdl.web@gmail.com>
  
        * eshell/esh-io.el (eshell-get-target): Better detection of
        read-only file (Bug#6762).
  
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 +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-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Stephen Peters  <speters@itasoftware.com>
  
 -      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
 +      * 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-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Ulf Jasper  <ulf.jasper@web.de>
  
 -      * 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.
 +      * calendar/icalendar.el (icalendar-uid-format): Doc fix.
 +      (icalendar--create-uid, icalendar-export-region)
 +      (icalendar--parse-summary-and-rest): Code formatting.
  
 -2010-07-17  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
 +2010-08-08  Jay Belanger  <jay.p.belanger@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).
 +      * 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.
  
 -2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +      * calc/calccomp.el (math-comp-highlight-string): Use
 +      `calc-highlight-selections-with-faces' to determine how to highlight
 +      sub-formulas.
  
 -      * dired.el (dired-buffers-for-dir): Handle list values of
 -      dired-directory (Bug#6636).
 +      * calc/calc-sel.el (calc-show-selections): Change message to when
 +      using faces to highlight selections.
  
 -2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
 +2010-08-07  Michael R. Mauger  <mmaug@yahoo.com>
  
 -      * 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)
 +      * 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-07-16  Eli Zaretskii  <eliz@gnu.org>
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * mail/rmailmm.el (rmail-mime-save): Make the temp buffer
 -      unibyte, so compressed attachments are not compressed again.
 +      * 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.
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +      * mouse.el (mouse-drag-track): Remove hacks to deal with old
 +      select-active-regions implementation.
 +      (mouse-yank-at-click): Doc fix.
  
 -      * xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
 -      now that unicode is used (Bug#6594).
 +      * cus-start.el: Add custom declaration for select-active-regions.
  
 -2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-07  Eli Zaretskii  <eliz@gnu.org>
  
 -      * simple.el (push-mark-command): Set the selection if
 -      select-active-regions is non-nil.
 +      * simple.el (delete-forward-char): Doc fix.
  
 -2010-07-10  Glenn Morris  <rgm@gnu.org>
 +      * tutorial.el (help-with-tutorial): Hack safe file-local variables
 +      after reading the tutorial.
  
 -      * 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-08-06  Alan Mackenzie  <bug-cc-mode@gnu.org>
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +      * 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.
  
 -      * simple.el (use-region-p): Doc fix (Bug#6607).
 +2010-08-06  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
 +      * 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.
  
 -      * 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-08-06  Jürgen Hötzel  <juergen@archlinux.org>  (tiny change)
  
 -2010-07-07  Glenn Morris  <rgm@gnu.org>
 +      * comint.el (comint-mode): Make directory tracking functions
 +      functional on remote files.  (Bug#6764)
  
 -      * play/zone.el (zone-fall-through-ws): Fix next-line ->
 -      forward-line fallout.
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc/diff-mode.el (diff-mode-shared-map): Bind g to revert-buffer.
  
 -      * mouse.el (mouse-appearance-menu): Add docstring.
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
  
 -      * help.el (describe-key): Print up-event using key-description.
 +      * emacs-lisp/find-gc.el (find-gc-source-files): Rename
 +      unexec.c => unexcoff.c.
  
 -2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/authors.el (authors-fixed-entries): Rename
 +      unexec.c => unexcoff.c.
  
 -      * 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-08-05  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.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.
  
 -      * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
 +2010-08-03  Leo  <sdl.web@gmail.com>
  
 -2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * server.el (server-start): Simplify loop.
  
 -      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.
 +2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +      * frame.el (screen-height, screen-width, set-screen-width)
 +      (set-screen-height): Remove ancient compatibility aliases.
  
 -      * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
 +      * textmodes/fill.el (justify-current-line): Don't add 1 to nspaces
 +      when justifying.  It seems useless and harmful for ncols=1 (bug#6738).
  
 -2010-06-29  Leo  <sdl.web@gmail.com>
 +      * emacs-lisp/timer.el (timer-event-handler): Protect against timers
 +      that change current buffer.
  
 -      * emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
 +2010-08-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
 +      * mouse.el (mouse-fixup-help-message): Match "mouse-2" only at the
 +      beginning of the string.  Use `string-match-p'.  (Bug#6765)
  
 -      * generic-x.el (bat-generic-mode): Fix regexp for command line
 -      switches (Bug#5719).
 +2010-08-01  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-27  Masatake YAMATO  <yamato@redhat.com>
 +      * cus-start.el (x-gtk-use-system-tooltips): New variable.
  
 -      * htmlfontify.el (hfy-face-attr-for-class): Use append instead
 -      of nconc to avoid pure storage error (Bug#6239).
 +2010-08-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +      * 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".
  
 -      * 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-07-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-25  Eli Zaretskii  <eliz@gnu.org>
 +      * mouse.el (mouse-save-then-kill): Doc fix.  Deactivate mark
 +      before killing to preserve the primary selection (Bug#6701).
  
 -      * arc-mode.el (archive-zip-extract): Don't quote the file name on
 -      MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
 +      * term/x-win.el (x-select-text): Doc fix.
  
 -2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +2010-07-31  Nathaniel Flath  <flat0103@gmail.com>
  
 -      * comint.el (make-comint, make-comint-in-buffer): Mention return
 -      value in the docstrings.  (Bug#6498)
 +      Enhance Java Mode to handle Java 5.0 (Tiger) and Java 6 (Mustang).
 +      The following functions were modified or created:
  
 -2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
 +      * 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):
  
 -      * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
 -      since it is not present when using some non-default switches.
 +2010-07-31  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-23  Karl Fogel  <kfogel@red-bean.com>
 +      * faces.el (face-all-attributes): Improve documentation (Bug#6767).
  
 -      * 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-07-31  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * files.el (bidi-paragraph-direction): Define safe local values.
  
 -      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.
 +      * language/hebrew.el ("Hebrew"): Add TUTORIAL.he to
 +      language-info-alist.  Remove outdated FIXME in a comment.
  
 -2010-06-22  Glenn Morris  <rgm@gnu.org>
 +2010-07-31  Alan Mackenzie  <acm@muc.de>
  
 -      * progmodes/js.el (js-mode-map): Use standard capitalization and
 -      ellipses for menu entries.
 +      * progmodes/cc-cmds.el (c-mask-paragraph): Fix bug #6688:
 +      Auto-fill broken in C/C++ modes.
  
 -      * wid-edit.el (widget-complete): Doc fix.
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
 +      * 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.
  
 -      * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
 +2010-07-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * 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.
  
 -      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)
 +      * 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.
  
 -      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)
 +2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * 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.
  
 -      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)
 +      * progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote
 +      host.
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-07-28  Chong Yidong  <cyd@stupidchicken.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)
 +      * 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-06-20  Alan Mackenzie  <acm@muc.de>
 +2010-07-28  Phil Hagelberg  <phil@evri.com>
  
 -      * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
 -      in file local variables, set it first.
 +      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-06-19  Glenn Morris  <rgm@gnu.org>
 +2010-07-28  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * descr-text.el (describe-char-unicode-data): Insert separating
 -      space when needed.  (Bug#6422)
 +      * cus-start.el (tool-bar-style): Add text-image-horiz.
  
 -      * progmodes/idlwave.el (idlwave-action-and-binding):
 -      Fix typo in 2009-12-03 change.  (Bug#6450)
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/gud.el (gud-common-init): Check for remoteness of
 +      `file', and not of `default-directory'.
  
 -      * subr.el (read-quoted-char): Fix up last change (bug#6290).
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * 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)
  
 -      * 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.
 +      * net/tramp-cmds.el (tramp-bug): Recommend setting of
 +      `tramp-verbose' to 9.
  
 -2010-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-07-27  Aaron S. Hawley  <ashawley@burlingtontelecom.net>
  
 -      * vc-annotate.el (vc-annotate): Use vc-read-revision.
 +      * 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-06-15  Glenn Morris  <rgm@gnu.org>
 +2010-07-27  Tom Tromey  <tromey@redhat.com>
  
 -      * 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.
 +      * 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-06-15  Ivan Kanis  <apple@kanis.eu>
 +2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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)
 +      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
  
 -2010-06-12  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
 +      * 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.
  
 -      * vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
 -      older than version 1.6.  (Bug#6361)
 +2010-07-27  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
  
 -2010-06-12  Helmut Eller  <eller.helmut@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).
  
 -      * emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
 -      used by cl-do-arglist.  (Bug#6408)
 +2010-07-27  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * dired.el (dired-buffers-for-dir): Handle list values of
 +      dired-directory (Bug#6636).
  
 -      * emacs-lisp/advice.el (ad-compile-function):
 -      Define warning-suppress-types before we let-bind it (bug#6275).
 +2010-07-26  Sam Steingold  <sds@gnu.org>
  
 -      * 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.
 +      * mouse.el (mouse-yank-primary, mouse-yank-secondary):
 +      Do not call `x-get-selection' the second time, reuse the value.
  
 -2010-06-07  Jonathan Rockway  <jon@jrock.us>
 +2010-07-26  Daiki Ueno  <ueno@unixuser.org>
  
 -      * 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.
 +      * epa-mail.el (epa-mail-mode-map): Add alternative key bindings
 +      which consist of control chars only.  Suggested by Richard Stallman.
  
 -2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +2010-07-25  Daiki Ueno  <ueno@unixuser.org>
  
 -      * 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.
 +      * 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-06-04  Chong Yidong  <cyd@stupidchicken.com>
 +2010-07-23  Lukas Huonker  <l.huonker@gmail.com>
  
 -      * term/common-win.el (x-colors): Add "dark green" and "dark
 -      turquoise" (Bug#6332).
 +      * 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-06-03  Glenn Morris  <rgm@gnu.org>
 +2010-07-23  Markus Triska  <markus.triska@gmx.at>
  
 -      * desktop.el (desktop-clear-preserve-buffers):
 -      Add "*Warnings*" buffer.  (Bug#6336)
 +      * 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-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +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): Changed keys from symbols to strings;
 +      enhanced the widget definition.
 +      (sql-mode-menu): Added submenu to select connections.
 +      (sql-interactive-mode-menu): Added "Save Connection" item.
 +      (sql-add-product): Fixed 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): Added 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): Renamed sql-connect-* functions to
 +      sql-comint-*.
 +      (sql-product-alist, sql-mode-menu): Renamed 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>  (tiny change)
 +
 +      * 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>  (tiny change)
 +
 +      * 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.
 +
 +      * 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>
 +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>
 +
 +      * cus-start.el (all): Add native condition for tool-bar-* symbols.
 +
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/dns-mode.el (auto-mode-alist): Add entry for .zone files.
 +      * files.el (auto-mode-alist): Remove redundant entries.
 +
 +      * 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-05-07  Christian von Roques  <roques@mti.ag>  (tiny change)
 +
 +      * epg.el (epg-key-capablity-alist): Add "D" flag (Bug#5592).
 +
 +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.
 +
 +      * 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-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bindings.el (mode-line-abbrev-mode, mode-line-auto-fill-mode):
 +      Remove unused functions.
 +
 +      * emacs-lisp/lisp-mode.el (lisp-mode): Use define-derived-mode.
 +      Set find-tag-default-function as a variable rather than a property.
 +
 +      * 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-04-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuffer.el (tags-completion-at-point-function): Fix return value.
 +
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ido.el (ido-init-completion-maps): Remove C-v binding.
 +      (ido-minibuffer-setup): Don't set cua-inhibit-cua-keys (Bug#5765).
 +
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuffer.el (tags-completion-at-point-function): New function.
 +      (completion-at-point-functions): Use it.
 +
 +      * progmodes/etags.el (complete-tag): Revert last change.
 +
 +2010-04-29  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-mode.el (c-extend-region-for-CPP): Fix an
 +      off-by-one error (in end of macro position).
 +
 +2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/browse-url.el (browse-url-firefox-program): Use iceweasel if
 +      firefox is absent.  Don't autoload.
 +      (browse-url-galeon-program): Don't autoload.
 +
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * bindings.el (complete-symbol): Move into minibuffer.el.
 +
 +      * 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.
 +
 +      * progmodes/etags.el (complete-tag): Move to minibuffer.el.
 +
 +2010-04-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-remote-selinux-p): New defun.
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context): Use it.
 +
 +2010-04-28  Sam Steingold  <sds@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'.
 +
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/bug-reference.el (bug-reference-url-format):
 +      Revert 2010-04-27 change due to security risk.
 +
 +2010-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      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-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * 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).
 +
 +      * emacs-lisp/lisp.el (lisp-complete-symbol): Fail gracefully.
 +
 +2010-04-27  Sam Steingold  <sds@gnu.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.
 +
 +2010-04-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ido.el (ido-buffer-internal): Bind `ido-use-virtual-buffers' to nil
 +      when method is 'kill.
 +
 +2010-04-27  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * 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.
 +
 +2010-04-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * desktop.el (desktop-kill): ask-if-new: Ask if desktop file exists,
 +      but we aren't using it.
 +
 +2010-04-25  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * tool-bar.el (tool-bar-local-item-from-menu): Revert unintended
 +      checkin in 2010-04-23T16:26:11Z!monnier@iro.umontreal.ca.
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * 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.
 +
 +      * 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-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * 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.
 +
 +      * progmodes/compile.el (compilation-start): Abbreviate default directory.
 +
 +2010-04-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Implement SELINUX backends.
 +
 +      * 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.
 +
 +      * 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.
 +
 +      * 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.
 +
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Synchronize with Tramp repository.
 +
 +      * 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-04-22  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-04-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * 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-04-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-completion-handle-file-name-all-completions):
 +      Ensure, that non remote files are still checked.  Oops.
 +
 +2010-04-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Fix Bug#5840.
 +
 +      * icomplete.el (icomplete-completions): Use `non-essential'.
 +
 +      * 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-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Try and handle errors.
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * vc-dir.el (vc-dir-tool-bar-map): Add :label on some tool bar items.
 +
 +      * tool-bar.el (tool-bar-setup): Add :label on some tool bar items.
 +
 +      * loadup.el: Load dynamic-setting.el if feature dynamic-setting
 +      is present.
 +
 +      * info.el (info-tool-bar-map): Add labels.
 +
 +      * cus-start.el (all): Add tool-bar-style and tool-bar-max-label-size.
 +
 +      * cus-edit.el (custom-commands): Add labels for tool bar.
 +      (custom-buffer-create-internal, Custom-mode): Adjust for
 +      labels in custom-commands.
 +
 +      * dynamic-setting.el: Renamed from font-setting.el.
  
 -      * vc-bzr.el (vc-bzr-revision-completion-table): Apply
 -      `file-directory-p' to the filename part rather than to the whole text.
 +2010-04-21  John Wiegley  <jwiegley@gmail.com>
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * 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.
  
 -      * man.el (Man-completion-table): Let the user type "-k " (bug#6319).
 +2010-04-21  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-05-31  Drew Adams  <drew.adams@oracle.com>
 +      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.
  
 -      * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
  
 -2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
 +      * 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.
  
 -      * subr.el (momentary-string-display): Just use read-event to read
 -      the exit event (Bug#6238).
 +2010-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +      Make the log-edit comments use RFC822 format throughout.
  
 -      * 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.
 +      * 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-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-hg.el (vc-hg-log-edit-mode): Remove.
 +      (vc-hg-checkin): Remove extra arg.  Use log-edit-extract-headers.
  
 -      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 -      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +      * 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.
  
 -2010-05-27  Masatake YAMATO  <yamato@redhat.com>
 +      * 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.
  
 -      * htmlfontify.el (hfy-face-resolve-face): New function.
 -      (hfy-face-to-style): Use it (Bug#6279).
 +      * 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.
  
 -2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * 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.
  
 -      * 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-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-05-19  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
 +      * subr.el (default-direction-reversed): Remove obsolescence info.
  
 -      * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with the
 +      windows/frames.
  
 -      * subr.el (read-quoted-char): Resolve modifiers after key
 -      remapping (bug#6212).
 +      * 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.
  
 -2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * international/mule-cmds.el (view-hello-file): Don't fiddle with the
 +      default enable-multibyte-characters.
  
 -      * tmm.el (tmm-prompt): Don't try to precompute bindings.
 -      (tmm-get-keymap): Compute shortcuts (bug#6171).
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-10  Glenn Morris  <rgm@gnu.org>
 +      * 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.
  
 -      * desktop.el (desktop-save-buffer-p): Don't mistakenly include
 -      all dired buffers, even tramp ones.  (Bug#5755)  [Backport from trunk]
 +      * 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*.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-19  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * Version 23.2 released.
 +      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-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * international/mule.el (auto-coding-alist): Only purecopy
 -      car of each item, not the whole list (Bug#6083).
 +      * htmlfontify.el (htmlfontify-buffer)
 +      (htmlfontify-copy-and-link-dir): Autoload entry points.
  
 -2010-05-02  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-19  Magnus Henoch  <magnus.henoch@gmail.com>
  
 -      * progmodes/js.el (js-mode): Make paragraph variables local before
 -      calling c-setup-paragraph-variables (Bug#6071).
 +      * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
 +      name relative to the project root (Bug#5960).
  
 -2010-05-01  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * composite.el (compose-region, reference-point-alist): Fix typos
 -      in the doc strings.
 +      * vc-git.el (vc-git-print-log): Doc fix.
  
 -2010-04-28  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +2010-04-19  Óscar Fuentes  <ofv@wanadoo.es>
  
 -      * calc/calc-graph.el (calc-graph-plot): Use the proper form for
 -      gnuplot's "set" command.
 +      * ido.el (ido-file-internal): Fix 2009-12-02 change.
  
 -2010-04-26  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-19  Christoph  <cschol2112@googlemail.com>  (tiny change)
  
 -      * abbrev.el (last-abbrev-text): Doc fix.
 -      (abbrev-prefix-mark): Don't escape parenthesis.
 +      * progmodes/grep.el (grep-compute-defaults): Fix handling of host
 +      default settings (Bug#5928).
  
 -2010-04-24  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * composite.el (find-composition): Doc fix.
 +      * progmodes/fortran.el (fortran-match-and-skip-declaration):
 +      New function.
 +      (fortran-font-lock-keywords-3): Use it.  (Bug#1385)
  
 -2010-04-24  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-19  Kenichi Handa  <handa@m17n.org>
  
 -      * 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.
 +      * 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-04-23  Juri Linkov  <juri@jurta.org>
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
 -      property instead of `invisible' and `after-string' (bug#5998).
 +      * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
 +      paragraph-separate (Bug#5821).
  
 -2010-04-23  Juri Linkov  <juri@jurta.org>
 +2010-04-19  Juri Linkov  <juri@jurta.org>
  
 -      * image-mode.el (image-mode-as-text): Fix typo in docstring.
 +      Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
 +
 +      * 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'.
 +
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * help.el (help-window-setup-finish): Doc fix (Bug#5830).
 +      Reported by monkey@sandpframing.com.
 +
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * 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.
 +
 +      * custom.el (defcustom): Add edebug spec.
 +
 +2010-04-18  Juri Linkov  <juri@jurta.org>
 +
 +      Test for special mode-class in view-buffer instead of view-file (bug#5513).
 +
 +      * view.el (view-file, view-buffer): Move test for special mode-class
 +      from view-file to view-buffer.
 +
 +      * tar-mode.el (tar-extract): Turn if's into one cond
 +      like in arc-mode.el.
 +
 +2010-04-18  Juri Linkov  <juri@jurta.org>
 +
 +      Add 7z archive format support (bug#5475).
 +
 +      * 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.
 +
 +      * international/mule.el (auto-coding-alist):
 +      * files.el (auto-mode-alist): Add 7z file extension.
 +
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * loadup.el: Setup hash-cons for pure data.
 +
 +      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.
 +
 +      * cvs-status.el (cvs-refontify): Remove unused.
 +
 +2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-mode-map): Bind "O" to `calc-missing-key'.
 +
 +      * calc/calc-bin.el (calc-radix): Have the "O" option turn on
 +      twos-complement mode.
 +
 +2010-04-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * 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.
 +
 +      * calc/calc-help.el (calc-full-help): Add `calc-option-help'.
 +      (calc-option-prefix-help): New function.
 +
 +      * calc/calc-misc.el (calc-help): Add "Option" entry.
 +
 +      * 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.
 +
 +2010-04-16  Juri Linkov  <juri@jurta.org>
 +
 +      Move scrolling commands from simple.el to window.el
 +      because their primitives are implemented in window.c.
 +
 +      * 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-04-16  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-lookup-scroll-key): Check both
 +      `isearch-scroll' and `scroll-command' properties.
 +      (scroll-up, scroll-down): Remove `isearch-scroll' property.
 +
 +      * mwheel.el (mwheel-scroll): Remove `isearch-scroll' property.
 +
 +      * simple.el (scroll-up-command, scroll-down-command)
 +      (scroll-up-line, scroll-down-line): Remove `isearch-scroll' property.
 +
 +2010-04-15  Juri Linkov  <juri@jurta.org>
 +
 +      * 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'.
 +
 +      * mwheel.el (mwheel-scroll): Put `scroll-command' and
 +      `isearch-scroll' properties on the `mwheel-scroll' symbol.
 +      Remove it from `scroll-preserve-screen-position-commands'.
 +
 +      * isearch.el (isearch-allow-scroll): Doc fix.
 +
 +2010-04-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * 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-04-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/verilog-mode.el (verilog-forward-sexp): Avoid free variable.
 +
 +2010-04-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      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.
 +
 +2010-04-14  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      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'.
 +
 +2010-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (non-essential): New var.
 +
 +      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-04-14  Juri Linkov  <juri@jurta.org>
 +
 +      * simple.el (scroll-error-top-bottom): New defcustom.
 +      (scroll-up-command, scroll-down-command): Use it.  Doc fix.
 +
 +      * emulation/pc-select.el (pc-select-override-scroll-error):
 +      Obsolete in favor of `scroll-error-top-bottom'.
 +
 +2010-04-14  Juri Linkov  <juri@jurta.org>
 +
 +      * tutorial.el (tutorial--default-keys): Rebind `C-v' to
 +      `scroll-up-command' and `M-v' to `scroll-down-command'.
 +
 +      * 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-04-14  Juri Linkov  <juri@jurta.org>
 +
 +      * mwheel.el (scroll-preserve-screen-position-commands):
 +      Add mwheel-scroll to this list of commands.
 +
 +      * 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.
 +
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * obsolete/complete.el: Move from lisp/complete.el.
 +
 +      * pcomplete.el (pcomplete-here*): Fix mistaken change (bug#5935).
 +
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Passing a nil argument
 +      to the minor mode function now turns the mode ON unconditionally.
 +
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-dir.el (vc-dir-kill-line): New command.
 +      (vc-dir-mode-map): Bind it to C-k.
 +
 +      * 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.
 +
 +      * man.el (man-set-default-bookmark-title, man-bookmark-make-record)
 +      (man-bookmark-jump): New functions.
 +      (Man-mode): Setup bookmark support.
 +
 +2010-04-10  Jari Aalto  <jari.aalto@cante.net>
 +
 +      * comint.el (comint-password-prompt-regexp): Use regexp-opt, and
 +      recognize ssh-keygen prompt (Bug#2817).
 +
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter.
 +
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Synchronize with Tramp repository.
 +
 +      * 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.
 +
 +      * 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.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-directory-files-and-attributes):
 +      Do not use `tramp-fish-handle-file-attributes.
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-04-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Add missing :version tag.
 +
 +2010-04-09  Sam Steingold  <sds@gnu.org>
 +
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Remove the "autoload" cookie.
 +
 +      * 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-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      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-04-09  Eric Raymond  <esr@snark.thyrsus.com>
 +
 +      * vc-hooks.el, vc-git.el: Improve documentation comments.
 +
 +2010-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      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-07  Sam Steingold  <sds@gnu.org>
 +
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      New custom variable.
 +      (compile, recompile): Pass it to `save-some-buffers'.
 +
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * wid-edit.el (widget-choose): Move cursor to the second line of
 +      the buffer (Bug#5695).
 +
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      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.
 +
 +      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
 +
 +      * 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.
 +
 +      * 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.
 +
 +      * 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 (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,
  2010-02-28  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/dbus.el (dbus-introspect, dbus-get-property)
 -      (dbus-set-property, dbus-get-all-properties): Use
 -      `dbus-call-method' when noninteractive.  (Bug#5645)
 +      (dbus-set-property, dbus-get-all-properties):
 +      Use `dbus-call-method' when noninteractive.  (Bug#5645)
  
  2010-02-28  Chong Yidong  <cyd@stupidchicken.com>
  
        * 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-21  Alan Mackenzie  <acm@muc.de>
  
        Fix a situation where deletion of a cpp construct throws an error.
 -      * progmodes/cc-engine.el (c-invalidate-state-cache): Before
 -      invoking c-with-all-but-one-cpps-commented-out, check that the
 +      * progmodes/cc-engine.el (c-invalidate-state-cache):
 +      Before invoking c-with-all-but-one-cpps-commented-out, check that the
        special cpp construct is still in the buffer.
        (c-parse-state): Record the special cpp with markers, not numbers.
  
  
  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-18  Ulf Jasper  <ulf.jasper@web.de>
  
 -      * calendar/icalendar.el (icalendar--convert-tz-offset): Fixed
 -      timezone names.
 -      (icalendar--convert-tz-offset): Fixed the "last-day-problem".
 +      * calendar/icalendar.el (icalendar--convert-tz-offset):
 +      Fix timezone names.
 +      (icalendar--convert-tz-offset): Fix the "last-day-problem".
        (icalendar--add-diary-entry): Remove the trailing blank that
        diary-make-entry inserts.
  
        (tramp-advice-file-expand-wildcards): Remove it.
  
        * net/tramp-compat.el (top): Autoload `tramp-handle-file-remote-p'.
 -      (tramp-advice-file-expand-wildcards): Moved from tramp.el.
 +      (tramp-advice-file-expand-wildcards): Move from tramp.el.
        Activate advice for older GNU Emacs versions.  (Bug#5237)
  
  2009-12-17  Juanma Barranquero  <lekktu@gmail.com>
  
        * files.el (hack-local-variables-filter): While ignoring duplicates,
        don't take `mode' into account.
 -      (hack-local-variables-filter, hack-dir-local-variables): Don't
 -      remove duplicate `mode' from local-variables-alist (like `eval').
 +      (hack-local-variables-filter, hack-dir-local-variables):
 +      Don't remove duplicate `mode' from local-variables-alist (like `eval').
  
  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-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
 -      * whitespace.el (whitespace-display-char-on): Ensure
 -      `buffer-display-table' is unique when two or more windows are
 +      * whitespace.el (whitespace-display-char-on):
 +      Ensure `buffer-display-table' is unique when two or more windows are
        visible.  Reported by Martin Pohlack <mp26@os.inf.tu-dresden.de>.
        New version 12.1.
  
  
  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/).
@@@ -19051,7 -11964,7 +19132,7 @@@ See ChangeLog.14 for earlier changes
  ;; coding: utf-8
  ;; End:
  
 -    Copyright (C) 2009, 2010  Free Software Foundation, Inc.
 +  Copyright (C) 2009, 2010  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: d3e45e38-19e2-49b6-8dc2-7cb26adcc5a1
diff --combined lisp/comint.el
index 0eee4128a2bae4e67e5d6a8786c19222fa0d2760,aa0e1599537d2a25be1e800349e7a111027d5131..2d03d1679ae4d12b45b90ae78d215775a116f18d
@@@ -1,14 -1,13 +1,14 @@@
  ;;; comint.el --- general command interpreter in a window stuff
  
 -;; Copyright (C) 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 -;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 -;;   Free Software Foundation, Inc.
 +;; Copyright (C) 1988, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
 +;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 +;;   2010  Free Software Foundation, Inc.
  
  ;; Author: Olin Shivers <shivers@cs.cmu.edu>
  ;;    Simon Marshall <simon@gnu.org>
  ;; Maintainer: FSF
  ;; Keywords: processes
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -310,6 -309,7 +310,6 @@@ the function `comint-truncate-buffer' i
    :type 'integer
    :group 'comint)
  
 -;; FIXME: this should be defcustom
  (defcustom comint-input-ring-size 500
    "Size of the input history ring in `comint-mode'."
    :type 'integer
@@@ -339,23 -339,15 +339,23 @@@ This variable is buffer-local.
  ;; Ubuntu's sudo prompts like `[sudo] password for user:'
  ;; Some implementations of passwd use "Password (again)" as the 2nd prompt.
  ;; Something called "perforce" uses "Enter password:".
 +;; See M-x comint-testsuite--test-comint-password-prompt-regexp.
  (defcustom comint-password-prompt-regexp
 -  "\\(\\([Ee]nter \\(?:same \\|the \\)?\\|[Oo]ld \\|[Nn]ew \\|'s \\|login \\|\
 -Kerberos \\|CVS \\|UNIX \\| SMB \\|LDAP \\|\\[sudo] \\|^\\)\
 -\[Pp]assword\\( (again)\\)?\\|\
 -pass phrase\\|\\(Enter \\|Repeat \\|Bad \\)?[Pp]assphrase\\)\
 -\\(?:, try again\\)?\\(?: for [^:]+\\)?:\\s *\\'"
 +  (concat
 +   "\\(^ *\\|"
 +   (regexp-opt
 +    '("Enter" "enter" "Enter same" "enter same" "Enter the" "enter the"
 +      "Old" "old" "New" "new" "'s" "login"
 +      "Kerberos" "CVS" "UNIX" " SMB" "LDAP" "[sudo]" "Repeat" "Bad") t)
 +   " +\\)"
 +   (regexp-opt
 +    '("password" "Password" "passphrase" "Passphrase"
 +      "pass phrase" "Pass phrase"))
 +   "\\(?:\\(?:, try\\)? *again\\| (empty for no passphrase)\\| (again)\\)?\
 +\\(?: for [^:]+\\)?:\\s *\\'")
    "Regexp matching prompts for passwords in the inferior process.
  This is used by `comint-watch-for-password-prompt'."
 -  :version "23.3"
 +  :version "24.1"
    :type 'regexp
    :group 'comint)
  
@@@ -418,9 -410,6 +418,9 @@@ See `comint-send-input'.
    :type 'boolean
    :group 'comint)
  
 +(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
 +  'comint-use-prompt-regexp "22.1")
 +
  ;; Note: If it is decided to purge comint-prompt-regexp from the source
  ;; entirely, searching for uses of this variable will help to identify
  ;; places that need attention.
@@@ -433,6 -422,11 +433,6 @@@ respect field boundaries in a natural w
    :type 'boolean
    :group 'comint)
  
 -;; Autoload is necessary for Custom to recognize old alias.
 -;;;###autoload
 -(define-obsolete-variable-alias 'comint-use-prompt-regexp-instead-of-fields
 -  'comint-use-prompt-regexp "22.1")
 -
  (defcustom comint-mode-hook nil
    "Hook run upon entry to `comint-mode'.
  This is run before the process is cranked up."
@@@ -676,9 -670,6 +676,9 @@@ Entry to this mode runs the hooks on `c
    (make-local-variable 'comint-process-echoes)
    (make-local-variable 'comint-file-name-chars)
    (make-local-variable 'comint-file-name-quote-list)
 +  ;; dir tracking on remote files
 +  (set (make-local-variable 'comint-file-name-prefix)
 +       (or (file-remote-p default-directory) ""))
    (make-local-variable 'comint-accum-marker)
    (setq comint-accum-marker (make-marker))
    (make-local-variable 'font-lock-defaults)
@@@ -2299,6 -2290,8 +2299,6 @@@ Does not delete the prompt.
        (delete-region pmark (point))))
      ;; Output message and put back prompt
      (comint-output-filter proc replacement)))
 -(define-obsolete-function-alias 'comint-kill-output
 -  'comint-delete-output "21.1")
  
  (defun comint-write-output (filename &optional append mustbenew)
    "Write output from interpreter since last input to FILENAME.
@@@ -2648,6 -2641,7 +2648,7 @@@ updated using `comint-update-fence', i
        (let ((inhibit-read-only t))
          (kill-region beg end yank-handler)
          (comint-update-fence))))))
+ (set-advertised-calling-convention 'comint-kill-region '(beg end) "23.3")
  
  \f
  ;; Support for source-file processing commands.
@@@ -3751,4 -3745,5 +3752,4 @@@ REGEXP-GROUP is the regular expression 
  
  (provide 'comint)
  
 -;; arch-tag: 1793314c-09db-40be-9549-9aeae3e75164
  ;;; comint.el ends here
index 532d68245d87c8dc35e52576727a3f45dbc5ed64,5ae984ffdb0cc5213c8ce967b6e7ce13f7b1c109..4dd1a118ebdb30c2c27320e920212ab224ffa251
@@@ -1,12 -1,11 +1,12 @@@
  ;; autoload.el --- maintain autoloads in loaddefs.el
  
 -;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2001, 2002,
 -;;   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2001, 2002, 2003,
 +;;   2004, 2005, 2006, 2007, 2008, 2009, 2010
  ;;   Free Software Foundation, Inc.
  
  ;; Author: Roland McGrath <roland@gnu.org>
  ;; Keywords: maint
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -110,48 -109,29 +110,48 @@@ or macro definition or a defcustom).
        (let* ((macrop (memq car '(defmacro defmacro*)))
             (name (nth 1 form))
             (args (case car
 -                  ((defun defmacro defun* defmacro*
 -                     define-overloadable-function) (nth 2 form))
 -                  ((define-skeleton) '(&optional str arg))
 -                  ((define-generic-mode define-derived-mode
 -                       define-compilation-mode) nil)
 -                  (t)))
 +                     ((defun defmacro defun* defmacro*
 +                        define-overloadable-function) (nth 2 form))
 +                     ((define-skeleton) '(&optional str arg))
 +                     ((define-generic-mode define-derived-mode
 +                        define-compilation-mode) nil)
 +                     (t)))
             (body (nthcdr (get car 'doc-string-elt) form))
             (doc (if (stringp (car body)) (pop body))))
        (when (listp args)
          ;; Add the usage form at the end where describe-function-1
          ;; can recover it.
          (setq doc (help-add-fundoc-usage doc args)))
 -      ;; `define-generic-mode' quotes the name, so take care of that
 -      (list 'autoload (if (listp name) name (list 'quote name)) file doc
 -            (or (and (memq car '(define-skeleton define-derived-mode
 -                                  define-generic-mode
 -                                  easy-mmode-define-global-mode
 -                                  define-global-minor-mode
 -                                  define-globalized-minor-mode
 -                                  easy-mmode-define-minor-mode
 -                                  define-minor-mode)) t)
 -                (eq (car-safe (car body)) 'interactive))
 -            (if macrop (list 'quote 'macro) nil))))
 +        (let ((exp
 +               ;; `define-generic-mode' quotes the name, so take care of that
 +               (list 'autoload (if (listp name) name (list 'quote name))
 +                     file doc
 +                     (or (and (memq car '(define-skeleton define-derived-mode
 +                                           define-generic-mode
 +                                           easy-mmode-define-global-mode
 +                                           define-global-minor-mode
 +                                           define-globalized-minor-mode
 +                                           easy-mmode-define-minor-mode
 +                                           define-minor-mode)) t)
 +                         (eq (car-safe (car body)) 'interactive))
 +                     (if macrop (list 'quote 'macro) nil))))
 +          (when macrop
 +            ;; Special case to autoload some of the macro's declarations.
 +            (let ((decls (nth (if (stringp (nth 3 form)) 4 3) form))
 +                  (exps '()))
 +              (when (eq (car decls) 'declare)
 +                ;; FIXME: We'd like to reuse macro-declaration-function,
 +                ;; but we can't since it doesn't return anything.
 +                (dolist (decl decls)
 +                  (case (car-safe decl)
 +                    (indent
 +                     (push `(put ',name 'lisp-indent-function ',(cadr decl))
 +                           exps))
 +                    (doc-string
 +                     (push `(put ',name 'doc-string-elt ',(cadr decl)) exps))))
 +                (when exps
 +                  (setq exp `(progn ,exp ,@exps))))))
 +          exp)))
  
       ;; For defclass forms, use `eieio-defclass-autoload'.
       ((eq car 'defclass)
@@@ -279,17 -259,14 +279,17 @@@ put the output in.
  TYPE (default \"autoloads\") is a string stating the type of
  information contained in FILE.  If FEATURE is non-nil, FILE
  will provide a feature.  FEATURE may be a string naming the
 -feature, otherwise it will be based on FILE's name."
 +feature, otherwise it will be based on FILE's name.
 +
 +At present, a feature is in fact always provided, but this should
 +not be relied upon."
    (let ((basename (file-name-nondirectory file)))
      (concat ";;; " basename
            " --- automatically extracted " (or type "autoloads") "\n"
            ";;\n"
            ";;; Code:\n\n"
            "\f\n"
 -          ;; This is used outside of autoload.el.
 +          ;; This is used outside of autoload.el, eg cus-dep, finder.
            "(provide '"
            (if (stringp feature)
                feature
@@@ -348,29 -325,7 +348,29 @@@ which lists the file name and which fun
    "File local variable to prevent scanning this file for autoload cookies.")
  
  (defun autoload-file-load-name (file)
 -  (let ((name (file-name-nondirectory file)))
 +  "Compute the name that will be used to load FILE."
 +  ;; OUTFILE should be the name of the global loaddefs.el file, which
 +  ;; is expected to be at the root directory of the files we're
 +  ;; scanning for autoloads and will be in the `load-path'.
 +  (let* ((outfile (default-value 'generated-autoload-file))
 +         (name (file-relative-name file (file-name-directory outfile)))
 +         (names '())
 +         (dir (file-name-directory outfile)))
 +    ;; If `name' has directory components, only keep the
 +    ;; last few that are really needed.
 +    (while name
 +      (setq name (directory-file-name name))
 +      (push (file-name-nondirectory name) names)
 +      (setq name (file-name-directory name)))
 +    (while (not name)
 +      (cond
 +       ((null (cdr names)) (setq name (car names)))
 +       ((file-exists-p (expand-file-name "subdirs.el" dir))
 +        ;; FIXME: here we only check the existence of subdirs.el,
 +        ;; without checking its content.  This makes it generate wrong load
 +        ;; names for cases like lisp/term which is not added to load-path.
 +        (setq dir (expand-file-name (pop names) dir)))
 +       (t (setq name (mapconcat 'identity names "/")))))
      (if (string-match "\\.elc?\\(\\.\\|\\'\\)" name)
          (substring name 0 (match-beginning 0))
        name)))
@@@ -385,8 -340,6 +385,8 @@@ Return non-nil in the case where no aut
    (interactive "fGenerate autoloads for file: ")
    (autoload-generate-file-autoloads file (current-buffer)))
  
 +(defvar print-readably)
 +
  ;; When called from `generate-file-autoloads' we should ignore
  ;; `generated-autoload-file' altogether.  When called from
  ;; `update-file-autoloads' we don't know `outbuf'.  And when called from
@@@ -417,8 -370,9 +417,8 @@@ Return non-nil if and only if FILE add
            (visited (get-file-buffer file))
            (otherbuf nil)
            (absfile (expand-file-name file))
 -          relfile
            ;; nil until we found a cookie.
 -          output-start)
 +          output-start ostart)
        (with-current-buffer (or visited
                                 ;; It is faster to avoid visiting the file.
                                 (autoload-find-file file))
          (setq load-name
                (if (stringp generated-autoload-load-name)
                    generated-autoload-load-name
 -                (autoload-file-load-name file)))
 +                (autoload-file-load-name absfile)))
 +          (when (and outfile
 +                     (not (equal outfile (autoload-generated-file))))
 +            (setq otherbuf t))
            (save-excursion
              (save-restriction
                (widen)
                   ((looking-at (regexp-quote generate-autoload-cookie))
                    ;; If not done yet, figure out where to insert this text.
                    (unless output-start
 -                    (when (and outfile
 -                               (not (equal outfile (autoload-generated-file))))
 -                      ;; A file-local setting of autoload-generated-file says
 -                      ;; we should ignore OUTBUF.
 -                      (setq outbuf nil)
 -                      (setq otherbuf t))
 -                    (unless outbuf
 -                      (setq outbuf (autoload-find-destination absfile))
 -                      (unless outbuf
 -                        ;; The file has autoload cookies, but they're
 -                        ;; already up-to-date.  If OUTFILE is nil, the
 -                        ;; entries are in the expected OUTBUF, otherwise
 -                        ;; they're elsewhere.
 -                        (throw 'done outfile)))
 -                    (with-current-buffer outbuf
 -                      (setq relfile (file-relative-name absfile))
 -                      (setq output-start (point)))
 -                    ;; (message "file=%S, relfile=%S, dest=%S"
 -                    ;;          file relfile (autoload-generated-file))
 -                    )
 +                    (let ((outbuf
 +                           (or (if otherbuf
 +                                   ;; A file-local setting of
 +                                   ;; autoload-generated-file says we
 +                                   ;; should ignore OUTBUF.
 +                                   nil
 +                                 outbuf)
 +                               (autoload-find-destination absfile load-name)
 +                               ;; The file has autoload cookies, but they're
 +                               ;; already up-to-date. If OUTFILE is nil, the
 +                               ;; entries are in the expected OUTBUF,
 +                               ;; otherwise they're elsewhere.
 +                               (throw 'done otherbuf))))
 +                      (with-current-buffer outbuf
 +                        (setq output-start (point-marker)
 +                              ostart (point)))))
                    (search-forward generate-autoload-cookie)
                    (skip-chars-forward " \t")
                    (if (eolp)
                              (if autoload
                                  (push (nth 1 form) autoloads-done)
                                (setq autoload form))
 -                            (let ((autoload-print-form-outbuf outbuf))
 +                            (let ((autoload-print-form-outbuf
 +                                   (marker-buffer output-start)))
                                (autoload-print-form autoload)))
                          (error
                           (message "Error in %s: %S" file err)))
                                    (forward-char 1))
                                (point))
                              (progn (forward-line 1) (point)))
 -                           outbuf)))
 +                           (marker-buffer output-start))))
                   ((looking-at ";")
                    ;; Don't read the comment.
                    (forward-line 1))
              (let ((secondary-autoloads-file-buf
                     (if (local-variable-p 'generated-autoload-file)
                         (current-buffer))))
 -              (with-current-buffer outbuf
 +              (with-current-buffer (marker-buffer output-start)
                  (save-excursion
                    ;; Insert the section-header line which lists the file name
                    ;; and which functions are in it, etc.
 +                  (assert (= ostart output-start))
                    (goto-char output-start)
 -                  (autoload-insert-section-header
 -                   outbuf autoloads-done load-name relfile
 -                   (if secondary-autoloads-file-buf
 -                       ;; MD5 checksums are much better because they do not
 -                       ;; change unless the file changes (so they'll be
 -                       ;; equal on two different systems and will change
 -                       ;; less often than time-stamps, thus leading to fewer
 -                       ;; unneeded changes causing spurious conflicts), but
 -                       ;; using time-stamps is a very useful optimization,
 -                       ;; so we use time-stamps for the main autoloads file
 -                       ;; (loaddefs.el) where we have special ways to
 -                       ;; circumvent the "random change problem", and MD5
 -                       ;; checksum in secondary autoload files where we do
 -                       ;; not need the time-stamp optimization because it is
 -                       ;; already provided by the primary autoloads file.
 -                       (md5 secondary-autoloads-file-buf
 -                            ;; We'd really want to just use
 -                            ;; `emacs-internal' instead.
 -                            nil nil 'emacs-mule-unix)
 -                     (nth 5 (file-attributes relfile))))
 -                  (insert ";;; Generated autoloads from " relfile "\n"))
 +                  (let ((relfile (file-relative-name absfile)))
 +                    (autoload-insert-section-header
 +                     (marker-buffer output-start)
 +                     autoloads-done load-name relfile
 +                     (if secondary-autoloads-file-buf
 +                         ;; MD5 checksums are much better because they do not
 +                         ;; change unless the file changes (so they'll be
 +                         ;; equal on two different systems and will change
 +                         ;; less often than time-stamps, thus leading to fewer
 +                         ;; unneeded changes causing spurious conflicts), but
 +                         ;; using time-stamps is a very useful optimization,
 +                         ;; so we use time-stamps for the main autoloads file
 +                         ;; (loaddefs.el) where we have special ways to
 +                         ;; circumvent the "random change problem", and MD5
 +                         ;; checksum in secondary autoload files where we do
 +                         ;; not need the time-stamp optimization because it is
 +                         ;; already provided by the primary autoloads file.
 +                         (md5 secondary-autoloads-file-buf
 +                              ;; We'd really want to just use
 +                              ;; `emacs-internal' instead.
 +                              nil nil 'emacs-mule-unix)
 +                       (nth 5 (file-attributes relfile))))
 +                    (insert ";;; Generated autoloads from " relfile "\n")))
                  (insert generate-autoload-section-trailer))))
            (message "Generating autoloads for %s...done" file))
          (or visited
              ;; We created this buffer, so we should kill it.
              (kill-buffer (current-buffer))))
 -      ;; If the entries were added to some other buffer, then the file
 -      ;; doesn't add entries to OUTFILE.
 -      (or (not output-start) otherbuf))))
 +      (or (not output-start)
 +          ;; If the entries were added to some other buffer, then the file
 +          ;; doesn't add entries to OUTFILE.
 +          otherbuf))))
  \f
  (defun autoload-save-buffers ()
    (while autoload-modified-buffers
@@@ -558,14 -508,15 +558,14 @@@ Return FILE if there was no autoload co
            (message "Autoload section for %s is up to date." file)))
      (if no-autoloads file)))
  
 -(defun autoload-find-destination (file)
 +(defun autoload-find-destination (file load-name)
    "Find the destination point of the current buffer's autoloads.
  FILE is the file name of the current buffer.
  Returns a buffer whose point is placed at the requested location.
  Returns nil if the file's autoloads are uptodate, otherwise
  removes any prior now out-of-date autoload entries."
    (catch 'up-to-date
 -    (let* ((load-name (autoload-file-load-name file))
 -           (buf (current-buffer))
 +    (let* ((buf (current-buffer))
             (existing-buffer (if buffer-file-name buf))
             (found nil))
        (with-current-buffer
             (autoload-ensure-default-file (autoload-generated-file)))
          ;; This is to make generated-autoload-file have Unix EOLs, so
          ;; that it is portable to all platforms.
-         (unless (zerop (coding-system-eol-type buffer-file-coding-system))
-           (set-buffer-file-coding-system 'unix))
+         (or (eq 0 (coding-system-eol-type buffer-file-coding-system))
+           (set-buffer-file-coding-system 'unix))
          (or (> (buffer-size) 0)
 -            (error "Autoloads file %s does not exist" buffer-file-name))
 +            (error "Autoloads file %s lacks boilerplate" buffer-file-name))
          (or (file-writable-p buffer-file-name)
              (error "Autoloads file %s is not writable" buffer-file-name))
          (widen)
@@@ -698,7 -649,6 +698,7 @@@ directory or directories specified.
                  (t
                     (autoload-remove-section (match-beginning 0))
                     (if (autoload-generate-file-autoloads
 +                        ;; Passing `current-buffer' makes it insert at point.
                          file (current-buffer) buffer-file-name)
                         (push file no-autoloads))))
              (push file done)
        (dolist (file files)
          (cond
           ((member (expand-file-name file) autoload-excludes) nil)
 +         ;; Passing nil as second argument forces
 +         ;; autoload-generate-file-autoloads to look for the right
 +         ;; spot where to insert each autoloads section.
           ((autoload-generate-file-autoloads file nil buffer-file-name)
            (push file no-autoloads))))
  
@@@ -778,13 -725,11 +778,13 @@@ Calls `update-directory-autoloads' on t
          (with-temp-buffer
            (insert-file-contents mfile)
            (when (re-search-forward "^shortlisp= " nil t)
 -            (setq lim (line-end-position))
 -            (while (re-search-forward "\\.\\./lisp/\\([^ ]+\\.el\\)c?\\>"
 -                                      lim t)
 +            (while (and (not lim)
 +                        (re-search-forward "\\.\\./lisp/\\([^ ]+\\.el\\)c?\\>"
 +                                           nil t))
                (push (expand-file-name (match-string 1) ldir)
 -                    autoload-excludes))))))))
 +                    autoload-excludes)
 +              (skip-chars-forward " \t")
 +              (if (eolp) (setq lim t)))))))))
    (let ((args command-line-args-left))
      (setq command-line-args-left nil)
      (apply 'update-directory-autoloads args)))
index f1adc5b496cdf6f07d9fadcaeee69b52cd482e57,cdfac80ca78770482a333e19639b574a1ed1b5f3..f04aad994f3e415898ca87b88c05214d4c33084b
@@@ -1,14 -1,12 +1,14 @@@
  ;;; bytecomp.el --- compilation of Lisp code into byte code
  
  ;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1998, 2000, 2001, 2002,
 -;;   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 +;;   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 +;;   Free Software Foundation, Inc.
  
  ;; Author: Jamie Zawinski <jwz@lucid.com>
  ;;    Hallvard Furuseth <hbf@ulrik.uio.no>
  ;; Maintainer: FSF
  ;; Keywords: lisp
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -37,7 -35,6 +37,7 @@@
  ;; ========================================================================
  ;; Entry points:
  ;;    byte-recompile-directory, byte-compile-file,
 +;;      byte-recompile-file,
  ;;     batch-byte-compile, batch-byte-recompile-directory,
  ;;    byte-compile, compile-defun,
  ;;    display-call-tree
@@@ -248,14 -245,10 +248,14 @@@ This option is enabled by default becau
    :type 'boolean)
  ;;;###autoload(put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
  
 +(defconst byte-compile-log-buffer "*Compile-Log*"
 +  "Name of the byte-compiler's log buffer.")
 +
  (defcustom byte-optimize-log nil
 -  "If true, the byte-compiler will log its optimizations into *Compile-Log*.
 +  "If non-nil, the byte-compiler will log its optimizations.
  If this is 'source, then only source-level optimizations will be logged.
 -If it is 'byte, then only byte-level optimizations will be logged."
 +If it is 'byte, then only byte-level optimizations will be logged.
 +The information is logged to `byte-compile-log-buffer'."
    :group 'bytecomp
    :type '(choice (const :tag "none" nil)
                 (const :tag "all" t)
  (defconst byte-compile-warning-types
    '(redefine callargs free-vars unresolved
             obsolete noruntime cl-functions interactive-only
 -           make-local mapcar constants suspicious)
 +           make-local mapcar constants suspicious lexical)
    "The list of warning types used when `byte-compile-warnings' is t.")
  (defcustom byte-compile-warnings t
    "List of warnings that the byte-compiler should issue (t for all).
@@@ -301,21 -294,12 +301,12 @@@ suppress.  For example, (not mapcar) wi
                 (set :menu-tag "Some"
                        ,@(mapcar (lambda (x) `(const ,x))
                                  byte-compile-warning-types))))
- ;;;###autoload(put 'byte-compile-warnings 'safe-local-variable 'byte-compile-warnings-safe-p)
  
  ;;;###autoload
- (defun byte-compile-warnings-safe-p (x)
-   "Return non-nil if X is valid as a value of `byte-compile-warnings'."
-   (or (booleanp x)
-       (and (listp x)
-            (if (eq (car x) 'not) (setq x (cdr x))
-              t)
-          (equal (mapcar
-                  (lambda (e)
-                    (when (memq e byte-compile-warning-types)
-                      e))
-                  x)
-                 x))))
+ (put 'byte-compile-warnings 'safe-local-variable
+      (lambda (v)
+        (or (symbolp v)
+            (null (delq nil (mapcar (lambda (x) (not (symbolp x))) v))))))
  
  (defun byte-compile-warning-enabled-p (warning)
    "Return non-nil if WARNING is enabled, according to `byte-compile-warnings'."
@@@ -889,7 -873,7 +880,7 @@@ Each function's symbol gets added to `b
  
  ;; Log something that isn't a warning.
  (defun byte-compile-log-1 (string)
 -  (with-current-buffer "*Compile-Log*"
 +  (with-current-buffer byte-compile-log-buffer
      (let ((inhibit-read-only t))
        (goto-char (point-max))
        (byte-compile-warning-prefix nil nil)
  ;; (compile-mode) will cause this to be loaded.
  (declare-function compilation-forget-errors "compile" ())
  
 -;; Log the start of a file in *Compile-Log*, and mark it as done.
 +;; Log the start of a file in `byte-compile-log-buffer', and mark it as done.
  ;; Return the position of the start of the page in the log buffer.
  ;; But do nothing in batch mode.
  (defun byte-compile-log-file ()
    (and (not (equal byte-compile-current-file byte-compile-last-logged-file))
         (not noninteractive)
 -       (with-current-buffer (get-buffer-create "*Compile-Log*")
 +       (with-current-buffer (get-buffer-create byte-compile-log-buffer)
         (goto-char (point-max))
         (let* ((inhibit-read-only t)
                (dir (and byte-compile-current-file
           (compilation-forget-errors)
           pt))))
  
 -;; Log a message STRING in *Compile-Log*.
 +;; Log a message STRING in `byte-compile-log-buffer'.
  ;; Also log the current function and file if not already done.
  (defun byte-compile-log-warning (string &optional fill level)
    (let ((warning-prefix-function 'byte-compile-warning-prefix)
        (warning-type-format "")
        (warning-fill-prefix (if fill "    "))
        (inhibit-read-only t))
 -    (display-warning 'bytecomp string level "*Compile-Log*")))
 +    (display-warning 'bytecomp string level byte-compile-log-buffer)))
  
  (defun byte-compile-warn (format &rest args)
    "Issue a byte compiler warning; use (format FORMAT ARGS...) for message."
@@@ -1348,7 -1332,7 +1339,7 @@@ extra args.
             (not (and (eq (get func 'byte-compile)
                           'cl-byte-compile-compiler-macro)
                       (string-match "\\`c[ad]+r\\'" (symbol-name func)))))
 -      (byte-compile-warn "Function `%s' from cl package called at runtime"
 +      (byte-compile-warn "function `%s' from cl package called at runtime"
                           func)))
    form)
  
@@@ -1457,7 -1441,7 +1448,7 @@@ symbol itself.
          (warning-series-started
           (and (markerp warning-series)
                (eq (marker-buffer warning-series)
 -                  (get-buffer "*Compile-Log*")))))
 +                  (get-buffer byte-compile-log-buffer)))))
       (byte-compile-find-cl-functions)
       (if (or (eq warning-series 'byte-compile-warning-series)
             warning-series-started)
@@@ -1519,7 -1503,7 +1510,7 @@@ that already has a `.elc' file.
        nil
      (save-some-buffers)
      (force-mode-line-update))
 -  (with-current-buffer (get-buffer-create "*Compile-Log*")
 +  (with-current-buffer (get-buffer-create byte-compile-log-buffer)
      (setq default-directory (expand-file-name bytecomp-directory))
      ;; compilation-mode copies value of default-directory.
      (unless (eq major-mode 'compilation-mode)
               (if (and (string-match emacs-lisp-file-regexp bytecomp-source)
                        (file-readable-p bytecomp-source)
                        (not (auto-save-file-name-p bytecomp-source))
 -                      (setq bytecomp-dest
 -                              (byte-compile-dest-file bytecomp-source))
 -                      (if (file-exists-p bytecomp-dest)
 -                          ;; File was already compiled.
 -                          (or bytecomp-force
 -                                (file-newer-than-file-p bytecomp-source
 -                                                        bytecomp-dest))
 -                        ;; No compiled file exists yet.
 -                        (and bytecomp-arg
 -                             (or (eq 0 bytecomp-arg)
 -                                 (y-or-n-p (concat "Compile "
 -                                                     bytecomp-source "? "))))))
 -                 (progn (if (and noninteractive (not byte-compile-verbose))
 -                            (message "Compiling %s..." bytecomp-source))
 -                        (let ((bytecomp-res (byte-compile-file
 -                                               bytecomp-source)))
 +                      (not (string-equal dir-locals-file
 +                                         (file-name-nondirectory
 +                                          bytecomp-source))))
 +                 (progn (let ((bytecomp-res (byte-recompile-file
 +                                               bytecomp-source
 +                                               bytecomp-force bytecomp-arg)))
                            (cond ((eq bytecomp-res 'no-byte-compile)
                                   (setq skip-count (1+ skip-count)))
                                  ((eq bytecomp-res t)
@@@ -1587,60 -1581,6 +1578,60 @@@ This is normally set in local file vari
  ;; Local Variables:\n;; no-byte-compile: t\n;; End: ")
  ;;;###autoload(put 'no-byte-compile 'safe-local-variable 'booleanp)
  
 +(defun byte-recompile-file (bytecomp-filename &optional bytecomp-force bytecomp-arg load)
 +  "Recompile BYTECOMP-FILENAME file if it needs recompilation.
 +This happens when its `.elc' file is older than itself.
 +
 +If the `.elc' file exists and is up-to-date, normally this
 +function *does not* compile BYTECOMP-FILENAME. However, if the
 +prefix argument BYTECOMP-FORCE is set, that means do compile
 +BYTECOMP-FILENAME even if the destination already exists and is
 +up-to-date.
 +
 +If the `.elc' file does not exist, normally this function *does
 +not* compile BYTECOMP-FILENAME. If BYTECOMP-ARG is 0, that means
 +compile the file even if it has never been compiled before.
 +A nonzero BYTECOMP-ARG means ask the user.
 +
 +If LOAD is set, `load' the file after compiling.
 +
 +The value returned is the value returned by `byte-compile-file',
 +or 'no-byte-compile if the file did not need recompilation."
 +  (interactive
 +      (let ((bytecomp-file buffer-file-name)
 +       (bytecomp-file-name nil)
 +       (bytecomp-file-dir nil))
 +     (and bytecomp-file
 +        (eq (cdr (assq 'major-mode (buffer-local-variables)))
 +            'emacs-lisp-mode)
 +        (setq bytecomp-file-name (file-name-nondirectory bytecomp-file)
 +              bytecomp-file-dir (file-name-directory bytecomp-file)))
 +     (list (read-file-name (if current-prefix-arg
 +                             "Byte compile file: "
 +                           "Byte recompile file: ")
 +                         bytecomp-file-dir bytecomp-file-name nil)
 +         current-prefix-arg)))
 +  (let ((bytecomp-dest
 +         (byte-compile-dest-file bytecomp-filename))
 +        ;; Expand now so we get the current buffer's defaults
 +        (bytecomp-filename (expand-file-name bytecomp-filename)))
 +    (if (if (file-exists-p bytecomp-dest)
 +            ;; File was already compiled
 +            ;; Compile if forced to, or filename newer
 +            (or bytecomp-force
 +                (file-newer-than-file-p bytecomp-filename
 +                                         bytecomp-dest))
 +          (and bytecomp-arg
 +               (or (eq 0 bytecomp-arg)
 +                   (y-or-n-p (concat "Compile "
 +                                     bytecomp-filename "? ")))))
 +        (progn
 +          (if (and noninteractive (not byte-compile-verbose))
 +              (message "Compiling %s..." bytecomp-filename))
 +          (byte-compile-file bytecomp-filename load))
 +      (when load (load bytecomp-filename))
 +      'no-byte-compile)))
 +
  ;;;###autoload
  (defun byte-compile-file (bytecomp-filename &optional load)
    "Compile a file of Lisp code named BYTECOMP-FILENAME into a file of byte code.
@@@ -1744,28 -1684,17 +1735,28 @@@ The value is non-nil if there were no e
          (insert "\n")                 ; aaah, unix.
            (if (file-writable-p target-file)
                ;; We must disable any code conversion here.
 -              (let ((coding-system-for-write 'no-conversion))
 +              (let* ((coding-system-for-write 'no-conversion)
 +                     ;; Write to a tempfile so that if another Emacs
 +                     ;; process is trying to load target-file (eg in a
 +                     ;; parallel bootstrap), it does not risk getting a
 +                     ;; half-finished file.  (Bug#4196)
 +                     (tempfile (make-temp-name target-file))
 +                     (kill-emacs-hook
 +                      (cons (lambda () (ignore-errors (delete-file tempfile)))
 +                            kill-emacs-hook)))
                  (if (memq system-type '(ms-dos 'windows-nt))
                      (setq buffer-file-type t))
 -                (when (file-exists-p target-file)
 -                  ;; Remove the target before writing it, so that any
 -                  ;; hard-links continue to point to the old file (this makes
 -                  ;; it possible for installed files to share disk space with
 -                  ;; the build tree, without causing problems when emacs-lisp
 -                  ;; files in the build tree are recompiled).
 -                  (delete-file target-file))
 -                (write-region (point-min) (point-max) target-file))
 +                (write-region (point-min) (point-max) tempfile nil 1)
 +                ;; This has the intentional side effect that any
 +                ;; hard-links to target-file continue to
 +                ;; point to the old file (this makes it possible
 +                ;; for installed files to share disk space with
 +                ;; the build tree, without causing problems when
 +                ;; emacs-lisp files in the build tree are
 +                ;; recompiled).  Previously this was accomplished by
 +                ;; deleting target-file before writing it.
 +                (rename-file tempfile target-file t)
 +                (message "Wrote %s" target-file))
              ;; This is just to give a better error message than write-region
              (signal 'file-error
                      (list "Opening output file"
@@@ -1846,7 -1775,14 +1837,7 @@@ With argument ARG, insert value in curr
         (set-buffer-multibyte t)
         (erase-buffer)
         ;;      (emacs-lisp-mode)
 -       (setq case-fold-search nil)
 -       ;; This is a kludge.  Some operating systems (OS/2, DOS) need to
 -       ;; write files containing binary information specially.
 -       ;; Under most circumstances, such files will be in binary
 -       ;; overwrite mode, so those OS's use that flag to guess how
 -       ;; they should write their data.  Advise them that .elc files
 -       ;; need to be written carefully.
 -       (setq overwrite-mode 'overwrite-mode-binary))
 +       (setq case-fold-search nil))
       (displaying-byte-compile-warnings
        (with-current-buffer bytecomp-inbuffer
        (and bytecomp-filename
@@@ -2195,11 -2131,6 +2186,11 @@@ list that represents a doc string refer
        ;; Since there is no doc string, we can compile this as a normal form,
        ;; and not do a file-boundary.
        (byte-compile-keep-pending form)
 +    (when (and (symbolp (nth 1 form))
 +               (not (string-match "[-*/:$]" (symbol-name (nth 1 form))))
 +               (byte-compile-warning-enabled-p 'lexical))
 +      (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
 +                         (nth 1 form)))
      (push (nth 1 form) byte-compile-bound-variables)
      (if (eq (car form) 'defconst)
        (push (nth 1 form) byte-compile-const-variables))
@@@ -3393,31 -3324,21 +3384,31 @@@ If it is nil, then the handler is \"byt
      (setq for-effect nil)))
  
  (defun byte-compile-setq-default (form)
 -  (let ((bytecomp-args (cdr form))
 -      setters)
 -    (while bytecomp-args
 -      (let ((var (car bytecomp-args)))
 -      (and (or (not (symbolp var))
 -               (byte-compile-const-symbol-p var t))
 -           (byte-compile-warning-enabled-p 'constants)
 -           (byte-compile-warn
 -            "variable assignment to %s `%s'"
 -            (if (symbolp var) "constant" "nonvariable")
 -            (prin1-to-string var)))
 -      (push (list 'set-default (list 'quote var) (car (cdr bytecomp-args)))
 -            setters))
 -      (setq bytecomp-args (cdr (cdr bytecomp-args))))
 -    (byte-compile-form (cons 'progn (nreverse setters)))))
 +  (setq form (cdr form))
 +  (if (> (length form) 2)
 +      (let ((setters ()))
 +        (while (consp form)
 +          (push `(setq-default ,(pop form) ,(pop form)) setters))
 +        (byte-compile-form (cons 'progn (nreverse setters))))
 +    (let ((var (car form)))
 +      (and (or (not (symbolp var))
 +               (byte-compile-const-symbol-p var t))
 +           (byte-compile-warning-enabled-p 'constants)
 +           (byte-compile-warn
 +            "variable assignment to %s `%s'"
 +            (if (symbolp var) "constant" "nonvariable")
 +            (prin1-to-string var)))
 +      (byte-compile-normal-call `(set-default ',var ,@(cdr form))))))
 +
 +(byte-defop-compiler-1 set-default)
 +(defun byte-compile-set-default (form)
 +  (let ((varexp (car-safe (cdr-safe form))))
 +    (if (eq (car-safe varexp) 'quote)
 +        ;; If the varexp is constant, compile it as a setq-default
 +        ;; so we get more warnings.
 +        (byte-compile-setq-default `(setq-default ,(car-safe (cdr varexp))
 +                                                  ,@(cddr form)))
 +      (byte-compile-normal-call form))))
  
  (defun byte-compile-quote (form)
    (byte-compile-constant (car (cdr form))))
@@@ -3851,11 -3772,6 +3842,11 @@@ that suppresses all warnings during exe
  
  (defun byte-compile-defvar (form)
    ;; This is not used for file-level defvar/consts with doc strings.
 +  (when (and (symbolp (nth 1 form))
 +             (not (string-match "[-*/:$]" (symbol-name (nth 1 form))))
 +             (byte-compile-warning-enabled-p 'lexical))
 +    (byte-compile-warn "global/dynamic var `%s' lacks a prefix"
 +                       (nth 1 form)))
    (let ((fun (nth 0 form))
        (var (nth 1 form))
        (value (nth 2 form))
@@@ -4304,8 -4220,6 +4295,8 @@@ and corresponding effects.
  
  (defvar byte-code-meter)
  (defun byte-compile-report-ops ()
 +  (or (boundp 'byte-metering-on)
 +      (error "You must build Emacs with -DBYTE_CODE_METER to use this"))
    (with-output-to-temp-buffer "*Meter*"
      (set-buffer "*Meter*")
      (let ((i 0) n op off)
  
  (run-hooks 'bytecomp-load-hook)
  
 -;; arch-tag: 9c97b0f0-8745-4571-bfc3-8dceb677292a
  ;;; bytecomp.el ends here
diff --combined lisp/files.el
index ca698cab33dd732730f9443ab0844aac118bf6a9,4901c3872cd57d172eab361f79bb544793fae1dc..3b130a20d2bcae76909dde50080f0ec328badd5d
@@@ -1,11 -1,10 +1,11 @@@
  ;;; 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 Free Software Foundation, Inc.
 +;;   1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 +;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -189,6 -188,17 +189,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.
@@@ -565,9 -575,6 +565,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
@@@ -585,20 -592,15 +585,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.
@@@ -748,45 -750,21 +748,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)))))
  
@@@ -925,36 -903,6 +925,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
@@@ -2212,7 -2160,7 +2212,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,15 -2180,6 +2232,15 @@@ since only a single case-insensitive se
       (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)
 +     ("\\.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)
       ("#\\*mail\\*" . mail-mode)
       ("\\.g\\'" . antlr-mode)
       ("\\.ses\\'" . ses-mode)
 -     ("\\.\\(soa\\|zone\\)\\'" . dns-mode)
       ("\\.docbook\\'" . sgml-mode)
       ("\\.com\\'" . dcl-mode)
       ("/config\\.\\(?:bat\\|log\\)\\'" . fundamental-mode)
@@@ -2487,8 -2405,7 +2487,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).
@@@ -2851,19 -2768,15 +2851,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)
  
@@@ -3201,17 -3114,14 +3201,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.
@@@ -3224,7 -3134,10 +3224,10 @@@ It is safe if any of these conditions a
     evaluates to a non-nil value with VAL as an argument."
    (or (member (cons sym val) safe-local-variable-values)
        (let ((safep (get sym 'safe-local-variable)))
-         (and (functionp safep) (funcall safep val)))))
+         (and (functionp safep)
+              ;; If the function signals an error, that means it
+              ;; can't assure us that the value is safe.
+              (with-demoted-errors (funcall safep val))))))
  
  (defun risky-local-variable-p (sym &optional ignored)
    "Non-nil if SYM could be dangerous as a file-local variable.
@@@ -3505,14 -3418,15 +3508,14 @@@ 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.
@@@ -3712,13 -3622,10 +3715,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 ~.
                     (setq backupname (expand-file-name
                     (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)))
  
  (defun file-name-sans-versions (name &optional keep-backup-version)
    "Return file NAME sans backup versions or strings.
@@@ -4350,9 -4254,7 +4353,9 @@@ Before and after saving the buffer, thi
                  (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))
            ;; 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)
@@@ -4716,17 -4614,16 +4719,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)))
@@@ -5253,6 -5139,30 +5256,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."
@@@ -5616,14 -5526,12 +5619,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
@@@ -6445,4 -6355,5 +6448,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/ls-lisp.el
index 5f76c1bab7fa1a80baced9a6f6dd521129766d06,c7023add59b7e2986a37d8ca6265d3f18e6d39f0..58ed6685dc2905ecfa3d58f6bb88d2237eca384b
@@@ -1,13 -1,12 +1,13 @@@
  ;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp
  
 -;; Copyright (C) 1992, 1994, 2000, 2001, 2002, 2003, 2004,
 -;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 +;; Copyright (C) 1992, 1994, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 +;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
  
  ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
  ;; Modified by: Francis J. Wright <F.J.Wright@maths.qmw.ac.uk>
  ;; Maintainer: FSF
  ;; Keywords: unix, dired
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
    :version "21.1"
    :group 'dired)
  
 +(defun ls-lisp-set-options ()
 +  "Reset the ls-lisp options that depend on `ls-lisp-emulation'."
 +  (mapc 'custom-reevaluate-setting
 +      '(ls-lisp-ignore-case ls-lisp-dirs-first ls-lisp-verbosity)))
 +
  (defcustom ls-lisp-emulation
    (cond ;; ((eq system-type 'windows-nt) 'MS-Windows)
 -      ((memq system-type
 -             '(hpux usg-unix-v irix berkeley-unix))
 -       'UNIX))                        ; very similar to GNU
 +      ((memq system-type '(hpux usg-unix-v irix berkeley-unix))
 +       'UNIX))        ; very similar to GNU
    ;; Anything else defaults to nil, meaning GNU.
    "Platform to emulate: GNU (default), MacOS, MS-Windows, UNIX.
 -Corresponding value is one of the atoms: nil, MacOS, MS-Windows, UNIX.
 -Sets default values for: `ls-lisp-ignore-case', `ls-lisp-dirs-first',
 -`ls-lisp-verbosity'.  Need not match actual platform.  Changing this
 -option will have no effect until you restart Emacs."
 +Corresponding value is one of: nil, `MacOS', `MS-Windows', `UNIX'.
 +Set this to your preferred value; it need not match the actual platform
 +you are using.
 +
 +This variable does not affect the behavior of ls-lisp directly.
 +Rather, it controls the default values for some variables that do:
 +`ls-lisp-ignore-case', `ls-lisp-dirs-first', and `ls-lisp-verbosity'.
 +
 +If you change this variable directly (without using customize)
 +after loading `ls-lisp', you should use `ls-lisp-set-options' to
 +update the dependent variables."
    :type '(choice (const :tag "GNU" nil)
                 (const MacOS)
                 (const MS-Windows)
                 (const UNIX))
 +  :initialize 'custom-initialize-default
 +  :set (lambda (symbol value)
 +       (unless (equal value (eval symbol))
 +         (custom-set-default symbol value)
 +         (ls-lisp-set-options)))
    :group 'ls-lisp)
  
+ ;; Only made an obsolete alias in 23.3.  Before that, the initial
+ ;; value was set according to:
+ ;;  (or (memq ls-lisp-emulation '(MS-Windows MacOS))
+ ;;      (and (boundp 'ls-lisp-dired-ignore-case) ls-lisp-dired-ignore-case))
+ ;; Which isn't the right thing to do.
+ (define-obsolete-variable-alias 'ls-lisp-dired-ignore-case
+   'ls-lisp-ignore-case "21.1")
  (defcustom ls-lisp-ignore-case
-   ;; Name change for consistency with other option names.
-   (or (memq ls-lisp-emulation '(MS-Windows MacOS))
-       (and (boundp 'ls-lisp-dired-ignore-case) ls-lisp-dired-ignore-case))
+   (memq ls-lisp-emulation '(MS-Windows MacOS))
    "Non-nil causes ls-lisp alphabetic sorting to ignore case."
 +  :set-after '(ls-lisp-emulation)
    :type 'boolean
    :group 'ls-lisp)
  
    "Non-nil causes ls-lisp to sort directories first in any ordering.
  \(Or last if it is reversed.)  Follows Microsoft Windows Explorer."
    ;; Functionality suggested by Chris McMahan <cmcmahan@one.net>
 +  :set-after '(ls-lisp-emulation)
    :type 'boolean
    :group 'ls-lisp)
  
@@@ -132,15 -119,14 +138,15 @@@ It should contain none or more of the s
  A value of nil (or an empty list) means display none of them.
  
  Concepts come from UNIX: `links' means count of names associated with
 -the file\; `uid' means user (owner) identifier\; `gid' means group
 +the file; `uid' means user (owner) identifier; `gid' means group
  identifier.
  
 -If emulation is MacOS then default is nil\;
 +If emulation is MacOS then default is nil;
  if emulation is MS-Windows then default is `(links)' if platform is
 -Windows NT/2K, nil otherwise\;
 -if emulation is UNIX then default is `(links uid)'\;
 +Windows NT/2K, nil otherwise;
 +if emulation is UNIX then default is `(links uid)';
  if emulation is GNU then default is `(links uid gid)'."
 +  :set-after '(ls-lisp-emulation)
    ;; Functionality suggested by Howard Melman <howard@silverstream.com>
    :type '(set (const :tag "Show Link Count" links)
              (const :tag "Show User" uid)
@@@ -176,7 -162,7 +182,7 @@@ regardless of whether the locale can b
  Syntax:  (EARLY-TIME-FORMAT OLD-TIME-FORMAT)
  
  The EARLY-TIME-FORMAT is used if file has been modified within the
 -current year. The OLD-TIME-FORMAT is used for older files.  To use ISO
 +current year.  The OLD-TIME-FORMAT is used for older files.  To use ISO
  8601 dates, you could set:
  
  \(setq ls-lisp-format-time-list
    :group 'ls-lisp)
  
  (defcustom ls-lisp-use-localized-time-format nil
 -  "Non-nil causes ls-lisp to use `ls-lisp-format-time-list' even if
 -a valid locale is specified.
 +  "Non-nil means to always use `ls-lisp-format-time-list' for time stamps.
 +This applies even if a valid locale is specified.
  
  WARNING: Using localized date/time format might cause Dired columns
 -to fail to lign up, e.g. if month names are not all of the same length."
 +to fail to line up, e.g. if month names are not all of the same length."
    :type 'boolean
    :group 'ls-lisp)
  
@@@ -321,6 -307,7 +327,6 @@@ not contain `d', so that a full listin
                                              (if (memq ?n switches)
                                                  'integer
                                                'string)))
 -           (now (current-time))
             (sum 0)
             (max-uid-len 0)
             (max-gid-len 0)
                                  sum
                                (float sum))))
                 (insert (ls-lisp-format short attr file-size
 -                                       switches time-index now))))
 +                                       switches time-index))))
          ;; Insert total size of all files:
          (save-excursion
            (goto-char (car total-line))
                       (ls-lisp-classify-file file fattr)
                     file)
                   fattr (nth 7 fattr)
 -                                switches time-index (current-time)))
 +                                switches time-index))
        (message "%s: doesn't exist or is inaccessible" file)
        (ding) (sit-for 2)))))          ; to show user the message!
  
@@@ -504,8 -491,8 +510,8 @@@ SWITCHES is a list of characters.  Defa
                                    (nth 7 (cdr x)))))
                              ((setq index (ls-lisp-time-index switches))
                               (lambda (x y) ; sorted on time
 -                               (ls-lisp-time-lessp (nth index (cdr y))
 -                                                   (nth index (cdr x)))))
 +                               (time-less-p (nth index (cdr y))
 +                                            (nth index (cdr x)))))
                              ((memq ?X switches)
                               (lambda (x y) ; sorted on extension
                                 (ls-lisp-string-lessp
@@@ -603,10 -590,18 +609,10 @@@ FOLLOWED by null and full filename, SOL
             (substring filename (1+ i) end))))
         )) "\0" filename))
  
 -;; From Roland McGrath.  Can use this to sort on time.
 -(defun ls-lisp-time-lessp (time0 time1)
 -  "Return t if time TIME0 is earlier than time TIME1."
 -  (let ((hi0 (car time0)) (hi1 (car time1)))
 -    (or (< hi0 hi1)
 -      (and (= hi0 hi1)
 -           (< (cadr time0) (cadr time1))))))
 -
 -(defun ls-lisp-format (file-name file-attr file-size switches time-index now)
 +(defun ls-lisp-format (file-name file-attr file-size switches time-index)
    "Format one line of long ls output for file FILE-NAME.
  FILE-ATTR and FILE-SIZE give the file's attributes and size.
 -SWITCHES, TIME-INDEX and NOW give the full switch list and time data."
 +SWITCHES and TIME-INDEX give the full switch list and time data."
    (let ((file-type (nth 0 file-attr))
        ;; t for directory, string (name linked to)
        ;; for symbolic link, or nil.
                              gid))))
            (ls-lisp-format-file-size file-size (memq ?h switches))
            " "
 -          (ls-lisp-format-time file-attr time-index now)
 +          (ls-lisp-format-time file-attr time-index)
            " "
            (if (not (memq ?F switches)) ; ls-lisp-classify already did that
                (propertize file-name 'dired-filename t)
@@@ -682,13 -677,20 +688,13 @@@ Return nil if no time switch found.
        ((memq ?t switches) 5)          ; last modtime
        ((memq ?u switches) 4)))        ; last access
  
 -(defun ls-lisp-time-to-seconds (time)
 -  "Convert TIME to a floating point number."
 -  (+ (* (car time) 65536.0)
 -     (cadr time)
 -     (/ (or (nth 2 time) 0) 1000000.0)))
 -
 -(defun ls-lisp-format-time (file-attr time-index now)
 +(defun ls-lisp-format-time (file-attr time-index)
    "Format time for file with attributes FILE-ATTR according to TIME-INDEX.
  Use the same method as ls to decide whether to show time-of-day or year,
 -depending on distance between file date and NOW.
 +depending on distance between file date and the current time.
  All ls time options, namely c, t and u, are handled."
    (let* ((time (nth (or time-index 5) file-attr)) ; default is last modtime
 -       (diff (- (ls-lisp-time-to-seconds time)
 -                (ls-lisp-time-to-seconds now)))
 +       (diff (- (float-time time) (float-time)))
         ;; Consider a time to be recent if it is within the past six
         ;; months.  A Gregorian year has 365.2425 * 24 * 60 * 60 ==
         ;; 31556952 seconds on the average, and half of that is 15778476.
  
  (provide 'ls-lisp)
  
 -;; arch-tag: e55f399b-05ec-425c-a6d5-f5e349c35ab4
  ;;; ls-lisp.el ends here
diff --combined lisp/mouse-sel.el
index b9f0011e96fbc86c3fc163edf4f315233ce8022c,b057e41e78a76c44e193be629a762b8aaa76c903..9b4a048131e4c86365d74b0dd267a151ec55ab0a
@@@ -1,4 -1,4 +1,4 @@@
- ;;; mouse-sel.el --- multi-click selection support for Emacs 19
+ ;;; mouse-sel.el --- multi-click selection support
  
  ;; Copyright (C) 1993, 1994, 1995, 2001, 2002, 2003, 2004, 2005, 2006,
  ;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
@@@ -98,7 -98,7 +98,7 @@@
  ;;
  ;;       Selection/kill-ring interaction is retained
  ;;         interprogram-cut-function   = x-select-text
 -;;         interprogram-paste-function = x-cut-buffer-or-selection-value
 +;;         interprogram-paste-function = x-selection-value
  ;;
  ;;       What you lose is the ability to select some text in
  ;;       delete-selection-mode and yank over the top of it.
  ;;   that the X primary selection is used.  Under other windowing systems,
  ;;   alternate functions are used, which simply store the selection value
  ;;   in a variable.
 -;;
 -;; * You can change the selection highlight face by altering the properties
 -;;   of mouse-drag-overlay, eg.
 -;;
 -;;     (overlay-put mouse-drag-overlay 'face 'bold)
  
  ;;; Code:
  
@@@ -288,7 -293,8 +288,7 @@@ primary selection and region.
    (overlay-put mouse-secondary-overlay 'face 'secondary-selection))
  
  (defconst mouse-sel-selection-alist
 -  '((PRIMARY mouse-drag-overlay mouse-sel-primary-thing)
 -    (SECONDARY mouse-secondary-overlay mouse-sel-secondary-thing))
 +  '((SECONDARY mouse-secondary-overlay mouse-sel-secondary-thing))
    "Alist associating selections with variables.
  Each element is of the form:
  
@@@ -299,7 -305,7 +299,7 @@@ where   SELECTION-NAME          = name 
        SELECTION-THING-SYMBOL  = name of variable where the current selection
                                  type for this selection should be stored.")
  
 -(declare-function x-select-text "term/x-win" (text &optional push))
 +(declare-function x-select-text "term/common-win" (text))
  
  (defvar mouse-sel-set-selection-function
    (if (eq mouse-sel-default-bindings 'interprogram-cut-paste)
@@@ -314,15 -320,15 +314,15 @@@ Called with two arguments
    SELECTION, the name of the selection concerned, and
    VALUE, the text to store.
  
 -This sets the selection as well as the cut buffer for the older applications,
 -unless `mouse-sel-default-bindings' is `interprogram-cut-paste'.")
 +This sets the selection, unless `mouse-sel-default-bindings'
 +is `interprogram-cut-paste'.")
  
 -(declare-function x-cut-buffer-or-selection-value "term/x-win" ())
 +(declare-function x-selection-value "term/x-win" ())
  
  (defvar mouse-sel-get-selection-function
    (lambda (selection)
      (if (eq selection 'PRIMARY)
 -      (or (x-cut-buffer-or-selection-value)
 +      (or (x-selection-value)
            (bound-and-true-p x-last-selected-text)
            (bound-and-true-p x-last-selected-text-primary))
        (x-get-selection selection)))
diff --combined lisp/printing.el
index aacd8d42ae431d26987900c2b38d976c33d840d4,3fbf4c533559af5ca68ff2feb513a683f48d7e6c..ecbc82e01445a9b172cac4ecd8a58fe6fda8923d
@@@ -1387,6 -1387,20 +1387,6 @@@ Used by `pr-menu-bind' and `pr-update-m
      (require 'easymenu))              ; to avoid compilation gripes
  
    (eval-and-compile
 -    (cond
 -     ;; GNU Emacs 20
 -     ((< emacs-major-version 21)
 -      (defun pr-global-menubar (pr-menu-spec)
 -      (require 'easymenu)
 -      (easy-menu-change '("tools") "Printing" pr-menu-spec pr-menu-print-item)
 -      (when pr-menu-print-item
 -        (easy-menu-remove-item nil '("tools") pr-menu-print-item)
 -        (setq pr-menu-print-item nil
 -              pr-menu-bar (vector 'menu-bar 'tools
 -                                  (pr-get-symbol "Printing")))))
 -      )
 -     ;; GNU Emacs 21 & 22
 -     (t
        (defun pr-global-menubar (pr-menu-spec)
        (require 'easymenu)
        (let ((menu-file (if (= emacs-major-version 21)
           (t
            (easy-menu-add-item global-map menu-file
                                (easy-menu-create-menu "Print" pr-menu-spec)))
 -         )))
 -      )))
 +         ))))
  
    (eval-and-compile
      (cond
@@@ -3438,12 -3453,7 +3438,7 @@@ See `pr-ps-printer-alist'."
  
  (defun pr-menu-bind ()
    "Install `printing' menu in the menubar.
- On Emacs 20, it replaces the Tools/Print menu by Tools/Printing menu.
- On Emacs 21 and 22, it replaces the File/Print* menu entries by File/Print
- menu.
+ This replaces the File/Print* menu entries with a File/Print sub-menu.
  Calls `pr-update-menus' to adjust menus."
    (interactive)
    (pr-global-menubar pr-menu-spec)
@@@ -6670,5 -6680,4 +6665,4 @@@ COMMAND.exe, COMMAND.bat and COMMAND.co
  (provide 'printing)
  
  
- ;; arch-tag: 9ce9ac3f-0f60-4370-900b-1943215d9d18
  ;;; printing.el ends here
diff --combined lisp/progmodes/python.el
index a19445f47f5d00409940a3b5726058b67ff1142a,ac0fc4f3a3b3d6c081572792ce3251c1d5e155f1..7754dc6c87cdf0ea18277b27761b04d2bf7f7da9
            symbol-end)
       . font-lock-builtin-face)))
  
 -(defconst python-font-lock-syntactic-keywords
 +(defconst python-syntax-propertize-function
    ;; Make outer chars of matching triple-quote sequences into generic
    ;; string delimiters.  Fixme: Is there a better way?
    ;; First avoid a sequence preceded by an odd number of backslashes.
 -  `((,(concat "\\(?:\\([RUru]\\)[Rr]?\\|^\\|[^\\]\\(?:\\\\.\\)*\\)" ;Prefix.
 +  (syntax-propertize-rules
 +   (;; ¡Backrefs don't work in syntax-propertize-rules!
 +    (concat "\\(?:\\([RUru]\\)[Rr]?\\|^\\|[^\\]\\(?:\\\\.\\)*\\)" ;Prefix.
                "\\(?:\\('\\)'\\('\\)\\|\\(?2:\"\\)\"\\(?3:\"\\)\\)")
 -     (1 (python-quote-syntax 1) nil lax)
 -     (2 (python-quote-syntax 2))
 -     (3 (python-quote-syntax 3)))
 -    ;; This doesn't really help.
 -;;;     (,(rx (and ?\\ (group ?\n))) (1 " "))
 -    ))
 -
 -(defun python-quote-syntax (n)
 +    (3 (ignore (python-quote-syntax))))
 +   ;; This doesn't really help.
 +   ;;((rx (and ?\\ (group ?\n))) (1 " "))
 +   ))
 +
 +(defun python-quote-syntax ()
    "Put `syntax-table' property correctly on triple quote.
  Used for syntactic keywords.  N is the match number (1, 2 or 3)."
    ;; Given a triple quote, we have to check the context to know
    ;; x '"""' x """ \"""" x
    (save-excursion
      (goto-char (match-beginning 0))
 -    (cond
 -     ;; Consider property for the last char if in a fenced string.
 -     ((= n 3)
 -      (let* ((font-lock-syntactic-keywords nil)
 -           (syntax (syntax-ppss)))
 -      (when (eq t (nth 3 syntax))     ; after unclosed fence
 -        (goto-char (nth 8 syntax))    ; fence position
 -        (skip-chars-forward "uUrR")   ; skip any prefix
 -        ;; Is it a matching sequence?
 -        (if (eq (char-after) (char-after (match-beginning 2)))
 -            (eval-when-compile (string-to-syntax "|"))))))
 -     ;; Consider property for initial char, accounting for prefixes.
 -     ((or (and (= n 2)                        ; leading quote (not prefix)
 -             (not (match-end 1)))     ; prefix is null
 -        (and (= n 1)                  ; prefix
 -             (match-end 1)))          ; non-empty
 -      (let ((font-lock-syntactic-keywords nil))
 -      (unless (eq 'string (syntax-ppss-context (syntax-ppss)))
 -        (eval-when-compile (string-to-syntax "|")))))
 -     ;; Otherwise (we're in a non-matching string) the property is
 -     ;; nil, which is OK.
 -     )))
 +    (let ((syntax (save-match-data (syntax-ppss))))
 +      (cond
 +       ((eq t (nth 3 syntax))           ; after unclosed fence
 +        ;; Consider property for the last char if in a fenced string.
 +        (goto-char (nth 8 syntax))    ; fence position
 +        (skip-chars-forward "uUrR")   ; skip any prefix
 +        ;; Is it a matching sequence?
 +        (if (eq (char-after) (char-after (match-beginning 2)))
 +            (put-text-property (match-beginning 3) (match-end 3)
 +                               'syntax-table (string-to-syntax "|"))))
 +       ((match-end 1)
 +        ;; Consider property for initial char, accounting for prefixes.
 +        (put-text-property (match-beginning 1) (match-end 1)
 +                           'syntax-table (string-to-syntax "|")))
 +       (t
 +        ;; Consider property for initial char, accounting for prefixes.
 +        (put-text-property (match-beginning 2) (match-end 2)
 +                           'syntax-table (string-to-syntax "|"))))
 +      )))
  
  ;; This isn't currently in `font-lock-defaults' as probably not worth
  ;; it -- we basically only mess with a few normally-symbol characters.
@@@ -567,33 -570,6 +567,33 @@@ having to restart the program.
    "Queue of Python temp files awaiting execution.
  Currently-active file is at the head of the list.")
  
 +(defcustom python-shell-prompt-alist
 +  '(("ipython" . "^In \\[[0-9]+\\]: *")
 +    (t . "^>>> "))
 +  "Alist of Python input prompts.
 +Each element has the form (PROGRAM . REGEXP), where PROGRAM is
 +the value of `python-python-command' for the python process and
 +REGEXP is a regular expression matching the Python prompt.
 +PROGRAM can also be t, which specifies the default when no other
 +element matches `python-python-command'."
 +  :type 'string
 +  :group 'python
 +  :version "24.1")
 +
 +(defcustom python-shell-continuation-prompt-alist
 +  '(("ipython" . "^   [.][.][.]+: *")
 +    (t . "^[.][.][.] "))
 +  "Alist of Python continued-line prompts.
 +Each element has the form (PROGRAM . REGEXP), where PROGRAM is
 +the value of `python-python-command' for the python process and
 +REGEXP is a regular expression matching the Python prompt for
 +continued lines.
 +PROGRAM can also be t, which specifies the default when no other
 +element matches `python-python-command'."
 +  :type 'string
 +  :group 'python
 +  :version "24.1")
 +
  (defvar python-pdbtrack-is-tracking-p nil)
  
  (defconst python-pdbtrack-stack-entry-regexp
@@@ -1326,9 -1302,13 +1326,9 @@@ See `python-check-command' for the defa
  \f
  ;;;; Inferior mode stuff (following cmuscheme).
  
 -;; Fixme: Make sure we can work with IPython.
 -
  (defcustom python-python-command "python"
    "Shell command to run Python interpreter.
 -Any arguments can't contain whitespace.
 -Note that IPython may not work properly; it must at least be used
 -with the `-cl' flag, i.e. use `ipython -cl'."
 +Any arguments can't contain whitespace."
    :group 'python
    :type 'string)
  
@@@ -1406,23 -1386,6 +1406,23 @@@ local value."
  ;; Autoloaded.
  (declare-function compilation-shell-minor-mode "compile" (&optional arg))
  
 +(defvar python--prompt-regexp nil)
 +
 +(defun python--set-prompt-regexp ()
 +  (let ((prompt  (cdr-safe (or (assoc python-python-command
 +                                    python-shell-prompt-alist)
 +                             (assq t python-shell-prompt-alist))))
 +      (cprompt (cdr-safe (or (assoc python-python-command
 +                                    python-shell-continuation-prompt-alist)
 +                             (assq t python-shell-continuation-prompt-alist)))))
 +    (set (make-local-variable 'comint-prompt-regexp)
 +       (concat "\\("
 +               (mapconcat 'identity
 +                          (delq nil (list prompt cprompt "^([Pp]db) "))
 +                          "\\|")
 +               "\\)"))
 +    (set (make-local-variable 'python--prompt-regexp) prompt)))
 +
  ;; Fixme: This should inherit some stuff from `python-mode', but I'm
  ;; not sure how much: at least some keybindings, like C-c C-f;
  ;; syntax?; font-locking, e.g. for triple-quoted strings?
@@@ -1445,12 -1408,14 +1445,12 @@@ For running multiple processes in multi
  
  \\{inferior-python-mode-map}"
    :group 'python
 +  (require 'ansi-color) ; for ipython
    (setq mode-line-process '(":%s"))
    (set (make-local-variable 'comint-input-filter) 'python-input-filter)
    (add-hook 'comint-preoutput-filter-functions #'python-preoutput-filter
            nil t)
 -  ;; Still required by `comint-redirect-send-command', for instance
 -  ;; (and we need to match things like `>>> ... >>> '):
 -  (set (make-local-variable 'comint-prompt-regexp)
 -       (rx line-start (1+ (and (or (repeat 3 (any ">.")) "(Pdb)") " "))))
 +  (python--set-prompt-regexp)
    (set (make-local-variable 'compilation-error-regexp-alist)
         python-compilation-regexp-alist)
    (compilation-shell-minor-mode 1))
@@@ -1547,12 -1512,12 +1547,12 @@@ Don't save anything for STR matching `i
                                     cmd)))
      (unless (shell-command-to-string cmd)
        (error "Can't run Python command `%s'" cmd))
 -    (let* ((res (shell-command-to-string (concat cmd " --version"))))
 -      (string-match "Python \\([0-9]\\)\\.\\([0-9]\\)" res)
 -      (unless (and (equal "2" (match-string 1 res))
 -                 (match-beginning 2)
 -                 (>= (string-to-number (match-string 2 res)) 2))
 -      (error "Only Python versions >= 2.2 and < 3.0 supported")))
 +    (let* ((res (shell-command-to-string
 +                 (concat cmd
 +                         " -c \"from sys import version_info;\
 +print version_info >= (2, 2) and version_info < (3, 0)\""))))
 +      (unless (string-match "True" res)
 +      (error "Only Python versions >= 2.2 and < 3.0 are supported")))
      (setq python-version-checked t)))
  
  ;;;###autoload
@@@ -1575,7 -1540,6 +1575,7 @@@ buffer for a list of commands.)
    (interactive (if current-prefix-arg
                   (list (read-string "Run Python: " python-command) nil t)
                 (list python-command)))
 +  (require 'ansi-color) ; for ipython
    (unless cmd (setq cmd python-command))
    (python-check-version cmd)
    (setq python-command cmd)
      (with-current-buffer
        (let* ((cmdlist
                (append (python-args-to-list cmd)
 +                        ;; It's easy for the user to cause the process to be
 +                      ;; started without realizing it (e.g. to perform
 +                      ;; completion); for this reason loading files from the
 +                      ;; current directory is a security risk.  See
 +                      ;; http://article.gmane.org/gmane.emacs.devel/103569
                        '("-i" "-c" "import sys; sys.path.remove('')")))
               (path (getenv "PYTHONPATH"))
               (process-environment     ; to import emacs.py
                              (if path (concat path path-separator))
                              data-directory)
                      process-environment))
 -             ;; Suppress use of pager for help output:
 -             (process-connection-type nil))
 +               ;; If we use a pipe, unicode characters are not printed
 +               ;; correctly (Bug#5794) and IPython does not work at
 +               ;; all (Bug#5390).
 +             (process-connection-type t))
          (apply 'make-comint-in-buffer "Python"
                 (generate-new-buffer "*Python*")
                 (car cmdlist) nil (cdr cmdlist)))
    ;; non-ASCII.
    (interactive "r")
    (let* ((f (make-temp-file "py"))
 -       (command (format "emacs.eexecfile(%S)" f))
 +       (command
 +          ;; IPython puts the FakeModule module into __main__ so
 +          ;; emacs.eexecfile becomes useless.
 +          (if (string-match "^ipython" python-command)
 +              (format "execfile %S" f)
 +            (format "emacs.eexecfile(%S)" f)))
         (orig-start (copy-marker start)))
      (when (save-excursion
            (goto-char start)
@@@ -1862,9 -1814,7 +1862,9 @@@ If there isn't, it's probably not appro
  information etc.  If PROC is non-nil, check the buffer for that process."
    (with-current-buffer (process-buffer (or proc (python-proc)))
      (save-excursion
 -      (save-match-data (re-search-backward ">>> \\=" nil t)))))
 +      (save-match-data
 +      (re-search-backward (concat python--prompt-regexp " *\\=")
 +                          nil t)))))
  
  ;; Fixme:  Is there anything reasonable we can do with random methods?
  ;; (Currently only works with functions.)
@@@ -2278,7 -2228,6 +2278,7 @@@ the if condition.
  (eval-when-compile
    ;; Define a user-level skeleton and add it to the abbrev table.
  (defmacro def-python-skeleton (name &rest elements)
 +  (declare (indent 2))
    (let* ((name (symbol-name name))
         (function (intern (concat "python-insert-" name))))
      `(progn
         (define-skeleton ,function
         ,(format "Insert Python \"%s\" template." name)
         ,@elements)))))
 -(put 'def-python-skeleton 'lisp-indent-function 2)
  
  ;; From `skeleton-further-elements' set below:
  ;;  `<': outdent a level;
@@@ -2488,12 -2438,12 +2488,12 @@@ with skeleton expansions for compound s
    :group 'python
    (set (make-local-variable 'font-lock-defaults)
         '(python-font-lock-keywords nil nil nil nil
 -                                 (font-lock-syntactic-keywords
 -                                  . python-font-lock-syntactic-keywords)
 -                                 ;; This probably isn't worth it.
 -                                 ;; (font-lock-syntactic-face-function
 -                                 ;;  . python-font-lock-syntactic-face-function)
 -                                 ))
 +         ;; This probably isn't worth it.
 +         ;; (font-lock-syntactic-face-function
 +         ;;  . python-font-lock-syntactic-face-function)
 +         ))
 +  (set (make-local-variable 'syntax-propertize-function)
 +       python-syntax-propertize-function)
    (set (make-local-variable 'parse-sexp-lookup-properties) t)
    (set (make-local-variable 'parse-sexp-ignore-comments) t)
    (set (make-local-variable 'comment-start) "# ")
@@@ -2580,7 -2530,9 +2580,7 @@@ Runs `jython-mode-hook' after `python-m
    "Watch output for Python prompt and exec next file waiting in queue.
  This function is appropriate for `comint-output-filter-functions'."
    ;; TBD: this should probably use split-string
 -  (when (and (or (string-equal string ">>> ")
 -               (and (>= (length string) 5)
 -                    (string-equal (substring string -5) "\n>>> ")))
 +  (when (and (string-match python--prompt-regexp string)
             python-file-queue)
      (condition-case nil
          (delete-file (car python-file-queue))
                overlay-arrow-string "=>"
                python-pdbtrack-is-tracking-p t)
          (set-marker overlay-arrow-position
 -                    (save-excursion (beginning-of-line) (point))
 +                    (line-beginning-position)
                      (current-buffer)))
      (setq overlay-arrow-position nil
            python-pdbtrack-is-tracking-p nil)))
@@@ -2792,7 -2744,6 +2792,7 @@@ comint believe the user typed this stri
          (funcall (process-filter proc) proc msg))
        (set-buffer curbuf))
      (process-send-string proc cmd)))
 +
  ;;;###autoload
  (defun python-shell (&optional argprompt)
    "Start an interactive Python interpreter in another window.
@@@ -2807,7 -2758,7 +2807,7 @@@ command is used to switch to an existin
  process is started.  If you use this, you will probably want to ensure
  that the current arguments are retained (they will be included in the
  prompt).  This argument is ignored when this function is called
- programmatically, or when running in Emacs 19.34 or older.
+ programmatically.
  
  Note: You can toggle between using the CPython interpreter and the
  JPython interpreter by hitting \\[python-toggle-shells].  This toggles
@@@ -2832,7 -2783,6 +2832,7 @@@ interaction between undo and process fi
  non-Python process buffers using the default (Emacs-supplied) process
  filter."
    (interactive "P")
 +  (require 'ansi-color) ; For ipython
    ;; Set the default shell if not already set
    (when (null python-which-shell)
      (python-toggle-shells python-default-interpreter))
                               ))))
      (switch-to-buffer-other-window
       (apply 'make-comint python-which-bufname python-which-shell nil args))
 -    (make-local-variable 'comint-prompt-regexp)
      (set-process-sentinel (get-buffer-process (current-buffer))
                            'python-sentinel)
 -    (setq comint-prompt-regexp "^>>> \\|^[.][.][.] \\|^(pdb) ")
 +    (python--set-prompt-regexp)
      (add-hook 'comint-output-filter-functions
              'python-comint-output-filter-function nil t)
      ;; pdbtrack
diff --combined lisp/server.el
index ecc9b16cce7e001d3b9a4c86da5ba7cf6fdebf76,6297cc82ab0780f28d3c4b8227bca0547b05bc27..e3af82231aeb5711b67bff8987b87f1dc4245ab6
@@@ -110,19 -110,8 +110,19 @@@ If set, the server accepts remote conne
            (string :tag "Name or IP address")
            (const :tag "Local" nil))
    :version "22.1")
 +;;;###autoload
  (put 'server-host 'risky-local-variable t)
  
 +(defcustom server-port nil
 +  "The port number that the server process should listen on."
 +  :group 'server
 +  :type '(choice
 +          (string :tag "Port number")
 +          (const :tag "Random" nil))
 +  :version "24.1")
 +;;;###autoload
 +(put 'server-port 'risky-local-variable t)
 +
  (defcustom server-auth-dir (locate-user-emacs-file "server/")
    "Directory for server authentication files.
  
@@@ -133,7 -122,6 +133,7 @@@ directory residing in a NTFS partition 
    :group 'server
    :type 'directory
    :version "22.1")
 +;;;###autoload
  (put 'server-auth-dir 'risky-local-variable t)
  
  (defcustom server-raise-frame t
@@@ -356,8 -344,7 +356,8 @@@ If CLIENT is non-nil, add a descriptio
    ;; for possible servers before doing anything, so it *should* be ours.
    (and (process-contact proc :server)
         (eq (process-status proc) 'closed)
 -       (ignore-errors (delete-file (process-get proc :server-file))))
 +       (ignore-errors
 +      (delete-file (process-get proc :server-file))))
    (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc)
    (server-delete-client proc))
  
@@@ -535,9 -522,7 +535,9 @@@ To force-start a server, do \\[server-f
        ;; Delete the socket files made by previous server invocations.
        (if (not (eq t (server-running-p server-name)))
          ;; Remove any leftover socket or authentication file
 -        (ignore-errors (delete-file server-file))
 +        (ignore-errors
 +         (let (delete-by-moving-to-trash)
 +           (delete-file server-file)))
        (setq server-mode nil) ;; already set by the minor mode code
        (display-warning
         'server
@@@ -581,8 -566,8 +581,8 @@@ server or call `M-x server-force-delete
                       ;; The other args depend on the kind of socket used.
                       (if server-use-tcp
                           (list :family 'ipv4  ;; We're not ready for IPv6 yet
 -                               :service t
 -                               :host (or server-host "127.0.0.1") ;; See bug#6781
 +                               :service (or server-port t)
 +                               :host (or server-host 'local)
                                 :plist '(:authenticated nil))
                         (list :family 'local
                               :service server-file
                   (loop
                      ;; The auth key is a 64-byte string of random chars in the
                      ;; range `!'..`~'.
 -                    for i below 64
 +                    repeat 64
                      collect (+ 33 (random 94)) into auth
                      finally return (concat auth))))
              (process-put server-process :auth-key auth-key)
                (setq buffer-file-coding-system 'no-conversion)
                (insert (format-network-address
                         (process-contact server-process :local))
 -                      " " (int-to-string (emacs-pid))
 +                      " " (number-to-string (emacs-pid)) ; Kept for compatibility
                        "\n" auth-key)))))))))
  
  (defun server-force-stop ()
    "Kill all connections to the current server.
  This function is meant to be called from `kill-emacs-hook'."
-   (server-start nil t))
+   (server-start t t))
  
  ;;;###autoload
  (defun server-force-delete (&optional name)
@@@ -625,7 -610,7 +625,7 @@@ NAME defaults to `server-name'.  With a
                                    server-auth-dir
                                  server-socket-dir))))
      (condition-case nil
 -      (progn
 +      (let (delete-by-moving-to-trash)
          (delete-file file)
          (message "Connection file %S deleted" file))
        (file-error
@@@ -728,9 -713,12 +728,9 @@@ Server mode runs a process that accept
      ;; Display *scratch* by default.
      (switch-to-buffer (get-buffer-create "*scratch*") 'norecord)
  
 -    ;; Reply with our pid.
 -    (server-send-string proc (concat "-emacs-pid "
 -                                     (number-to-string (emacs-pid)) "\n"))
      frame))
  
 -(defun server-create-window-system-frame (display nowait proc)
 +(defun server-create-window-system-frame (display nowait proc parent-id)
    (add-to-list 'frame-inherited-parameters 'client)
    (if (not (fboundp 'make-frame-on-display))
        (progn
      (let* ((params `((client . ,(if nowait 'nowait proc))
                       ;; This is a leftover, see above.
                       (environment . ,(process-get proc 'env))))
 -           (frame (make-frame-on-display
 -                   (or display
 -                       (frame-parameter nil 'display)
 -                       (getenv "DISPLAY")
 -                       (error "Please specify display"))
 -                   params)))
 +         (display (or display
 +                      (frame-parameter nil 'display)
 +                      (getenv "DISPLAY")
 +                      (error "Please specify display")))
 +         frame)
 +      (if parent-id
 +        (push (cons 'parent-id (string-to-number parent-id)) params))
 +      (setq frame (make-frame-on-display display params))
        (server-log (format "%s created" frame) proc)
        (select-frame frame)
        (process-put proc 'frame frame)
@@@ -898,9 -884,6 +898,9 @@@ The following commands are accepted by 
        (server-log "Authentication failed" proc)
        (server-send-string
         proc (concat "-error " (server-quote-arg "Authentication failed")))
 +      ;; Before calling `delete-process', give emacsclient time to
 +      ;; receive the error string and shut down on its own.
 +      (sit-for 1)
        (delete-process proc)
        ;; We return immediately
        (return-from server-process-filter)))
    (condition-case err
        (progn
        (server-add-client proc)
 +      ;; Send our pid
 +      (server-send-string proc (concat "-emacs-pid "
 +                                       (number-to-string (emacs-pid)) "\n"))
        (if (not (string-match "\n" string))
              ;; Save for later any partial line that remains.
              (when (> (length string) 0)
                (coding-system (and (default-value 'enable-multibyte-characters)
                                    (or file-name-coding-system
                                        default-file-name-coding-system)))
 -              nowait ; t if emacsclient does not want to wait for us.
 -              frame ; The frame that was opened for the client (if any).
 -              display              ; Open the frame on this display.
 -              dontkill       ; t if the client should not be killed.
 +              nowait     ; t if emacsclient does not want to wait for us.
 +              frame      ; Frame opened for the client (if any).
 +              display    ; Open frame on this display.
 +              parent-id  ; Window ID for XEmbed
 +              dontkill   ; t if client should not be killed.
                commands
                dir
                use-current-frame
 -              tty-name       ;nil, `window-system', or the tty name.
 -              tty-type             ;string.
 +              tty-name   nil, `window-system', or the tty name.
 +              tty-type   string.
                files
                filepos
                command-line-args-left
                  (setq display (pop command-line-args-left))
                    (if (zerop (length display)) (setq display nil)))
  
 +               ;; -parent-id ID:
 +               ;; Open X frame within window ID, via XEmbed.
 +               ((and (equal "-parent-id" arg) command-line-args-left)
 +                (setq parent-id (pop command-line-args-left))
 +                  (if (zerop (length parent-id)) (setq parent-id nil)))
 +
                 ;; -window-system:  Open a new X frame.
                 ((equal "-window-system" arg)
                    (setq dontkill t)
                    (setq tty-name nil tty-type nil)
                    (if display (server-select-display display)))
                   ((eq tty-name 'window-system)
 -                  (server-create-window-system-frame display nowait proc))
 +                  (server-create-window-system-frame display nowait proc
 +                                                     parent-id))
                   ;; When resuming on a tty, tty-name is nil.
                   (tty-name
                    (server-create-tty-frame tty-name tty-type proc))))
      (condition-case err
          (let* ((buffers
                  (when files
 -                  (run-hooks 'pre-command-hook)
 -                  (prog1 (server-visit-files files proc nowait)
 -                    (run-hooks 'post-command-hook)))))
 +                  (server-visit-files files proc nowait))))
  
            (mapc 'funcall (nreverse commands))
  
       proc (concat "-error " (server-quote-arg
                               (error-message-string err))))
      (server-log (error-message-string err) proc)
 +    ;; Before calling `delete-process', give emacsclient time to
 +    ;; receive the error string and shut down on its own.
 +    (sit-for 5)
      (delete-process proc)))
  
  (defun server-goto-line-column (line-col)
@@@ -1192,13 -1163,8 +1192,13 @@@ so don't mark these buffers specially, 
               (obuf (get-file-buffer filen)))
          (add-to-history 'file-name-history filen)
          (if (null obuf)
 -              (set-buffer (find-file-noselect filen))
 +            (progn
 +              (run-hooks 'pre-command-hook)  
 +              (set-buffer (find-file-noselect filen)))
              (set-buffer obuf)
 +          ;; separately for each file, in sync with post-command hooks,
 +          ;; with the new buffer current:
 +          (run-hooks 'pre-command-hook)  
              (cond ((file-exists-p filen)
                     (when (not (verify-visited-file-modtime obuf))
                       (revert-buffer t nil)))
              (unless server-buffer-clients
                (setq server-existing-buffer t)))
            (server-goto-line-column (cdr file))
 -          (run-hooks 'server-visit-hook))
 +          (run-hooks 'server-visit-hook)
 +        ;; hooks may be specific to current buffer:
 +        (run-hooks 'post-command-hook)) 
        (unless nowait
          ;; When the buffer is killed, inform the clients.
          (add-hook 'kill-buffer-hook 'server-kill-buffer nil t)
@@@ -1495,4 -1459,5 +1495,4 @@@ only these files will be asked to be sa
  \f
  (provide 'server)
  
 -;; arch-tag: 1f7ecb42-f00a-49f8-906d-61995d84c8d6
  ;;; server.el ends here
diff --combined lisp/simple.el
index 55118553fbf21333b8e4f846a3b263cdaaec3428,3f4e12133b5699c9dc55f33093919b6c15bbd051..aa4b9a97182895a13174fc1dcad237fdd72002d7
@@@ -1,12 -1,11 +1,12 @@@
  ;;; simple.el --- basic editing commands for Emacs
  
 -;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 -;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 -;;   Free Software Foundation, Inc.
 +;; Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 1998,
 +;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 +;;   2010  Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
  ;; Keywords: internal
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -402,7 -401,8 +402,7 @@@ location.
  Other major modes are defined by comparison with this one."
    (interactive)
    (kill-all-local-variables)
 -  (unless delay-mode-hooks
 -    (run-hooks 'after-change-major-mode-hook)))
 +  (run-mode-hooks 'fundamental-mode-hook))
  
  ;; Special major modes to view specially formatted data rather than files.
  
    "Parent major mode from which special major modes should inherit."
    (setq buffer-read-only t))
  
 +;; Major mode meant to be the parent of programming modes.
 +
 +(defvar prog-mode-map
 +  (let ((map (make-sparse-keymap)))
 +    (define-key map [?\C-\M-q] 'prog-indent-sexp)
 +    map)
 +  "Keymap used for programming modes.")
 +
 +(defun prog-indent-sexp ()
 +  "Indent the expression after point."
 +  (interactive)
 +  (let ((start (point))
 +        (end (save-excursion (forward-sexp 1) (point))))
 +    (indent-region start end nil)))
 +
 +(define-derived-mode prog-mode fundamental-mode "Prog"
 +  "Major mode for editing programming language source code."
 +  (set (make-local-variable 'require-final-newline) mode-require-final-newline)
 +  (set (make-local-variable 'parse-sexp-ignore-comments) t))
 +
  ;; Making and deleting lines.
  
  (defvar hard-newline (propertize "\n" 'hard t 'rear-nonsticky '(hard))
@@@ -457,43 -437,72 +457,43 @@@ Call `auto-fill-function' if the curren
  than the value of `fill-column' and ARG is nil."
    (interactive "*P")
    (barf-if-buffer-read-only)
 -  ;; Inserting a newline at the end of a line produces better redisplay in
 -  ;; try_window_id than inserting at the beginning of a line, and the textual
 -  ;; result is the same.  So, if we're at beginning of line, pretend to be at
 -  ;; the end of the previous line.
 -  (let ((flag (and (not (bobp))
 -                 (bolp)
 -                 ;; Make sure no functions want to be told about
 -                 ;; the range of the changes.
 -                 (not after-change-functions)
 -                 (not before-change-functions)
 -                 ;; Make sure there are no markers here.
 -                 (not (buffer-has-markers-at (1- (point))))
 -                 (not (buffer-has-markers-at (point)))
 -                 ;; Make sure no text properties want to know
 -                 ;; where the change was.
 -                 (not (get-char-property (1- (point)) 'modification-hooks))
 -                 (not (get-char-property (1- (point)) 'insert-behind-hooks))
 -                 (or (eobp)
 -                     (not (get-char-property (point) 'insert-in-front-hooks)))
 -                 ;; Make sure the newline before point isn't intangible.
 -                 (not (get-char-property (1- (point)) 'intangible))
 -                 ;; Make sure the newline before point isn't read-only.
 -                 (not (get-char-property (1- (point)) 'read-only))
 -                 ;; Make sure the newline before point isn't invisible.
 -                 (not (get-char-property (1- (point)) 'invisible))
 -                 ;; Make sure the newline before point has the same
 -                 ;; properties as the char before it (if any).
 -                 (< (or (previous-property-change (point)) -2)
 -                    (- (point) 2))))
 -      (was-page-start (and (bolp)
 -                           (looking-at page-delimiter)))
 -      (beforepos (point)))
 -    (if flag (backward-char 1))
 -    ;; Call self-insert so that auto-fill, abbrev expansion etc. happens.
 -    ;; Set last-command-event to tell self-insert what to insert.
 -    (let ((last-command-event ?\n)
 -        ;; Don't auto-fill if we have a numeric argument.
 -        ;; Also not if flag is true (it would fill wrong line);
 -        ;; there is no need to since we're at BOL.
 -        (auto-fill-function (if (or arg flag) nil auto-fill-function)))
 -      (unwind-protect
 -        (self-insert-command (prefix-numeric-value arg))
 -      ;; If we get an error in self-insert-command, put point at right place.
 -      (if flag (forward-char 1))))
 -    ;; Even if we did *not* get an error, keep that forward-char;
 -    ;; all further processing should apply to the newline that the user
 -    ;; thinks he inserted.
 -
 -    ;; Mark the newline(s) `hard'.
 -    (if use-hard-newlines
 -      (set-hard-newline-properties
 -       (- (point) (prefix-numeric-value arg)) (point)))
 -    ;; If the newline leaves the previous line blank,
 -    ;; and we have a left margin, delete that from the blank line.
 -    (or flag
 -      (save-excursion
 -        (goto-char beforepos)
 -        (beginning-of-line)
 -        (and (looking-at "[ \t]$")
 -             (> (current-left-margin) 0)
 -             (delete-region (point) (progn (end-of-line) (point))))))
 -    ;; Indent the line after the newline, except in one case:
 -    ;; when we added the newline at the beginning of a line
 -    ;; which starts a page.
 -    (or was-page-start
 -      (move-to-left-margin nil t)))
 +  ;; Call self-insert so that auto-fill, abbrev expansion etc. happens.
 +  ;; Set last-command-event to tell self-insert what to insert.
 +  (let* ((was-page-start (and (bolp) (looking-at page-delimiter)))
 +         (beforepos (point))
 +         (last-command-event ?\n)
 +         ;; Don't auto-fill if we have a numeric argument.
 +         (auto-fill-function (if arg nil auto-fill-function))
 +         (postproc
 +          ;; Do the rest in post-self-insert-hook, because we want to do it
 +          ;; *before* other functions on that hook.
 +          (lambda ()
 +            ;; Mark the newline(s) `hard'.
 +            (if use-hard-newlines
 +                (set-hard-newline-properties
 +                 (- (point) (prefix-numeric-value arg)) (point)))
 +            ;; If the newline leaves the previous line blank, and we
 +            ;; have a left margin, delete that from the blank line.
 +            (save-excursion
 +              (goto-char beforepos)
 +              (beginning-of-line)
 +              (and (looking-at "[ \t]$")
 +                   (> (current-left-margin) 0)
 +                   (delete-region (point)
 +                                  (line-end-position))))
 +            ;; Indent the line after the newline, except in one case:
 +            ;; when we added the newline at the beginning of a line which
 +            ;; starts a page.
 +            (or was-page-start
 +                (move-to-left-margin nil t)))))
 +    (unwind-protect
 +        (progn
 +          (add-hook 'post-self-insert-hook postproc)
 +          (self-insert-command (prefix-numeric-value arg)))
 +      ;; We first used let-binding to protect the hook, but that was naive
 +      ;; since add-hook affects the symbol-default value of the variable,
 +      ;; whereas the let-binding might only protect the buffer-local value.
 +      (remove-hook 'post-self-insert-hook postproc)))
    nil)
  
  (defun set-hard-newline-properties (from to)
@@@ -512,7 -521,7 +512,7 @@@ With arg N, insert N newlines.
    (interactive "*p")
    (let* ((do-fill-prefix (and fill-prefix (bolp)))
         (do-left-margin (and (bolp) (> (current-left-margin) 0)))
 -       (loc (point))
 +       (loc (point-marker))
         ;; Don't expand an abbrev before point.
         (abbrev-mode nil))
      (newline n)
@@@ -831,78 -840,6 +831,78 @@@ Don't use this command in Lisp programs
         (overlay-recenter (point))
         (recenter -3))))
  
 +(defcustom delete-active-region t
 +  "Whether single-char deletion commands delete an active region.
 +This has an effect only if Transient Mark mode is enabled, and
 +affects `delete-forward-char' and `delete-backward-char', though
 +not `delete-char'.
 +
 +If the value is the symbol `kill', the active region is killed
 +instead of deleted."
 +  :type '(choice (const :tag "Delete active region" t)
 +                 (const :tag "Kill active region" kill)
 +                 (const :tag "Do ordinary deletion" nil))
 +  :group 'editing
 +  :version "24.1")
 +
 +(defun delete-backward-char (n &optional killflag)
 +  "Delete the previous N characters (following if N is negative).
 +If Transient Mark mode is enabled, the mark is active, and N is 1,
 +delete the text in the region and deactivate the mark instead.
 +To disable this, set `delete-active-region' to nil.
 +
 +Optional second arg KILLFLAG, if non-nil, means to kill (save in
 +kill ring) instead of delete.  Interactively, N is the prefix
 +arg, and KILLFLAG is set if N is explicitly specified.
 +
 +In Overwrite mode, single character backward deletion may replace
 +tabs with spaces so as to back over columns, unless point is at
 +the end of the line."
 +  (interactive "p\nP")
 +  (unless (integerp n)
 +    (signal 'wrong-type-argument (list 'integerp n)))
 +  (cond ((and (use-region-p)
 +            delete-active-region
 +            (= n 1))
 +       ;; If a region is active, kill or delete it.
 +       (if (eq delete-active-region 'kill)
 +           (kill-region (region-beginning) (region-end))
 +         (delete-region (region-beginning) (region-end))))
 +      ;; In Overwrite mode, maybe untabify while deleting
 +      ((null (or (null overwrite-mode)
 +                 (<= n 0)
 +                 (memq (char-before) '(?\t ?\n))
 +                 (eobp)
 +                 (eq (char-after) ?\n)))
 +       (let* ((ocol (current-column))
 +              (val (delete-char (- n) killflag)))
 +         (save-excursion
 +           (insert-char ?\s (- ocol (current-column)) nil))))
 +      ;; Otherwise, do simple deletion.
 +      (t (delete-char (- n) killflag))))
 +
 +(defun delete-forward-char (n &optional killflag)
 +  "Delete the following N characters (previous if N is negative).
 +If Transient Mark mode is enabled, the mark is active, and N is 1,
 +delete the text in the region and deactivate the mark instead.
 +To disable this, set `delete-active-region' to nil.
 +
 +Optional second arg KILLFLAG non-nil means to kill (save in kill
 +ring) instead of delete.  Interactively, N is the prefix arg, and
 +KILLFLAG is set if N was explicitly specified."
 +  (interactive "p\nP")
 +  (unless (integerp n)
 +    (signal 'wrong-type-argument (list 'integerp n)))
 +  (cond ((and (use-region-p)
 +            delete-active-region
 +            (= n 1))
 +       ;; If a region is active, kill or delete it.
 +       (if (eq delete-active-region 'kill)
 +           (kill-region (region-beginning) (region-end))
 +         (delete-region (region-beginning) (region-end))))
 +      ;; Otherwise, do simple deletion.
 +      (t (delete-char n killflag))))
 +
  (defun mark-whole-buffer ()
    "Put point at beginning and mark at end of buffer.
  You probably should not use this function in Lisp programs;
@@@ -973,21 -910,6 +973,21 @@@ rather than line counts.
        (re-search-forward "[\n\C-m]" nil 'end (1- line))
        (forward-line (1- line)))))
  
 +(defun count-words-region (start end)
 +  "Print the number of words in the region.
 +When called interactively, the word count is printed in echo area."
 +  (interactive "r")
 +  (let ((count 0))
 +    (save-excursion
 +      (save-restriction
 +        (narrow-to-region start end)
 +        (goto-char (point-min))
 +        (while (forward-word 1)
 +          (setq count (1+ count)))))
 +    (if (interactive-p)
 +        (message "Region has %d words" count))
 +    count))
 +
  (defun count-lines-region (start end)
    "Print number of lines and characters in the region."
    (interactive "r")
@@@ -1290,40 -1212,6 +1290,40 @@@ to get different commands to edit and r
        (if command-history
          (error "Argument %d is beyond length of command history" arg)
        (error "There are no previous complex commands to repeat")))))
 +
 +(defun read-extended-command ()
 +  "Read command name to invoke in `execute-extended-command'."
 +  (minibuffer-with-setup-hook
 +      (lambda ()
 +      (set (make-local-variable 'minibuffer-default-add-function)
 +           (lambda ()
 +             ;; Get a command name at point in the original buffer
 +             ;; to propose it after M-n.
 +             (with-current-buffer (window-buffer (minibuffer-selected-window))
 +               (and (commandp (function-called-at-point))
 +                    (format "%S" (function-called-at-point)))))))
 +    ;; Read a string, completing from and restricting to the set of
 +    ;; all defined commands.  Don't provide any initial input.
 +    ;; Save the command read on the extended-command history list.
 +    (completing-read
 +     (concat (cond
 +            ((eq current-prefix-arg '-) "- ")
 +            ((and (consp current-prefix-arg)
 +                  (eq (car current-prefix-arg) 4)) "C-u ")
 +            ((and (consp current-prefix-arg)
 +                  (integerp (car current-prefix-arg)))
 +             (format "%d " (car current-prefix-arg)))
 +            ((integerp current-prefix-arg)
 +             (format "%d " current-prefix-arg)))
 +           ;; This isn't strictly correct if `execute-extended-command'
 +           ;; is bound to anything else (e.g. [menu]).
 +           ;; It could use (key-description (this-single-command-keys)),
 +           ;; but actually a prompt other than "M-x" would be confusing,
 +           ;; because "M-x" is a well-known prompt to read a command
 +           ;; and it serves as a shorthand for "Extended command: ".
 +           "M-x ")
 +     obarray 'commandp t nil 'extended-command-history)))
 +
  \f
  (defvar minibuffer-history nil
    "Default minibuffer history list.
@@@ -2185,11 -2073,7 +2185,11 @@@ to `shell-command-history'.
  
  Like `shell-command' but if COMMAND doesn't end in ampersand, adds `&'
  surrounded by whitespace and executes the command asynchronously.
 -The output appears in the buffer `*Async Shell Command*'."
 +The output appears in the buffer `*Async Shell Command*'.
 +
 +In Elisp, you will often be better served by calling `start-process'
 +directly, since it offers more control and does not impose the use of a
 +shell (with its need to quote arguments)."
    (interactive
     (list
      (read-shell-command "Async shell command: " nil nil
@@@ -2250,11 -2134,7 +2250,11 @@@ If the optional third argument ERROR-BU
  or buffer name to which to direct the command's standard error output.
  If it is nil, error output is mingled with regular output.
  In an interactive call, the variable `shell-command-default-error-buffer'
 -specifies the value of ERROR-BUFFER."
 +specifies the value of ERROR-BUFFER.
 +
 +In Elisp, you will often be better served by calling `call-process' or
 +`start-process' directly, since it offers more control and does not impose
 +the use of a shell (with its need to quote arguments)."
  
    (interactive
     (list
@@@ -2811,60 -2691,6 +2811,60 @@@ These commands include \\[set-mark-comm
    (reset-this-command-lengths)
    (restore-overriding-map))
  \f
 +;; This function is here rather than in subr.el because it uses CL.
 +(defmacro with-wrapper-hook (var args &rest body)
 +  "Run BODY wrapped with the VAR hook.
 +VAR is a special hook: its functions are called with a first argument
 +which is the \"original\" code (the BODY), so the hook function can wrap
 +the original function, or call it any number of times (including not calling
 +it at all).  This is similar to an `around' advice.
 +VAR is normally a symbol (a variable) in which case it is treated like
 +a hook, with a buffer-local and a global part.  But it can also be an
 +arbitrary expression.
 +ARGS is a list of variables which will be passed as additional arguments
 +to each function, after the initial argument, and which the first argument
 +expects to receive when called."
 +  (declare (indent 2) (debug t))
 +  ;; We need those two gensyms because CL's lexical scoping is not available
 +  ;; for function arguments :-(
 +  (let ((funs (make-symbol "funs"))
 +        (global (make-symbol "global"))
 +        (argssym (make-symbol "args")))
 +    ;; Since the hook is a wrapper, the loop has to be done via
 +    ;; recursion: a given hook function will call its parameter in order to
 +    ;; continue looping.
 +    `(labels ((runrestofhook (,funs ,global ,argssym)
 +                 ;; `funs' holds the functions left on the hook and `global'
 +                 ;; holds the functions left on the global part of the hook
 +                 ;; (in case the hook is local).
 +                 (lexical-let ((funs ,funs)
 +                               (global ,global))
 +                   (if (consp funs)
 +                       (if (eq t (car funs))
 +                           (runrestofhook
 +                            (append global (cdr funs)) nil ,argssym)
 +                         (apply (car funs)
 +                                (lambda (&rest ,argssym)
 +                                (runrestofhook (cdr funs) global ,argssym))
 +                                ,argssym))
 +                     ;; Once there are no more functions on the hook, run
 +                     ;; the original body.
 +                     (apply (lambda ,args ,@body) ,argssym)))))
 +       (runrestofhook ,var
 +                      ;; The global part of the hook, if any.
 +                      ,(if (symbolp var)
 +                           `(if (local-variable-p ',var)
 +                                (default-value ',var)))
 +                      (list ,@args)))))
 +
 +(defvar filter-buffer-substring-functions nil
 +  "Wrapper hook around `filter-buffer-substring'.
 +The functions on this special hook are called with 4 arguments:
 +  NEXT-FUN BEG END DELETE
 +NEXT-FUN is a function of 3 arguments (BEG END DELETE)
 +that performs the default operation.  The other 3 arguments are like
 +the ones passed to `filter-buffer-substring'.")
 +
  (defvar buffer-substring-filters nil
    "List of filter functions for `filter-buffer-substring'.
  Each function must accept a single argument, a string, and return
@@@ -2874,34 -2700,46 +2874,34 @@@ the next.  The return value of the las
  return value of `filter-buffer-substring'.
  
  If this variable is nil, no filtering is performed.")
 +(make-obsolete-variable 'buffer-substring-filters
 +                        'filter-buffer-substring-functions "24.1")
  
 -(defun filter-buffer-substring (beg end &optional delete noprops)
 +(defun filter-buffer-substring (beg end &optional delete)
    "Return the buffer substring between BEG and END, after filtering.
 -The buffer substring is passed through each of the filter
 -functions in `buffer-substring-filters', and the value from the
 -last filter function is returned.  If `buffer-substring-filters'
 -is nil, the buffer substring is returned unaltered.
 +The filtering is performed by `filter-buffer-substring-functions'.
  
  If DELETE is non-nil, the text between BEG and END is deleted
  from the buffer.
  
 -If NOPROPS is non-nil, final string returned does not include
 -text properties, while the string passed to the filters still
 -includes text properties from the buffer text.
 -
 -Point is temporarily set to BEG before calling
 -`buffer-substring-filters', in case the functions need to know
 -where the text came from.
 -
  This function should be used instead of `buffer-substring',
  `buffer-substring-no-properties', or `delete-and-extract-region'
  when you want to allow filtering to take place.  For example,
 -major or minor modes can use `buffer-substring-filters' to
 +major or minor modes can use `filter-buffer-substring-functions' to
  extract characters that are special to a buffer, and should not
  be copied into other buffers."
 -  (cond
 -   ((or delete buffer-substring-filters)
 -    (save-excursion
 -      (goto-char beg)
 -      (let ((string (if delete (delete-and-extract-region beg end)
 -                    (buffer-substring beg end))))
 -      (dolist (filter buffer-substring-filters)
 -        (setq string (funcall filter string)))
 -      (if noprops
 -          (set-text-properties 0 (length string) nil string))
 -      string)))
 -   (noprops
 -    (buffer-substring-no-properties beg end))
 -   (t
 -    (buffer-substring beg end))))
 +  (with-wrapper-hook filter-buffer-substring-functions (beg end delete)
 +    (cond
 +     ((or delete buffer-substring-filters)
 +      (save-excursion
 +        (goto-char beg)
 +        (let ((string (if delete (delete-and-extract-region beg end)
 +                        (buffer-substring beg end))))
 +          (dolist (filter buffer-substring-filters)
 +            (setq string (funcall filter string)))
 +          string)))
 +     (t
 +      (buffer-substring beg end)))))
  
  
  ;;;; Window system cut and paste hooks.
@@@ -2915,8 -2753,11 +2915,8 @@@ This variable holds a function that Ema
  is put in the kill ring, to make the new kill available to other
  programs.
  
 -The function takes one or two arguments.
 -The first argument, TEXT, is a string containing
 -the text which should be made available.
 -The second, optional, argument PUSH, has the same meaning as the
 -similar argument to `x-set-cut-buffer', which see.")
 +The function takes one argument, TEXT, which is a string containing
 +the text which should be made available.")
  
  (defvar interprogram-paste-function nil
    "Function to call to get text cut from other programs.
@@@ -2990,11 -2831,6 +2990,6 @@@ If `interprogram-cut-function' is non-n
  Optional second argument REPLACE non-nil means that STRING will replace
  the front of the kill ring, rather than being added to the list.
  
- Optional third arguments YANK-HANDLER controls how the STRING is later
- inserted into a buffer; see `insert-for-yank' for details.
- When a yank handler is specified, STRING must be non-empty (the yank
- handler, if non-nil, is stored as a `yank-handler' text property on STRING).
  When `save-interprogram-paste-before-kill' and `interprogram-paste-function'
  are non-nil, saves the interprogram paste string(s) into `kill-ring' before
  STRING.
@@@ -3010,46 -2846,40 +3005,43 @@@ argument should still be a \"useful\" s
      (if yank-handler
        (signal 'args-out-of-range
                (list string "yank-handler specified for empty string"))))
 -  (when (and kill-do-not-save-duplicates
 -             (equal string (car kill-ring)))
 -    (setq replace t))
 -  (if (fboundp 'menu-bar-update-yank-menu)
 -      (menu-bar-update-yank-menu string (and replace (car kill-ring))))
 +  (unless (and kill-do-not-save-duplicates
 +             (equal string (car kill-ring)))
 +    (if (fboundp 'menu-bar-update-yank-menu)
 +      (menu-bar-update-yank-menu string (and replace (car kill-ring)))))
    (when save-interprogram-paste-before-kill
      (let ((interprogram-paste (and interprogram-paste-function
                                     (funcall interprogram-paste-function))))
        (when interprogram-paste
 -        (if (listp interprogram-paste)
 -            (dolist (s (nreverse interprogram-paste))
 -              (push s kill-ring))
 -            (push interprogram-paste kill-ring)))))
 -  (if (and replace kill-ring)
 -      (setcar kill-ring string)
 -    (push string kill-ring)
 -    (if (> (length kill-ring) kill-ring-max)
 -      (setcdr (nthcdr (1- kill-ring-max) kill-ring) nil)))
 +        (dolist (s (if (listp interprogram-paste)
 +                     (nreverse interprogram-paste)
 +                   (list interprogram-paste)))
 +        (unless (and kill-do-not-save-duplicates
 +                     (equal s (car kill-ring)))
 +          (push s kill-ring))))))
 +  (unless (and kill-do-not-save-duplicates
 +             (equal string (car kill-ring)))
 +    (if (and replace kill-ring)
 +      (setcar kill-ring string)
 +      (push string kill-ring)
 +      (if (> (length kill-ring) kill-ring-max)
 +        (setcdr (nthcdr (1- kill-ring-max) kill-ring) nil))))
    (setq kill-ring-yank-pointer kill-ring)
    (if interprogram-cut-function
 -      (funcall interprogram-cut-function string (not replace))))
 +      (funcall interprogram-cut-function string)))
+ (set-advertised-calling-convention
+  'kill-new '(string &optional replace) "23.3")
  
  (defun kill-append (string before-p &optional yank-handler)
    "Append STRING to the end of the latest kill in the kill ring.
  If BEFORE-P is non-nil, prepend STRING to the kill.
- Optional third argument YANK-HANDLER, if non-nil, specifies the
- yank-handler text property to be set on the combined kill ring
- string.  If the specified yank-handler arg differs from the
- yank-handler property of the latest kill string, this function
- adds the combined string to the kill ring as a new element,
- instead of replacing the last kill with it.
  If `interprogram-cut-function' is set, pass the resulting kill to it."
    (let* ((cur (car kill-ring)))
      (kill-new (if before-p (concat string cur) (concat cur string))
              (or (= (length cur) 0)
                  (equal yank-handler (get-text-property 0 'yank-handler cur)))
              yank-handler)))
+ (set-advertised-calling-convention 'kill-append '(string before-p) "23.3")
  
  (defcustom yank-pop-change-selection nil
    "If non-nil, rotating the kill ring changes the window system selection."
@@@ -3130,11 -2960,7 +3122,7 @@@ Supply two arguments, character positio
  Any command that calls this function is a \"kill command\".
  If the previous command was also a kill command,
  the text killed this time appends to the text killed last time
- to make one entry in the kill ring.
- In Lisp code, optional third arg YANK-HANDLER, if non-nil,
- specifies the yank-handler text property to be set on the killed
- text.  See `insert-for-yank'."
+ to make one entry in the kill ring."
    ;; Pass point first, then mark, because the order matters
    ;; when calling kill-append.
    (interactive (list (point) (mark)))
         (barf-if-buffer-read-only)
         ;; If the buffer isn't read-only, the text is.
         (signal 'text-read-only (list (current-buffer)))))))
+ (set-advertised-calling-convention 'kill-region '(beg end) "23.3")
  
  ;; copy-region-as-kill no longer sets this-command, because it's confusing
  ;; to get two copies of the text when the user accidentally types M-w and
@@@ -3633,18 -3460,18 +3622,18 @@@ START and END specify the portion of th
    (interactive
     (list (read-buffer "Append to buffer: " (other-buffer (current-buffer) t))
         (region-beginning) (region-end)))
 -  (let ((oldbuf (current-buffer)))
 -    (let* ((append-to (get-buffer-create buffer))
 -           (windows (get-buffer-window-list append-to t t))
 -           point)
 -      (save-excursion
 -      (with-current-buffer append-to
 -        (setq point (point))
 -        (barf-if-buffer-read-only)
 -        (insert-buffer-substring oldbuf start end)
 -        (dolist (window windows)
 -          (when (= (window-point window) point)
 -            (set-window-point window (point)))))))))
 +  (let* ((oldbuf (current-buffer))
 +         (append-to (get-buffer-create buffer))
 +         (windows (get-buffer-window-list append-to t t))
 +         point)
 +    (save-excursion
 +      (with-current-buffer append-to
 +        (setq point (point))
 +        (barf-if-buffer-read-only)
 +        (insert-buffer-substring oldbuf start end)
 +        (dolist (window windows)
 +          (when (= (window-point window) point)
 +            (set-window-point window (point))))))))
  
  (defun prepend-to-buffer (buffer start end)
    "Prepend to specified buffer the text of the region.
@@@ -3700,28 -3527,29 +3689,28 @@@ a mistake; see the documentation of `se
        (marker-position (mark-marker))
      (signal 'mark-inactive nil)))
  
 -(defcustom select-active-regions nil
 -  "If non-nil, an active region automatically becomes the window selection."
 -  :type 'boolean
 -  :group 'killing
 -  :version "23.1")
 -
 -(declare-function x-selection-owner-p "xselect.c" (&optional selection))
 -
 -;; Many places set mark-active directly, and several of them failed to also
 -;; run deactivate-mark-hook.  This shorthand should simplify.
  (defsubst deactivate-mark (&optional force)
    "Deactivate the mark by setting `mark-active' to nil.
  Unless FORCE is non-nil, this function does nothing if Transient
  Mark mode is disabled.
  This function also runs `deactivate-mark-hook'."
    (when (or transient-mark-mode force)
 -    ;; Copy the latest region into the primary selection, if desired.
 -    (and select-active-regions
 -       mark-active
 -       (display-selections-p)
 -       (x-selection-owner-p 'PRIMARY)
 -       (x-set-selection 'PRIMARY (buffer-substring-no-properties
 -                                  (region-beginning) (region-end))))
 +    (when (and (if (eq select-active-regions 'only)
 +                 (eq (car-safe transient-mark-mode) 'only)
 +               select-active-regions)
 +             (region-active-p)
 +             (display-selections-p))
 +      ;; The var `saved-region-selection', if non-nil, is the text in
 +      ;; the region prior to the last command modifying the buffer.
 +      ;; Set the selection to that, or to the current region.
 +      (cond (saved-region-selection
 +           (x-set-selection 'PRIMARY saved-region-selection)
 +           (setq saved-region-selection nil))
 +          ((/= (region-beginning) (region-end))
 +           (x-set-selection 'PRIMARY
 +                            (buffer-substring-no-properties
 +                             (region-beginning)
 +                             (region-end))))))
      (if (and (null force)
             (or (eq transient-mark-mode 'lambda)
                 (and (eq (car-safe transient-mark-mode) 'only)
    (when (mark t)
      (setq mark-active t)
      (unless transient-mark-mode
 -      (setq transient-mark-mode 'lambda))
 -    (when (and select-active-regions
 -             (display-selections-p))
 -      (x-set-selection 'PRIMARY (current-buffer)))))
 +      (setq transient-mark-mode 'lambda))))
  
  (defun set-mark (pos)
    "Set this buffer's mark to POS.  Don't use this function!
@@@ -3762,6 -3593,9 +3751,6 @@@ store it in a Lisp variable.  Example
        (progn
        (setq mark-active t)
        (run-hooks 'activate-mark-hook)
 -      (when (and select-active-regions
 -                 (display-selections-p))
 -        (x-set-selection 'PRIMARY (current-buffer)))
        (set-marker (mark-marker) pos (current-buffer)))
      ;; Normally we never clear mark-active except in Transient Mark mode.
      ;; But when we actually clear out the mark value too, we must
@@@ -3845,6 -3679,8 +3834,6 @@@ Display `Mark set' unless the optional 
        (push-mark nil nomsg t)
        (setq mark-active t)
        (run-hooks 'activate-mark-hook)
 -      (and select-active-regions (display-selections-p)
 -         (x-set-selection 'PRIMARY (current-buffer)))
        (unless nomsg
        (message "Mark activated")))))
  
@@@ -4034,8 -3870,8 +4023,8 @@@ deactivate it, and restore the variabl
  its earlier value."
    (cond ((and shift-select-mode this-command-keys-shift-translated)
           (unless (and mark-active
 -                      (eq (car-safe transient-mark-mode) 'only))
 -           (setq transient-mark-mode
 +                    (eq (car-safe transient-mark-mode) 'only))
 +         (setq transient-mark-mode
                   (cons 'only
                         (unless (eq transient-mark-mode 'lambda)
                           transient-mark-mode)))
@@@ -4066,8 -3902,29 +4055,8 @@@ Invoke \\[apropos-documentation] and ty
  \"mark.*active\" at the prompt, to see the documentation of
  commands which are sensitive to the Transient Mark mode."
    :global t
 -  :init-value (not noninteractive)
 -  :initialize 'custom-initialize-delay
 -  :group 'editing-basics)
 -
 -;; The variable transient-mark-mode is ugly: it can take on special
 -;; values.  Document these here.
 -(defvar transient-mark-mode t
 -  "*Non-nil if Transient Mark mode is enabled.
 -See the command `transient-mark-mode' for a description of this minor mode.
 -
 -Non-nil also enables highlighting of the region whenever the mark is active.
 -The variable `highlight-nonselected-windows' controls whether to highlight
 -all windows or just the selected window.
 -
 -If the value is `lambda', that enables Transient Mark mode temporarily.
 -After any subsequent action that would normally deactivate the mark
 -\(such as buffer modification), Transient Mark mode is turned off.
 -
 -If the value is (only . OLDVAL), that enables Transient Mark mode
 -temporarily.  After any subsequent point motion command that is not
 -shift-translated, or any other action that would normally deactivate
 -the mark (such as buffer modification), the value of
 -`transient-mark-mode' is set to OLDVAL.")
 +  ;; It's defined in C/cus-start, this stops the d-m-m macro defining it again.
 +  :variable transient-mark-mode)
  
  (defvar widen-automatically t
    "Non-nil means it is ok for commands to call `widen' when they want to.
@@@ -4077,14 -3934,6 +4066,14 @@@ the current accessible part of the buff
  If `widen-automatically' is nil, these commands will do something else
  as a fallback, and won't change the buffer bounds.")
  
 +(defvar non-essential nil
 +  "Whether the currently executing code is performing an essential task.
 +This variable should be non-nil only when running code which should not
 +disturb the user.  E.g. it can be used to prevent Tramp from prompting the
 +user for a password when we are simply scanning a set of files in the
 +background or displaying possible completions before the user even asked
 +for it.")
 +
  (defun pop-global-mark ()
    "Pop off global mark ring and jump to the top location."
    (interactive)
@@@ -4148,10 -3997,9 +4137,10 @@@ and more reliable (no dependence on goa
            (insert (if use-hard-newlines hard-newline "\n")))
        (line-move arg nil nil try-vscroll))
      (if (called-interactively-p 'interactive)
 -      (condition-case nil
 +      (condition-case err
            (line-move arg nil nil try-vscroll)
 -        ((beginning-of-buffer end-of-buffer) (ding)))
 +        ((beginning-of-buffer end-of-buffer)
 +         (signal (car err) (cdr err))))
        (line-move arg nil nil try-vscroll)))
    nil)
  
@@@ -4179,10 -4027,9 +4168,10 @@@ to use and more reliable (no dependenc
    (interactive "^p\np")
    (or arg (setq arg 1))
    (if (called-interactively-p 'interactive)
 -      (condition-case nil
 +      (condition-case err
          (line-move (- arg) nil nil try-vscroll)
 -      ((beginning-of-buffer end-of-buffer) (ding)))
 +      ((beginning-of-buffer end-of-buffer)
 +       (signal (car err) (cdr err))))
      (line-move (- arg) nil nil try-vscroll))
    nil)
  
@@@ -4489,7 -4336,7 +4478,7 @@@ into account variable-width characters 
  
        (let (new
            (old (point))
 -          (line-beg (save-excursion (beginning-of-line) (point)))
 +          (line-beg (line-beginning-position))
            (line-end
             ;; Compute the end of the line
             ;; ignoring effectively invisible newlines.
@@@ -4597,7 -4444,7 +4586,7 @@@ and `current-column' to be able to igno
        ;; that will get us to the same place on the screen
        ;; but with a more reasonable buffer position.
        (goto-char normal-location)
 -      (let ((line-beg (save-excursion (beginning-of-line) (point))))
 +      (let ((line-beg (line-beginning-position)))
          (while (and (not (bolp)) (invisible-p (1- (point))))
            (goto-char (previous-char-property-change (point) line-beg))))))))
  
@@@ -4620,9 -4467,6 +4609,9 @@@ rests.
               (let ((goal-column 0)
                     (line-move-visual nil))
                 (and (line-move arg t)
 +                    ;; With bidi reordering, we may not be at bol,
 +                    ;; so make sure we are.
 +                    (skip-chars-backward "^\n")
                      (not (bobp))
                      (progn
                        (while (and (not (bobp)) (invisible-p (1- (point))))
@@@ -4885,7 -4729,52 +4874,7 @@@ This also turns on `word-wrap' in the b
  (define-globalized-minor-mode global-visual-line-mode
    visual-line-mode turn-on-visual-line-mode
    :lighter " vl")
 -\f
 -(defun scroll-other-window-down (lines)
 -  "Scroll the \"other window\" down.
 -For more details, see the documentation for `scroll-other-window'."
 -  (interactive "P")
 -  (scroll-other-window
 -   ;; Just invert the argument's meaning.
 -   ;; We can do that without knowing which window it will be.
 -   (if (eq lines '-) nil
 -     (if (null lines) '-
 -       (- (prefix-numeric-value lines))))))
 -
 -(defun beginning-of-buffer-other-window (arg)
 -  "Move point to the beginning of the buffer in the other window.
 -Leave mark at previous position.
 -With arg N, put point N/10 of the way from the true beginning."
 -  (interactive "P")
 -  (let ((orig-window (selected-window))
 -      (window (other-window-for-scrolling)))
 -    ;; We use unwind-protect rather than save-window-excursion
 -    ;; because the latter would preserve the things we want to change.
 -    (unwind-protect
 -      (progn
 -        (select-window window)
 -        ;; Set point and mark in that window's buffer.
 -        (with-no-warnings
 -         (beginning-of-buffer arg))
 -        ;; Set point accordingly.
 -        (recenter '(t)))
 -      (select-window orig-window))))
 -
 -(defun end-of-buffer-other-window (arg)
 -  "Move point to the end of the buffer in the other window.
 -Leave mark at previous position.
 -With arg N, put point N/10 of the way from the true end."
 -  (interactive "P")
 -  ;; See beginning-of-buffer-other-window for comments.
 -  (let ((orig-window (selected-window))
 -      (window (other-window-for-scrolling)))
 -    (unwind-protect
 -      (progn
 -        (select-window window)
 -        (with-no-warnings
 -         (end-of-buffer arg))
 -        (recenter '(t)))
 -      (select-window orig-window))))
 +
  \f
  (defun transpose-chars (arg)
    "Interchange characters around point, moving forward one character.
@@@ -5075,12 -4964,16 +5064,12 @@@ If optional arg REALLY-WORD is non-nil
                 ;; Point is neither within nor adjacent to a word.
                 (not strict))
        ;; Look for preceding word in same line.
 -      (skip-syntax-backward not-syntaxes
 -                            (save-excursion (beginning-of-line)
 -                                            (point)))
 +      (skip-syntax-backward not-syntaxes (line-beginning-position))
        (if (bolp)
            ;; No preceding word in same line.
            ;; Look for following word in same line.
            (progn
 -            (skip-syntax-forward not-syntaxes
 -                                 (save-excursion (end-of-line)
 -                                                 (point)))
 +            (skip-syntax-forward not-syntaxes (line-end-position))
              (setq start (point))
              (skip-syntax-forward syntaxes)
              (setq end (point)))
@@@ -5244,7 -5137,7 +5233,7 @@@ Some major modes set this."
  (put 'auto-fill-function 'safe-local-variable 'null)
  ;; FIXME: turn into a proper minor mode.
  ;; Add a global minor mode version of it.
 -(defun auto-fill-mode (&optional arg)
 +(define-minor-mode auto-fill-mode
    "Toggle Auto Fill mode.
  With ARG, turn Auto Fill mode on if and only if ARG is positive.
  In Auto Fill mode, inserting a space at a column beyond `current-fill-column'
@@@ -5252,7 -5145,14 +5241,7 @@@ automatically breaks the line at a prev
  
  The value of `normal-auto-fill-function' specifies the function to use
  for `auto-fill-function' when turning Auto Fill mode on."
 -  (interactive "P")
 -  (prog1 (setq auto-fill-function
 -             (if (if (null arg)
 -                     (not auto-fill-function)
 -                     (> (prefix-numeric-value arg) 0))
 -                 normal-auto-fill-function
 -                 nil))
 -    (force-mode-line-update)))
 +  :variable (eq auto-fill-function normal-auto-fill-function))
  
  ;; This holds a document string used to document auto-fill-mode.
  (defun auto-fill-function ()
@@@ -5351,7 -5251,7 +5340,7 @@@ if long lines are truncated.
  (defvar overwrite-mode-binary (purecopy " Bin Ovwrt")
    "The string displayed in the mode line when in binary overwrite mode.")
  
 -(defun overwrite-mode (arg)
 +(define-minor-mode overwrite-mode
    "Toggle overwrite mode.
  With prefix argument ARG, turn overwrite mode on if ARG is positive,
  otherwise turn it off.  In overwrite mode, printing characters typed
@@@ -5360,9 -5260,14 +5349,9 @@@ it to the right.  At the end of a line
  Before a tab, such characters insert until the tab is filled in.
  \\[quoted-insert] still inserts characters in overwrite mode; this
  is supposed to make it easier to insert characters when necessary."
 -  (interactive "P")
 -  (setq overwrite-mode
 -      (if (if (null arg) (not overwrite-mode)
 -            (> (prefix-numeric-value arg) 0))
 -          'overwrite-mode-textual))
 -  (force-mode-line-update))
 +  :variable (eq overwrite-mode 'overwrite-mode-textual))
  
 -(defun binary-overwrite-mode (arg)
 +(define-minor-mode binary-overwrite-mode
    "Toggle binary overwrite mode.
  With prefix argument ARG, turn binary overwrite mode on if ARG is
  positive, otherwise turn it off.  In binary overwrite mode, printing
@@@ -5375,7 -5280,13 +5364,7 @@@ replaces the text at the cursor, just a
  Note that binary overwrite mode is not its own minor mode; it is a
  specialization of overwrite mode, entered by setting the
  `overwrite-mode' variable to `overwrite-mode-binary'."
 -  (interactive "P")
 -  (setq overwrite-mode
 -      (if (if (null arg)
 -              (not (eq overwrite-mode 'overwrite-mode-binary))
 -            (> (prefix-numeric-value arg) 0))
 -          'overwrite-mode-binary))
 -  (force-mode-line-update))
 +  :variable (eq overwrite-mode 'overwrite-mode-binary))
  
  (define-minor-mode line-number-mode
    "Toggle Line Number mode.
@@@ -5401,26 -5312,6 +5390,26 @@@ With ARG, turn Size Indication mode on 
  otherwise turn it off.  When Size Indication mode is enabled, the
  size of the accessible part of the buffer appears in the mode line."
    :global t :group 'mode-line)
 +
 +(define-minor-mode auto-save-mode
 +  "Toggle auto-saving of contents of current buffer.
 +With prefix argument ARG, turn auto-saving on if positive, else off."
 +  :variable ((and buffer-auto-save-file-name
 +                  ;; If auto-save is off because buffer has shrunk,
 +                  ;; then toggling should turn it on.
 +                  (>= buffer-saved-size 0))
 +             . (lambda (val)
 +                 (setq buffer-auto-save-file-name
 +                       (cond
 +                        ((null val) nil)
 +                        ((and buffer-file-name auto-save-visited-file-name
 +                              (not buffer-read-only))
 +                         buffer-file-name)
 +                        (t (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)))
  \f
  (defgroup paren-blinking nil
    "Blinking matching of parens and expressions."
@@@ -5462,40 -5353,21 +5451,40 @@@ it skips the contents of comments that 
    :type 'boolean
    :group 'paren-blinking)
  
 +(defun blink-matching-check-mismatch (start end)
 +  "Return whether or not START...END are matching parens.
 +END is the current point and START is the blink position.
 +START might be nil if no matching starter was found.
 +Returns non-nil if we find there is a mismatch."
 +  (let* ((end-syntax (syntax-after (1- end)))
 +         (matching-paren (and (consp end-syntax)
 +                              (eq (syntax-class end-syntax) 5)
 +                              (cdr end-syntax))))
 +    ;; For self-matched chars like " and $, we can't know when they're
 +    ;; mismatched or unmatched, so we can only do it for parens.
 +    (when matching-paren
 +      (not (and start
 +                (or
 +                 (eq (char-after start) matching-paren)
 +                 ;; The cdr might hold a new paren-class info rather than
 +                 ;; a matching-char info, in which case the two CDRs
 +                 ;; should match.
 +                 (eq matching-paren (cdr-safe (syntax-after start)))))))))
 +
 +(defvar blink-matching-check-function #'blink-matching-check-mismatch
 +  "Function to check parentheses mismatches.
 +The function takes two arguments (START and END) where START is the
 +position just before the opening token and END is the position right after.
 +START can be nil, if it was not found.
 +The function should return non-nil if the two tokens do not match.")
 +
  (defun blink-matching-open ()
    "Move cursor momentarily to the beginning of the sexp before point."
    (interactive)
 -  (when (and (> (point) (point-min))
 -           blink-matching-paren
 -           ;; Verify an even number of quoting characters precede the close.
 -           (= 1 (logand 1 (- (point)
 -                             (save-excursion
 -                               (forward-char -1)
 -                               (skip-syntax-backward "/\\")
 -                               (point))))))
 +  (when (and (not (bobp))
 +           blink-matching-paren)
      (let* ((oldpos (point))
 -         (message-log-max nil)  ; Don't log messages about paren matching.
 -         (atdollar (eq (syntax-class (syntax-after (1- oldpos))) 8))
 -         (isdollar)
 +         (message-log-max nil) ; Don't log messages about paren matching.
           (blinkpos
              (save-excursion
                (save-restriction
                         (and parse-sexp-ignore-comments
                              (not blink-matching-paren-dont-ignore-comments))))
                    (condition-case ()
 -                      (scan-sexps oldpos -1)
 +                      (progn
 +                        (forward-sexp -1)
 +                        ;; backward-sexp skips backward over prefix chars,
 +                        ;; so move back to the matching paren.
 +                        (while (and (< (point) (1- oldpos))
 +                                    (let ((code (syntax-after (point))))
 +                                      (or (eq (syntax-class code) 6)
 +                                          (eq (logand 1048576 (car code))
 +                                              1048576))))
 +                          (forward-char 1))
 +                        (point))
                      (error nil))))))
 -         (matching-paren
 -            (and blinkpos
 -                 ;; Not syntax '$'.
 -                 (not (setq isdollar
 -                            (eq (syntax-class (syntax-after blinkpos)) 8)))
 -                 (let ((syntax (syntax-after blinkpos)))
 -                   (and (consp syntax)
 -                        (eq (syntax-class syntax) 4)
 -                        (cdr syntax))))))
 +           (mismatch (funcall blink-matching-check-function blinkpos oldpos)))
        (cond
 -       ;; isdollar is for:
 -       ;; http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00871.html
 -       ((not (or (and isdollar blinkpos)
 -                 (and atdollar (not blinkpos)) ; see below
 -                 (eq matching-paren (char-before oldpos))
 -                 ;; The cdr might hold a new paren-class info rather than
 -                 ;; a matching-char info, in which case the two CDRs
 -                 ;; should match.
 -                 (eq matching-paren (cdr (syntax-after (1- oldpos))))))
 -      (if (minibufferp)
 -          (minibuffer-message " [Mismatched parentheses]")
 -        (message "Mismatched parentheses")))
 -       ((not blinkpos)
 -        (or blink-matching-paren-distance
 -            ;; Don't complain when `$' with no blinkpos, because it
 -            ;; could just be the first one typed in the buffer.
 -            atdollar
 +       (mismatch
 +        (if blinkpos
              (if (minibufferp)
 -              (minibuffer-message " [Unmatched parenthesis]")
 -            (message "Unmatched parenthesis"))))
 +                (minibuffer-message " [Mismatched parentheses]")
 +              (message "Mismatched parentheses"))
 +          (if (minibufferp)
 +              (minibuffer-message " [Unmatched parenthesis]")
 +            (message "Unmatched parenthesis"))))
 +       ((not blinkpos) nil)
         ((pos-visible-in-window-p blinkpos)
          ;; Matching open within window, temporarily move to blinkpos but only
          ;; if `blink-matching-paren-on-screen' is non-nil.
              (message "Matches %s"
                       (substring-no-properties open-paren-line-string)))))))))
  
 -(setq blink-paren-function 'blink-matching-open)
 +(defvar blink-paren-function 'blink-matching-open
 +  "Function called, if non-nil, whenever a close parenthesis is inserted.
 +More precisely, a char with closeparen syntax is self-inserted.")
 +
 +(defun blink-paren-post-self-insert-function ()
 +  (when (and (eq (char-before) last-command-event) ; Sanity check.
 +             (memq (char-syntax last-command-event) '(?\) ?\$))
 +             blink-paren-function
 +             (not executing-kbd-macro)
 +             (not noninteractive)
 +           ;; Verify an even number of quoting characters precede the close.
 +           (= 1 (logand 1 (- (point)
 +                             (save-excursion
 +                               (forward-char -1)
 +                               (skip-syntax-backward "/\\")
 +                               (point))))))
 +    (funcall blink-paren-function)))
 +
 +(add-hook 'post-self-insert-hook #'blink-paren-post-self-insert-function
 +          ;; Most likely, this hook is nil, so this arg doesn't matter,
 +          ;; but I use it as a reminder that this function usually
 +          ;; likes to be run after others since it does `sit-for'.
 +          'append)
  \f
  ;; This executes C-g typed while Emacs is waiting for a command.
  ;; Quitting out of a program does not go through here;
  During execution of Lisp code, this character causes a quit directly.
  At top-level, as an editor command, this simply beeps."
    (interactive)
 -  (deactivate-mark)
 +  ;; Avoid adding the region to the window selection.
 +  (setq saved-region-selection nil)
 +  (let (select-active-regions)
 +    (deactivate-mark))
    (if (fboundp 'kmacro-keyboard-quit)
        (kmacro-keyboard-quit))
    (setq defining-kbd-macro nil)
@@@ -5628,12 -5484,12 +5617,12 @@@ cancel the use of the current buffer (f
  or go back to just one window (by deleting all but the selected window)."
    (interactive)
    (cond ((eq last-command 'mode-exited) nil)
 +      ((region-active-p)
 +       (deactivate-mark))
        ((> (minibuffer-depth) 0)
         (abort-recursive-edit))
        (current-prefix-arg
         nil)
 -      ((region-active-p)
 -       (deactivate-mark))
        ((> (recursion-depth) 0)
         (exit-recursive-edit))
        (buffer-quit-function
@@@ -6559,7 -6415,6 +6548,7 @@@ call `normal-erase-is-backspace-mode' (
         (if (if (eq normal-erase-is-backspace 'maybe)
                 (and (not noninteractive)
                      (or (memq system-type '(ms-dos windows-nt))
 +                      (memq window-system '(ns))
                          (and (memq window-system '(x))
                               (fboundp 'x-backspace-delete-keys-p)
                               (x-backspace-delete-keys-p))
               normal-erase-is-backspace)
             1 0)))))
  
 -(defun normal-erase-is-backspace-mode (&optional arg)
 +(define-minor-mode normal-erase-is-backspace-mode
    "Toggle the Erase and Delete mode of the Backspace and Delete keys.
  
  With numeric ARG, turn the mode on if and only if ARG is positive.
@@@ -6601,10 -6456,13 +6590,10 @@@ probably not turn on this mode on a tex
  have both Backspace, Delete and F1 keys.
  
  See also `normal-erase-is-backspace'."
 -  (interactive "P")
 -  (let ((enabled (or (and arg (> (prefix-numeric-value arg) 0))
 -                   (not (or arg
 -                              (eq 1 (terminal-parameter
 -                                    nil 'normal-erase-is-backspace)))))))
 -    (set-terminal-parameter nil 'normal-erase-is-backspace
 -                          (if enabled 1 0))
 +  :variable (eq (terminal-parameter
 +                 nil 'normal-erase-is-backspace) 1)
 +  (let ((enabled (eq 1 (terminal-parameter
 +                        nil 'normal-erase-is-backspace))))
  
      (cond ((or (memq window-system '(x w32 ns pc))
               (memq system-type '(ms-dos windows-nt)))
  
             (if enabled
                 (progn
 -                 (define-key local-function-key-map [delete] [?\C-d])
 +                 (define-key local-function-key-map [delete] [deletechar])
                   (define-key local-function-key-map [kp-delete] [?\C-d])
                   (define-key local-function-key-map [backspace] [?\C-?])
                     (dolist (b bindings)
             (keyboard-translate ?\C-h ?\C-h)
             (keyboard-translate ?\C-? ?\C-?))))
  
 -    (run-hooks 'normal-erase-is-backspace-hook)
      (if (called-interactively-p 'interactive)
        (message "Delete key deletes %s"
                 (if (eq 1 (terminal-parameter nil 'normal-erase-is-backspace))
@@@ -6676,6 -6535,52 +6665,6 @@@ the first N arguments are fixed at the 
  was called."
    (lexical-let ((fun fun) (args1 args))
      (lambda (&rest args2) (apply fun (append args1 args2)))))
 -
 -;; This function is here rather than in subr.el because it uses CL.
 -(defmacro with-wrapper-hook (var args &rest body)
 -  "Run BODY wrapped with the VAR hook.
 -VAR is a special hook: its functions are called with a first argument
 -which is the \"original\" code (the BODY), so the hook function can wrap
 -the original function, or call it any number of times (including not calling
 -it at all).  This is similar to an `around' advice.
 -VAR is normally a symbol (a variable) in which case it is treated like
 -a hook, with a buffer-local and a global part.  But it can also be an
 -arbitrary expression.
 -ARGS is a list of variables which will be passed as additional arguments
 -to each function, after the initial argument, and which the first argument
 -expects to receive when called."
 -  (declare (indent 2) (debug t))
 -  ;; We need those two gensyms because CL's lexical scoping is not available
 -  ;; for function arguments :-(
 -  (let ((funs (make-symbol "funs"))
 -        (global (make-symbol "global"))
 -        (argssym (make-symbol "args")))
 -    ;; Since the hook is a wrapper, the loop has to be done via
 -    ;; recursion: a given hook function will call its parameter in order to
 -    ;; continue looping.
 -    `(labels ((runrestofhook (,funs ,global ,argssym)
 -                 ;; `funs' holds the functions left on the hook and `global'
 -                 ;; holds the functions left on the global part of the hook
 -                 ;; (in case the hook is local).
 -                 (lexical-let ((funs ,funs)
 -                               (global ,global))
 -                   (if (consp funs)
 -                       (if (eq t (car funs))
 -                           (runrestofhook
 -                            (append global (cdr funs)) nil ,argssym)
 -                         (apply (car funs)
 -                                (lambda (&rest ,argssym)
 -                                (runrestofhook (cdr funs) global ,argssym))
 -                                ,argssym))
 -                     ;; Once there are no more functions on the hook, run
 -                     ;; the original body.
 -                     (apply (lambda ,args ,@body) ,argssym)))))
 -       (runrestofhook ,var
 -                      ;; The global part of the hook, if any.
 -                      ,(if (symbolp var)
 -                           `(if (local-variable-p ',var)
 -                                (default-value ',var)))
 -                      (list ,@args)))))
  \f
  ;; Minibuffer prompt stuff.
  
@@@ -6752,4 -6657,5 +6741,4 @@@ warning using STRING as the message."
  
  (provide 'simple)
  
 -;; arch-tag: 24af67c0-2a49-44f6-b3b1-312d8b570dfd
  ;;; simple.el ends here
diff --combined lisp/speedbar.el
index f3b7531ba2414a37d8607ef9a428e66d6ba929dc,d46dba39e854b94e48755b82d8239f0ca4c8bfa5..7413f73ee5077cfe53b5e3692afd7996b00d7f04
@@@ -1472,7 -1472,7 +1472,7 @@@ File style information is displayed wit
      (if (looking-at "\\s-*[[<({].[]>)}] ") (goto-char (match-end 0)))
      ;; Get the text
      (speedbar-message "Text: %s" (buffer-substring-no-properties
 -                                (point) (progn (end-of-line) (point))))))
 +                                (point) (line-end-position)))))
  
  (defun speedbar-item-info ()
    "Display info in the minibuffer about the button the mouse is over.
@@@ -1498,7 -1498,8 +1498,7 @@@ instead of reading it from the speedba
  Return nil if not applicable."
    (save-excursion
      (beginning-of-line)
 -    (if (re-search-forward " [-+=]?> \\([^\n]+\\)"
 -                         (save-excursion(end-of-line)(point)) t)
 +    (if (re-search-forward " [-+=]?> \\([^\n]+\\)" (line-end-position) t)
         (let* ((tag (match-string 1))
              (attr (speedbar-line-token))
              (item nil)
            (looking-at "\\([0-9]+\\):")
            (setq item (file-name-nondirectory (speedbar-line-directory)))
            (speedbar-message "Tag: %s  in %s" tag item)))
 -      (if (re-search-forward "{[+-]} \\([^\n]+\\)$"
 -                           (save-excursion(end-of-line)(point)) t)
 +      (if (re-search-forward "{[+-]} \\([^\n]+\\)$" (line-end-position) t)
          (speedbar-message "Group of tags \"%s\"" (match-string 1))
        (if (re-search-forward " [+-]?[()|@] \\([^\n]+\\)$" nil t)
            (let* ((detailtext (match-string 1))
@@@ -1643,8 -1645,8 +1643,8 @@@ Files can be renamed to new names or mo
      (if (speedbar-y-or-n-p (format "Delete %s? " f) t)
        (progn
          (if (file-directory-p f)
 -            (delete-directory f)
 -          (delete-file f))
 +            (delete-directory f t t)
 +          (delete-file f t))
          (speedbar-message "Okie dokie.")
          (let ((p (point)))
            (speedbar-refresh)
@@@ -1692,8 -1694,7 +1692,7 @@@ variable `speedbar-obj-alist'.
      (speedbar-enable-update)))
  
  (defun speedbar-toggle-images ()
-   "Toggle use of images in the speedbar frame.
- Images are not available in Emacs 20 or earlier."
+   "Toggle use of images in the speedbar frame."
    (interactive)
    (setq speedbar-use-images (not speedbar-use-images))
    (speedbar-refresh))
@@@ -2060,7 -2061,8 +2059,7 @@@ position to insert a new item, and tha
    "Change the expansion button character to CHAR for the current line."
    (save-excursion
      (beginning-of-line)
 -    (if (re-search-forward ":\\s-*.\\([-+?]\\)" (save-excursion (end-of-line)
 -                                                              (point)) t)
 +    (if (re-search-forward ":\\s-*.\\([-+?]\\)" (line-end-position) t)
        (speedbar-with-writable
          (goto-char (match-end 1))
          (insert-char char 1 t)
@@@ -2849,7 -2851,9 +2848,7 @@@ indicator, then do not add a space.
    (speedbar-with-writable
      (save-excursion
        (if (and replace-this
 -             (re-search-forward replace-this (save-excursion (end-of-line)
 -                                                             (point))
 -                                t))
 +             (re-search-forward replace-this (line-end-position) t))
          (delete-region (match-beginning 0) (match-end 0))))
      (end-of-line)
      (if (not (string= " " indicator-string))
@@@ -2947,7 -2951,9 +2946,7 @@@ the file being checked.
         (fn (buffer-substring-no-properties
              ;; Skip-chars: thanks ptype@dra.hmg.gb
              (point) (progn
 -                      (skip-chars-forward "^ "
 -                                          (save-excursion (end-of-line)
 -                                                          (point)))
 +                      (skip-chars-forward "^ " (line-end-position))
                        (point))))
         (fulln (concat f fn)))
      (if (<= 2 speedbar-verbosity-level)
@@@ -3019,7 -3025,9 +3018,7 @@@ the file being checked.
         (fn (buffer-substring-no-properties
              ;; Skip-chars: thanks ptype@dra.hmg.gb
              (point) (progn
 -                      (skip-chars-forward "^ "
 -                                          (save-excursion (end-of-line)
 -                                                          (point)))
 +                      (skip-chars-forward "^ " (line-end-position))
                        (point))))
         (fulln (concat f fn)))
      (if (<= 2 speedbar-verbosity-level)
@@@ -3240,7 -3248,7 +3239,7 @@@ directory with these items.
        ;; If this fails, then it is a non-standard click, and as such,
        ;; perfectly allowed.
        (if (re-search-forward "[]>?}] [^ ]"
 -                             (save-excursion (end-of-line) (point))
 +                             (line-end-position)
                               t)
            (progn
              (forward-char -1)
@@@ -3258,7 -3266,7 +3257,7 @@@ With universal argument ARG, flush cach
      (condition-case nil
        (progn
          (re-search-forward ":\\s-*.\\+. "
 -                           (save-excursion (end-of-line) (point)))
 +                           (line-end-position))
          (forward-char -2)
          (speedbar-do-function-pointer))
        (error (speedbar-position-cursor-on-line)))))
    (condition-case nil
        (progn
        (re-search-forward ":\\s-*.-. "
 -                         (save-excursion (end-of-line) (point)))
 +                         (line-end-position))
        (forward-char -2)
        (speedbar-do-function-pointer))
      (error (speedbar-position-cursor-on-line))))
    (condition-case nil
        (progn
        (re-search-forward ":\\s-*.[-+]. "
 -                         (save-excursion (end-of-line) (point)))
 +                         (line-end-position))
        (forward-char -2)
        (speedbar-do-function-pointer))
      (error (speedbar-position-cursor-on-line))))
@@@ -3755,12 -3763,17 +3754,12 @@@ The line should contain output from eta
  regular expression EXPR."
    (let* ((sym (if (stringp expr)
                  (if (save-excursion
 -                      (re-search-forward expr (save-excursion
 -                                                (end-of-line)
 -                                                (point)) t))
 +                      (re-search-forward expr (line-end-position) t))
                      (buffer-substring-no-properties (match-beginning 1)
                                                      (match-end 1)))
                (funcall expr)))
         (pos (let ((j (re-search-forward "[\C-?\C-a]\\([0-9]+\\),\\([0-9]+\\)"
 -                                        (save-excursion
 -                                          (end-of-line)
 -                                          (point))
 -                                        t)))
 +                                        (line-end-position) t)))
                (if (and j sym)
                    (1+ (string-to-number (buffer-substring-no-properties
                                        (match-beginning 2)
  (defun speedbar-parse-c-or-c++tag ()
    "Parse a C or C++ tag, which tends to be a little complex."
    (save-excursion
 -    (let ((bound (save-excursion (end-of-line) (point))))
 +    (let ((bound (line-end-position)))
        (cond ((re-search-forward "\C-?\\([^\C-a]+\\)\C-a" bound t)
             (buffer-substring-no-properties (match-beginning 1)
                                             (match-end 1)))
  (defun speedbar-parse-tex-string ()
    "Parse a Tex string.  Only find data which is relevant."
    (save-excursion
 -    (let ((bound (save-excursion (end-of-line) (point))))
 +    (let ((bound (line-end-position)))
        (cond ((re-search-forward "\\(\\(sub\\)*section\\|chapter\\|cite\\)\\s-*{[^\C-?}]*}?" bound t)
             (buffer-substring-no-properties (match-beginning 0)
                                             (match-end 0)))
@@@ -3934,7 -3947,9 +3933,7 @@@ Optional argument DEPTH specifies the c
        (let* ((bn (speedbar-line-text))
               (buffer (if bn (get-buffer bn))))
          (if buffer
 -            (if (save-excursion
 -                  (end-of-line)
 -                  (eq start (point)))
 +            (if (eq start (line-end-position))
                  (or (with-current-buffer buffer default-directory)
                      "")
                (buffer-file-name buffer))))))))
@@@ -3966,10 -3981,14 +3965,10 @@@ TEXT is the buffer's name, TOKEN and IN
      (beginning-of-line)
      ;; If this fails, then it is a non-standard click, and as such,
      ;; perfectly allowed
 -    (if (re-search-forward "[]>?}] [^ ]"
 -                         (save-excursion (end-of-line) (point))
 -                         t)
 +    (if (re-search-forward "[]>?}] [^ ]" (line-end-position) t)
        (let ((text (progn
                      (forward-char -1)
 -                    (buffer-substring (point) (save-excursion
 -                                                (end-of-line)
 -                                                (point))))))
 +                    (buffer-substring (point) (line-end-position)))))
          (if (get-buffer text)
              (progn
                (set-buffer text)
    "Highlight the current line, unhighlighting a previously jumped to line."
    (speedbar-unhighlight-one-tag-line)
    (setq speedbar-highlight-one-tag-line
 -      (speedbar-make-overlay (save-excursion (beginning-of-line) (point))
 -                             (save-excursion (end-of-line)
 -                                             (forward-char 1)
 -                                             (point))))
 +      (speedbar-make-overlay (line-beginning-position)
 +                             (1+ (line-end-position))))
    (speedbar-overlay-put speedbar-highlight-one-tag-line 'face
                        'speedbar-highlight-face)
 -  (add-hook 'pre-command-hook 'speedbar-unhighlight-one-tag-line)
 -  )
 +  (add-hook 'pre-command-hook 'speedbar-unhighlight-one-tag-line))
  
  (defun speedbar-unhighlight-one-tag-line ()
    "Unhighlight the currently highlighted line."
diff --combined lisp/subr.el
index c9300ad9711b3776f071fc78e8a907d1e7ea49f5,7449295421c36e3ddb85f1da3b1a3964fb7a0b76..70d8b76faa510b9f56768a297afdacb3e30e5457
@@@ -1,12 -1,10 +1,12 @@@
  ;;; subr.el --- basic lisp subroutines for Emacs
  
  ;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
 -;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 +;;   2004, 2005, 2006, 2007, 2008, 2009, 2010
 +;;   Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
  ;; Keywords: internal
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -289,11 -287,14 +289,11 @@@ If LIST is nil, return nil
  If N is non-nil, return the Nth-to-last link of LIST.
  If N is bigger than the length of LIST, return LIST."
    (if n
 -      (let ((m 0) (p list))
 -      (while (consp p)
 -        (setq m (1+ m) p (cdr p)))
 -      (if (<= n 0) p
 -        (if (< n m) (nthcdr (- m n) list) list)))
 -    (while (consp (cdr list))
 -      (setq list (cdr list)))
 -    list))
 +      (and (>= n 0)
 +           (let ((m (safe-length list)))
 +             (if (< n m) (nthcdr (- m n) list) list)))
 +    (and list
 +         (nthcdr (1- (safe-length list)) list))))
  
  (defun butlast (list &optional n)
    "Return a copy of LIST with the last N elements removed."
@@@ -954,7 -955,8 +954,8 @@@ and `event-end' functions.
              ((null spacing)
               (setq spacing 0)))
        (cons (/ (car pair) (frame-char-width frame))
-             (/ (cdr pair) (+ (frame-char-height frame) spacing))))))))
+             (- (/ (cdr pair) (+ (frame-char-height frame) spacing))
+                (if (null header-line-format) 0 1))))))))
  
  (defun posn-actual-col-row (position)
    "Return the actual column and row in POSITION, measured in characters.
@@@ -1015,6 -1017,7 +1016,6 @@@ and `event-end' functions.
  (define-obsolete-function-alias 'eval-current-buffer 'eval-buffer "22.1")
  (define-obsolete-function-alias 'string-to-int 'string-to-number "22.1")
  
 -(make-obsolete 'char-bytes "now always returns 1." "20.4")
  (make-obsolete 'forward-point "use (+ (point) N) instead." "23.1")
  
  (defun insert-string (&rest args)
@@@ -1055,6 -1058,7 +1056,6 @@@ is converted into a string by expressin
  (make-obsolete-variable 'default-line-spacing 'line-spacing "23.2")
  (make-obsolete-variable 'default-abbrev-mode 'abbrev-mode "23.2")
  (make-obsolete-variable 'default-ctl-arrow 'ctl-arrow "23.2")
 -(make-obsolete-variable 'default-direction-reversed 'direction-reversed "23.2")
  (make-obsolete-variable 'default-truncate-lines 'truncate-lines "23.2")
  (make-obsolete-variable 'default-left-margin 'left-margin "23.2")
  (make-obsolete-variable 'default-tab-width 'tab-width "23.2")
  (make-obsolete 'process-filter-multibyte-p nil "23.1")
  (make-obsolete 'set-process-filter-multibyte nil "23.1")
  
 -(make-obsolete-variable 'directory-sep-char "do not use it." "21.1")
  (make-obsolete-variable
   'mode-line-inverse-video
   "use the appropriate faces instead."
@@@ -1155,6 -1160,37 +1156,6 @@@ to reread, so it now uses nil to mean `
  \f
  ;;;; Hook manipulation functions.
  
 -(defun make-local-hook (hook)
 -  "Make the hook HOOK local to the current buffer.
 -The return value is HOOK.
 -
 -You never need to call this function now that `add-hook' does it for you
 -if its LOCAL argument is non-nil.
 -
 -When a hook is local, its local and global values
 -work in concert: running the hook actually runs all the hook
 -functions listed in *either* the local value *or* the global value
 -of the hook variable.
 -
 -This function works by making t a member of the buffer-local value,
 -which acts as a flag to run the hook functions in the default value as
 -well.  This works for all normal hooks, but does not work for most
 -non-normal hooks yet.  We will be changing the callers of non-normal
 -hooks so that they can handle localness; this has to be done one by
 -one.
 -
 -This function does nothing if HOOK is already local in the current
 -buffer.
 -
 -Do not use `make-local-variable' to make a hook variable buffer-local."
 -  (if (local-variable-p hook)
 -      nil
 -    (or (boundp hook) (set hook nil))
 -    (make-local-variable hook)
 -    (set hook (list t)))
 -  hook)
 -(make-obsolete 'make-local-hook "not necessary any more." "21.1")
 -
  (defun add-hook (hook function &optional append local)
    "Add to the value of HOOK the function FUNCTION.
  FUNCTION is not added if already present.
@@@ -1445,7 -1481,8 +1446,7 @@@ If TOGGLE has a `:menu-tag', that is us
              (let ((rest (cdr found)))
                (setcdr found nil)
                (nconc found (list (list toggle name)) rest))
 -          (setq minor-mode-alist (cons (list toggle name)
 -                                       minor-mode-alist)))))))
 +          (push (list toggle name) minor-mode-alist))))))
    ;; Add the toggle to the minor-modes menu if requested.
    (when (get toggle :included)
      (define-key mode-line-mode-menu
              (let ((rest (cdr found)))
                (setcdr found nil)
                (nconc found (list (cons toggle keymap)) rest))
 -          (setq minor-mode-map-alist (cons (cons toggle keymap)
 -                                           minor-mode-map-alist))))))))
 +          (push (cons toggle keymap) minor-mode-map-alist)))))))
  \f
  ;;; Load history
  
@@@ -1592,7 -1630,6 +1593,7 @@@ Return nil if there isn't one.
              load-elt (and loads (car loads)))))
      load-elt))
  
 +(put 'eval-after-load 'lisp-indent-function 1)
  (defun eval-after-load (file form)
    "Arrange that, if FILE is ever loaded, FORM will be run at that time.
  If FILE is already loaded, evaluate FORM right now.
@@@ -2381,9 -2418,8 +2382,9 @@@ Otherwise, return nil.
    (or (stringp object) (null object)))
  
  (defun booleanp (object)
 -  "Return non-nil if OBJECT is one of the two canonical boolean values: t or nil."
 -  (memq object '(nil t)))
 +  "Return t if OBJECT is one of the two canonical boolean values: t or nil.
 +Otherwise, return nil."
 +  (and (memq object '(nil t)) t))
  
  (defun field-at-pos (pos)
    "Return the field at position POS, taking stickiness etc into account."
@@@ -2677,7 -2713,7 +2678,7 @@@ nor the buffer list.
    "Create a new buffer, evaluate BODY there, and write the buffer to FILE.
  The value returned is the value of the last form in BODY.
  See also `with-temp-buffer'."
 -  (declare (debug t))
 +  (declare (indent 1) (debug t))
    (let ((temp-file (make-symbol "temp-file"))
        (temp-buffer (make-symbol "temp-buffer")))
      `(let ((,temp-file ,file)
@@@ -2699,7 -2735,7 +2700,7 @@@ The value returned is the value of the 
  MESSAGE is written to the message log buffer if `message-log-max' is non-nil.
  If MESSAGE is nil, the echo area and message log buffer are unchanged.
  Use a MESSAGE of \"\" to temporarily clear the echo area."
 -  (declare (debug t))
 +  (declare (debug t) (indent 1))
    (let ((current-message (make-symbol "current-message"))
        (temp-message (make-symbol "with-temp-message")))
      `(let ((,temp-message ,message)
@@@ -2729,7 -2765,7 +2730,7 @@@ See also `with-temp-file' and `with-out
                  (kill-buffer ,temp-buffer)))))))
  
  (defmacro with-silent-modifications (&rest body)
 -  "Execute BODY, pretending it does not modifies the buffer.
 +  "Execute BODY, pretending it does not modify the buffer.
  If BODY performs real modifications to the buffer's text, other
  than cosmetic ones, undo data may become corrupted.
  Typically used around modifications of text-properties which do not really
@@@ -3191,7 -3227,7 +3192,7 @@@ that can be added.
  The syntax table of the current buffer is saved, BODY is evaluated, and the
  saved table is restored, even in case of an abnormal exit.
  Value is what BODY returns."
 -  (declare (debug t))
 +  (declare (debug t) (indent 1))
    (let ((old-table (make-symbol "table"))
        (old-buffer (make-symbol "buffer")))
      `(let ((,old-table (syntax-table))
@@@ -3321,56 -3357,6 +3322,56 @@@ clone should be incorporated in the clo
      (overlay-put ol2 'evaporate t)
      (overlay-put ol2 'text-clones dups)))
  \f
 +;;;; Misc functions moved over from the C side.
 +
 +(defun y-or-n-p (prompt)
 +  "Ask user a \"y or n\" question.  Return t if answer is \"y\".
 +The argument PROMPT is the string to display to ask the question.
 +It should end in a space; `y-or-n-p' adds `(y or n) ' to it.
 +No confirmation of the answer is requested; a single character is enough.
 +Also accepts Space to mean yes, or Delete to mean no.  \(Actually, it uses
 +the bindings in `query-replace-map'; see the documentation of that variable
 +for more information.  In this case, the useful bindings are `act', `skip',
 +`recenter', and `quit'.\)
 +
 +Under a windowing system a dialog box will be used if `last-nonmenu-event'
 +is nil and `use-dialog-box' is non-nil."
 +  ;; ¡Beware! when I tried to edebug this code, Emacs got into a weird state
 +  ;; where all the keys were unbound (i.e. it somehow got triggered
 +  ;; within read-key, apparently).  I had to kill it.
 +  (let ((answer 'recenter))
 +    (if (and (display-popup-menus-p)
 +             (listp last-nonmenu-event)
 +             use-dialog-box)
 +        (setq answer
 +              (x-popup-dialog t `(,prompt ("yes" . act) ("No" . skip))))
 +      (setq prompt (concat prompt
 +                           (if (eq ?\s (aref prompt (1- (length prompt))))
 +                               "" " ")
 +                           "(y or n) "))
 +      (while
 +          (let* ((key
 +                  (let ((cursor-in-echo-area t))
 +                    (when minibuffer-auto-raise
 +                      (raise-frame (window-frame (minibuffer-window))))
 +                    (read-key (propertize (if (eq answer 'recenter)
 +                                              prompt
 +                                            (concat "Please answer y or n.  "
 +                                                    prompt))
 +                                          'face 'minibuffer-prompt)))))
 +            (setq answer (lookup-key query-replace-map (vector key) t))
 +            (cond
 +             ((memq answer '(skip act)) nil)
 +             ((eq answer 'recenter) (recenter) t)
 +             ((memq answer '(exit-prefix quit)) (signal 'quit nil) t)
 +             (t t)))
 +        (ding)
 +        (discard-input)))
 +    (let ((ret (eq answer 'act)))
 +      (unless noninteractive
 +        (message "%s %s" prompt (if ret "y" "n")))
 +      ret)))
 +
  ;;;; Mail user agents.
  
  ;; Here we include just enough for other packages to be able
@@@ -3430,59 -3416,51 +3431,59 @@@ The properties used on SYMBOL are `comp
  ;; digits of precision, it doesn't really matter here.  On the other
  ;; hand, it greatly simplifies the code.
  
 -(defsubst progress-reporter-update (reporter value)
 +(defsubst progress-reporter-update (reporter &optional value)
    "Report progress of an operation in the echo area.
 -However, if the change since last echo area update is too small
 -or not enough time has passed, then do nothing (see
 -`make-progress-reporter' for details).
 -
 -First parameter, REPORTER, should be the result of a call to
 -`make-progress-reporter'.  Second, VALUE, determines the actual
 -progress of operation; it must be between MIN-VALUE and MAX-VALUE
 -as passed to `make-progress-reporter'.
 -
 -This function is very inexpensive, you may not bother how often
 -you call it."
 -  (when (>= value (car reporter))
 -    (progress-reporter-do-update reporter value)))
 +REPORTER should be the result of a call to `make-progress-reporter'.
 +
 +If REPORTER is a numerical progress reporter---i.e. if it was
 + made using non-nil MIN-VALUE and MAX-VALUE arguments to
 + `make-progress-reporter'---then VALUE should be a number between
 + MIN-VALUE and MAX-VALUE.
 +
 +If REPORTER is a non-numerical reporter, VALUE should be nil.
  
 -(defun make-progress-reporter (message min-value max-value
 -                                     &optional current-value
 -                                     min-change min-time)
 -  "Return progress reporter object to be used with `progress-reporter-update'.
 -
 -MESSAGE is shown in the echo area.  When at least 1% of operation
 -is complete, the exact percentage will be appended to the
 -MESSAGE.  When you call `progress-reporter-done', word \"done\"
 -is printed after the MESSAGE.  You can change MESSAGE of an
 -existing progress reporter with `progress-reporter-force-update'.
 -
 -MIN-VALUE and MAX-VALUE designate starting (0% complete) and
 -final (100% complete) states of operation.  The latter should be
 -larger; if this is not the case, then simply negate all values.
 -Optional CURRENT-VALUE specifies the progress by the moment you
 -call this function.  You should omit it or set it to nil in most
 -cases since it defaults to MIN-VALUE.
 -
 -Optional MIN-CHANGE determines the minimal change in percents to
 -report (default is 1%.)  Optional MIN-TIME specifies the minimal
 -time before echo area updates (default is 0.2 seconds.)  If
 -`float-time' function is not present, then time is not tracked
 -at all.  If OS is not capable of measuring fractions of seconds,
 -then this parameter is effectively rounded up."
 +This function is relatively inexpensive.  If the change since
 +last update is too small or insufficient time has passed, it does
 +nothing."
 +  (when (or (not (numberp value))      ; For pulsing reporter
 +          (>= value (car reporter))) ; For numerical reporter
 +    (progress-reporter-do-update reporter value)))
  
 +(defun make-progress-reporter (message &optional min-value max-value
 +                                     current-value min-change min-time)
 +  "Return progress reporter object for use with `progress-reporter-update'.
 +
 +MESSAGE is shown in the echo area, with a status indicator
 +appended to the end.  When you call `progress-reporter-done', the
 +word \"done\" is printed after the MESSAGE.  You can change the
 +MESSAGE of an existing progress reporter by calling
 +`progress-reporter-force-update'.
 +
 +MIN-VALUE and MAX-VALUE, if non-nil, are starting (0% complete)
 +and final (100% complete) states of operation; the latter should
 +be larger.  In this case, the status message shows the percentage
 +progress.
 +
 +If MIN-VALUE and/or MAX-VALUE is omitted or nil, the status
 +message shows a \"spinning\", non-numeric indicator.
 +
 +Optional CURRENT-VALUE is the initial progress; the default is
 +MIN-VALUE.
 +Optional MIN-CHANGE is the minimal change in percents to report;
 +the default is 1%.
 +CURRENT-VALUE and MIN-CHANGE do not have any effect if MIN-VALUE
 +and/or MAX-VALUE are nil.
 +
 +Optional MIN-TIME specifies the minimum interval time between
 +echo area updates (default is 0.2 seconds.)  If the function
 +`float-time' is not present, time is not tracked at all.  If the
 +OS is not capable of measuring fractions of seconds, this
 +parameter is effectively rounded up."
    (unless min-time
      (setq min-time 0.2))
    (let ((reporter
 -       (cons min-value ;; Force a call to `message' now
 +       ;; Force a call to `message' now
 +       (cons (or min-value 0)
               (vector (if (and (fboundp 'float-time)
                                (>= min-time 0.02))
                           (float-time) nil)
      (progress-reporter-update reporter (or current-value min-value))
      reporter))
  
 -(defun progress-reporter-force-update (reporter value &optional new-message)
 +(defun progress-reporter-force-update (reporter &optional value new-message)
    "Report progress of an operation in the echo area unconditionally.
  
 -First two parameters are the same as for
 -`progress-reporter-update'.  Optional NEW-MESSAGE allows you to
 -change the displayed message."
 +The first two arguments are the same as in `progress-reporter-update'.
 +NEW-MESSAGE, if non-nil, sets a new message for the reporter."
    (let ((parameters (cdr reporter)))
      (when new-message
        (aset parameters 3 new-message))
        (aset parameters 0 (float-time)))
      (progress-reporter-do-update reporter value)))
  
 +(defvar progress-reporter--pulse-characters ["-" "\\" "|" "/"]
 +  "Characters to use for pulsing progress reporters.")
 +
  (defun progress-reporter-do-update (reporter value)
    (let* ((parameters   (cdr reporter))
 +       (update-time  (aref parameters 0))
         (min-value    (aref parameters 1))
         (max-value    (aref parameters 2))
 -       (one-percent  (/ (- max-value min-value) 100.0))
 -       (percentage   (if (= max-value min-value)
 -                         0
 -                       (truncate (/ (- value min-value) one-percent))))
 -       (update-time  (aref parameters 0))
 +       (text         (aref parameters 3))
         (current-time (float-time))
         (enough-time-passed
          ;; See if enough time has passed since the last update.
              (when (>= current-time update-time)
                ;; Calculate time for the next update
                (aset parameters 0 (+ update-time (aref parameters 5)))))))
 -    ;;
 -    ;; Calculate NEXT-UPDATE-VALUE.  If we are not going to print
 -    ;; message this time because not enough time has passed, then use
 -    ;; 1 instead of MIN-CHANGE.  This makes delays between echo area
 -    ;; updates closer to MIN-TIME.
 -    (setcar reporter
 -          (min (+ min-value (* (+ percentage
 -                                  (if enough-time-passed
 -                                      (aref parameters 4) ;; MIN-CHANGE
 -                                    1))
 -                               one-percent))
 -               max-value))
 -    (when (integerp value)
 -      (setcar reporter (ceiling (car reporter))))
 -    ;;
 -    ;; Only print message if enough time has passed
 -    (when enough-time-passed
 -      (if (> percentage 0)
 -        (message "%s%d%%" (aref parameters 3) percentage)
 -      (message "%s" (aref parameters 3))))))
 +    (cond ((and min-value max-value)
 +         ;; Numerical indicator
 +         (let* ((one-percent (/ (- max-value min-value) 100.0))
 +                (percentage  (if (= max-value min-value)
 +                                 0
 +                               (truncate (/ (- value min-value)
 +                                            one-percent)))))
 +           ;; Calculate NEXT-UPDATE-VALUE.  If we are not printing
 +           ;; message because not enough time has passed, use 1
 +           ;; instead of MIN-CHANGE.  This makes delays between echo
 +           ;; area updates closer to MIN-TIME.
 +           (setcar reporter
 +                   (min (+ min-value (* (+ percentage
 +                                           (if enough-time-passed
 +                                               ;; MIN-CHANGE
 +                                               (aref parameters 4)
 +                                             1))
 +                                        one-percent))
 +                        max-value))
 +           (when (integerp value)
 +             (setcar reporter (ceiling (car reporter))))
 +           ;; Only print message if enough time has passed
 +           (when enough-time-passed
 +             (if (> percentage 0)
 +                 (message "%s%d%%" text percentage)
 +               (message "%s" text)))))
 +        ;; Pulsing indicator
 +        (enough-time-passed
 +         (let ((index (mod (1+ (car reporter)) 4))
 +               (message-log-max nil))
 +           (setcar reporter index)
 +           (message "%s %s"
 +                    text
 +                    (aref progress-reporter--pulse-characters
 +                          index)))))))
  
  (defun progress-reporter-done (reporter)
    "Print reporter's message followed by word \"done\" in echo area."
@@@ -3593,18 -3557,18 +3594,18 @@@ convenience wrapper around `make-progre
  ;;;; Comparing version strings.
  
  (defconst version-separator "."
 -  "*Specify the string used to separate the version elements.
 +  "Specify the string used to separate the version elements.
  
  Usually the separator is \".\", but it can be any other string.")
  
  
  (defconst version-regexp-alist
 -  '(("^[-_+ ]?a\\(lpha\\)?$"   . -3)
 -    ("^[-_+]$"                 . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases
 -    ("^[-_+ ]cvs$"             . -3)  ; treat "1.2.3-CVS" as alpha release
 -    ("^[-_+ ]?b\\(eta\\)?$"    . -2)
 -    ("^[-_+ ]?\\(pre\\|rc\\)$" . -1))
 -  "*Specify association between non-numeric version and its priority.
 +  '(("^[-_+ ]?alpha$"           . -3)
 +    ("^[-_+]$"                  . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases
 +    ("^[-_+ ]cvs$"              . -3) ; treat "1.2.3-CVS" as alpha release
 +    ("^[-_+ ]?beta$"            . -2)
 +    ("^[-_+ ]?\\(pre\\|rcc\\)$" . -1))
 +  "Specify association between non-numeric version and its priority.
  
  This association is used to handle version string like \"1.0pre2\",
  \"0.9alpha1\", etc.  It's used by `version-to-list' (which see) to convert the
@@@ -3696,13 -3660,8 +3697,13 @@@ See documentation for `version-separato
            (setq al version-regexp-alist)
            (while (and al (not (string-match (caar al) s)))
              (setq al (cdr al)))
 -          (or al (error "Invalid version syntax: '%s'" ver))
 -          (setq lst (cons (cdar al) lst)))))
 +          (cond (al
 +                 (push (cdar al) lst))
 +                ;; Convert 22.3a to 22.3.1, 22.3b to 22.3.2, etc.
 +                ((string-match "^[-_+ ]?\\([a-zA-Z]\\)$" s)
 +                 (push (- (aref (downcase (match-string 1 s)) 0) ?a -1)
 +                       lst))
 +                (t (error "Invalid version syntax: '%s'" ver))))))
        (if (null lst)
          (error "Invalid version syntax: '%s'" ver)
        (nreverse lst)))))
@@@ -3754,7 -3713,7 +3755,7 @@@ turn is higher than (1 -2), which is hi
    "Return t if L1, a list specification of a version, is lower or equal to L2.
  
  Note that integer list (1) is equal to (1 0), (1 0 0), (1 0 0 0),
 -etc.  That is, the trailing zeroes are irrelevant.  Also, integer
 +etc.  That is, the trailing zeroes are insignificant.  Also, integer
  list (1) is greater than (1 -1) which is greater than (1 -2)
  which is greater than (1 -3)."
    (while (and l1 l2 (= (car l1) (car l2)))
@@@ -3796,7 -3755,7 +3797,7 @@@ which is higher than \"1alpha\".
    "Return t if version V1 is lower (older) than or equal to V2.
  
  Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
 -etc.  That is, the trailing \".0\"s are insignificant..  Also, version
 +etc.  That is, the trailing \".0\"s are insignificant.  Also, version
  string \"1\" is higher (newer) than \"1pre\", which is higher than \"1beta\",
  which is higher than \"1alpha\"."
    (version-list-<= (version-to-list v1) (version-to-list v2)))
    "Return t if version V1 is equal to V2.
  
  Note that version string \"1\" is equal to \"1.0\", \"1.0.0\", \"1.0.0.0\",
 -etc.  That is, the trailing \".0\"s are insignificant..  Also, version
 +etc.  That is, the trailing \".0\"s are insignificant.  Also, version
  string \"1\" is higher (newer) than \"1pre\", which is higher than \"1beta\",
  which is higher than \"1alpha\"."
    (version-list-= (version-to-list v1) (version-to-list v2)))
index 961be29cc86ffe9c79327efa20cf619f1709c1ad,f1bb99571250c4ca21434e976ee59134e894b5d9..98add4cfd28181e1c39cd4dd531bda6723d34ea3
  (defgroup picture nil
    "Picture mode --- editing using quarter-plane screen model."
    :prefix "picture-"
 -  :group 'editing)
 +  :group 'wp)
  
  (defcustom picture-rectangle-ctl ?+
 -  "*Character `picture-draw-rectangle' uses for top left corners."
 +  "Character `picture-draw-rectangle' uses for top left corners."
    :type 'character
    :group 'picture)
  (defcustom picture-rectangle-ctr ?+
 -  "*Character `picture-draw-rectangle' uses for top right corners."
 +  "Character `picture-draw-rectangle' uses for top right corners."
    :type 'character
    :group 'picture)
  (defcustom picture-rectangle-cbr ?+
 -  "*Character `picture-draw-rectangle' uses for bottom right corners."
 +  "Character `picture-draw-rectangle' uses for bottom right corners."
    :type 'character
    :group 'picture)
  (defcustom picture-rectangle-cbl ?+
 -  "*Character `picture-draw-rectangle' uses for bottom left corners."
 +  "Character `picture-draw-rectangle' uses for bottom left corners."
    :type 'character
    :group 'picture)
  (defcustom picture-rectangle-v   ?|
 -  "*Character `picture-draw-rectangle' uses for vertical lines."
 +  "Character `picture-draw-rectangle' uses for vertical lines."
    :type 'character
    :group 'picture)
  (defcustom picture-rectangle-h   ?-
 -  "*Character `picture-draw-rectangle' uses for horizontal lines."
 +  "Character `picture-draw-rectangle' uses for horizontal lines."
    :type 'character
    :group 'picture)
  
@@@ -226,16 -226,30 +226,30 @@@ Do \\[command-apropos]  picture-movemen
    (picture-motion (- arg)))
  
  (defun picture-mouse-set-point (event)
-   "Move point to the position clicked on, making whitespace if necessary."
+   "Move point to the position of EVENT, making whitespace if necessary."
    (interactive "e")
-   (let* ((pos (posn-col-row (event-start event)))
-        (x (car pos))
-        (y (cdr pos))
-        (current-row (count-lines (window-start) (line-beginning-position))))
-     (unless (equal x (current-column))
-       (picture-forward-column (- x (current-column))))
-     (unless (equal y current-row)
-       (picture-move-down (- y current-row)))))
+   (let ((position (event-start event)))
+     (unless (posn-area position) ; Ignore EVENT unless in text area
+       (let* ((window (posn-window position))
+            (frame  (if (framep window) window (window-frame window)))
+            (pair   (posn-x-y position))
+            (start-pos (window-start window))
+            (start-pair (posn-x-y (posn-at-point start-pos)))
+            (dx (- (car pair) (car start-pair)))
+            (dy (- (cdr pair) (cdr start-pair)))
+            (char-ht (frame-char-height frame))
+            (spacing (when (display-graphic-p frame)
+                       (or (with-current-buffer (window-buffer window)
+                             line-spacing)
+                           (frame-parameter frame 'line-spacing))))
+            rows cols)
+       (cond ((floatp spacing)
+              (setq spacing (truncate (* spacing char-ht))))
+             ((null spacing)
+              (setq spacing 0)))
+       (goto-char start-pos)
+       (picture-move-down      (/ dy (+ char-ht spacing)))
+       (picture-forward-column (/ dx (frame-char-width frame)))))))
  
  \f
  ;; Picture insertion and deletion.
@@@ -363,7 -377,7 +377,7 @@@ With positive argument insert that man
  ;; Picture Tabs
  
  (defcustom picture-tab-chars "!-~"
 -  "*A character set which controls behavior of commands.
 +  "A character set which controls behavior of commands.
  \\[picture-set-tab-stops] and \\[picture-tab-search].  It is NOT a
  regular expression, any regexp special characters will be quoted.
  It defines a set of \"interesting characters\" to look for when setting
@@@ -438,7 -452,7 +452,7 @@@ If no such character is found, move to 
          (move-to-column target))
        (if (re-search-forward
           (concat "[ \t]+[" (regexp-quote picture-tab-chars) "]")
 -         (save-excursion (end-of-line) (point))
 +         (line-end-position)
           'move)
          (setq target (1- (current-column)))
        (setq target nil)))
@@@ -775,4 -789,5 +789,4 @@@ Runs `picture-mode-exit-hook' at the en
  
  (provide 'picture)
  
 -;; arch-tag: e452d08d-a470-4fbf-896e-ea276698d1ca
  ;;; picture.el ends here
diff --combined lisp/vc/vc-hg.el
index 689cd4d12bd35efd84c49ef4ef6dbaa0273d9e45,52b748704270e8c64d28c1e48a318578a4b52314..2a2879aadb875da990837b43c985ee1c65c011dc
@@@ -3,8 -3,7 +3,8 @@@
  ;; Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
  
  ;; Author: Ivan Kanis
 -;; Keywords: tools
 +;; Keywords: vc tools
 +;; Package: vc
  
  ;; This file is part of GNU Emacs.
  
@@@ -134,6 -133,10 +134,10 @@@ If nil, use the value of `vc-diff-switc
    :version "23.1"
    :group 'vc)
  
+ (defcustom vc-hg-program "hg"
+   "Name of the Mercurial executable (excluding any arguments)."
+   :type 'string
+   :group 'vc)
  \f
  ;;; Properties of the backend
  
                             (append (list "TERM=dumb" "LANGUAGE=C")
                                     process-environment)))
                        (process-file
-                        "hg" nil t nil
+                        vc-hg-program nil t nil
                         "--config" "alias.status=status"
                         "--config" "defaults.status="
                         "status" "-A" (file-relative-name file)))
                      (let ((process-environment avoid-local-env))
                        ;; Ignore all errors.
                        (process-file
-                        "hg" nil t nil
+                        vc-hg-program nil t nil
                         "--config" "alias.parents=parents"
                         "--config" "defaults.parents="
                         "parents" "--template" "{rev}" (file-relative-name file)))
            (condition-case nil
                (let ((process-environment avoid-local-env))
                  (process-file
-                  "hg" nil nil nil
+                  vc-hg-program nil nil nil
                   ;; We use "log" here, if there's a faster command
                   ;; that returns true for an 'added file and false
                   ;; for an 'unregistered one, we could use that.
@@@ -620,7 -623,7 +624,7 @@@ REV is the revision to check out into W
    "A wrapper around `vc-do-command' for use in vc-hg.el.
  The difference to vc-do-command is that this function always invokes `hg',
  and that it passes `vc-hg-global-switches' to it before FLAGS."
-   (apply 'vc-do-command (or buffer "*vc*") okstatus "hg" file-or-list
+   (apply 'vc-do-command (or buffer "*vc*") okstatus vc-hg-program file-or-list
           (if (stringp vc-hg-global-switches)
               (cons vc-hg-global-switches flags)
             (append vc-hg-global-switches
diff --combined lisp/wid-edit.el
index e905e8f2a87fa68b0ffdbd4b349d0add9be2101c,e75aba222690d51fa4129f54d1aec22b501a9395..9c7de61d7cdc39bd80792755a2bcf39d838a0d9a
@@@ -6,7 -6,6 +6,7 @@@
  ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
  ;; Maintainer: FSF
  ;; Keywords: extensions
 +;; Package: emacs
  
  ;; This file is part of GNU Emacs.
  
@@@ -57,6 -56,8 +57,6 @@@
  
  ;;; Code:
  
 -(defvar widget)
 -
  ;;; Compatibility.
  
  (defun widget-event-point (event)
@@@ -77,7 -78,8 +77,7 @@@
    :link '(custom-manual "(widget)Top")
    :link '(emacs-library-link :tag "Lisp File" "widget.el")
    :prefix "widget-"
 -  :group 'extensions
 -  :group 'hypermedia)
 +  :group 'extensions)
  
  (defgroup widget-documentation nil
    "Options controlling the display of documentation strings."
@@@ -252,9 -254,7 +252,9 @@@ minibuffer.
               ;; Allocate digits to disabled alternatives
               ;; so that the digit of a given alternative never varies.
               (setq next-digit (1+ next-digit)))
 -           (insert "\nC-g = Quit"))
 +           (insert "\nC-g = Quit")
 +           (goto-char (point-min))
 +           (forward-line))
           (or some-choice-enabled
               (error "None of the choices is currently meaningful"))
           (define-key map [?\C-g] 'keyboard-quit)
@@@ -316,9 -316,8 +316,8 @@@ size field."
  
  (defvar widget-field-use-before-change t
    "Non-nil means use `before-change-functions' to track editable fields.
- This enables the use of undo, but doesn't work on Emacs 19.34 and earlier.
- Using before hooks also means that the :notify function can't know the
- new value.")
+ This enables the use of undo.  Using before hooks also means that
+ the :notify function can't know the new value.")
  
  (defun widget-specify-field (widget from to)
    "Specify editable button for WIDGET between FROM and TO."
@@@ -638,9 -637,9 +637,9 @@@ extension (xpm, xbm, gif, jpg, or png) 
                specs)
           (dolist (elt widget-image-conversion)
             (dolist (ext (cdr elt))
 -             (push (list :type (car elt) :file (concat image ext)) specs)))
 -         (setq specs (nreverse specs))
 -         (find-image specs)))
 +             (push (list :type (car elt) :file (concat image ext)
 +                         :ascent 'center) specs)))
 +         (find-image (nreverse specs))))
        (t
         ;; Oh well.
         nil)))
@@@ -657,7 -656,7 +656,7 @@@ IMAGE should either be an image or an i
  
  Optional arguments DOWN and INACTIVE are used instead of IMAGE when the
  button is pressed or inactive, respectively.  These are currently ignored."
 -  (if (and (display-graphic-p)
 +  (if (and (featurep 'image)
           (setq image (widget-image-find image)))
        (progn (widget-put widget :suppress-face t)
             (insert-image image tag))
@@@ -1053,7 -1052,7 +1052,7 @@@ POS defaults to the value of (point).
  
  (defvar widget-use-overlay-change t
    "If non-nil, use overlay change functions to tab around in the buffer.
- This is much faster, but doesn't work reliably on Emacs 19.34.")
+ This is much faster.")
  
  (defun widget-move (arg)
    "Move point to the ARG next field or button.
@@@ -1337,7 -1336,7 +1336,7 @@@ Unlike (get-char-property POS 'field), 
                     (goto-char end)
                     (while (and (eq (preceding-char) ?\s)
                                 (> (point) begin))
 -                     (delete-backward-char 1)))))))
 +                     (delete-char -1)))))))
        (widget-specify-secret field))
        (widget-apply field :notify field))))
  
@@@ -1461,15 -1460,11 +1460,15 @@@ The value of the :type attribute shoul
    :notify 'widget-default-notify
    :prompt-value 'widget-default-prompt-value)
  
 +(defvar widget--completing-widget)
 +
  (defun widget-default-complete (widget)
    "Call the value of the :complete-function property of WIDGET.
 -If that does not exist, call the value of `widget-complete-field'."
 -  (call-interactively (or (widget-get widget :complete-function)
 -                        widget-complete-field)))
 +If that does not exist, call the value of `widget-complete-field'.
 +During this call, `widget--completing-widget' is bound to WIDGET."
 +  (let ((widget--completing-widget widget))
 +    (call-interactively (or (widget-get widget :complete-function)
 +                          widget-complete-field))))
  
  (defun widget-default-create (widget)
    "Create WIDGET at point in the current buffer."
       ;; Parse escapes in format.
       (while (re-search-forward "%\\(.\\)" nil t)
         (let ((escape (char-after (match-beginning 1))))
 -       (delete-backward-char 2)
 +       (delete-char -2)
         (cond ((eq escape ?%)
                (insert ?%))
               ((eq escape ?\[)
                    (setq doc-begin (point))
                    (insert doc)
                    (while (eq (preceding-char) ?\n)
 -                    (delete-backward-char 1))
 +                    (delete-char -1))
                    (insert ?\n)
                    (setq doc-end (point)))))
               ((eq escape ?h)
@@@ -1881,7 -1876,6 +1880,7 @@@ by some other text in the `:format' str
    :valid-regexp ""
    :error "Field's value doesn't match allowed forms"
    :value-create 'widget-field-value-create
 +  :value-set 'widget-field-value-set
    :value-delete 'widget-field-value-delete
    :value-get 'widget-field-value-get
    :match 'widget-field-match)
@@@ -1920,18 -1914,6 +1919,18 @@@ the earlier input.
                        (widget-apply widget :value-get))
      widget))
  
 +(defun widget-field-value-set (widget value)
 +  "Set an editable text field WIDGET to VALUE"
 +  (let ((from (widget-field-start widget))
 +      (to (widget-field-text-end widget))
 +      (buffer (widget-field-buffer widget))
 +      (size (widget-get widget :size)))
 +    (when (and from to (buffer-live-p buffer))
 +      (with-current-buffer buffer
 +      (goto-char from)
 +      (delete-char (- to from))
 +      (insert value)))))
 +
  (defun widget-field-value-create (widget)
    "Create an editable text field."
    (let ((size (widget-get widget :size))
    (let ((from (widget-field-start widget))
        (to (widget-field-text-end widget))
        (buffer (widget-field-buffer widget))
 -      (size (widget-get widget :size))
        (secret (widget-get widget :secret))
        (old (current-buffer)))
      (if (and from to)
@@@ -2196,9 -2179,19 +2195,9 @@@ when he invoked the menu.
    ;; We could probably do the same job as the images using single
    ;; space characters in a boxed face with a stretch specification to
    ;; make them square.
 -  :on-glyph '(create-image "\300\300\141\143\067\076\034\030"
 -                         'xbm t :width 8 :height 8
 -                         :background "grey75" ; like default mode line
 -                         :foreground "black"
 -                         :relief -2
 -                         :ascent 'center)
 +  :on-glyph "checked"
    :off "[ ]"
 -  :off-glyph '(create-image (make-string 8 0)
 -                          'xbm t :width 8 :height 8
 -                          :background "grey75"
 -                          :foreground "black"
 -                          :relief -2
 -                          :ascent 'center)
 +  :off-glyph "unchecked"
    :help-echo "Toggle this item."
    :action 'widget-checkbox-action)
  
  
  (defun widget-checklist-value-create (widget)
    ;; Insert all values
 -  (let ((alist (widget-checklist-match-find widget (widget-get widget :value)))
 -      (args (widget-get widget :args)))
 -    (while args
 -      (widget-checklist-add-item widget (car args) (assq (car args) alist))
 -      (setq args (cdr args)))
 +  (let ((alist (widget-checklist-match-find widget))
 +      (args  (widget-get widget :args)))
 +    (dolist (item args)
 +      (widget-checklist-add-item widget item (assq item alist)))
      (widget-put widget :children (nreverse (widget-get widget :children)))))
  
  (defun widget-checklist-add-item (widget type chosen)
@@@ -2254,7 -2248,7 +2253,7 @@@ If the item is checked, CHOSEN is a con
       ;; Parse % escapes in format.
       (while (re-search-forward "%\\([bv%]\\)" nil t)
         (let ((escape (char-after (match-beginning 1))))
 -       (delete-backward-char 2)
 +       (delete-char -2)
         (cond ((eq escape ?%)
                (insert ?%))
               ((eq escape ?b)
                     values nil)))))
      (cons found rest)))
  
 -(defun widget-checklist-match-find (widget vals)
 +(defun widget-checklist-match-find (widget &optional vals)
    "Find the vals which match a type in the checklist.
  Return an alist of (TYPE MATCH)."
 +  (or vals (setq vals (widget-get widget :value)))
    (let ((greedy (widget-get widget :greedy))
        (args (copy-sequence (widget-get widget :args)))
        found)
       ;; Parse % escapes in format.
       (while (re-search-forward "%\\([bv%]\\)" nil t)
         (let ((escape (char-after (match-beginning 1))))
 -       (delete-backward-char 2)
 +       (delete-char -2)
         (cond ((eq escape ?%)
                (insert ?%))
               ((eq escape ?b)
       ;; Parse % escapes in format.
       (while (re-search-forward "%\\(.\\)" nil t)
         (let ((escape (char-after (match-beginning 1))))
 -       (delete-backward-char 2)
 +       (delete-char -2)
         (cond ((eq escape ?%)
                (insert ?%))
               ((eq escape ?i)
        argument answer found)
      (while args
        (setq argument (car args)
 -          args (cdr args)
 -          answer (widget-match-inline argument vals))
 -      (if answer
 -        (setq vals (cdr answer)
 -              found (append found (car answer)))
 +          args     (cdr args))
 +      (if (setq answer (widget-match-inline argument vals))
 +        (setq found (append found (car answer))
 +              vals (cdr answer))
        (setq vals nil
              args nil)))
      (if answer
  ;;; The `visibility' Widget.
  
  (define-widget 'visibility 'item
 -  "An indicator and manipulator for hidden items."
 +  "An indicator and manipulator for hidden items.
 +
 +The following properties have special meanings for this widget:
 +:on-image  Image filename or spec to display when the item is visible.
 +:on        Text shown if the \"on\" image is nil or cannot be displayed.
 +:off-image Image filename or spec to display when the item is hidden.
 +:off       Text shown if the \"off\" image is nil cannot be displayed."
    :format "%[%v%]"
    :button-prefix ""
    :button-suffix ""
 +  :on-image "down"
    :on "Hide"
 +  :off-image "right"
    :off "Show"
    :value-create 'widget-visibility-value-create
    :action 'widget-toggle-action
  
  (defun widget-visibility-value-create (widget)
    ;; Insert text representing the `on' and `off' states.
 -  (let ((on (widget-get widget :on))
 -      (off (widget-get widget :off)))
 -    (if on
 -      (setq on (concat widget-push-button-prefix
 -                       on
 -                       widget-push-button-suffix))
 -      (setq on ""))
 -    (if off
 -      (setq off (concat widget-push-button-prefix
 -                        off
 -                        widget-push-button-suffix))
 -      (setq off ""))
 -    (if (widget-value widget)
 -      (widget-image-insert widget on "down" "down-pushed")
 -      (widget-image-insert widget off "right" "right-pushed"))))
 +  (let* ((val (widget-value widget))
 +       (text (widget-get widget (if val :on :off)))
 +       (img (widget-image-find
 +             (widget-get widget (if val :on-image :off-image)))))
 +    (widget-image-insert widget
 +                       (if text
 +                           (concat widget-push-button-prefix text
 +                                   widget-push-button-suffix)
 +                         "")
 +                       (if img
 +                           (append img '(:ascent center))))))
  
  ;;; The `documentation-link' Widget.
  ;;
@@@ -2947,7 -2937,7 +2946,7 @@@ link for that string.
                (widget-create-child-and-convert
                 widget (widget-get widget :visibility-widget)
                 :help-echo "Show or hide rest of the documentation."
 -               :on "Hide Rest"
 +               :on "Hide"
                 :off "More"
                 :always-active t
                 :action 'widget-parent-action
@@@ -3041,13 -3031,14 +3040,13 @@@ as the value.
    :complete-function 'ispell-complete-word
    :prompt-history 'widget-string-prompt-value-history)
  
 -(defvar widget)
 -
  (defun widget-string-complete ()
    "Complete contents of string field.
  Completions are taken from the :completion-alist property of the
  widget.  If that isn't a list, it's evalled and expected to yield a list."
    (interactive)
 -  (let* ((completion-ignore-case (widget-get widget :completion-ignore-case))
 +  (let* ((widget widget--completing-widget)
 +       (completion-ignore-case (widget-get widget :completion-ignore-case))
         (alist (widget-get widget :completion-alist))
         (_ (unless (listp alist)
              (setq alist (eval alist)))))
@@@ -3092,10 -3083,9 +3091,10 @@@ It reads a file name from an editable t
  (defun widget-file-complete ()
    "Perform completion on file name preceding point."
    (interactive)
 -  (completion-in-region (widget-field-start widget)
 -                        (max (point) (widget-field-text-end widget))
 -                        'completion-file-name-table))
 +  (let ((widget widget--completing-widget))
 +    (completion-in-region (widget-field-start widget)
 +                        (max (point) (widget-field-text-end widget))
 +                        'completion-file-name-table)))
  
  (defun widget-file-prompt-value (widget prompt value unbound)
    ;; Read file from minibuffer.
@@@ -3704,7 -3694,6 +3703,7 @@@ example
  (define-widget 'color 'editable-field
    "Choose a color name (with sample)."
    :format "%{%t%}: %v (%{sample%})\n"
 +  :value-create 'widget-color-value-create
    :size 10
    :tag "Color"
    :value "black"
    :notify 'widget-color-notify
    :action 'widget-color-action)
  
 +(defun widget-color-value-create (widget)
 +  (widget-field-value-create widget)
 +  (widget-insert " ")
 +  (widget-create-child-and-convert
 +   widget 'push-button
 +   :tag " Choose " :action 'widget-color--choose-action)
 +  (widget-insert " "))
 +
 +(defun widget-color--choose-action (widget &optional event)
 +  (list-colors-display
 +   nil nil
 +   `(lambda (color)
 +      (when (buffer-live-p ,(current-buffer))
 +      (widget-value-set ',(widget-get widget :parent) color)
 +      (let* ((buf (get-buffer "*Colors*"))
 +             (win (get-buffer-window buf 0)))
 +        (bury-buffer buf)
 +        (and win (> (length (window-list)) 1)
 +             (delete-window win)))
 +      (pop-to-buffer ,(current-buffer))))))
 +
  (defun widget-color-complete (widget)
    "Complete the color in WIDGET."
    (require 'facemenu)                 ; for facemenu-color-alist
  
  (provide 'wid-edit)
  
- ;; arch-tag: a076e75e-18a1-4b46-8be5-3f317bcbc707
  ;;; wid-edit.el ends here
diff --combined nt/INSTALL
index 357cc8d0a8ed45ca81dd484447d287f2b90a1671,83986c4e7c213f14b5fcc1d8f297e03984142538..a000b21ade45ee368499da092b9089a7a08e825a
@@@ -1,5 -1,5 +1,5 @@@
 -                    Building and Installing Emacs
 -              on Windows NT/2K/XP and Windows 95/98/ME
 +                  Building and Installing Emacs on Windows
 +                          (from 95 to 7 and beyond)
  
    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
      Free Software Foundation, Inc.
    since v1.3.3, include the MinGW headers and libraries as an integral
    part).
  
-   Note that building Emacs with Visual Studio 2005 (VC++ 8.0) is not
-   supported at this time, due to changes introduced by Microsoft into
-   the libraries shipped with the compiler.
+   Note that building Emacs with Visual Studio 2005 (VC++ 8.0) and
+   later is not supported at this time, due to changes introduced by
+   Microsoft into the libraries shipped with the compiler.
  
    The rest of this file assumes you have a working development
    environment.  If you just installed  such an environment, try
          emacs source with text!=binary.
      [2] fails when needs to invoke shell commands; okay invoking gcc etc.
      [3] requires LC_MESSAGES support to build; cannot build with early
 -        versions of cygwin.
 +        versions of Cygwin.
      [4] may fail on Windows 9X and Windows ME; if so, install Bash.
      [5] fails when building leim due to the use of cygwin style paths.
          May work if building emacs without leim.
    like this, we recommend the use of the supported compilers mentioned
    in the previous paragraph.
  
 -  You will also need a copy of the Posix cp, rm and mv programs.  These
 -  and other useful Posix utilities can be obtained from one of several
 +  You will also need a copy of the POSIX cp, rm and mv programs.  These
 +  and other useful POSIX utilities can be obtained from one of several
    projects:
  
    * http://gnuwin32.sourceforge.net/              ( GnuWin32 )
    * http://www.cygwin.com/                        ( Cygwin   )
    * http://unxutils.sourceforge.net/              ( UnxUtils )
  
 -  If you build Emacs on Windows 9X or ME, not on Windows 2K/XP or
 -  Windows NT, we suggest to install the Cygwin port of Bash.  That is
 -  because the native Windows shell COMMAND.COM is too limited; the
 -  Emacs build procedure tries very hard to support even such limited
 -  shells, but as none of the Windows developers of Emacs work on
 -  Windows 9x, we cannot guarantee that it works without a more
 -  powerful shell.
 +  If you build Emacs on 16-bit versions of Windows (9X or ME), we
 +  suggest to install the Cygwin port of Bash.  That is because the
 +  native Windows shell COMMAND.COM is too limited; the Emacs build
 +  procedure tries very hard to support even such limited shells, but
 +  as none of the Windows developers of Emacs work on Windows 9X, we
 +  cannot guarantee that it works without a more powerful shell.
  
    Additional instructions and help for building Emacs on Windows can be
    found at the Emacs Wiki:
    absolutely sure the produced binaries will never need to be run under
    a debugger.
  
 +  Because of limitations of the stock Windows command shell, certain
 +  characters (quotes, backslashes and equal signs) can be problematic
 +  and should not be used in arguments to configure.  That means that
 +  forward slashes must be used in paths passed to the compiler and
 +  linker via the --cflags and --ldflags options, and that it is
 +  currently not possible to pass a macro like -DFOO=BAR (though -DFOO
 +  is perfectly valid).
 +
    N.B.  It is normal to see a few error messages output while configure
    is running, when gcc support is being tested.  These cannot be
 -  suppressed because of limitations in the Windows 9x command.com shell.
 +  suppressed because of limitations in the Windows 9X command.com shell.
  
    You are encouraged to look at the file config.log which shows details
    for failed tests, after configure.bat finishes.  Any unexplained failure
    wrong.  (Usually, any such failures happen because some headers are
    missing due to bad packaging of the image support libraries.)
  
 +  Note that any file path passed to the compiler or linker must use
 +  forward slashes; using backslashes will cause compiler warnings or
 +  errors about unrecognized escape sequences.
 +
    To use the external image support, the DLLs implementing the
    functionality must be found when Emacs first needs them, either on the
    PATH, or in the same directory as emacs.exe.  Failure to find a
    library is not an error; the associated image format will simply be
    unavailable.  Note that once Emacs has determined that a library can
    not be found, there's no way to force it to try again, other than
 -  restarting.  See the variable `image-library-alist' to configure the
 +  restarting.  See the variable `dynamic-library-alist' to configure the
    expected names of the libraries.
  
    Some image libraries have dependencies on one another, or on zlib.
    Removes the installed files in the bin subdirectory in addition to
    the files removed by make cleanall.
  
 +  make dist
 +  Builds Emacs from the available sources and pre-compiled lisp files.
 +  Packages Emacs binaries as full distribution and barebin distribution.
  
    The following targets are intended only for use with the Bazaar sources.
  
    bootstrap to rebuild.  Occasionally it may be necessary to run this
    target after an update.
  
 +* Creating binary distributions
 +
 +  Binary distributions (full and barebin distributions) can be
 +  automatically built and packaged from source tarballs or a bzr
 +  checkout.
 +
 +  When building Emacs binary distributions, the --distfiles argument
 +  to configure.bat specifies files to be included in the bin directory
 +  of the binary distributions. This is intended for libraries that are
 +  not built as part of Emacs, e.g. image libraries.
 +
 +  For example, specifying
 +
 +      --distfiles D:\distfiles\libXpm.dll
 +
 +  results in libXpm.dll being copied from D:\distfiles to the
 +  bin directory before packaging starts.
 +
 +  Multiple files can be specified using multiple --distfiles arguments:
 +
 +      --distfiles D:\distfiles\libXpm.dll --distfiles C:\jpeglib\jpeg.dll
 +
 +  For packaging the binary distributions, the 'dist' make target uses
 +  7-Zip (http://www.7-zip.org), which must be installed and available
 +  on the Windows Path.
 +
  
  * Trouble-shooting
  
    The main problems that are likely to be encountered when building
    Emacs stem from using an old version of GCC, or old MinGW or W32 API
 -  headers.  Additionally, cygwin ports of GNU make may require the Emacs
 +  headers.  Additionally, Cygwin ports of GNU make may require the Emacs
    source tree to be mounted with text!=binary, because the makefiles
    generated by configure.bat necessarily use DOS line endings.  Also,
 -  cygwin ports of make must run in UNIX mode, either by specifying
 +  Cygwin ports of make must run in UNIX mode, either by specifying
    --unix on the command line, or MAKE_MODE=UNIX in the environment.
  
    When configure runs, it attempts to detect when GCC itself, or the
diff --combined src/ChangeLog
index 43a38c6a7280a458bdc6e587bde8f9c822d2938b,6268dcf33aec2321fbb2fa90e6424e64cd92503e..70e646e343d529bd5c4f23b4ecf6833c31a0ed16
 -2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
++2010-11-18  Jan Djärv  <jan.h.d@swipnet.se>
+       * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
+       * config.in (HAVE_G_TYPE_INIT): New symbol.
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
++2010-11-18  Eli Zaretskii  <eliz@gnu.org>
+       * lread.c (Fload): Mention `load-in-progress' and
+       `load-file-name'.  (Bug#7346)
 -2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 -
+       * 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.
+       * process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
+       the subprocesses version, not in the non-subprocesses one.
+       * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
 -      * xfns.c (x_real_positions): Fix declaration-after-statement
 -      problem.
 +2010-11-17  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-11-05  Chong Yidong  <cyd@stupidchicken.com>
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning in empty
 +      lines on text-mode terminals.  (bug#7417)
  
 -      * 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-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-11-04  Chong Yidong  <cyd@stupidchicken.com>
 +      * xterm.c (get_current_wm_state): Rename from get_current_vm_state.
 +      (do_ewmh_fullscreen, x_handle_net_wm_state): Update callers.
  
 -      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 -      Windows.
 +2010-11-17  Kenichi Handa  <handa@m17n.org>
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * coding.c (Fset_terminal_coding_system_internal): Fix previous
 +      change (set charset-ID list instead of charset-symbol list).
  
 -      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 -      `connect' (Bug#5723).
 +2010-11-16  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-11-04  Helmut Eller  <eller.helmut@gmail.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.
  
 -      * process.c (Fmake_network_process): Call `select' for interrupted
 -      `connect' rather than creating new socket (Bug#5173).
 +      * 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.
  
 -2010-11-04  Kenichi Handa  <handa@m17n.org>
 +      * window.h (window_from_coordinates, window_relative_x_coord):
 +      Update prototypes.
  
 -      * 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.
 +      * dispnew.c (buffer_posn_from_coords): Assume that X counts from
 +      the start of the text area.
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * xdisp.c (remember_mouse_glyph): Change window_from_coordinates
 +      call.  Use window_relative_x_coord.
 +      (note_mouse_highlight): Change window_from_coordinates call.
  
 -      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 -      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
 +      * w32term.c (w32_read_socket):
 +      * msdos.c (dos_rawgetc):
 +      * xterm.c (handle_one_xevent): Likewise.
  
 -      * 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.
 +2010-11-16  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).
 +      * 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-04  Jan Djärv  <jan.h.d@swipnet.se>
 +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.
        * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
        before traversing window tree (Bug#5721).
  
 -2010-11-03  Glenn Morris  <rgm@gnu.org>
 +2010-11-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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)
 +      * xfns.c (set_machine_and_pid_properties): Let X set WM_CLIENT_MACHINE.
  
 -2010-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xdisp.c (note_mode_line_or_margin_highlight):
 +      Initialize Cursor to No_Cursor for HAVE_WINDOW_SYSTEM also.
  
 -      * 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.
 +2010-11-06  Eli Zaretskii  <eliz@gnu.org>
  
 -      * process.h (hold_keyboard_input, unhold_keyboard_input)
 -      (kbd_on_hold_p): Declare.
 +      * 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.
  
 -      * 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).
 +      * 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>
  
        when aborting on GTK.  This requires using shut_down_emacs
        directly instead of Fkill_emacs.
  
 -2010-10-25  Michael Albinus  <michael.albinus@gmx.de>
 +2010-10-29  Eli Zaretskii  <eliz@gnu.org>
  
 -      * dbusbind.c (Fdbus_call_method_asynchronously)
 -      (Fdbus_register_signal, Fdbus_register_method): Check, whether
 -      `dbus-registered-objects-table' is initialized.
 +      * 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-22  Eli Zaretskii  <eliz@gnu.org>
 +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-18  Ken Brown  <kbrown@cornell.edu>
 +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-15  Kenichi Handa  <handa@m17n.org>
 +2010-10-19  Kenichi Handa  <handa@m17n.org>
  
        Fix incorrect font metrics when the same font is opened with
        different pixelsizes.
        (xftfont_shape): New function.
        (syms_of_xftfont): Set xftfont_driver.shape.
  
 -2010-10-13  Damyan Pepper  <damyanp@gmail.com>
 +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
        (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.
  
 -      * xterm.c (get_current_vm_state): New function.
 -      (do_ewmh_fullscreen): Call get_current_vm_state and compare with
 -      want_fullscreen so set_wm_state calls are few (Bug#7013).
 -      (x_handle_net_wm_state): Move code to get_current_vm_state and
 -      call that function.
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
  
 -2010-09-11  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +      * fileio.c (Vdirectory_sep_char): Remove.
  
 -      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-09-08  Kenichi Handa  <handa@m17n.org>
 +      * termhooks.h: Remove #ifdef CONSP.
  
 -      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 -      we may use designation or locking-shift.
 +      * xterm.c (NO_INLINE, noinline): Move definitions to ../configure.in.
  
 -2010-09-07  Kenichi Handa  <handa@m17n.org>
 +      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.
  
 -      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 -      sequence when the source is multibyte.
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 +      * keyboard.c (command_loop_1): Make sure the mark is really alive
 +      before using it (Bug#7044).
  
 -      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 -      characters.
 +2010-10-02  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * 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.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): Reworked 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): Added 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): Adjusted 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): Renamed 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): Renamed 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
 +      want_fullscreen so set_wm_state calls are few (Bug#7013).
 +      (x_handle_net_wm_state): Move code to get_current_vm_state and
 +      call that function.
 +
 +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
        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-29  Kenichi Handa  <handa@m17n.org>
 +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): Renamed 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): Renamed from Fget_font_glyphs.  Arguments and
 +      return value changed.
 +      (syms_of_font): Adjusted 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): Renamed 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>
  
 -      * term.c (encode_terminal_code): Encode byte chars to the
 -      correspnding bytes.
 +      * charset.c (load_charset_map_from_file): Don't call close after fclose.
  
 -2010-08-17  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-05-18  Glenn Morris  <rgm@gnu.org>
  
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
 -      instead of SAFE_ALLOCA.
 +      * 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.
 +
 +2010-05-15  Eli Zaretskii  <eliz@gnu.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.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
 +      (syms_of_xdisp): Defsubr it.
 +
 +      * cmds.c (Fforward_char, Fbackward_char): Doc fix.
 +
 +      * Makefile.in: Fix MSDOS-related comments.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU_TARGET): New, set by configure.
 +      (really-lwlib, really-oldXMenu): Always define.
 +      ($OLDXMENU): Depend on $OLDXMENU_TARGET.
 +
 +      * Makefile.in: Simplify cpp conditional.
 +
 +      * Makefile.in (${ns_appdir}): Simplify using umask.
 +
 +      * Makefile.in (${ns_appdir}): Remove references to CVS-related files.
 +
 +2010-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (specbind): Remove left-over duplicate test.
 +      Disallow let-binding frame-local vars.  Add comment.
 +
 +2010-05-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      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.
 +
 +      * bidi.c (bidi_move_to_visually_next): Rename from
 +      bidi_get_next_char_visually.  All callers changed.
 +
 +2010-05-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (struct composition_it): New member reversed_p.
 +
 +      * 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.
 +
 +      * 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-05-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * 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 Klic  <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.
  
 -2010-08-17  Chong Yidong  <cyd@stupidchicken.com>
 +      * 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): Renamed 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): Renamed 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>
  
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 -      (Bug#6214).
 +      * dired.c (Ffile_attributes): Fix typo in docstring.
  
 -2010-08-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
 -      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 +      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 +      NSInteger (Bug#5811).
  
 -2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * doc.c (Fsnarf_documentation): Initialize skip_file before
 -      build-files test.
 +      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 +      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
  
 -2010-08-09  Peter O'Gorman <pogma@thewrittenword.com>  (tiny change)
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 -      New definitions.
 -      (HAVE_TERMIO): Remove.
 +      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * 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.
 +      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 +      terminal frames (Bug#5837).
  
 -      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 -      number in CTEXT extended segment.
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +      * .gdbinit (xsubchartable): New command.
  
 -      * 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>
 +      * 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
  
 -      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 -      (Fhash_table_size): Fix typos in docstrings.
 -      (Fmake_hash_table): Doc fix.
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 +      * alloc.c (Fpurecopy): Hash-cons if requested.
 +      (syms_of_alloc): Update purify-flag docstring.
  
 -      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 -      Doc fix (bug#5625).
 +2010-04-18  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-07-27  Ken Brown  <kbrown@cornell.edu>
 +      * gtkutil.c (xg_set_geometry): Set size in geometry string also.
 +      (x_wm_set_size_hint): Set USER_POS in hint_flags (Bug#5968).
  
 -      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 -      the MSDOS definition.
 +2010-04-17  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
 +      Fix a crash when an NSM character is inserted at BEGV.
  
 -      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 +      * 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-22  Christoph Scholtes  <cschol2112@gmail.com>
 +2010-04-16  Eli Zaretskii  <eliz@gnu.org>
  
 -      * window.c (Fwindow_height): Doc fix (bug#6518).
 +      * 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-21  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-16  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 +      * s/freebsd.h: Restore osreldate.h include.
 +      Suggested by Naohiro Aota.
  
 -2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-16  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).
 +      * xmenu.c (apply_systemfont_to_menu): *childs was incorrectly used.
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-16  Ken Brown  <kbrown@cornell.edu>  (tiny change)
  
 -      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 +      * s/cygwin.h: Avoid linking against static libgcc.
  
 -      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 +2010-04-15  Juri Linkov  <juri@jurta.org>
  
 -      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 -      i.e. don't put back ButtonRelease (Bug#6608).
 +      * 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.
  
 -      * 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  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * gtkutil.h (xg_event_is_for_menubar): Declare.
 +      * xdisp.c (message): Do not use NO_ARG_ARRAY.
  
 -      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 +2010-04-14  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-07-14  Eli Zaretskii  <eliz@gnu.org>
 +      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.
  
 -      * 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  Juri Linkov  <juri@jurta.org>
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +      * 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'.
  
 -      * 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 (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.
  
 -      * keyboard.c: Remove duplicate <setjmp.h>.
 -      (read_key_sequence): Remove volatile qualifiers.
 +2010-04-13  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * 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.
  
 -      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 -      (struct glyph_row): New members left_fringe_offset and
 -      right_fringe_offset.
 +      * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width
 +      to zero.
  
 -      * 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.
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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).
 +      * term.c (init_tty): Move common text outside of #ifdef TERMINFO.
  
 -2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +      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.
  
 -      * w32fns.c (Qtooltip): Declare.
 -      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 +      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-03  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 -      grab on just Press (Bug#6499).
 +      * process.c (status_notify): Remove unused var `ro'.
  
 -2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-12  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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 (select_visual): Don't call error if XGetVisualInfo returns
 +      more than one visual (Bug#5938).
  
 -      * xfns.c (x_create_tip_frame):
 -      * w32fns.c (x_create_tip_frame): Use it.
 +2010-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-06-30  Naohiro Aota  <naota@elisp.net>  (tiny change)
 +      * Makefile.in (C_SWITCH_SYSTEM,C_SWITCH_MACHINE,C_SWITCH_X_SITE):
 +      Undefine.
  
 -      * xftfont.c (xftfont_open): Check font width one by one also when
 -      spacing is dual.
 +2010-04-11  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * ftfont.c (ftfont_open): Ditto.
 +      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-26  Andreas Schwab  <schwab@linux-m68k.org>
 +      * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Remove.
 +      (ALL_CFLAGS): Do not use C_SWITCH_SYSTEM_TEMACS.
  
 -      * alloc.c (Fmake_byte_code): Don't access undefined argument
 -      (Bug#6517).
 +      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-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-11  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xdisp.c (next_element_from_image): Ensure that after-strings are
 -      read the next time we hit handle_stop (Bug#1336).
 +      * xmenu.c (apply_systemfont_to_dialog): New.
 +      (create_and_show_dialog): Call apply_systemfont_to_dialog if HAVE_XFT.
  
 -2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * lread.c (read1): Signal error if #s is not followed by paren.
 +      * process.c (exec_sentinel): Preserve current-buffer.
  
 -2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +      * process.c (read_process_output): Move the save-current-buffer to
 +      apply to both the filter and the non-filter branches.
  
 -      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 +2010-04-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 +      * s/msdos.h (UNEXEC): New definition.
  
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 +2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * editfns.c (Fbyte_to_string): Pacify compiler.
 +      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 +      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * 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.
  
 -      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 -      Check `object's type before accessing its guts.
 +      * 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  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-09  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * minibuf.c (Fall_completions): Add more checks.
 +      * xfns.c (Fx_show_tip): Call try_window in a loop until
 +      fonts_changed_p is zero (Bug#2423).
  
 -2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 +      * xdisp.c (set_cursor_from_row): Don't dereference glyphs beyond
 +      the end of TEXT_AREA.  (Bug#5856)
  
 -2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
 -      address.  (Bug#6346)
 +      * xsettings.c (XSETTINGS_FONT_NAME): Move XSETTINGS_FONT_NAME out of
 +      HAVE_GCONF.
  
 -2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -      * ccl.c (Fccl_program_p): Fix typo in docstring.
 +      * bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
 +      prev.orig_type, for resolving type of NSM.  (Bug#5858)
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 -      of bug#6305).
 +      * 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-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * xsettings.h (Ffont_get_system_normal_font)
 +      (xsettings_get_system_normal_font): Declare.
  
 -      * xdisp.c (redisplay_window): After redisplay, check if point is
 -      still valid before setting it (Bug#6177).
 +      * xfns.c (extern xlwmenu_default_font): Remove.
 +      (Fx_create_frame): Remove setting of xlwmenu_default_font, moved
 +      to xlwmenu.c.
  
 -2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +      * menu.c (digest_single_submenu): If USE_LUCID and HAVE_XFT, encode
 +      menu items in UTF-8.
  
 -      * s/netbsd.h: If terminfo is found, use it in preference to
 -      termcap.  (Bug#6190)  [Backport from trunk]
 +      * 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-20  Kevin Ryde  <user42@zip.com.au>
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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).
 +      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 +      FRAME_LINE_TO_PIXEL_Y.
  
 -2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 +      pixelwidth/height.
  
 -      * editfns.c (Fbyte_to_string): New function.
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 +      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.
  
 -      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 -      prevent stack overflow if number of arguments is too large
 -      (Bug#6214).
 +      * m/iris4d.h (UNEXEC): Move definition ...
 +      * s/irix6-5.h (UNEXEC): ... here.
  
 -2010-05-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-04  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
 +      * xfns.c (set_machine_and_pid_properties): New function.
 +      (Fx_create_frame): Call set_machine_and_pid_properties.
  
 -      * w32fns.c: Include w32.h.
 -      (Fw32_shell_execute): Decode the error message before passing it
 -      to `error'.  (Bug#6126)
 +2010-04-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-05-11  Karel Klic  <kklic@redhat.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.
  
 -      * ftfont.c: Fix incorrect parentheses of #if condition for
 -      definining M17N_FLT_USE_NEW_FEATURE.
 +      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 +      in this function.  (Bug#5703)
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * Version 23.2 released.
 +      * nsterm.h: Fix last change.
  
 -2010-04-30  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-03  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * composite.c (autocmp_chars): Save point as marker before calling
 -      auto-composition-function (Bug#5984).
 +      * m/intel386.h (NO_REMAP): Move definition ...
 +      * s/msdos.h (NO_REMAP): ... here.
  
 -      * lisp.h (restore_point_unwind): Add prototype.
 +      * m/vax.h (CRT0_DUMMIES): Remove, unused.
  
 -      * fileio.c (restore_point_unwind): Remove static attribute.
 +      * ecrt0.c: Remove MSDOS, m68k and __sparc__ conditionals, file not
 +      used on those platforms.
  
 -2010-04-23  Kenichi Handa  <handa@m17n.org>
 +2010-04-02  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * 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.
 +      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-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-01  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * dired.c (Ffile_attributes): Fix typo in docstring.
 +      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-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 -      NSInteger (Bug#5811).
 +      Remove support for DJGPP v1.x (bug#5813).
  
 -2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * 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__.
  
 -      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 -      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-04-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning when the
 +      string with `cursor' property comes from an `after-string'
 +      overlay.  (Bug#5816)
  
 -      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
 +2010-04-01  Glenn Morris  <rgm@gnu.org>
  
 -2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
 +      * Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
 +      Define as Makefile variables.
 +      (LIBX): Use above variables rather than directly using autoconf.
  
 -      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 -      FRAME_LINE_TO_PIXEL_Y.
 +2010-03-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 -      pixelwidth/height.
 +      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.
  
 -2010-04-05  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 -      terminal frames (Bug#5837).
 +      * 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):
        * 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+.
  
  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.
        <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.
        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:
        (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.
        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.
        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
  
        * 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.
  
        * 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
@@@ -28861,10 -22391,10 +28882,10 @@@ See ChangeLog.10 for earlier changes
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
 +  Copyright (C) 2007, 2008, 2009, 2010
 +    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/config.in
index 8ccda9723952278d98662bd15575e12a19b055bf,f7c5bbc7daf94971a867301f5e83924474bcbcc1..8d254cefff5b4941cd871e3e9a4b4a43daf5ebc5
@@@ -27,15 -27,12 +27,15 @@@ along with GNU Emacs.  If not, see <htt
  #define EMACS_CONFIG_H
  
  
 -/* Generate dependencies with gcc. */
 -#undef AUTO_DEPEND
 +/* Define if building universal (internal helper macro) */
 +#undef AC_APPLE_UNIVERSAL_BUILD
  
  /* Define to 1 if the mktime function is broken. */
  #undef BROKEN_MKTIME
  
 +/* Define if Emacs cannot be dumped on your system. */
 +#undef CANNOT_DUMP
 +
  /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
     systems. This function is required for `alloca.c' support on those systems.
     */
  /* Define to 1 if using `getloadavg.c'. */
  #undef C_GETLOADAVG
  
 -/* 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. */
 -#undef C_SWITCH_X_SITE
 -
  /* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
  #undef DGUX
  
  /* Define to 1 if ALSA is available. */
  #undef HAVE_ALSA
  
 -/* Define to 1 if you have the `bcmp' function. */
 -#undef HAVE_BCMP
 -
 -/* Define to 1 if you have the `bcopy' function. */
 -#undef HAVE_BCOPY
 -
 -/* Define to 1 if you have the `bzero' function. */
 -#undef HAVE_BZERO
 -
  /* Define to 1 if you have the `cbrt' function. */
  #undef HAVE_CBRT
  
  /* Define to 1 if you have the <com_err.h> header file. */
  #undef HAVE_COM_ERR_H
  
 -/* Define to 1 if you have /usr/lib/crti.o. */
 -#undef HAVE_CRTIN
 +/* Define to 1 if you have the `copysign' function. */
 +#undef HAVE_COPYSIGN
  
  /* Define to 1 if using D-Bus. */
  #undef HAVE_DBUS
  /* Define to 1 if you have the `difftime' function. */
  #undef HAVE_DIFFTIME
  
 +/* Define to 1 if you have the <dirent.h> header file. */
 +#undef HAVE_DIRENT_H
 +
  /* Define to 1 if you have the `dup2' function. */
  #undef HAVE_DUP2
  
  /* Define to 1 if using GConf. */
  #undef HAVE_GCONF
  
 -/* Define to 1 if you have the `gdk_display_open' function. */
 -#undef HAVE_GDK_DISPLAY_OPEN
 -
  /* Define to 1 if you have the `getaddrinfo' function. */
  #undef HAVE_GETADDRINFO
  
  /* Define to 1 if you have the `get_current_dir_name' function. */
  #undef HAVE_GET_CURRENT_DIR_NAME
  
 -/* Define to 1 if you have a gif library (default -lgif; otherwise specify
 -   with LIBGIF). */
 +/* Define to 1 if you have a gif (or ungif) library. */
  #undef HAVE_GIF
  
 +/* Define if using GnuTLS. */
 +#undef HAVE_GNUTLS
 +
  /* Define to 1 if you have the gpm library (-lgpm). */
  #undef HAVE_GPM
  
  /* Define to 1 if you have the `grantpt' function. */
  #undef HAVE_GRANTPT
  
 +/* Define to 1 if you have the `gtk_adjustment_get_page_size' function. */
 +#undef HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
 +
  /* Define to 1 if you have GTK and pthread (-lpthread). */
  #undef HAVE_GTK_AND_PTHREAD
  
 -/* Define to 1 if GTK has both file selection and chooser dialog. */
 -#undef HAVE_GTK_FILE_BOTH
 -
 -/* Define to 1 if you have the `gtk_file_chooser_dialog_new' function. */
 -#undef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW
 +/* Define to 1 if you have the `gtk_dialog_get_action_area' function. */
 +#undef HAVE_GTK_DIALOG_GET_ACTION_AREA
  
  /* Define to 1 if you have the `gtk_file_selection_new' function. */
  #undef HAVE_GTK_FILE_SELECTION_NEW
  /* Define to 1 if you have the `gtk_main' function. */
  #undef HAVE_GTK_MAIN
  
 -/* Define to 1 if GTK can handle more than one display. */
 -#undef HAVE_GTK_MULTIDISPLAY
 +/* Define to 1 if you have the `gtk_orientable_set_orientation' function. */
 +#undef HAVE_GTK_ORIENTABLE_SET_ORIENTATION
 +
 +/* Define to 1 if you have the `gtk_widget_get_mapped' function. */
 +#undef HAVE_GTK_WIDGET_GET_MAPPED
 +
 +/* Define to 1 if you have the `gtk_widget_get_sensitive' function. */
 +#undef HAVE_GTK_WIDGET_GET_SENSITIVE
 +
 +/* Define to 1 if you have the `gtk_widget_get_window' function. */
 +#undef HAVE_GTK_WIDGET_GET_WINDOW
 +
 +/* Define to 1 if you have the `gtk_widget_set_has_window' function. */
 +#undef HAVE_GTK_WIDGET_SET_HAS_WINDOW
  
+ /* Define to 1 if you have the `g_type_init' function. */
+ #undef HAVE_G_TYPE_INIT
  /* Define to 1 if netdb.h declares h_errno. */
  #undef HAVE_H_ERRNO
  
 -/* Define to 1 if you have the `index' function. */
 -#undef HAVE_INDEX
 +/* Define to 1 if using imagemagick. */
 +#undef HAVE_IMAGEMAGICK
  
  /* Define to 1 if you have inet sockets. */
  #undef HAVE_INET_SOCKETS
  /* Define to 1 if you have the <inttypes.h> header file. */
  #undef HAVE_INTTYPES_H
  
 +/* Define to 1 if you have the `isnan' function. */
 +#undef HAVE_ISNAN
 +
  /* Define to 1 if you have the jpeg library (-ljpeg). */
  #undef HAVE_JPEG
  
  /* Define to 1 if you have the resolv library (-lresolv). */
  #undef HAVE_LIBRESOLV
  
 +/* Define to 1 if using SELinux. */
 +#undef HAVE_LIBSELINUX
 +
  /* Define to 1 if you have the `Xext' library (-lXext). */
  #undef HAVE_LIBXEXT
  
 +/* Define to 1 if you have the libxml library (-lxml2). */
 +#undef HAVE_LIBXML2
 +
  /* Define to 1 if you have the `Xmu' library (-lXmu). */
  #undef HAVE_LIBXMU
  
 -/* Define to 1 if you have the Xp library (-lXp). */
 -#undef HAVE_LIBXP
 -
  /* Define to 1 if you have the <limits.h> header file. */
  #undef HAVE_LIMITS_H
  
  /* Define to 1 if you have the <mach/mach.h> header file. */
  #undef HAVE_MACH_MACH_H
  
 +/* Define to 1 if you have the `MagickExportImagePixels' function. */
 +#undef HAVE_MAGICKEXPORTIMAGEPIXELS
 +
  /* Define to 1 if you have the <maillock.h> header file. */
  #undef HAVE_MAILLOCK_H
  
  /* Define to 1 if you have a working `mmap' system call. */
  #undef HAVE_MMAP
  
 -/* Define to 1 if you have Motif 2.1 or newer. */
 -#undef HAVE_MOTIF_2_1
 +/* Define if you have mouse support. */
 +#undef HAVE_MOUSE
  
  /* Define to 1 if you have the `mremap' function. */
  #undef HAVE_MREMAP
  /* Define to 1 if res_init is available. */
  #undef HAVE_RES_INIT
  
 -/* Define to 1 if you have the `rindex' function. */
 -#undef HAVE_RINDEX
 -
  /* Define to 1 if you have the `rint' function. */
  #undef HAVE_RINT
  
  /* Define to 1 if the system has the type `size_t'. */
  #undef HAVE_SIZE_T
  
 +/* Define to 1 if you have sound support. */
 +#undef HAVE_SOUND
 +
  /* Define to 1 if you have the <soundcard.h> header file. */
  #undef HAVE_SOUNDCARD_H
  
  /* Define to 1 if you have the <stdlib.h> header file. */
  #undef HAVE_STDLIB_H
  
 +/* Define to 1 if you have the `strchr' function. */
 +#undef HAVE_STRCHR
 +
  /* Define to 1 if you have the `strerror' function. */
  #undef HAVE_STRERROR
  
  /* Define to 1 if you have the <string.h> header file. */
  #undef HAVE_STRING_H
  
 +/* Define to 1 if you have the `strrchr' function. */
 +#undef HAVE_STRRCHR
 +
  /* Define to 1 if you have the `strsignal' function. */
  #undef HAVE_STRSIGNAL
  
  /* Define to 1 if you have the <sys/systeminfo.h> header file. */
  #undef HAVE_SYS_SYSTEMINFO_H
  
 -/* Define to 1 if you have the <sys/timeb.h> header file. */
 -#undef HAVE_SYS_TIMEB_H
 -
  /* Define to 1 if you have the <sys/time.h> header file. */
  #undef HAVE_SYS_TIME_H
  
  /* Define to 1 if you have the <sys/_mbstate_t.h> header file. */
  #undef HAVE_SYS__MBSTATE_T_H
  
 -/* Define to 1 if you have the <termcap.h> header file. */
 -#undef HAVE_TERMCAP_H
 -
 -/* Define to 1 if you have the <termios.h> header file. */
 -#undef HAVE_TERMIOS_H
 -
  /* Define to 1 if you have the <term.h> header file. */
  #undef HAVE_TERM_H
  
  /* Define to 1 if you have the <unistd.h> header file. */
  #undef HAVE_UNISTD_H
  
 +/* Define to 1 if you have the <util.h> header file. */
 +#undef HAVE_UTIL_H
 +
  /* Define to 1 if you have the `utimes' function. */
  #undef HAVE_UTIMES
  
  /* Define to 1 if you have the <vfork.h> header file. */
  #undef HAVE_VFORK_H
  
 +/* Define if you have a window system. */
 +#undef HAVE_WINDOW_SYSTEM
 +
  /* Define to 1 if `fork' works. */
  #undef HAVE_WORKING_FORK
  
  /* Define to 1 if you have the X11R6 or newer version of Xlib. */
  #undef HAVE_X11R6
  
 +/* Define if you have usable X11R6-style XIM support. */
 +#undef HAVE_X11R6_XIM
 +
  /* Define to 1 if you have the X11R6 or newer version of Xt. */
  #undef HAVE_X11XTR6
  
  /* Define to 1 if you have the `XSetWMProtocols' function. */
  #undef HAVE_XSETWMPROTOCOLS
  
 +/* Define if you have usable i18n support. */
 +#undef HAVE_X_I18N
 +
  /* Define to 1 if you have the SM library (-lSM). */
  #undef HAVE_X_SM
  
  /* Define to 1 if you want to use the X window system. */
  #undef HAVE_X_WINDOWS
  
 +/* Define to 1 if you have the `__executable_start' function. */
 +#undef HAVE___EXECUTABLE_START
 +
  /* Define to 1 if you have the `__fpending' function. */
  #undef HAVE___FPENDING
  
  /* Define to use Kerberos 5 instead of Kerberos 4. */
  #undef KERBEROS5
  
 -/* 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. */
 -#undef LD_SWITCH_X_SITE
 +/* Define to 1 if localtime caches TZ. */
 +#undef LOCALTIME_CACHE
  
 -/* Define LD_SWITCH_X_SITE_AUX with an -R option in case it's needed (for
 -   Solaris, for example). */
 -#undef LD_SWITCH_X_SITE_AUX
 +/* String giving fallback POP mail host. */
 +#undef MAILHOST
  
 -/* Compiler option to link with the gif library (if not -lgif). */
 -#undef LIBGIF
 +/* Define to unlink, rather than empty, mail spool after reading. */
 +#undef MAIL_UNLINK_SPOOL
  
 -/* Define to 1 if localtime caches TZ. */
 -#undef LOCALTIME_CACHE
 +/* Define if the mailer uses flock to interlock the mail spool. */
 +#undef MAIL_USE_FLOCK
 +
 +/* Define if the mailer uses lockf to interlock the mail spool. */
 +#undef MAIL_USE_LOCKF
 +
 +/* Define to support MMDF mailboxes in movemail. */
 +#undef MAIL_USE_MMDF
  
  /* Define to support POP mail retrieval. */
  #undef MAIL_USE_POP
  /* Define to 1 if you are using NS windowing under GNUstep. */
  #undef NS_IMPL_GNUSTEP
  
 +/* Define if the C compiler is the linker. */
 +#undef ORDINARY_LINK
 +
  /* Define to the address where bug reports for this package should be sent. */
  #undef PACKAGE_BUGREPORT
  
  /* Process async input synchronously. */
  #undef SYNC_INPUT
  
 +/* Define to use system malloc. */
 +#undef SYSTEM_MALLOC
 +
 +/* Define to 1 if you use terminfo instead of termcap. */
 +#undef TERMINFO
 +
  /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
  #undef TIME_WITH_SYS_TIME
  
     <sys/cpustats.h>. */
  #undef UMAX4_3
  
 -/* Define to the unexec source file name. */
 -#undef UNEXEC_SRC
 -
  /* Define to 1 if using GTK. */
  #undef USE_GTK
  
 +/* Define this to use a lisp union for the Lisp_Object data type. */
 +#undef USE_LISP_UNION_TYPE
 +
  /* Define to 1 if using the Lucid X toolkit. */
  #undef USE_LUCID
  
 +/* Define to use mmap to allocate buffer text. */
 +#undef USE_MMAP_FOR_BUFFERS
 +
  /* Define to 1 if using the Motif X toolkit. */
  #undef USE_MOTIF
  
  /* Define to 1 if using an X toolkit. */
  #undef USE_X_TOOLKIT
  
 +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
 +   significant byte first (like Motorola and SPARC, unlike Intel). */
 +#if defined AC_APPLE_UNIVERSAL_BUILD
 +# if defined __BIG_ENDIAN__
 +#  define WORDS_BIGENDIAN 1
 +# endif
 +#else
 +# ifndef WORDS_BIGENDIAN
 +#  undef WORDS_BIGENDIAN
 +# endif
 +#endif
 +
  /* Define this to check for malloc buffer overrun. */
  #undef XMALLOC_OVERRUN_CHECK
  
  #undef volatile
  
  
 -/* 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'.  */
  #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
  /* 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
  
  #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__
@@@ -1171,17 -1191,23 +1174,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
 +
 +/* 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 */
  
  /*
diff --combined src/keyboard.c
index d048404e856abd03866ec1b21ed929725d317528,b35e4ae84e25734d966c715f817fd013fa66845a..0a6831750de6f2e09e66995cf7e3a39a6e0d4f63
@@@ -42,7 -42,6 +42,7 @@@ along with GNU Emacs.  If not, see <htt
  #include "puresize.h"
  #include "systime.h"
  #include "atimer.h"
 +#include "process.h"
  #include <errno.h>
  
  #ifdef HAVE_GTK_AND_PTHREAD
@@@ -62,7 -61,9 +62,7 @@@
  #include <unistd.h>
  #endif
  
 -#ifdef HAVE_FCNTL_H
  #include <fcntl.h>
 -#endif
  
  /* This is to get the definitions of the XK_ symbols.  */
  #ifdef HAVE_X_WINDOWS
  #include "nsterm.h"
  #endif
  
 -#ifndef USE_CRT_DLL
 -extern int errno;
 -#endif
 -
  /* Variables for blockinput.h: */
  
  /* Non-zero if interrupt input is blocked right now.  */
@@@ -244,6 -249,9 +244,6 @@@ Lisp_Object Vminibuffer_message_timeout
     ASCII character.  */
  int quit_char;
  
 -extern Lisp_Object current_global_map;
 -extern int minibuf_level;
 -
  /* If non-nil, this is a map that overrides all other local maps.  */
  Lisp_Object Voverriding_local_map;
  
@@@ -302,7 -310,7 +302,7 @@@ EMACS_INT extra_keyboard_modifiers
  Lisp_Object meta_prefix_char;
  
  /* Last size recorded for a current buffer which is not a minibuffer.  */
 -static int last_non_minibuf_size;
 +static EMACS_INT last_non_minibuf_size;
  
  /* Number of idle seconds before an auto-save and garbage collection.  */
  static Lisp_Object Vauto_save_timeout;
@@@ -335,7 -343,7 +335,7 @@@ Lisp_Object real_this_command
  Lisp_Object Vthis_original_command;
  
  /* The value of point when the last command was started.  */
 -int last_point_position;
 +EMACS_INT last_point_position;
  
  /* The buffer that was current when the last command was started.  */
  Lisp_Object last_point_position_buffer;
@@@ -359,15 -367,6 +359,15 @@@ Lisp_Object Vlast_event_frame
     X Windows wants this for selection ownership.  */
  unsigned long last_event_timestamp;
  
 +/* If non-nil, active regions automatically become the window selection.  */
 +Lisp_Object Vselect_active_regions;
 +
 +/* The text in the active region prior to modifying the buffer.
 +   Used by the `select-active-regions' feature.  */
 +Lisp_Object Vsaved_region_selection;
 +
 +Lisp_Object Qx_set_selection, QPRIMARY, Qhandle_switch_frame;
 +
  Lisp_Object Qself_insert_command;
  Lisp_Object Qforward_char;
  Lisp_Object Qbackward_char;
@@@ -431,7 -430,7 +431,7 @@@ FILE *dribble
  /* Nonzero if input is available.  */
  int input_pending;
  
 -extern char *pending_malloc_warning;
 +extern const char *pending_malloc_warning;
  
  /* Circular buffer for pre-read keyboard input.  */
  
@@@ -472,6 -471,8 +472,6 @@@ Lisp_Object Qmake_frame_visible
  Lisp_Object Qselect_window;
  Lisp_Object Qhelp_echo;
  
 -extern Lisp_Object Qremap;
 -
  #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
  Lisp_Object Qmouse_fixup_help_message;
  #endif
@@@ -498,7 -499,8 +498,7 @@@ Lisp_Object Qevent_symbol_elements
  /* menu item parts */
  Lisp_Object Qmenu_enable;
  Lisp_Object QCenable, QCvisible, QChelp, QCfilter, QCkeys, QCkey_sequence;
 -Lisp_Object QCbutton, QCtoggle, QCradio;
 -extern Lisp_Object Qmenu_item;
 +Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
  
  /* An event header symbol HEAD may have a property named
     Qevent_symbol_element_mask, which is of the form (BASE MODIFIERS);
@@@ -518,14 -520,21 +518,14 @@@ Lisp_Object Qmode_line
  Lisp_Object Qvertical_line;
  Lisp_Object Qvertical_scroll_bar;
  Lisp_Object Qmenu_bar;
 -extern Lisp_Object Qleft_margin, Qright_margin;
 -extern Lisp_Object Qleft_fringe, Qright_fringe;
 -extern Lisp_Object QCmap;
  
 -Lisp_Object recursive_edit_unwind (), command_loop ();
 -Lisp_Object Fthis_command_keys ();
 +Lisp_Object recursive_edit_unwind (Lisp_Object buffer), command_loop (void);
 +Lisp_Object Fthis_command_keys (void);
  Lisp_Object Qextended_command_history;
 -EMACS_TIME timer_check ();
 -
 -extern Lisp_Object Vhistory_length, Vtranslation_table_for_input;
 +EMACS_TIME timer_check (int do_it_now);
  
 -extern char *x_get_keysym_name ();
 -
 -static void record_menu_key ();
 -static int echo_length ();
 +static void record_menu_key (Lisp_Object c);
 +static int echo_length (void);
  
  Lisp_Object Qpolling_period;
  
@@@ -538,6 -547,8 +538,6 @@@ Lisp_Object Vtimer_idle_list
  /* Incremented whenever a timer is run.  */
  int timers_run;
  
 -extern Lisp_Object Vprint_level, Vprint_length;
 -
  /* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
     happens.  */
  EMACS_TIME *input_available_clear_time;
@@@ -603,54 -614,71 +603,54 @@@ Lisp_Object Venable_disabled_menus_and_
  #define READABLE_EVENTS_IGNORE_SQUEEZABLES    (1 << 2)
  
  /* Function for init_keyboard to call with no args (if nonzero).  */
 -void (*keyboard_init_hook) ();
 -
 -static int read_avail_input P_ ((int));
 -static void get_input_pending P_ ((int *, int));
 -static int readable_events P_ ((int));
 -static Lisp_Object read_char_x_menu_prompt P_ ((int, Lisp_Object *,
 -                                              Lisp_Object, int *));
 -static Lisp_Object read_char_x_menu_prompt ();
 -static Lisp_Object read_char_minibuf_menu_prompt P_ ((int, int,
 -                                                    Lisp_Object *));
 -static Lisp_Object make_lispy_event P_ ((struct input_event *));
 +void (*keyboard_init_hook) (void);
 +
 +static int read_avail_input (int);
 +static void get_input_pending (int *, int);
 +static int readable_events (int);
 +static Lisp_Object read_char_x_menu_prompt (int, Lisp_Object *,
 +                                            Lisp_Object, int *);
 +static Lisp_Object read_char_minibuf_menu_prompt (int, int,
 +                                                  Lisp_Object *);
 +static Lisp_Object make_lispy_event (struct input_event *);
  #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
 -static Lisp_Object make_lispy_movement P_ ((struct frame *, Lisp_Object,
 -                                          enum scroll_bar_part,
 -                                          Lisp_Object, Lisp_Object,
 -                                          unsigned long));
 -#endif
 -static Lisp_Object modify_event_symbol P_ ((int, unsigned, Lisp_Object,
 -                                          Lisp_Object, char **,
 -                                          Lisp_Object *, unsigned));
 -static Lisp_Object make_lispy_switch_frame P_ ((Lisp_Object));
 -static void save_getcjmp P_ ((jmp_buf));
 -static void save_getcjmp ();
 -static void restore_getcjmp P_ ((jmp_buf));
 -static Lisp_Object apply_modifiers P_ ((int, Lisp_Object));
 -static void clear_event P_ ((struct input_event *));
 -static Lisp_Object restore_kboard_configuration P_ ((Lisp_Object));
 -static SIGTYPE interrupt_signal P_ ((int signalnum));
 +static Lisp_Object make_lispy_movement (struct frame *, Lisp_Object,
 +                                        enum scroll_bar_part,
 +                                        Lisp_Object, Lisp_Object,
 +                                        unsigned long);
 +#endif
 +static Lisp_Object modify_event_symbol (EMACS_INT, unsigned, Lisp_Object,
 +                                        Lisp_Object, const char *const *,
 +                                        Lisp_Object *, unsigned);
 +static Lisp_Object make_lispy_switch_frame (Lisp_Object);
 +static void save_getcjmp (jmp_buf);
 +static void restore_getcjmp (jmp_buf);
 +static Lisp_Object apply_modifiers (int, Lisp_Object);
 +static void clear_event (struct input_event *);
 +static Lisp_Object restore_kboard_configuration (Lisp_Object);
 +static SIGTYPE interrupt_signal (int signalnum);
  #ifdef SIGIO
  static SIGTYPE input_available_signal (int signo);
  #endif
 -static void handle_interrupt P_ ((void));
 -static void timer_start_idle P_ ((void));
 -static void timer_stop_idle P_ ((void));
 -static void timer_resume_idle P_ ((void));
 -static SIGTYPE handle_user_signal P_ ((int));
 -static char *find_user_signal_name P_ ((int));
 -static int store_user_signal_events P_ ((void));
 +static void handle_interrupt (void);
 +static void timer_start_idle (void);
 +static void timer_stop_idle (void);
 +static void timer_resume_idle (void);
 +static SIGTYPE handle_user_signal (int);
 +static char *find_user_signal_name (int);
 +static int store_user_signal_events (void);
  
  /* Nonzero means don't try to suspend even if the operating system seems
     to support it.  */
  static int cannot_suspend;
  
 -extern Lisp_Object Qidentity, Qonly;
  \f
 -/* Install the string STR as the beginning of the string of echoing,
 -   so that it serves as a prompt for the next character.
 -   Also start echoing.  */
 -
 -void
 -echo_prompt (str)
 -     Lisp_Object str;
 -{
 -  current_kboard->echo_string = str;
 -  current_kboard->echo_after_prompt = SCHARS (str);
 -  echo_now ();
 -}
 -
  /* Add C to the echo string, if echoing is going on.
     C can be a character, which is printed prettily ("M-C-x" and all that
     jazz), or a symbol, whose name is printed.  */
  
  void
 -echo_char (c)
 -     Lisp_Object c;
 +echo_char (Lisp_Object c)
  {
    if (current_kboard->immediate_echo)
      {
              ptr = buffer + offset;
            }
  
 -        bcopy (text, ptr, len);
 +        memcpy (ptr, text, len);
          ptr += len;
        }
  
     empty, so that it serves as a mini-prompt for the very next character.  */
  
  void
 -echo_dash ()
 +echo_dash (void)
  {
    /* Do nothing if not echoing at all.  */
    if (NILP (current_kboard->echo_string))
      return;
  
 +  if (this_command_key_count == 0)
 +    return;
 +
    if (!current_kboard->immediate_echo
        && SCHARS (current_kboard->echo_string) == 0)
      return;
     doing so.  */
  
  void
 -echo_now ()
 +echo_now (void)
  {
    if (!current_kboard->immediate_echo)
      {
  /* Turn off echoing, for the start of a new command.  */
  
  void
 -cancel_echoing ()
 +cancel_echoing (void)
  {
    current_kboard->immediate_echo = 0;
    current_kboard->echo_after_prompt = -1;
  /* Return the length of the current echo string.  */
  
  static int
 -echo_length ()
 +echo_length (void)
  {
    return (STRINGP (current_kboard->echo_string)
          ? SCHARS (current_kboard->echo_string)
     switches frames while entering a key sequence.  */
  
  static void
 -echo_truncate (nchars)
 -     int nchars;
 +echo_truncate (EMACS_INT nchars)
  {
    if (STRINGP (current_kboard->echo_string))
      current_kboard->echo_string
  \f
  /* Functions for manipulating this_command_keys.  */
  static void
 -add_command_key (key)
 -     Lisp_Object key;
 +add_command_key (Lisp_Object key)
  {
  #if 0 /* Not needed after we made Freset_this_command_lengths
         do the job immediately.  */
  
  \f
  Lisp_Object
 -recursive_edit_1 ()
 +recursive_edit_1 (void)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object val;
  /* When an auto-save happens, record the "time", and don't do again soon.  */
  
  void
 -record_auto_save ()
 +record_auto_save (void)
  {
    last_auto_save = num_nonmacro_input_events;
  }
  /* Make an auto save happen as soon as possible at command level.  */
  
  void
 -force_auto_save_soon ()
 +force_auto_save_soon (void)
  {
    last_auto_save = - auto_save_interval - 1;
  
@@@ -961,7 -988,7 +961,7 @@@ To get out of the recursive edit, a com
  that tells this function to return.
  Alternatively, `(throw 'exit t)' makes this function signal an error.
  This function is called by the editor initialization to begin editing.  */)
 -     ()
 +  (void)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object buffer;
  }
  
  Lisp_Object
 -recursive_edit_unwind (buffer)
 -     Lisp_Object buffer;
 +recursive_edit_unwind (Lisp_Object buffer)
  {
    if (BUFFERP (buffer))
      Fset_buffer (buffer);
@@@ -1038,7 -1066,8 +1038,7 @@@ single_kboard_state (
     get out of it.  */
  
  void
 -not_single_kboard_state (kboard)
 -     KBOARD *kboard;
 +not_single_kboard_state (KBOARD *kboard)
  {
    if (kboard == current_kboard)
      single_kboard = 0;
@@@ -1057,7 -1086,8 +1057,7 @@@ struct kboard_stac
  static struct kboard_stack *kboard_stack;
  
  void
 -push_kboard (k)
 -     struct kboard *k;
 +push_kboard (struct kboard *k)
  {
    struct kboard_stack *p
      = (struct kboard_stack *) xmalloc (sizeof (struct kboard_stack));
  }
  
  void
 -pop_kboard ()
 +pop_kboard (void)
  {
    struct terminal *t;
    struct kboard_stack *p = kboard_stack;
    locked, then this function will throw an errow.  */
  
  void
 -temporarily_switch_to_single_kboard (f)
 -     struct frame *f;
 +temporarily_switch_to_single_kboard (struct frame *f)
  {
    int was_locked = single_kboard;
    if (was_locked)
@@@ -1145,7 -1176,8 +1145,7 @@@ record_single_kboard_state (
  #endif
  
  static Lisp_Object
 -restore_kboard_configuration (was_locked)
 -     Lisp_Object was_locked;
 +restore_kboard_configuration (Lisp_Object was_locked)
  {
    if (NILP (was_locked))
      single_kboard = 0;
     by printing an error message and returning to the editor command loop.  */
  
  Lisp_Object
 -cmd_error (data)
 -     Lisp_Object data;
 +cmd_error (Lisp_Object data)
  {
    Lisp_Object old_level, old_length;
    char macroerror[50];
     string.  */
  
  void
 -cmd_error_internal (data, context)
 -     Lisp_Object data;
 -     char *context;
 +cmd_error_internal (Lisp_Object data, const char *context)
  {
    struct frame *sf = SELECTED_FRAME ();
  
    Vsignaling_function = Qnil;
  }
  \f
 -Lisp_Object command_loop_1 ();
 -Lisp_Object command_loop_2 ();
 -Lisp_Object top_level_1 ();
 +Lisp_Object command_loop_1 (void);
 +Lisp_Object command_loop_2 (Lisp_Object);
 +Lisp_Object top_level_1 (Lisp_Object);
  
  /* Entry to editor-command-loop.
     This level has the catches for exiting/returning to editor command loop.
     It returns nil to exit recursive edit, t to abort it.  */
  
  Lisp_Object
 -command_loop ()
 +command_loop (void)
  {
    if (command_loop_level > 0 || minibuf_level > 0)
      {
     returned due to end of file (or end of kbd macro).  */
  
  Lisp_Object
 -command_loop_2 ()
 +command_loop_2 (Lisp_Object ignore)
  {
    register Lisp_Object val;
  
  }
  
  Lisp_Object
 -top_level_2 ()
 +top_level_2 (void)
  {
    return Feval (Vtop_level);
  }
  
  Lisp_Object
 -top_level_1 ()
 +top_level_1 (Lisp_Object ignore)
  {
    /* On entry to the outer level, run the startup file */
    if (!NILP (Vtop_level))
  DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, "",
         doc: /* Exit all recursive editing levels.
  This also exits all active minibuffers.  */)
 -     ()
 +  (void)
  {
  #ifdef HAVE_WINDOW_SYSTEM
    if (display_hourglass_p)
    while (INPUT_BLOCKED_P)
      UNBLOCK_INPUT;
  
 -  return Fthrow (Qtop_level, Qnil);
 +  Fthrow (Qtop_level, Qnil);
  }
  
  DEFUN ("exit-recursive-edit", Fexit_recursive_edit, Sexit_recursive_edit, 0, 0, "",
         doc: /* Exit from the innermost recursive edit or minibuffer.  */)
 -     ()
 +  (void)
  {
    if (command_loop_level > 0 || minibuf_level > 0)
      Fthrow (Qexit, Qnil);
  
    error ("No recursive edit is in progress");
 -  return Qnil;
  }
  
  DEFUN ("abort-recursive-edit", Fabort_recursive_edit, Sabort_recursive_edit, 0, 0, "",
         doc: /* Abort the command that requested this recursive edit or minibuffer input.  */)
 -     ()
 +  (void)
  {
    if (command_loop_level > 0 || minibuf_level > 0)
      Fthrow (Qexit, Qt);
  
    error ("No recursive edit is in progress");
 -  return Qnil;
  }
  \f
  #if defined (HAVE_MOUSE) || defined (HAVE_GPM)
     of this function.  */
  
  static Lisp_Object
 -tracking_off (old_value)
 -     Lisp_Object old_value;
 +tracking_off (Lisp_Object old_value)
  {
    do_mouse_tracking = old_value;
    if (NILP (old_value))
@@@ -1419,7 -1457,8 +1419,7 @@@ Within a `track-mouse' form, mouse moti
  you can read with `read-event'.
  Normally, mouse motion is ignored.
  usage: (track-mouse BODY...)  */)
 -     (args)
 -     Lisp_Object args;
 +  (Lisp_Object args)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object val;
  int ignore_mouse_drag_p;
  
  static FRAME_PTR
 -some_mouse_moved ()
 +some_mouse_moved (void)
  {
    Lisp_Object tail, frame;
  
  /* This is the actual command reading loop,
     sans error-handling encapsulation.  */
  
 -static int read_key_sequence P_ ((Lisp_Object *, int, Lisp_Object,
 -                                int, int, int));
 -void safe_run_hooks P_ ((Lisp_Object));
 -static void adjust_point_for_property P_ ((int, int));
 +static int read_key_sequence (Lisp_Object *, int, Lisp_Object,
 +                              int, int, int);
 +void safe_run_hooks (Lisp_Object);
 +static void adjust_point_for_property (EMACS_INT, int);
  
  /* Cancel hourglass from protect_unwind.
     ARG is not used.  */
  #ifdef HAVE_WINDOW_SYSTEM
  static Lisp_Object
 -cancel_hourglass_unwind (arg)
 -     Lisp_Object arg;
 +cancel_hourglass_unwind (Lisp_Object arg)
  {
    cancel_hourglass ();
    return Qnil;
  }
  #endif
  
 -extern int nonundocount;      /* Declared in cmds.c.  */
 +/* FIXME: This is wrong rather than test window-system, we should call
 +   a new set-selection, which will then dispatch to x-set-selection, or
 +   tty-set-selection, or w32-set-selection, ...  */
 +EXFUN (Fwindow_system, 1);
  
  Lisp_Object
 -command_loop_1 ()
 +command_loop_1 (void)
  {
    Lisp_Object cmd;
 -  int lose;
    Lisp_Object keybuf[30];
    int i;
    int prev_modiff = 0;
        }
        else
        {
 -        if (NILP (current_kboard->Vprefix_arg))
 -          {
 -            /* In case we jump to directly_done.  */
 -            Vcurrent_prefix_arg = current_kboard->Vprefix_arg;
 -
 -            /* Recognize some common commands in common situations and
 -               do them directly.  */
 -            if (EQ (Vthis_command, Qforward_char) && PT < ZV
 -                && NILP (Vthis_command_keys_shift_translated)
 -                && !CONSP (Vtransient_mark_mode))
 -              {
 -                  struct Lisp_Char_Table *dp
 -                  = window_display_table (XWINDOW (selected_window));
 -                lose = FETCH_CHAR (PT_BYTE);
 -                SET_PT (PT + 1);
 -                if (! NILP (Vpost_command_hook))
 -                  /* Put this before calling adjust_point_for_property
 -                     so it will only get called once in any case.  */
 -                  goto directly_done;
 -                if (current_buffer == prev_buffer
 -                    && last_point_position != PT
 -                    && NILP (Vdisable_point_adjustment)
 -                    && NILP (Vglobal_disable_point_adjustment))
 -                  adjust_point_for_property (last_point_position, 0);
 -                already_adjusted = 1;
 -                if (PT == last_point_position + 1
 -                    && (dp
 -                        ? (VECTORP (DISP_CHAR_VECTOR (dp, lose))
 -                           ? XVECTOR (DISP_CHAR_VECTOR (dp, lose))->size == 1
 -                           : (NILP (DISP_CHAR_VECTOR (dp, lose))
 -                              && (lose >= 0x20 && lose < 0x7f)))
 -                        : (lose >= 0x20 && lose < 0x7f))
 -                    /* To extract the case of continuation on
 -                         wide-column characters.  */
 -                    && ASCII_BYTE_P (lose)
 -                    && (XFASTINT (XWINDOW (selected_window)->last_modified)
 -                        >= MODIFF)
 -                    && (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
 -                        >= OVERLAY_MODIFF)
 -                    && (XFASTINT (XWINDOW (selected_window)->last_point)
 -                        == PT - 1)
 -                    && !windows_or_buffers_changed
 -                    && EQ (current_buffer->selective_display, Qnil)
 -                    && !detect_input_pending ()
 -                    && NILP (XWINDOW (selected_window)->column_number_displayed)
 -                    && NILP (Vexecuting_kbd_macro))
 -                  direct_output_forward_char (1);
 -                goto directly_done;
 -              }
 -            else if (EQ (Vthis_command, Qbackward_char) && PT > BEGV
 -                     && NILP (Vthis_command_keys_shift_translated)
 -                     && !CONSP (Vtransient_mark_mode))
 -              {
 -                  struct Lisp_Char_Table *dp
 -                  = window_display_table (XWINDOW (selected_window));
 -                SET_PT (PT - 1);
 -                lose = FETCH_CHAR (PT_BYTE);
 -                if (! NILP (Vpost_command_hook))
 -                  goto directly_done;
 -                if (current_buffer == prev_buffer
 -                    && last_point_position != PT
 -                    && NILP (Vdisable_point_adjustment)
 -                    && NILP (Vglobal_disable_point_adjustment))
 -                  adjust_point_for_property (last_point_position, 0);
 -                already_adjusted = 1;
 -                if (PT == last_point_position - 1
 -                    && (dp
 -                        ? (VECTORP (DISP_CHAR_VECTOR (dp, lose))
 -                           ? XVECTOR (DISP_CHAR_VECTOR (dp, lose))->size == 1
 -                           : (NILP (DISP_CHAR_VECTOR (dp, lose))
 -                              && (lose >= 0x20 && lose < 0x7f)))
 -                        : (lose >= 0x20 && lose < 0x7f))
 -                    && (XFASTINT (XWINDOW (selected_window)->last_modified)
 -                        >= MODIFF)
 -                    && (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
 -                        >= OVERLAY_MODIFF)
 -                    && (XFASTINT (XWINDOW (selected_window)->last_point)
 -                        == PT + 1)
 -                    && !windows_or_buffers_changed
 -                    && EQ (current_buffer->selective_display, Qnil)
 -                    && !detect_input_pending ()
 -                    && NILP (XWINDOW (selected_window)->column_number_displayed)
 -                    && NILP (Vexecuting_kbd_macro))
 -                  direct_output_forward_char (-1);
 -                goto directly_done;
 -              }
 -            else if (EQ (Vthis_command, Qself_insert_command)
 -                     /* Try this optimization only on char keystrokes.  */
 -                     && NATNUMP (last_command_event)
 -                     && CHAR_VALID_P (XFASTINT (last_command_event), 0))
 -              {
 -                unsigned int c
 -                  = translate_char (Vtranslation_table_for_input,
 -                                    XFASTINT (last_command_event));
 -                int value;
 -                if (NILP (Vexecuting_kbd_macro)
 -                    && !EQ (minibuf_window, selected_window))
 -                  {
 -                    if (!nonundocount || nonundocount >= 20)
 -                      {
 -                        Fundo_boundary ();
 -                        nonundocount = 0;
 -                      }
 -                    nonundocount++;
 -                  }
 -
 -                lose = ((XFASTINT (XWINDOW (selected_window)->last_modified)
 -                         < MODIFF)
 -                        || (XFASTINT (XWINDOW (selected_window)->last_overlay_modified)
 -                            < OVERLAY_MODIFF)
 -                        || (XFASTINT (XWINDOW (selected_window)->last_point)
 -                            != PT)
 -                        || MODIFF <= SAVE_MODIFF
 -                        || windows_or_buffers_changed
 -                        || !EQ (current_buffer->selective_display, Qnil)
 -                        || detect_input_pending ()
 -                        || !NILP (XWINDOW (selected_window)->column_number_displayed)
 -                        || !NILP (Vexecuting_kbd_macro));
 -
 -                value = internal_self_insert (c, 0);
 -
 -                if (value == 2)
 -                  nonundocount = 0;
 -
 -                  frame_make_pointer_invisible ();
 -
 -                if (! NILP (Vpost_command_hook))
 -                  /* Put this before calling adjust_point_for_property
 -                     so it will only get called once in any case.  */
 -                  goto directly_done;
 -
 -                /* VALUE == 1 when AFTER-CHANGE functions are
 -                   installed which is the case most of the time
 -                   because FONT-LOCK installs one.  */
 -                if (!lose && !value)
 -                  direct_output_for_insert (c);
 -                goto directly_done;
 -              }
 -          }
 -
          /* Here for a command that isn't executed directly */
  
 -          {
  #ifdef HAVE_WINDOW_SYSTEM
              int scount = SPECPDL_INDEX ();
  
                }
  #endif
  
 -            nonundocount = 0;
              if (NILP (current_kboard->Vprefix_arg)) /* FIXME: Why?  --Stef  */
                Fundo_boundary ();
              Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil);
              unbind_to (scount, Qnil);
  #endif
            }
 -      }
 -    directly_done: ;
        current_kboard->Vlast_prefix_arg = Vcurrent_prefix_arg;
  
        /* Note that the value cell will never directly contain nil
          this_single_command_key_start = 0;
        }
  
 -      if (!NILP (current_buffer->mark_active) && !NILP (Vrun_hooks))
 +      if (!NILP (current_buffer->mark_active)
 +        && !NILP (Vrun_hooks))
        {
          /* In Emacs 22, setting transient-mark-mode to `only' was a
             way of turning it on for just one command.  This usage is
            Vtransient_mark_mode = Qidentity;
  
          if (!NILP (Vdeactivate_mark))
 +          /* If `select-active-regions' is non-nil, this call to
 +             `deactivate-mark' also sets the PRIMARY selection.  */
            call0 (Qdeactivate_mark);
 -        else if (current_buffer != prev_buffer || MODIFF != prev_modiff)
 -          call1 (Vrun_hooks, intern ("activate-mark-hook"));
 +        else
 +          {
 +            /* Even if not deactivating the mark, set PRIMARY if
 +               `select-active-regions' is non-nil.  */
 +            if (!NILP (Fwindow_system (Qnil))
 +                /* Even if mark_active is non-nil, the actual buffer
 +                   marker may not have been set yet (Bug#7044).  */
 +                && XMARKER (current_buffer->mark)->buffer
 +                && (EQ (Vselect_active_regions, Qonly)
 +                    ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly)
 +                    : (!NILP (Vselect_active_regions)
 +                       && !NILP (Vtransient_mark_mode)))
 +                && !EQ (Vthis_command, Qhandle_switch_frame))
 +              {
 +                EMACS_INT beg =
 +                  XINT (Fmarker_position (current_buffer->mark));
 +                EMACS_INT end = PT;
 +                if (beg < end)
 +                  call2 (Qx_set_selection, QPRIMARY,
 +                         make_buffer_string (beg, end, 0));
 +                else if (beg > end)
 +                  call2 (Qx_set_selection, QPRIMARY,
 +                         make_buffer_string (end, beg, 0));
 +                /* Don't set empty selections.  */
 +              }
 +
 +            if (current_buffer != prev_buffer || MODIFF != prev_modiff)
 +              call1 (Vrun_hooks, intern ("activate-mark-hook"));
 +          }
 +
 +        Vsaved_region_selection = Qnil;
        }
  
      finalize:
      }
  }
  
 -extern Lisp_Object Qcomposition, Qdisplay;
 -
  /* Adjust point to a boundary of a region that has such a property
     that should be treated intangible.  For the moment, we check
     `composition', `display' and `invisible' properties.
     LAST_PT is the last position of point.  */
  
 -extern Lisp_Object Qafter_string, Qbefore_string;
 -extern Lisp_Object get_pos_property P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
 -
  static void
 -adjust_point_for_property (last_pt, modified)
 -     int last_pt;
 -     int modified;
 +adjust_point_for_property (EMACS_INT last_pt, int modified)
  {
    EMACS_INT beg, end;
    Lisp_Object val, overlay, tmp;
       user can keep inserting another character at point or keep
       deleting characters around point.  */
    int check_composition = ! modified, check_display = 1, check_invisible = 1;
 -  int orig_pt = PT;
 +  EMACS_INT orig_pt = PT;
  
    /* FIXME: cycling is probably not necessary because these properties
       can't be usefully combined anyway.  */
  /* Subroutine for safe_run_hooks: run the hook HOOK.  */
  
  static Lisp_Object
 -safe_run_hooks_1 (hook)
 -     Lisp_Object hook;
 +safe_run_hooks_1 (void)
  {
    if (NILP (Vrun_hooks))
      return Qnil;
  /* Subroutine for safe_run_hooks: handle an error by clearing out the hook.  */
  
  static Lisp_Object
 -safe_run_hooks_error (data)
 -     Lisp_Object data;
 +safe_run_hooks_error (Lisp_Object data)
  {
    Lisp_Object args[3];
    args[0] = build_string ("Error in %s: %s");
     to mysteriously evaporate.  */
  
  void
 -safe_run_hooks (hook)
 -     Lisp_Object hook;
 +safe_run_hooks (Lisp_Object hook)
  {
    int count = SPECPDL_INDEX ();
    specbind (Qinhibit_quit, hook);
@@@ -2070,7 -2230,7 +2070,7 @@@ struct atimer *poll_timer
     there.  */
  
  void
 -poll_for_input_1 ()
 +poll_for_input_1 (void)
  {
  /* Tell ns_read_socket() it is being called asynchronously so it can avoid
     doing anything dangerous. */
     poll_timer.  */
  
  void
 -poll_for_input (timer)
 -     struct atimer *timer;
 +poll_for_input (struct atimer *timer)
  {
    if (poll_suppress_count == 0)
      {
     This function is called unconditionally from various places.  */
  
  void
 -start_polling ()
 +start_polling (void)
  {
  #ifdef POLL_FOR_INPUT
    /* XXX This condition was (read_socket_hook && !interrupt_input),
  /* Nonzero if we are using polling to handle input asynchronously.  */
  
  int
 -input_polling_used ()
 +input_polling_used (void)
  {
  #ifdef POLL_FOR_INPUT
    /* XXX This condition was (read_socket_hook && !interrupt_input),
  /* Turn off polling.  */
  
  void
 -stop_polling ()
 +stop_polling (void)
  {
  #ifdef POLL_FOR_INPUT
    /* XXX This condition was (read_socket_hook && !interrupt_input),
     and start or stop polling accordingly.  */
  
  void
 -set_poll_suppress_count (count)
 -     int count;
 +set_poll_suppress_count (int count)
  {
  #ifdef POLL_FOR_INPUT
    if (count == 0 && poll_suppress_count != 0)
     But don't decrease it.  */
  
  void
 -bind_polling_period (n)
 -     int n;
 +bind_polling_period (int n)
  {
  #ifdef POLL_FOR_INPUT
    int new = polling_period;
  /* Apply the control modifier to CHARACTER.  */
  
  int
 -make_ctrl_char (c)
 -     int c;
 +make_ctrl_char (int c)
  {
    /* Save the upper bits here.  */
    int upper = c & ~0177;
     from X code running asynchronously.  */
  
  void
 -show_help_echo (help, window, object, pos, ok_to_overwrite_keystroke_echo)
 -     Lisp_Object help, window, object, pos;
 -     int ok_to_overwrite_keystroke_echo;
 +show_help_echo (Lisp_Object help, Lisp_Object window, Lisp_Object object,
 +              Lisp_Object pos, int ok_to_overwrite_keystroke_echo)
  {
    if (!NILP (help) && !STRINGP (help))
      {
  \f
  /* Input of single characters from keyboard */
  
 -Lisp_Object print_help ();
 -static Lisp_Object kbd_buffer_get_event ();
 -static void record_char ();
 +Lisp_Object print_help (Lisp_Object object);
 +static Lisp_Object kbd_buffer_get_event (KBOARD **kbp, int *used_mouse_menu,
 +                                       struct timeval *end_time);
 +static void record_char (Lisp_Object c);
  
  static Lisp_Object help_form_saved_window_configs;
  static Lisp_Object
@@@ -2383,8 -2547,13 +2383,8 @@@ do { if (polling_stopped_here) start_po
     Value is t if we showed a menu and the user rejected it.  */
  
  Lisp_Object
 -read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu, end_time)
 -     int commandflag;
 -     int nmaps;
 -     Lisp_Object *maps;
 -     Lisp_Object prev_event;
 -     int *used_mouse_menu;
 -     EMACS_TIME *end_time;
 +read_char (int commandflag, int nmaps, Lisp_Object *maps, Lisp_Object prev_event,
 +         int *used_mouse_menu, struct timeval *end_time)
  {
    volatile Lisp_Object c;
    int count, jmpcount;
  
    if (INTERACTIVE && NILP (c))
      {
 -      int delay_level, buffer_size;
 +      int delay_level;
 +      EMACS_INT buffer_size;
  
        /* Slow down auto saves logarithmically in size of current buffer,
         and garbage collect while we're at it.  */
     Record it for echoing, for this-command-keys, and so on.  */
  
  static void
 -record_menu_key (c)
 -     Lisp_Object c;
 +record_menu_key (Lisp_Object c)
  {
    /* Wipe the echo area.  */
    clear_message (1, 0);
  /* Return 1 if should recognize C as "the help character".  */
  
  int
 -help_char_p (c)
 -     Lisp_Object c;
 +help_char_p (Lisp_Object c)
  {
    Lisp_Object tail;
  
  /* Record the input event C in various ways.  */
  
  static void
 -record_char (c)
 -     Lisp_Object c;
 +record_char (Lisp_Object c)
  {
    int recorded = 0;
  
  }
  
  Lisp_Object
 -print_help (object)
 -     Lisp_Object object;
 +print_help (Lisp_Object object)
  {
    struct buffer *old = current_buffer;
    Fprinc (object, Qnil);
     See read_process_output.  */
  
  static void
 -save_getcjmp (temp)
 -     jmp_buf temp;
 +save_getcjmp (jmp_buf temp)
  {
 -  bcopy (getcjmp, temp, sizeof getcjmp);
 +  memcpy (temp, getcjmp, sizeof getcjmp);
  }
  
  static void
 -restore_getcjmp (temp)
 -     jmp_buf temp;
 +restore_getcjmp (jmp_buf temp)
  {
 -  bcopy (temp, getcjmp, sizeof getcjmp);
 +  memcpy (getcjmp, temp, sizeof getcjmp);
  }
  \f
  /* Low level keyboard/mouse input.
  /* Return true if there are any events in the queue that read-char
     would return.  If this returns false, a read-char would block.  */
  static int
 -readable_events (flags)
 -     int flags;
 +readable_events (int flags)
  {
 -#ifdef HAVE_DBUS
 -  /* Check whether a D-Bus message has arrived.  */
 -  if (xd_pending_messages () > 0)
 -    return 1;
 -#endif /* HAVE_DBUS */
 -
    if (flags & READABLE_EVENTS_DO_TIMERS_NOW)
      timer_check (1);
  
  int stop_character;
  
  static KBOARD *
 -event_to_kboard (event)
 -     struct input_event *event;
 +event_to_kboard (struct input_event *event)
  {
    Lisp_Object frame;
    frame = event->frame_or_window;
      return FRAME_KBOARD (XFRAME (frame));
  }
  
+ #ifdef subprocesses
  /* Return the number of slots occupied in kbd_buffer.  */
  
  static int
@@@ -3613,13 -3796,15 +3614,14 @@@ kbd_buffer_nr_stored (void
         : ((kbd_buffer + KBD_BUFFER_SIZE) - kbd_fetch_ptr
            + (kbd_store_ptr - kbd_buffer)));
  }
+ #endif        /* subprocesses */
  
  Lisp_Object Vthrow_on_input;
  
  /* Store an event obtained at interrupt level into kbd_buffer, fifo */
  
  void
 -kbd_buffer_store_event (event)
 -     register struct input_event *event;
 +kbd_buffer_store_event (register struct input_event *event)
  {
    kbd_buffer_store_event_hold (event, 0);
  }
   */
  
  void
 -kbd_buffer_store_event_hold (event, hold_quit)
 -     register struct input_event *event;
 -     struct input_event *hold_quit;
 +kbd_buffer_store_event_hold (register struct input_event *event,
 +                           struct input_event *hold_quit)
  {
    if (event->kind == NO_EVENT)
      abort ();
  
          if (hold_quit)
            {
 -            bcopy (event, (char *) hold_quit, sizeof (*event));
 +            memcpy (hold_quit, event, sizeof (*event));
              return;
            }
  
      {
        *kbd_store_ptr = *event;
        ++kbd_store_ptr;
+ #ifdef subprocesses
        if (kbd_buffer_nr_stored () > KBD_BUFFER_SIZE/2 && ! kbd_on_hold_p ())
          {
            /* Don't read keyboard input until we have processed kbd_buffer.
  #endif
            stop_polling ();
          }
+ #endif        /* subprocesses */
      }
  
    /* If we're inside while-no-input, and this event qualifies
  /* Put an input event back in the head of the event queue.  */
  
  void
 -kbd_buffer_unget_event (event)
 -     register struct input_event *event;
 +kbd_buffer_unget_event (register struct input_event *event)
  {
    if (kbd_fetch_ptr == kbd_buffer)
      kbd_fetch_ptr = kbd_buffer + KBD_BUFFER_SIZE;
  }
  
  
 -/* Generate HELP_EVENT input_events in BUFP which has room for
 -   SIZE events.  If there's not enough room in BUFP, ignore this
 -   event.
 +/* Generate a HELP_EVENT input_event and store it in the keyboard
 +   buffer.
  
     HELP is the help form.
  
 -   FRAME is the frame on which the help is generated.  OBJECT is the
 -   Lisp object where the help was found (a buffer, a string, an
 -   overlay, or nil if neither from a string nor from a buffer.  POS is
 -   the position within OBJECT where the help was found.
 -
 -   Value is the number of input_events generated.  */
 +   FRAME and WINDOW are the frame and window where the help is
 +   generated.  OBJECT is the Lisp object where the help was found (a
 +   buffer, a string, an overlay, or nil if neither from a string nor
 +   from a buffer).  POS is the position within OBJECT where the help
 +   was found.  */
  
  void
 -gen_help_event (help, frame, window, object, pos)
 -     Lisp_Object help, frame, object, window;
 -     int pos;
 +gen_help_event (Lisp_Object help, Lisp_Object frame, Lisp_Object window,
 +              Lisp_Object object, EMACS_INT pos)
  {
    struct input_event event;
  
  /* Store HELP_EVENTs for HELP on FRAME in the input queue.  */
  
  void
 -kbd_buffer_store_help_event (frame, help)
 -     Lisp_Object frame, help;
 +kbd_buffer_store_help_event (Lisp_Object frame, Lisp_Object help)
  {
    struct input_event event;
  
  /* Discard any mouse events in the event buffer by setting them to
     NO_EVENT.  */
  void
 -discard_mouse_events ()
 +discard_mouse_events (void)
  {
    struct input_event *sp;
    for (sp = kbd_fetch_ptr; sp != kbd_store_ptr; sp++)
     are no real input events.  */
  
  int
 -kbd_buffer_events_waiting (discard)
 -     int discard;
 +kbd_buffer_events_waiting (int discard)
  {
    struct input_event *sp;
  
  /* Clear input event EVENT.  */
  
  static INLINE void
 -clear_event (event)
 -     struct input_event *event;
 +clear_event (struct input_event *event)
  {
    event->kind = NO_EVENT;
  }
     We always read and discard one event.  */
  
  static Lisp_Object
 -kbd_buffer_get_event (kbp, used_mouse_menu, end_time)
 -     KBOARD **kbp;
 -     int *used_mouse_menu;
 -     EMACS_TIME *end_time;
 +kbd_buffer_get_event (KBOARD **kbp,
 +                      int *used_mouse_menu,
 +                      struct timeval *end_time)
  {
    register int c;
    Lisp_Object obj;
  
+ #ifdef subprocesses
    if (kbd_on_hold_p () && kbd_buffer_nr_stored () < KBD_BUFFER_SIZE/4)
      {
        /* Start reading input again, we have processed enough so we can
  #endif /* SIGIO */
        start_polling ();
      }
+ #endif        /* subprocesses */
  
    if (noninteractive
        /* In case we are running as a daemon, only do this before
        /* One way or another, wait until input is available; then, if
         interrupt handlers have not read it, read it now.  */
  
 -#ifdef HAVE_DBUS
 -      /* Read D-Bus messages.  */
 -      xd_read_queued_messages ();
 -#endif /* HAVE_DBUS */
 -
  /* Note SIGIO has been undef'd if FIONREAD is missing.  */
  #ifdef SIGIO
        gobble_input (0);
     then return, without reading any user-visible events.  */
  
  void
 -swallow_events (do_display)
 -     int do_display;
 +swallow_events (int do_display)
  {
    int old_timers_run;
  
     for the sake of running idle-time timers.  */
  
  static void
 -timer_start_idle ()
 +timer_start_idle (void)
  {
    Lisp_Object timers;
  
  /* Record that Emacs is no longer idle, so stop running idle-time timers.  */
  
  static void
 -timer_stop_idle ()
 +timer_stop_idle (void)
  {
    EMACS_SET_SECS_USECS (timer_idleness_start_time, -1, -1);
  }
  /* Resume idle timer from last idle start time.  */
  
  static void
 -timer_resume_idle ()
 +timer_resume_idle (void)
  {
    if (! EMACS_TIME_NEG_P (timer_idleness_start_time))
      return;
@@@ -4381,6 -4585,8 +4387,6 @@@ struct input_event last_timer_event
     ...).  Each element has the form (FUN . ARGS).  */
  Lisp_Object pending_funcalls;
  
 -extern Lisp_Object Qapply;
 -
  /* Check whether a timer has fired.  To prevent larger problems we simply
     disregard elements that are not proper timers.  Do not make a circular
     timer list for the time being.
     should be done.  */
  
  static EMACS_TIME
 -timer_check_2 ()
 +timer_check_2 (void)
  {
    EMACS_TIME nexttime;
    EMACS_TIME now, idleness_now;
     Now we always run timers directly.  */
  
  EMACS_TIME
 -timer_check (do_it_now)
 -     int do_it_now;
 +timer_check (int do_it_now)
  {
    EMACS_TIME nexttime;
  
@@@ -4618,7 -4825,7 +4624,7 @@@ The value when Emacs is not idle is nil
  
  The microsecond count is zero on systems that do not provide
  resolution finer than a second.  */)
 -  ()
 +  (void)
  {
    if (! EMACS_TIME_NEG_P (timer_idleness_start_time))
      {
@@@ -4752,7 -4959,7 +4758,7 @@@ static const int lispy_accent_codes[] 
  /* This is a list of Lisp names for special "accent" characters.
     It parallels lispy_accent_codes.  */
  
 -static char *lispy_accent_keys[] =
 +static const char *const lispy_accent_keys[] =
  {
    "dead-circumflex",
    "dead-grave",
  #ifdef HAVE_NTGUI
  #define FUNCTION_KEY_OFFSET 0x0
  
 -char *lispy_function_keys[] =
 +const char *const lispy_function_keys[] =
    {
      0,                /* 0                      */
  
      0,               /* VK_OEM_102        0xE2 */
      "ico-help",      /* VK_ICO_HELP       0xE3 */
      "ico-00",        /* VK_ICO_00         0xE4 */
 -    0,               /* VK_PROCESSKEY     0xE5 */
 +    0,               /* VK_PROCESSKEY     0xE5 - used by IME */
      "ico-clear",     /* VK_ICO_CLEAR      0xE6 */
 -    "packet",        /* VK_PACKET         0xE7 */
 +    0,               /* VK_PACKET         0xE7  - used to pass unicode chars */
      0,               /*                   0xE8 */
      "reset",         /* VK_OEM_RESET      0xE9 */
      "jump",          /* VK_OEM_JUMP       0xEA */
  
  /* Some of these duplicate the "Media keys" on newer keyboards,
     but they are delivered to the application in a different way.  */
 -static char *lispy_multimedia_keys[] =
 +static const char *const lispy_multimedia_keys[] =
    {
      0,
      "browser-back",
     the XK_kana_A case below.  */
  #if 0
  #ifdef XK_kana_A
 -static char *lispy_kana_keys[] =
 +static const char *const lispy_kana_keys[] =
    {
      /* X Keysym value */
      0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,  /* 0x400 .. 0x40f */
  
  /* You'll notice that this table is arranged to be conveniently
     indexed by X Windows keysym values.  */
 -static char *lispy_function_keys[] =
 +static const char *const lispy_function_keys[] =
    {
      /* X Keysym value */
  
  /* ISO 9995 Function and Modifier Keys; the first byte is 0xFE.  */
  #define ISO_FUNCTION_KEY_OFFSET 0xfe00
  
 -static char *iso_lispy_function_keys[] =
 +static const char *const iso_lispy_function_keys[] =
    {
      0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe00 */
      0, 0, 0, 0, 0, 0, 0, 0,   /* 0xfe08 */
  
  Lisp_Object Vlispy_mouse_stem;
  
 -static char *lispy_wheel_names[] =
 +static const char *const lispy_wheel_names[] =
  {
    "wheel-up", "wheel-down", "wheel-left", "wheel-right"
  };
  
  /* drag-n-drop events are generated when a set of selected files are
     dragged from another application and dropped onto an Emacs window.  */
 -static char *lispy_drag_n_drop_names[] =
 +static const char *const lispy_drag_n_drop_names[] =
  {
    "drag-n-drop"
  };
@@@ -5203,7 -5410,7 +5209,7 @@@ Lisp_Object Qup, Qdown, Qbottom, Qend_s
  Lisp_Object Qtop, Qratio;
  
  /* An array of scroll bar parts, indexed by an enum scroll_bar_part value.  */
 -Lisp_Object *scroll_bar_parts[] = {
 +static Lisp_Object *const scroll_bar_parts[] = {
    &Qabove_handle, &Qhandle, &Qbelow_handle,
    &Qup, &Qdown, &Qtop, &Qbottom, &Qend_scroll, &Qratio
  };
@@@ -5243,136 -5450,128 +5249,136 @@@ EMACS_INT double_click_fuzz
  
  int double_click_count;
  
 -/* Return position of a mouse click or wheel event */
 +/* X and Y are frame-relative coordinates for a click or wheel event.
 +   Return a Lisp-style event list.  */
  
  static Lisp_Object
 -make_lispy_position (f, x, y, time)
 -     struct frame *f;
 -     Lisp_Object *x, *y;
 -     unsigned long time;
 +make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y,
 +                   unsigned long time)
  {
 -  Lisp_Object window;
    enum window_part part;
    Lisp_Object posn = Qnil;
    Lisp_Object extra_info = Qnil;
 -  int wx, wy;
 -
 -  /* Set `window' to the window under frame pixel coordinates (x,y)  */
 -  if (f)
 -    window = window_from_coordinates (f, XINT (*x), XINT (*y),
 -                                    &part, &wx, &wy, 0);
 -  else
 -    window = Qnil;
 +  /* Coordinate pixel positions to return.  */
 +  int xret = 0, yret = 0;
 +  /* The window under frame pixel coordinates (x,y)  */
 +  Lisp_Object window = f
 +    ? window_from_coordinates (f, XINT (x), XINT (y), &part, 0)
 +    : Qnil;
  
    if (WINDOWP (window))
      {
        /* It's a click in window window at frame coordinates (x,y)  */
        struct window *w = XWINDOW (window);
        Lisp_Object string_info = Qnil;
 -      int textpos = -1, rx = -1, ry = -1;
 -      int dx = -1, dy = -1;
 +      EMACS_INT textpos = -1;
 +      int col = -1, row = -1;
 +      int dx  = -1, dy  = -1;
        int width = -1, height = -1;
        Lisp_Object object = Qnil;
  
 -      /* Set event coordinates to window-relative coordinates
 -       for constructing the Lisp event below.  */
 -      XSETINT (*x, wx);
 -      XSETINT (*y, wy);
 +      /* Pixel coordinates relative to the window corner.  */
 +      int wx = XINT (x) - WINDOW_LEFT_EDGE_X (w);
 +      int wy = XINT (y) - WINDOW_TOP_EDGE_Y (w);
  
 +      /* For text area clicks, return X, Y relative to the corner of
 +       this text area.  Note that dX, dY etc are set below, by
 +       buffer_posn_from_coords.  */
        if (part == ON_TEXT)
        {
 -        wx += WINDOW_LEFT_MARGIN_WIDTH (w);
 +        xret = XINT (x) - window_box_left (w, TEXT_AREA);
 +        yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
        }
 +      /* For mode line and header line clicks, return X relative to
 +       the left window edge; ignore Y.  Use mode_line_string to look
 +       for a string on the click position.  */
        else if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
        {
 -        /* Mode line or header line.  Look for a string under
 -           the mouse that may have a `local-map' property.  */
          Lisp_Object string;
 -        int charpos;
 -
 -        posn = part == ON_MODE_LINE ? Qmode_line : Qheader_line;
 -        rx = wx, ry = wy;
 -        string = mode_line_string (w, part, &rx, &ry, &charpos,
 +        EMACS_INT charpos;
 +
 +        posn = (part == ON_MODE_LINE) ? Qmode_line : Qheader_line;
 +        /* Note that mode_line_string takes COL, ROW as pixels and
 +           converts them to characters.  */
 +        col = wx;
 +        row = wy;
 +        string = mode_line_string (w, part, &col, &row, &charpos,
                                     &object, &dx, &dy, &width, &height);
          if (STRINGP (string))
            string_info = Fcons (string, make_number (charpos));
 -        if (w == XWINDOW (selected_window)
 -            && current_buffer == XBUFFER (w->buffer))
 -          textpos = PT;
 -        else
 -          textpos = XMARKER (w->pointm)->charpos;
 -      }
 -      else if (part == ON_VERTICAL_BORDER)
 -      {
 -        posn = Qvertical_line;
 -        wx = -1;
 -        dx = 0;
 -        width = 1;
 +        textpos = (w == XWINDOW (selected_window)
 +                   && current_buffer == XBUFFER (w->buffer))
 +          ? PT : XMARKER (w->pointm)->charpos;
 +
 +        xret = wx;
        }
 +      /* For fringes and margins, Y is relative to the area's (and the
 +       window's) top edge, while X is meaningless.  */
        else if (part == ON_LEFT_MARGIN || part == ON_RIGHT_MARGIN)
        {
          Lisp_Object string;
 -        int charpos;
 +        EMACS_INT charpos;
  
          posn = (part == ON_LEFT_MARGIN) ? Qleft_margin : Qright_margin;
 -        rx = wx, ry = wy;
 -        string = marginal_area_string (w, part, &rx, &ry, &charpos,
 +        col = wx;
 +        row = wy;
 +        string = marginal_area_string (w, part, &col, &row, &charpos,
                                         &object, &dx, &dy, &width, &height);
          if (STRINGP (string))
            string_info = Fcons (string, make_number (charpos));
 -        if (part == ON_LEFT_MARGIN)
 -          wx = 0;
 -        else
 -          wx = window_box_right_offset (w, TEXT_AREA) - 1;
 +        yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
        }
        else if (part == ON_LEFT_FRINGE)
        {
          posn = Qleft_fringe;
 -        rx = 0;
 -        dx = wx;
 -        wx = (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 -              ? 0
 -              : window_box_width (w, LEFT_MARGIN_AREA));
 -        dx -= wx;
 +        col = 0;
 +        dx = wx
 +          - (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 +             ? 0 : window_box_width (w, LEFT_MARGIN_AREA));
 +        dy = yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
        }
        else if (part == ON_RIGHT_FRINGE)
        {
          posn = Qright_fringe;
 -        rx = 0;
 -        dx = wx;
 -        wx = (window_box_width (w, LEFT_MARGIN_AREA)
 -              + window_box_width (w, TEXT_AREA)
 -              + (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 -                 ? window_box_width (w, RIGHT_MARGIN_AREA)
 -                 : 0));
 -        dx -= wx;
 +        col = 0;
 +        dx = wx
 +          - window_box_width (w, LEFT_MARGIN_AREA)
 +          - window_box_width (w, TEXT_AREA)
 +          - (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)
 +             ? window_box_width (w, RIGHT_MARGIN_AREA)
 +             : 0);
 +        dy = yret = wy - WINDOW_HEADER_LINE_HEIGHT (w);
        }
 -      else
 +      else if (part == ON_VERTICAL_BORDER)
        {
 -        /* Note: We have no special posn for part == ON_SCROLL_BAR.  */
 -        wx = max (WINDOW_LEFT_MARGIN_WIDTH (w), wx);
 +        posn = Qvertical_line;
 +        width = 1;
 +        dx = 0;
 +        dy = yret = wy;
        }
 +      /* Nothing special for part == ON_SCROLL_BAR.  */
  
 +      /* For clicks in the text area, fringes, or margins, call
 +       buffer_posn_from_coords to extract TEXTPOS, the buffer
 +       position nearest to the click.  */
        if (textpos < 0)
        {
          Lisp_Object string2, object2 = Qnil;
          struct display_pos p;
          int dx2, dy2;
          int width2, height2;
 -        string2 = buffer_posn_from_coords (w, &wx, &wy, &p,
 +        /* The pixel X coordinate passed to buffer_posn_from_coords
 +           is the X coordinate relative to the text area for
 +           text-area clicks, zero otherwise.  */
 +        int x2 = (part == ON_TEXT) ? xret : 0;
 +        int y2 = wy;
 +
 +        string2 = buffer_posn_from_coords (w, &x2, &y2, &p,
                                             &object2, &dx2, &dy2,
                                             &width2, &height2);
          textpos = CHARPOS (p.pos);
 -        if (rx < 0) rx = wx;
 -        if (ry < 0) ry = wy;
 +        if (col < 0) col = x2;
 +        if (row < 0) row = y2;
          if (dx < 0) dx = dx2;
          if (dy < 0) dy = dy2;
          if (width < 0) width = width2;
  #endif
  
        /* Object info */
 -      extra_info = Fcons (object,
 -                        Fcons (Fcons (make_number (dx),
 -                                      make_number (dy)),
 -                               Fcons (Fcons (make_number (width),
 -                                             make_number (height)),
 -                                      Qnil)));
 +      extra_info
 +      = list3 (object,
 +               Fcons (make_number (dx), make_number (dy)),
 +               Fcons (make_number (width), make_number (height)));
  
        /* String info */
        extra_info = Fcons (string_info,
                          Fcons (make_number (textpos),
 -                               Fcons (Fcons (make_number (rx),
 -                                             make_number (ry)),
 +                               Fcons (Fcons (make_number (col),
 +                                             make_number (row)),
                                        extra_info)));
      }
    else if (f != 0)
 -    {
 -      XSETFRAME (window, f);
 -    }
 +    XSETFRAME (window, f);
    else
 -    {
 -      window = Qnil;
 -      XSETFASTINT (*x, 0);
 -      XSETFASTINT (*y, 0);
 -    }
 +    window = Qnil;
  
    return Fcons (window,
                Fcons (posn,
 -                     Fcons (Fcons (*x, *y),
 +                     Fcons (Fcons (make_number (xret),
 +                                   make_number (yret)),
                              Fcons (make_number (time),
                                     extra_info))));
  }
     in order to build drag events when the button is released.  */
  
  static Lisp_Object
 -make_lispy_event (event)
 -     struct input_event *event;
 +make_lispy_event (struct input_event *event)
  {
    int i;
  
      case MULTIBYTE_CHAR_KEYSTROKE_EVENT:
        {
        Lisp_Object lispy_c;
 -      int c = event->code;
 +      EMACS_INT c = event->code;
        if (event->kind == ASCII_KEYSTROKE_EVENT)
          {
            c &= 0377;
                int hpos;
                int i;
  
 -#if 0
 -              /* Activate the menu bar on the down event.  If the
 -                 up event comes in before the menu code can deal with it,
 -                 just ignore it.  */
 -              if (! (event->modifiers & down_modifier))
 -                return Qnil;
 -#endif
 -
                /* Find the menu bar item under `column'.  */
                item = Qnil;
                items = FRAME_MENU_BAR_ITEMS (f);
              }
  #endif /* not USE_X_TOOLKIT && not USE_GTK && not HAVE_NS */
  
 -          position = make_lispy_position (f, &event->x, &event->y,
 +          position = make_lispy_position (f, event->x, event->y,
                                            event->timestamp);
          }
  #ifndef USE_TOOLKIT_SCROLL_BARS
              return Qnil;
  
            event->modifiers &= ~up_modifier;
 -#if 0 /* Formerly we treated an up with no down as a click event.  */
 -          if (!CONSP (start_pos))
 -            event->modifiers |= click_modifier;
 -          else
 -#endif
 +
              {
 -              Lisp_Object down;
 +              Lisp_Object new_down, down;
                EMACS_INT xdiff = double_click_fuzz, ydiff = double_click_fuzz;
  
                /* The third element of every position
                   should be the (x,y) pair.  */
                down = Fcar (Fcdr (Fcdr (start_pos)));
 +              new_down = Fcar (Fcdr (Fcdr (position)));
 +
                if (CONSP (down)
                    && INTEGERP (XCAR (down)) && INTEGERP (XCDR (down)))
                  {
 -                  xdiff = XINT (event->x) - XINT (XCAR (down));
 -                  ydiff = XINT (event->y) - XINT (XCDR (down));
 +                  xdiff = XINT (XCAR (new_down)) - XINT (XCAR (down));
 +                  ydiff = XINT (XCDR (new_down)) - XINT (XCDR (down));
                  }
  
                if (ignore_mouse_drag_p)
        if (! FRAME_LIVE_P (f))
          return Qnil;
  
 -      position = make_lispy_position (f, &event->x, &event->y,
 +      position = make_lispy_position (f, event->x, event->y,
                                        event->timestamp);
  
        /* Set double or triple modifiers to indicate the wheel speed.  */
          else
            abort ();
  
 -        if (FRAME_WINDOW_P (f))
 -          fuzz = double_click_fuzz;
 -        else
 -          fuzz = double_click_fuzz / 8;
 +        fuzz = FRAME_WINDOW_P (f)
 +          ? double_click_fuzz : double_click_fuzz / 8;
  
          if (event->modifiers & up_modifier)
            {
        if (! FRAME_LIVE_P (f))
          return Qnil;
  
 -      position = make_lispy_position (f, &event->x, &event->y,
 +      position = make_lispy_position (f, event->x, event->y,
                                        event->timestamp);
  
        head = modify_event_symbol (0, event->modifiers,
        start_pos_ptr = &AREF (button_down_location, button);
        start_pos = *start_pos_ptr;
  
 -      position = make_lispy_position (f, &event->x, &event->y,
 -                                          event->timestamp);
 +      position = make_lispy_position (f, event->x, event->y,
 +                                      event->timestamp);
  
        if (event->modifiers & down_modifier)
          *start_pos_ptr = Fcopy_alist (position);
  #if defined(HAVE_MOUSE) || defined(HAVE_GPM)
  
  static Lisp_Object
 -make_lispy_movement (frame, bar_window, part, x, y, time)
 -     FRAME_PTR frame;
 -     Lisp_Object bar_window;
 -     enum scroll_bar_part part;
 -     Lisp_Object x, y;
 -     unsigned long time;
 +make_lispy_movement (FRAME_PTR frame, Lisp_Object bar_window, enum scroll_bar_part part,
 +                   Lisp_Object x, Lisp_Object y, unsigned long time)
  {
    /* Is it a scroll bar movement?  */
    if (frame && ! NILP (bar_window))
  
        part_sym = *scroll_bar_parts[(int) part];
        return Fcons (Qscroll_bar_movement,
 -                  (Fcons (Fcons (bar_window,
 -                                 Fcons (Qvertical_scroll_bar,
 -                                        Fcons (Fcons (x, y),
 -                                               Fcons (make_number (time),
 -                                                      Fcons (part_sym,
 -                                                             Qnil))))),
 -                          Qnil)));
 +                  Fcons (list5 (bar_window,
 +                                Qvertical_scroll_bar,
 +                                Fcons (x, y),
 +                                make_number (time),
 +                                part_sym),
 +                         Qnil));
      }
 -
    /* Or is it an ordinary mouse movement?  */
    else
      {
        Lisp_Object position;
 -
 -      position = make_lispy_position (frame, &x, &y, time);
 -
 -      return Fcons (Qmouse_movement,
 -                  Fcons (position,
 -                         Qnil));
 +      position = make_lispy_position (frame, x, y, time);
 +      return list2 (Qmouse_movement, position);
      }
  }
  
  
  /* Construct a switch frame event.  */
  static Lisp_Object
 -make_lispy_switch_frame (frame)
 -     Lisp_Object frame;
 +make_lispy_switch_frame (Lisp_Object frame)
  {
    return Fcons (Qswitch_frame, Fcons (frame, Qnil));
  }
     This doesn't use any caches.  */
  
  static int
 -parse_modifiers_uncached (symbol, modifier_end)
 -     Lisp_Object symbol;
 -     int *modifier_end;
 +parse_modifiers_uncached (Lisp_Object symbol, int *modifier_end)
  {
    Lisp_Object name;
    int i;
     prepended to the string BASE[0..BASE_LEN-1].
     This doesn't use any caches.  */
  static Lisp_Object
 -apply_modifiers_uncached (modifiers, base, base_len, base_len_byte)
 -     int modifiers;
 -     char *base;
 -     int base_len, base_len_byte;
 +apply_modifiers_uncached (int modifiers, char *base, int base_len, int base_len_byte)
  {
    /* Since BASE could contain nulls, we can't use intern here; we have
       to use Fintern, which expects a genuine Lisp_String, and keeps a
  
      new_name = make_uninit_multibyte_string (mod_len + base_len,
                                             mod_len + base_len_byte);
 -    bcopy (new_mods, SDATA (new_name),               mod_len);
 -    bcopy (base,     SDATA (new_name) + mod_len, base_len_byte);
 +    memcpy (SDATA (new_name), new_mods, mod_len);
 +    memcpy (SDATA (new_name) + mod_len, base, base_len_byte);
  
      return Fintern (new_name, Qnil);
    }
  }
  
  
 -static const char *modifier_names[] =
 +static const char *const modifier_names[] =
  {
    "up", "down", "drag", "click", "double", "triple", 0, 0,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@@ -6347,7 -6582,8 +6353,7 @@@ static Lisp_Object modifier_symbols
  
  /* Return the list of modifier symbols corresponding to the mask MODIFIERS.  */
  static Lisp_Object
 -lispy_modifier_list (modifiers)
 -     int modifiers;
 +lispy_modifier_list (int modifiers)
  {
    Lisp_Object modifier_list;
    int i;
  #define KEY_TO_CHAR(k) (XINT (k) & ((1 << CHARACTERBITS) - 1))
  
  Lisp_Object
 -parse_modifiers (symbol)
 -     Lisp_Object symbol;
 +parse_modifiers (Lisp_Object symbol)
  {
    Lisp_Object elements;
  
  DEFUN ("internal-event-symbol-parse-modifiers", Fevent_symbol_parse_modifiers,
         Sevent_symbol_parse_modifiers, 1, 1, 0,
         doc: /* Parse the event symbol.  For internal use.  */)
 -     (symbol)
 -     Lisp_Object symbol;
 +  (Lisp_Object symbol)
  {
    /* Fill the cache if needed.  */
    parse_modifiers (symbol);
     apply_modifiers copies the value of BASE's Qevent_kind property to
     the modified symbol.  */
  static Lisp_Object
 -apply_modifiers (modifiers, base)
 -     int modifiers;
 -     Lisp_Object base;
 +apply_modifiers (int modifiers, Lisp_Object base)
  {
    Lisp_Object cache, index, entry, new_symbol;
  
     and M-C-foo end up being equivalent in the keymap.  */
  
  Lisp_Object
 -reorder_modifiers (symbol)
 -     Lisp_Object symbol;
 +reorder_modifiers (Lisp_Object symbol)
  {
    /* It's hopefully okay to write the code this way, since everything
       will soon be in caches, and no consing will be done at all.  */
     in the symbol's name.  */
  
  static Lisp_Object
 -modify_event_symbol (symbol_num, modifiers, symbol_kind, name_alist_or_stem,
 -                     name_table, symbol_table, table_size)
 -     int symbol_num;
 -     unsigned modifiers;
 -     Lisp_Object symbol_kind;
 -     Lisp_Object name_alist_or_stem;
 -     char **name_table;
 -     Lisp_Object *symbol_table;
 -     unsigned int table_size;
 +modify_event_symbol (EMACS_INT symbol_num, unsigned int modifiers, Lisp_Object symbol_kind,
 +                   Lisp_Object name_alist_or_stem, const char *const *name_table,
 +                   Lisp_Object *symbol_table, unsigned int table_size)
  {
    Lisp_Object value;
    Lisp_Object symbol_int;
        if (NILP (value))
        {
          char buf[20];
 -        sprintf (buf, "key-%d", symbol_num);
 +        sprintf (buf, "key-%ld", (long)symbol_num);
          value = intern (buf);
        }
  
@@@ -6649,7 -6896,8 +6655,7 @@@ and zero or more modifier names (contro
  drag, down, double or triple).  The base must be last.
  The return value is an event type (a character or symbol) which
  has the same base event type and all the specified modifiers.  */)
 -     (event_desc)
 -     Lisp_Object event_desc;
 +  (Lisp_Object event_desc)
  {
    Lisp_Object base;
    int modifiers = 0;
@@@ -6792,7 -7040,8 +6798,7 @@@ parse_solitary_modifier (Lisp_Object sy
     but it can be a Lucid-style event type list.  */
  
  int
 -lucid_event_type_list_p (object)
 -     Lisp_Object object;
 +lucid_event_type_list_p (Lisp_Object object)
  {
    Lisp_Object tail;
  
     movements and toolkit scroll bar thumb drags. */
  
  static void
 -get_input_pending (addr, flags)
 -     int *addr;
 -     int flags;
 +get_input_pending (int *addr, int flags)
  {
    /* First of all, have we already counted some input?  */
    *addr = (!NILP (Vquit_flag) || readable_events (flags));
  /* Interface to read_avail_input, blocking SIGIO or SIGALRM if necessary.  */
  
  void
 -gobble_input (expected)
 -     int expected;
 +gobble_input (int expected)
  {
  #ifdef SIGIO
    if (interrupt_input)
     so that read_key_sequence will notice the new current buffer.  */
  
  void
 -record_asynch_buffer_change ()
 +record_asynch_buffer_change (void)
  {
    struct input_event event;
    Lisp_Object tem;
    event.frame_or_window = Qnil;
    event.arg = Qnil;
  
 -#ifdef subprocesses
    /* We don't need a buffer-switch event unless Emacs is waiting for input.
       The purpose of the event is to make read_key_sequence look up the
       keymaps again.  If we aren't in read_key_sequence, we don't need one,
 -     and the event could cause trouble by messing up (input-pending-p).  */
 +     and the event could cause trouble by messing up (input-pending-p).
 +     Note: Fwaiting_for_user_input_p always returns nil when async
 +     subprocesses aren't supported.  */
    tem = Fwaiting_for_user_input_p ();
    if (NILP (tem))
      return;
 -#else
 -  /* We never need these events if we have no asynchronous subprocesses.  */
 -  return;
 -#endif
  
    /* Make sure no interrupt happens while storing the event.  */
  #ifdef SIGIO
     this is a bad time to try to read input.  */
  
  static int
 -read_avail_input (expected)
 -     int expected;
 +read_avail_input (int expected)
  {
    int nread = 0;
    int err = 0;
@@@ -7058,10 -7314,12 +7064,12 @@@ tty_read_avail_input (struct terminal *
    int n_to_read, i;
    struct tty_display_info *tty = terminal->display_info.tty;
    int nread = 0;
+ #ifdef subprocesses
    int buffer_free = KBD_BUFFER_SIZE - kbd_buffer_nr_stored () - 1;
  
    if (kbd_on_hold_p () || buffer_free <= 0)
      return 0;
+ #endif        /* subprocesses */
  
    if (!terminal->name)                /* Don't read from a dead terminal. */
      return 0;
  #endif
  #endif
  
+ #ifdef subprocesses
    /* Don't read more than we can store.  */
    if (n_to_read > buffer_free)
      n_to_read = buffer_free;
+ #endif        /* subprocesses */
  
    /* Now read; for one reason or another, this will not block.
       NREAD is set to the number of chars read.  */
  }
  \f
  void
 -handle_async_input ()
 +handle_async_input (void)
  {
    interrupt_input_pending = 0;
  #ifdef SYNC_INPUT
  }
  
  void
 -process_pending_signals ()
 +process_pending_signals (void)
  {
    if (interrupt_input_pending)
      handle_async_input ();
  /* Note SIGIO has been undef'd if FIONREAD is missing.  */
  
  static SIGTYPE
 -input_available_signal (signo)
 -     int signo;
 +input_available_signal (int signo)
  {
    /* Must preserve main program's value of errno.  */
    int old_errno = errno;
 -#if defined (USG) && !defined (POSIX_SIGNALS)
 -  /* USG systems forget handlers when they are used;
 -     must reestablish each time */
 -  signal (signo, input_available_signal);
 -#endif /* USG */
 -
    SIGNAL_THREAD_CHECK (signo);
  
  #ifdef SYNC_INPUT
     dealing with, without assuming that every file which uses
     UNBLOCK_INPUT also has #included the files necessary to get SIGIO. */
  void
 -reinvoke_input_signal ()
 +reinvoke_input_signal (void)
  {
  #ifdef SIGIO
    handle_async_input ();
@@@ -7355,7 -7622,9 +7365,7 @@@ struct user_signal_inf
  static struct user_signal_info *user_signals = NULL;
  
  void
 -add_user_signal (sig, name)
 -     int sig;
 -     const char *name;
 +add_user_signal (int sig, const char *name)
  {
    struct user_signal_info *p;
  
  }
  
  static SIGTYPE
 -handle_user_signal (sig)
 -     int sig;
 +handle_user_signal (int sig)
  {
    int old_errno = errno;
    struct user_signal_info *p;
  
 -#if defined (USG) && !defined (POSIX_SIGNALS)
 -  /* USG systems forget handlers when they are used;
 -     must reestablish each time */
 -  signal (sig, handle_user_signal);
 -#endif
 -
    SIGNAL_THREAD_CHECK (sig);
  
    for (p = user_signals; p; p = p->next)
  }
  
  static char *
 -find_user_signal_name (sig)
 -     int sig;
 +find_user_signal_name (int sig)
  {
    struct user_signal_info *p;
  
  }
  
  static int
 -store_user_signal_events ()
 +store_user_signal_events (void)
  {
    struct user_signal_info *p;
    struct input_event buf;
  
        if (nstored == 0)
          {
 -          bzero (&buf, sizeof buf);
 +          memset (&buf, 0, sizeof buf);
            buf.kind = USER_SIGNAL_EVENT;
            buf.frame_or_window = selected_frame;
          }
  }
  
  \f
 -static void menu_bar_item P_ ((Lisp_Object, Lisp_Object, Lisp_Object, void*));
 +static void menu_bar_item (Lisp_Object, Lisp_Object, Lisp_Object, void*);
  static Lisp_Object menu_bar_one_keymap_changed_items;
  
  /* These variables hold the vector under construction within
@@@ -7466,7 -7743,8 +7476,7 @@@ static int menu_bar_items_index
     OLD is an old vector we can optionally reuse, or nil.  */
  
  Lisp_Object
 -menu_bar_items (old)
 -     Lisp_Object old;
 +menu_bar_items (Lisp_Object old)
  {
    /* The number of keymaps we're scanning right now, and the number of
       keymaps we have allocated space for.  */
        nmaps = 0;
        if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
          maps[nmaps++] = tem;
 -      bcopy (tmaps, (void *) (maps + nmaps), nminor * sizeof (maps[0]));
 +      memcpy (maps + nmaps, tmaps, nminor * sizeof (maps[0]));
        nmaps += nminor;
        maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
        }
            tem2 = XVECTOR (menu_bar_items_vector)->contents[i + 2];
            tem3 = XVECTOR (menu_bar_items_vector)->contents[i + 3];
            if (end > i + 4)
 -            bcopy (&XVECTOR (menu_bar_items_vector)->contents[i + 4],
 -                   &XVECTOR (menu_bar_items_vector)->contents[i],
 -                   (end - i - 4) * sizeof (Lisp_Object));
 +            memmove (&XVECTOR (menu_bar_items_vector)->contents[i],
 +                     &XVECTOR (menu_bar_items_vector)->contents[i + 4],
 +                     (end - i - 4) * sizeof (Lisp_Object));
            XVECTOR (menu_bar_items_vector)->contents[end - 4] = tem0;
            XVECTOR (menu_bar_items_vector)->contents[end - 3] = tem1;
            XVECTOR (menu_bar_items_vector)->contents[end - 2] = tem2;
  Lisp_Object item_properties;
  
  static void
 -menu_bar_item (key, item, dummy1, dummy2)
 -     Lisp_Object key, item, dummy1;
 -     void *dummy2;
 +menu_bar_item (Lisp_Object key, Lisp_Object item, Lisp_Object dummy1, void *dummy2)
  {
    struct gcpro gcpro1;
    int i;
        if (EQ (key, XVECTOR (menu_bar_items_vector)->contents[i]))
          {
            if (menu_bar_items_index > i + 4)
 -            bcopy (&XVECTOR (menu_bar_items_vector)->contents[i + 4],
 -                   &XVECTOR (menu_bar_items_vector)->contents[i],
 -                   (menu_bar_items_index - i - 4) * sizeof (Lisp_Object));
 +            memmove (&XVECTOR (menu_bar_items_vector)->contents[i],
 +                     &XVECTOR (menu_bar_items_vector)->contents[i + 4],
 +                     (menu_bar_items_index - i - 4) * sizeof (Lisp_Object));
            menu_bar_items_index -= 4;
          }
      }
  \f
   /* This is used as the handler when calling menu_item_eval_property.  */
  static Lisp_Object
 -menu_item_eval_property_1 (arg)
 -     Lisp_Object arg;
 +menu_item_eval_property_1 (Lisp_Object arg)
  {
    /* If we got a quit from within the menu computation,
       quit all the way out of it.  This takes care of C-] in the debugger.  */
  /* Evaluate an expression and return the result (or nil if something
     went wrong).  Used to evaluate dynamic parts of menu items.  */
  Lisp_Object
 -menu_item_eval_property (sexpr)
 -     Lisp_Object sexpr;
 +menu_item_eval_property (Lisp_Object sexpr)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object val;
     otherwise.  */
  
  int
 -parse_menu_item (item, inmenubar)
 -     Lisp_Object item;
 -     int inmenubar;
 +parse_menu_item (Lisp_Object item, int inmenubar)
  {
    Lisp_Object def, tem, item_string, start;
    Lisp_Object filter;
@@@ -8003,17 -8287,18 +8013,17 @@@ static Lisp_Object tool_bar_item_proper
  
  static int ntool_bar_items;
  
 -/* The symbols `tool-bar', `:image' and `:rtl'.  */
 +/* The symbols `:image' and `:rtl'.  */
  
 -extern Lisp_Object Qtool_bar;
  Lisp_Object QCimage;
  Lisp_Object Qrtl;
  
  /* Function prototypes.  */
  
 -static void init_tool_bar_items P_ ((Lisp_Object));
 -static void process_tool_bar_item P_ ((Lisp_Object, Lisp_Object, Lisp_Object, void*));
 -static int parse_tool_bar_item P_ ((Lisp_Object, Lisp_Object));
 -static void append_tool_bar_item P_ ((void));
 +static void init_tool_bar_items (Lisp_Object);
 +static void process_tool_bar_item (Lisp_Object, Lisp_Object, Lisp_Object, void*);
 +static int parse_tool_bar_item (Lisp_Object, Lisp_Object);
 +static void append_tool_bar_item (void);
  
  
  /* Return a vector of tool bar items for keymaps currently in effect.
     tool bar items found.  */
  
  Lisp_Object
 -tool_bar_items (reuse, nitems)
 -     Lisp_Object reuse;
 -     int *nitems;
 +tool_bar_items (Lisp_Object reuse, int *nitems)
  {
    Lisp_Object *maps;
    int nmaps, i;
        nmaps = 0;
        if (tem = get_local_map (PT, current_buffer, Qkeymap), !NILP (tem))
        maps[nmaps++] = tem;
 -      bcopy (tmaps, (void *) (maps + nmaps), nminor * sizeof (maps[0]));
 +      memcpy (maps + nmaps, tmaps, nminor * sizeof (maps[0]));
        nmaps += nminor;
        maps[nmaps++] = get_local_map (PT, current_buffer, Qlocal_map);
      }
  /* Process the definition of KEY which is DEF.  */
  
  static void
 -process_tool_bar_item (key, def, data, args)
 -     Lisp_Object key, def, data;
 -     void *args;
 +process_tool_bar_item (Lisp_Object key, Lisp_Object def, Lisp_Object data, void *args)
  {
    int i;
 -  extern Lisp_Object Qundefined;
    struct gcpro gcpro1, gcpro2;
  
    /* Protect KEY and DEF from GC because parse_tool_bar_item may call
          if (EQ (key, v[TOOL_BAR_ITEM_KEY]))
            {
              if (ntool_bar_items > i + TOOL_BAR_ITEM_NSLOTS)
 -              bcopy (v + TOOL_BAR_ITEM_NSLOTS, v,
 -                     ((ntool_bar_items - i - TOOL_BAR_ITEM_NSLOTS)
 -                      * sizeof (Lisp_Object)));
 +              memmove (v, v + TOOL_BAR_ITEM_NSLOTS,
 +                       ((ntool_bar_items - i - TOOL_BAR_ITEM_NSLOTS)
 +                        * sizeof (Lisp_Object)));
              ntool_bar_items -= TOOL_BAR_ITEM_NSLOTS;
              break;
            }
  
     - `:help HELP-STRING'.
  
 -   Gives a help string to display for the tool bar item.  */
 +   Gives a help string to display for the tool bar item.
 +
 +   - `:label LABEL-STRING'.
 +
 +   A text label to show with the tool bar button if labels are enabled.  */
  
  static int
 -parse_tool_bar_item (key, item)
 -     Lisp_Object key, item;
 +parse_tool_bar_item (Lisp_Object key, Lisp_Object item)
  {
    /* Access slot with index IDX of vector tool_bar_item_properties.  */
  #define PROP(IDX) XVECTOR (tool_bar_item_properties)->contents[IDX]
  
    Lisp_Object filter = Qnil;
    Lisp_Object caption;
 -  int i;
 +  int i, have_label = 0;
  
    /* Defininition looks like `(menu-item CAPTION BINDING PROPS...)'.
       Rule out items that aren't lists, don't start with
            return 0;
        }
        else if (EQ (key, QChelp))
 -      /* `:help HELP-STRING'.  */
 -      PROP (TOOL_BAR_ITEM_HELP) = value;
 +        /* `:help HELP-STRING'.  */
 +        PROP (TOOL_BAR_ITEM_HELP) = value;
 +      else if (EQ (key, QClabel))
 +        {
 +          const char *bad_label = "!!?GARBLED ITEM?!!";
 +          /* `:label LABEL-STRING'.  */
 +          PROP (TOOL_BAR_ITEM_LABEL) = STRINGP (value)
 +            ? value
 +            : make_string (bad_label, strlen (bad_label));
 +          have_label = 1;
 +        }
        else if (EQ (key, QCfilter))
        /* ':filter FORM'.  */
        filter = value;
        PROP (TOOL_BAR_ITEM_RTL_IMAGE) = value;
      }
  
 +
 +  if (!have_label)
 +    {
 +      /* Try to make one from caption and key.  */
 +      Lisp_Object key = PROP (TOOL_BAR_ITEM_KEY);
 +      Lisp_Object capt = PROP (TOOL_BAR_ITEM_CAPTION);
 +      const char *label = SYMBOLP (key) ? (char *) SDATA (SYMBOL_NAME (key)) : "";
 +      const char *caption = STRINGP (capt) ? (char *) SDATA (capt) : "";
 +      EMACS_INT max_lbl = 2 * tool_bar_max_label_size;
 +      char *buf = (char *) xmalloc (max_lbl + 1);
 +      Lisp_Object new_lbl;
 +      size_t caption_len = strlen (caption);
 +
 +      if (caption_len <= max_lbl && caption[0] != '\0')
 +        {
 +          strcpy (buf, caption);
 +          while (caption_len > 0 && buf[caption_len - 1] == '.')
 +            caption_len--;
 +        buf[caption_len] = '\0';
 +        label = caption = buf;
 +        }
 +
 +      if (strlen (label) <= max_lbl && label[0] != '\0')
 +        {
 +          int i;
 +          if (label != buf)
 +          strcpy (buf, label);
 +
 +          for (i = 0; buf[i] != '\0'; ++i)
 +          if (buf[i] == '-')
 +            buf[i] = ' ';
 +          label = buf;
 +
 +        }
 +      else
 +      label = "";
 +
 +      new_lbl = Fupcase_initials (make_string (label, strlen (label)));
 +      if (SCHARS (new_lbl) <= tool_bar_max_label_size)
 +        PROP (TOOL_BAR_ITEM_LABEL) = new_lbl;
 +      else
 +        PROP (TOOL_BAR_ITEM_LABEL) = make_string ("", 0);
 +      free (buf);
 +    }
 +
    /* If got a filter apply it on binding.  */
    if (!NILP (filter))
      PROP (TOOL_BAR_ITEM_BINDING)
     that can be reused.  */
  
  static void
 -init_tool_bar_items (reuse)
 -     Lisp_Object reuse;
 +init_tool_bar_items (Lisp_Object reuse)
  {
    if (VECTORP (reuse))
      tool_bar_items_vector = reuse;
     tool_bar_item_properties */
  
  static void
 -append_tool_bar_item ()
 +append_tool_bar_item (void)
  {
    Lisp_Object *to, *from;
  
       tool_bar_items_vector.  */
    to = XVECTOR (tool_bar_items_vector)->contents + ntool_bar_items;
    from = XVECTOR (tool_bar_item_properties)->contents;
 -  bcopy (from, to, TOOL_BAR_ITEM_NSLOTS * sizeof *to);
 +  memcpy (to, from, TOOL_BAR_ITEM_NSLOTS * sizeof *to);
    ntool_bar_items += TOOL_BAR_ITEM_NSLOTS;
  }
  
     and do auto-saving in the inner call of read_char. */
  
  static Lisp_Object
 -read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu)
 -     int nmaps;
 -     Lisp_Object *maps;
 -     Lisp_Object prev_event;
 -     int *used_mouse_menu;
 +read_char_x_menu_prompt (int nmaps, Lisp_Object *maps, Lisp_Object prev_event,
 +                       int *used_mouse_menu)
  {
    int mapno;
  
@@@ -8523,7 -8760,10 +8533,7 @@@ static char *read_char_minibuf_menu_tex
  static int read_char_minibuf_menu_width;
  
  static Lisp_Object
 -read_char_minibuf_menu_prompt (commandflag, nmaps, maps)
 -     int commandflag ;
 -     int nmaps;
 -     Lisp_Object *maps;
 +read_char_minibuf_menu_prompt (int commandflag, int nmaps, Lisp_Object *maps)
  {
    int mapno;
    register Lisp_Object name;
                          thiswidth = SCHARS (desc);
                          if (thiswidth + i > width)
                            thiswidth = width - i;
 -                        bcopy (SDATA (desc), menu + i, thiswidth);
 +                        memcpy (menu + i, SDATA (desc), thiswidth);
                          i += thiswidth;
                          strcpy (menu + i, " = ");
                          i += 3;
                      thiswidth = SCHARS (s);
                      if (thiswidth + i > width)
                        thiswidth = width - i;
 -                    bcopy (SDATA (s), menu + i, thiswidth);
 +                    memcpy (menu + i, SDATA (s), thiswidth);
                      i += thiswidth;
                      menu[i] = 0;
                    }
     NEXT may be the same array as CURRENT.  */
  
  static int
 -follow_key (key, nmaps, current, defs, next)
 -     Lisp_Object key;
 -     Lisp_Object *current, *defs, *next;
 -     int nmaps;
 +follow_key (Lisp_Object key, int nmaps, Lisp_Object *current, Lisp_Object *defs,
 +          Lisp_Object *next)
  {
    int i, first_binding;
  
@@@ -8838,8 -9080,9 +8848,8 @@@ typedef struct keyrema
     that it is indeed a vector).  */
  
  static Lisp_Object
 -access_keymap_keyremap (map, key, prompt, do_funcall)
 -     Lisp_Object map, key, prompt;
 -     int do_funcall;
 +access_keymap_keyremap (Lisp_Object map, Lisp_Object key, Lisp_Object prompt,
 +                      int do_funcall)
  {
    Lisp_Object next;
  
     The return value is non-zero if the remapping actually took place.  */
  
  static int
 -keyremap_step (keybuf, bufsize, fkey, input, doit, diff, prompt)
 -     Lisp_Object *keybuf, prompt;
 -     keyremap *fkey;
 -     int input, doit, *diff, bufsize;
 +keyremap_step (Lisp_Object *keybuf, int bufsize, volatile keyremap *fkey,
 +             int input, int doit, int *diff, Lisp_Object prompt)
  {
    Lisp_Object next, key;
  
     from the selected window's buffer.  */
  
  static int
 -read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last,
 -                 can_return_switch_frame, fix_current_buffer)
 -     Lisp_Object *keybuf;
 -     int bufsize;
 -     Lisp_Object prompt;
 -     int dont_downcase_last;
 -     int can_return_switch_frame;
 -     int fix_current_buffer;
 +read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
 +                 int dont_downcase_last, int can_return_switch_frame,
 +                 int fix_current_buffer)
  {
    Lisp_Object from_string;
    int count = SPECPDL_INDEX ();
    if (INTERACTIVE)
      {
        if (!NILP (prompt))
 -      echo_prompt (prompt);
 +      {
 +        /* Install the string STR as the beginning of the string of
 +           echoing, so that it serves as a prompt for the next
 +           character.  */
 +        current_kboard->echo_string = prompt;
 +        current_kboard->echo_after_prompt = SCHARS (prompt);
 +        echo_now ();
 +      }
        else if (cursor_in_echo_area
               && (FLOATP (Vecho_keystrokes) || INTEGERP (Vecho_keystrokes))
               && NILP (Fzerop (Vecho_keystrokes)))
        if (!NILP (orig_keymap))
        submaps[nmaps++] = orig_keymap;
  
 -      bcopy (maps, (void *) (submaps + nmaps),
 -           nminor * sizeof (submaps[0]));
 +      memcpy (submaps + nmaps, maps, nminor * sizeof (submaps[0]));
  
        nmaps += nminor;
  
@@@ -10118,7 -10362,10 +10128,7 @@@ The optional fifth argument COMMAND-LOO
  that this key sequence is being read by something that will
  read commands one after another.  It should be nil if the caller
  will read just one key sequence.  */)
 -  (prompt, continue_echo, dont_downcase_last, can_return_switch_frame,
 -   command_loop)
 -     Lisp_Object prompt, continue_echo, dont_downcase_last;
 -     Lisp_Object can_return_switch_frame, command_loop;
 +  (Lisp_Object prompt, Lisp_Object continue_echo, Lisp_Object dont_downcase_last, Lisp_Object can_return_switch_frame, Lisp_Object command_loop)
  {
    Lisp_Object keybuf[30];
    register int i;
    specbind (Qinput_method_use_echo_area,
            (NILP (command_loop) ? Qt : Qnil));
  
 -  bzero (keybuf, sizeof keybuf);
 +  memset (keybuf, 0, sizeof keybuf);
    GCPRO1 (keybuf[0]);
    gcpro1.nvars = (sizeof keybuf/sizeof (keybuf[0]));
  
  DEFUN ("read-key-sequence-vector", Fread_key_sequence_vector,
         Sread_key_sequence_vector, 1, 5, 0,
         doc: /* Like `read-key-sequence' but always return a vector.  */)
 -     (prompt, continue_echo, dont_downcase_last, can_return_switch_frame,
 -      command_loop)
 -     Lisp_Object prompt, continue_echo, dont_downcase_last;
 -     Lisp_Object can_return_switch_frame, command_loop;
 +  (Lisp_Object prompt, Lisp_Object continue_echo, Lisp_Object dont_downcase_last, Lisp_Object can_return_switch_frame, Lisp_Object command_loop)
  {
    Lisp_Object keybuf[30];
    register int i;
    specbind (Qinput_method_use_echo_area,
            (NILP (command_loop) ? Qt : Qnil));
  
 -  bzero (keybuf, sizeof keybuf);
 +  memset (keybuf, 0, sizeof keybuf);
    GCPRO1 (keybuf[0]);
    gcpro1.nvars = (sizeof keybuf/sizeof (keybuf[0]));
  
@@@ -10235,11 -10485,13 +10245,11 @@@ The argument KEYS specifies the value t
  when reading the arguments; if it is nil, (this-command-keys) is used.
  The argument SPECIAL, if non-nil, means that this command is executing
  a special event, so ignore the prefix argument and don't clear it.  */)
 -     (cmd, record_flag, keys, special)
 -     Lisp_Object cmd, record_flag, keys, special;
 +  (Lisp_Object cmd, Lisp_Object record_flag, Lisp_Object keys, Lisp_Object special)
  {
    register Lisp_Object final;
    register Lisp_Object tem;
    Lisp_Object prefixarg;
 -  extern int debug_on_next_call;
  
    debug_on_next_call = 0;
  
@@@ -10323,15 -10575,17 +10333,15 @@@ the numeric argument to this command
  
  Noninteractively, the argument PREFIXARG is the prefix argument to
  give to the command you invoke, if it asks for an argument.  */)
 -     (prefixarg)
 -     Lisp_Object prefixarg;
 +  (Lisp_Object prefixarg)
  {
    Lisp_Object function;
 -  char buf[40];
 -  int saved_last_point_position;
 +  EMACS_INT saved_last_point_position;
    Lisp_Object saved_keys, saved_last_point_position_buffer;
    Lisp_Object bindings, value;
    struct gcpro gcpro1, gcpro2, gcpro3;
  #ifdef HAVE_WINDOW_SYSTEM
 -  /* The call to Fcompleting_read wil start and cancel the hourglass,
 +  /* The call to Fcompleting_read will start and cancel the hourglass,
       but if the hourglass was already scheduled, this means that no
       hourglass will be shown for the actual M-x command itself.
       So we restart it if it is already scheduled.  Note that checking
                        XVECTOR (this_command_keys)->contents);
    saved_last_point_position_buffer = last_point_position_buffer;
    saved_last_point_position = last_point_position;
 -  buf[0] = 0;
    GCPRO3 (saved_keys, prefixarg, saved_last_point_position_buffer);
  
 -  if (EQ (prefixarg, Qminus))
 -    strcpy (buf, "- ");
 -  else if (CONSP (prefixarg) && XINT (XCAR (prefixarg)) == 4)
 -    strcpy (buf, "C-u ");
 -  else if (CONSP (prefixarg) && INTEGERP (XCAR (prefixarg)))
 -    sprintf (buf, "%ld ", (long) XINT (XCAR (prefixarg)));
 -  else if (INTEGERP (prefixarg))
 -    sprintf (buf, "%ld ", (long) XINT (prefixarg));
 -
 -  /* This isn't strictly correct if execute-extended-command
 -     is bound to anything else.  Perhaps it should use
 -     this_command_keys?  */
 -  strcat (buf, "M-x ");
 -
 -  /* Prompt with buf, and then read a string, completing from and
 -     restricting to the set of all defined commands.  Don't provide
 -     any initial input.  Save the command read on the extended-command
 -     history list. */
 -  function = Fcompleting_read (build_string (buf),
 -                             Vobarray, Qcommandp,
 -                             Qt, Qnil, Qextended_command_history, Qnil,
 -                             Qnil);
 +  function = call0 (intern ("read-extended-command"));
  
  #ifdef HAVE_WINDOW_SYSTEM
    if (hstarted) start_hourglass ();
  /* Return nonzero if input events are pending.  */
  
  int
 -detect_input_pending ()
 +detect_input_pending (void)
  {
    if (!input_pending)
      get_input_pending (&input_pending, 0);
     pending.  */
  
  int
 -detect_input_pending_ignore_squeezables ()
 +detect_input_pending_ignore_squeezables (void)
  {
    if (!input_pending)
      get_input_pending (&input_pending, READABLE_EVENTS_IGNORE_SQUEEZABLES);
  /* Return nonzero if input events are pending, and run any pending timers.  */
  
  int
 -detect_input_pending_run_timers (do_display)
 -     int do_display;
 +detect_input_pending_run_timers (int do_display)
  {
    int old_timers_run = timers_run;
  
     So calling this function unnecessarily can't do any harm.  */
  
  void
 -clear_input_pending ()
 +clear_input_pending (void)
  {
    input_pending = 0;
  }
     to do in that case.  It isn't trivial.  */
  
  int
 -requeued_events_pending_p ()
 +requeued_events_pending_p (void)
  {
    return (!NILP (Vunread_command_events) || unread_command_char != -1);
  }
@@@ -10530,7 -10807,7 +10540,7 @@@ DEFUN ("input-pending-p", Finput_pendin
         doc: /* Return t if command input is currently available with no wait.
  Actually, the value is nil only if we can be sure that no input is available;
  if there is a doubt, the value is t.  */)
 -     ()
 +  (void)
  {
    if (!NILP (Vunread_command_events) || unread_command_char != -1
        || !NILP (Vunread_post_input_method_events)
  
  DEFUN ("recent-keys", Frecent_keys, Srecent_keys, 0, 0, 0,
         doc: /* Return vector of last 300 events, not counting those from keyboard macros.  */)
 -     ()
 +  (void)
  {
    Lisp_Object *keys = XVECTOR (recent_keys)->contents;
    Lisp_Object val;
    else
      {
        val = Fvector (NUM_RECENT_KEYS, keys);
 -      bcopy (keys + recent_keys_index,
 -           XVECTOR (val)->contents,
 -           (NUM_RECENT_KEYS - recent_keys_index) * sizeof (Lisp_Object));
 -      bcopy (keys,
 -           XVECTOR (val)->contents + NUM_RECENT_KEYS - recent_keys_index,
 -           recent_keys_index * sizeof (Lisp_Object));
 +      memcpy (XVECTOR (val)->contents, keys + recent_keys_index,
 +            (NUM_RECENT_KEYS - recent_keys_index) * sizeof (Lisp_Object));
 +      memcpy (XVECTOR (val)->contents + NUM_RECENT_KEYS - recent_keys_index,
 +            keys, recent_keys_index * sizeof (Lisp_Object));
        return val;
      }
  }
@@@ -10570,7 -10849,7 +10580,7 @@@ the last key sequence that has been rea
  The value is a string or a vector.
  
  See also `this-command-keys-vector'.  */)
 -     ()
 +  (void)
  {
    return make_event_array (this_command_key_count,
                           XVECTOR (this_command_keys)->contents);
@@@ -10582,7 -10861,7 +10592,7 @@@ However, if the command has called `rea
  the last key sequence that has been read.
  
  See also `this-command-keys'.  */)
 -     ()
 +  (void)
  {
    return Fvector (this_command_key_count,
                  XVECTOR (this_command_keys)->contents);
@@@ -10596,7 -10875,7 +10606,7 @@@ the command loop or by `read-key-sequen
  Unlike `this-command-keys', this function's value
  does not include prefix arguments.
  The value is always a vector.  */)
 -     ()
 +  (void)
  {
    return Fvector (this_command_key_count
                  - this_single_command_key_start,
@@@ -10612,7 -10891,7 +10622,7 @@@ the command loop or by `read-key-sequen
  Unlike `this-single-command-keys', this function's value
  shows the events before all translations (except for input methods).
  The value is always a vector.  */)
 -     ()
 +  (void)
  {
    return Fvector (raw_keybuf_count,
                  (XVECTOR (raw_keybuf)->contents));
@@@ -10630,7 -10909,7 +10640,7 @@@ both in the value of (this-command-keys
  To achieve this, `universal-argument-other-key' calls
  `reset-this-command-lengths', which discards the record of reading
  these events the first time.  */)
 -     ()
 +  (void)
  {
    this_command_key_count = before_command_key_count;
    if (this_command_key_count < this_single_command_key_start)
@@@ -10650,7 -10929,8 +10660,7 @@@ DEFUN ("clear-this-command-keys", Fclea
         doc: /* Clear out the vector that `this-command-keys' returns.
  Also clear the record of the last 100 events, unless optional arg
  KEEP-RECORD is non-nil.  */)
 -     (keep_record)
 -     Lisp_Object keep_record;
 +  (Lisp_Object keep_record)
  {
    int i;
  
  
  DEFUN ("recursion-depth", Frecursion_depth, Srecursion_depth, 0, 0, 0,
         doc: /* Return the current depth in recursive edits.  */)
 -     ()
 +  (void)
  {
    Lisp_Object temp;
    XSETFASTINT (temp, command_loop_level + minibuf_level);
@@@ -10680,7 -10960,8 +10690,7 @@@ DEFUN ("open-dribble-file", Fopen_dribb
         "FOpen dribble file: ",
         doc: /* Start writing all keyboard characters to a dribble file called FILE.
  If FILE is nil, close any open dribble file.  */)
 -     (file)
 -     Lisp_Object file;
 +  (Lisp_Object file)
  {
    if (dribble)
      {
  DEFUN ("discard-input", Fdiscard_input, Sdiscard_input, 0, 0, 0,
         doc: /* Discard the contents of the terminal input buffer.
  Also end any kbd macro being defined.  */)
 -     ()
 +  (void)
  {
    if (!NILP (current_kboard->defining_kbd_macro))
      {
@@@ -10737,7 -11018,8 +10747,7 @@@ After resumption run the normal hook `s
  
  Some operating systems cannot stop the Emacs process and resume it later.
  On such systems, Emacs starts a subshell instead of suspending.  */)
 -     (stuffstring)
 -     Lisp_Object stuffstring;
 +  (Lisp_Object stuffstring)
  {
    int count = SPECPDL_INDEX ();
    int old_height, old_width;
    reset_all_sys_modes ();
    /* sys_suspend can get an error if it tries to fork a subshell
       and the system resources aren't available for that.  */
 -  record_unwind_protect ((Lisp_Object (*) P_ ((Lisp_Object))) init_all_sys_modes,
 +  record_unwind_protect ((Lisp_Object (*) (Lisp_Object)) init_all_sys_modes,
                         Qnil);
    stuff_buffered_input (stuffstring);
    if (cannot_suspend)
     Then in any case stuff anything Emacs has read ahead and not used.  */
  
  void
 -stuff_buffered_input (stuffstring)
 -     Lisp_Object stuffstring;
 +stuff_buffered_input (Lisp_Object stuffstring)
  {
  #ifdef SIGTSTP  /* stuff_char is defined if SIGTSTP.  */
    register unsigned char *p;
  
    if (STRINGP (stuffstring))
      {
 -      register int count;
 +      register EMACS_INT count;
  
        p = SDATA (stuffstring);
        count = SBYTES (stuffstring);
  }
  \f
  void
 -set_waiting_for_input (time_to_clear)
 -     EMACS_TIME *time_to_clear;
 +set_waiting_for_input (struct timeval *time_to_clear)
  {
    input_available_clear_time = time_to_clear;
  
  }
  
  void
 -clear_waiting_for_input ()
 +clear_waiting_for_input (void)
  {
    /* Tell handle_interrupt not to throw back to read_char,  */
    waiting_for_input = 0;
     Otherwise, the handler kills Emacs.  */
  
  static SIGTYPE
 -interrupt_signal (signalnum)  /* If we don't have an argument, */
 -     int signalnum;           /* some compilers complain in signal calls. */
 +interrupt_signal (int signalnum)      /* If we don't have an argument, some */
 +                                      /* compilers complain in signal calls. */
  {
    /* Must preserve main program's value of errno.  */
    int old_errno = errno;
    struct terminal *terminal;
  
 -#if defined (USG) && !defined (POSIX_SIGNALS)
 -  /* USG systems forget handlers when they are used;
 -     must reestablish each time */
 -  signal (SIGINT, interrupt_signal);
 -  signal (SIGQUIT, interrupt_signal);
 -#endif /* USG */
 -
    SIGNAL_THREAD_CHECK (signalnum);
  
    /* See if we have an active terminal on our controlling tty. */
     non-nil, it stops the job right away. */
  
  static void
 -handle_interrupt ()
 +handle_interrupt (void)
  {
    char c;
  
          GCPRO4 (saved.object, saved.global_code,
                  saved.current_syntax_table, saved.old_prop);
          Fsignal (Qquit, Qnil);
 +        /* FIXME: AFAIK, `quit' can never return, so this code is dead!  */
          gl_state = saved;
          UNGCPRO;
        }
  /* Handle a C-g by making read_char return C-g.  */
  
  void
 -quit_throw_to_read_char ()
 +quit_throw_to_read_char (void)
  {
    sigfree ();
    /* Prevent another signal from doing this before we finish.  */
@@@ -11057,7 -11347,8 +11067,7 @@@ If INTERRUPT is non-nil, Emacs will us
  otherwise Emacs uses CBREAK mode.
  
  See also `current-input-mode'.  */)
 -     (interrupt)
 -     Lisp_Object interrupt;
 +  (Lisp_Object interrupt)
  {
    int new_interrupt_input;
  #ifdef SIGIO
      {
        /* When using X, don't give the user a real choice,
         because we haven't implemented the mechanisms to support it.  */
 -#ifdef NO_SOCK_SIGIO
 -      new_interrupt_input = 0;
 -#else /* not NO_SOCK_SIGIO */
        new_interrupt_input = 1;
 -#endif /* NO_SOCK_SIGIO */
      }
    else
  #endif /* HAVE_X_WINDOWS */
  #ifndef DOS_NT
        /* this causes startup screen to be restored and messes with the mouse */
        reset_all_sys_modes ();
 -#endif
        interrupt_input = new_interrupt_input;
 -#ifndef DOS_NT
        init_all_sys_modes ();
 +#else
 +      interrupt_input = new_interrupt_input;
  #endif
  
  #ifdef POLL_FOR_INPUT
@@@ -11107,7 -11402,8 +11117,7 @@@ This setting only has an effect on tty 
  Emacs reads input in CBREAK mode; see `set-input-interrupt-mode'.
  
  See also `current-input-mode'.  */)
 -       (flow, terminal)
 -       Lisp_Object flow, terminal;
 +  (Lisp_Object flow, Lisp_Object terminal)
  {
    struct terminal *t = get_terminal (terminal, 1);
    struct tty_display_info *tty;
@@@ -11149,7 -11445,8 +11159,7 @@@ It may be a terminal object, a frame, o
  the currently selected frame.
  
  See also `current-input-mode'.  */)
 -       (meta, terminal)
 -       Lisp_Object meta, terminal;
 +  (Lisp_Object meta, Lisp_Object terminal)
  {
    struct terminal *t = get_terminal (terminal, 1);
    struct tty_display_info *tty;
@@@ -11190,7 -11487,8 +11200,7 @@@ This function only has an effect on th
  process.
  
  See also `current-input-mode'.  */)
 -       (quit)
 -       Lisp_Object quit;
 +  (Lisp_Object quit)
  {
    struct terminal *t = get_named_tty ("/dev/tty");
    struct tty_display_info *tty;
@@@ -11227,7 -11525,8 +11237,7 @@@ Third arg META t means accept 8-bit inp
   Otherwise, accept 8-bit input and don't use the top bit for Meta.
  Optional fourth arg QUIT if non-nil specifies character to use for quitting.
  See also `current-input-mode'.  */)
 -     (interrupt, flow, meta, quit)
 -     Lisp_Object interrupt, flow, meta, quit;
 +  (Lisp_Object interrupt, Lisp_Object flow, Lisp_Object meta, Lisp_Object quit)
  {
    Fset_input_interrupt_mode (interrupt);
    Fset_output_flow_control (flow, Qnil);
@@@ -11251,7 -11550,7 +11261,7 @@@ The value is a list of the form (INTERR
    QUIT is the character Emacs currently uses to quit.
  The elements of this list correspond to the arguments of
  `set-input-mode'.  */)
 -     ()
 +  (void)
  {
    Lisp_Object val[4];
    struct frame *sf = XFRAME (selected_frame);
@@@ -11285,7 -11584,8 +11295,7 @@@ The return value is similar to a mouse 
     (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW)
      IMAGE (DX . DY) (WIDTH . HEIGHT))
  The `posn-' functions access elements of such lists.  */)
 -  (x, y, frame_or_window, whole)
 -     Lisp_Object x, y, frame_or_window, whole;
 +  (Lisp_Object x, Lisp_Object y, Lisp_Object frame_or_window, Lisp_Object whole)
  {
    CHECK_NATNUM (x);
    CHECK_NATNUM (y);
  
    CHECK_LIVE_FRAME (frame_or_window);
  
 -  return make_lispy_position (XFRAME (frame_or_window), &x, &y, 0);
 +  return make_lispy_position (XFRAME (frame_or_window), x, y, 0);
  }
  
  DEFUN ("posn-at-point", Fposn_at_point, Sposn_at_point, 0, 2, 0,
@@@ -11325,7 -11625,8 +11335,7 @@@ to the given buffer position
     (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW)
      IMAGE (DX . DY) (WIDTH . HEIGHT))
  The `posn-' functions access elements of such lists.  */)
 -  (pos, window)
 -     Lisp_Object pos, window;
 +  (Lisp_Object pos, Lisp_Object window)
  {
    Lisp_Object tem;
  
   * Set up a new kboard object with reasonable initial values.
   */
  void
 -init_kboard (kb)
 -     KBOARD *kb;
 +init_kboard (KBOARD *kb)
  {
    kb->Voverriding_terminal_local_map = Qnil;
    kb->Vlast_command = Qnil;
   * it a second time.
   */
  static void
 -wipe_kboard (kb)
 -     KBOARD *kb;
 +wipe_kboard (KBOARD *kb)
  {
    xfree (kb->kbd_macro_buffer);
  }
  /* Free KB and memory referenced from it.  */
  
  void
 -delete_kboard (kb)
 -     KBOARD *kb;
 +delete_kboard (KBOARD *kb)
  {
    KBOARD **kbp;
  
  }
  
  void
 -init_keyboard ()
 +init_keyboard (void)
  {
    /* This is correct before outermost invocation of the editor loop */
    command_loop_level = -1;
           Emacs on SIGINT when there are no termcap frames on the
           controlling terminal. */
        signal (SIGINT, interrupt_signal);
 -#if defined (HAVE_TERMIO) || defined (HAVE_TERMIOS)
 +#ifndef DOS_NT
        /* For systems with SysV TERMIO, C-g is set up for both SIGINT and
         SIGQUIT and we can't tell which one it will give us.  */
        signal (SIGQUIT, interrupt_signal);
 -#endif /* HAVE_TERMIO */
 +#endif /* not DOS_NT */
      }
  /* Note SIGIO has been undef'd if FIONREAD is missing.  */
  #ifdef SIGIO
     event header symbols and put properties on them.  */
  struct event_head {
    Lisp_Object *var;
 -  char *name;
 +  const char *name;
    Lisp_Object *kind;
  };
  
 -struct event_head head_table[] = {
 +static const struct event_head head_table[] = {
    {&Qmouse_movement,      "mouse-movement",      &Qmouse_movement},
    {&Qscroll_bar_movement, "scroll-bar-movement", &Qmouse_movement},
    {&Qswitch_frame,        "switch-frame",        &Qswitch_frame},
  };
  
  void
 -syms_of_keyboard ()
 +syms_of_keyboard (void)
  {
    pending_funcalls = Qnil;
    staticpro (&pending_funcalls);
    staticpro (&QCtoggle);
    QCradio = intern_c_string (":radio");
    staticpro (&QCradio);
 +  QClabel = intern_c_string (":label");
 +  staticpro (&QClabel);
  
    Qmode_line = intern_c_string ("mode-line");
    staticpro (&Qmode_line);
    Qinput_method_function = intern_c_string ("input-method-function");
    staticpro (&Qinput_method_function);
  
 +  Qx_set_selection = intern_c_string ("x-set-selection");
 +  staticpro (&Qx_set_selection);
 +  QPRIMARY = intern_c_string ("PRIMARY");
 +  staticpro (&QPRIMARY);
 +  Qhandle_switch_frame = intern_c_string ("handle-switch-frame");
 +  staticpro (&Qhandle_switch_frame);
 +
    Qinput_method_exit_on_first_char = intern_c_string ("input-method-exit-on-first-char");
    staticpro (&Qinput_method_exit_on_first_char);
    Qinput_method_use_echo_area = intern_c_string ("input-method-use-echo-area");
    last_point_position_window = Qnil;
  
    {
 -    struct event_head *p;
 +    const struct event_head *p;
  
      for (p = head_table;
         p < head_table + (sizeof (head_table) / sizeof (head_table[0]));
@@@ -12293,23 -12588,6 +12303,23 @@@ Help functions bind this to allow help 
  and tool-bar buttons.  */);
    Venable_disabled_menus_and_buttons = Qnil;
  
 +  DEFVAR_LISP ("select-active-regions",
 +             &Vselect_active_regions,
 +             doc: /* If non-nil, an active region automatically becomes the window selection.
 +If the value is `only', only temporarily active regions (usually made
 +by mouse-dragging or shift-selection) set the window selection.
 +
 +This takes effect only when Transient Mark mode is enabled.  */);
 +  Vselect_active_regions = Qt;
 +
 +  DEFVAR_LISP ("saved-region-selection",
 +             &Vsaved_region_selection,
 +             doc: /* Contents of active region prior to buffer modification.
 +If `select-active-regions' is non-nil, Emacs sets this to the
 +text in the region before modifying the buffer.  The next
 +`deactivate-mark' call uses this to set the window selection.  */);
 +  Vsaved_region_selection = Qnil;
 +
    /* Create the initial keyboard. */
    initial_kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
    init_kboard (initial_kboard);
  }
  
  void
 -keys_of_keyboard ()
 +keys_of_keyboard (void)
  {
    initial_define_key (global_map, Ctl ('Z'), "suspend-emacs");
    initial_define_key (control_x_map, Ctl ('Z'), "suspend-emacs");
  /* Mark the pointers in the kboard objects.
     Called by the Fgarbage_collector.  */
  void
 -mark_kboards ()
 +mark_kboards (void)
  {
    KBOARD *kb;
    Lisp_Object *p;
diff --combined src/lread.c
index f1c1bcd44c0630a3b50295a0f47b9a95084e9b5d,acadcb2d99198a07f4a3aa9a0d9464f6a84ec8d4..945808c6e5aa1250f9ecae4c689af99d41ab97db
@@@ -1,8 -1,7 +1,8 @@@
  /* Lisp parsing and input streams.
 -   Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995,
 -                 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 -                 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 +
 +Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1997,
 +  1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
 +  2009, 2010  Free Software Foundation, Inc.
  
  This file is part of GNU Emacs.
  
@@@ -42,6 -41,9 +42,6 @@@ along with GNU Emacs.  If not, see <htt
  #include "blockinput.h"
  
  #ifdef MSDOS
 -#if __DJGPP__ < 2
 -#include <unistd.h>   /* to get X_OK */
 -#endif
  #include "msdos.h"
  #endif
  
  #include <unistd.h>
  #endif
  
 -#ifndef X_OK
 -#define X_OK 01
 -#endif
 -
  #include <math.h>
  
  #ifdef HAVE_SETLOCALE
  #include <locale.h>
  #endif /* HAVE_SETLOCALE */
  
 -#ifdef HAVE_FCNTL_H
  #include <fcntl.h>
 -#endif
 -#ifndef O_RDONLY
 -#define O_RDONLY 0
 -#endif
  
  #ifdef HAVE_FSEEKO
  #define file_offset off_t
  #define file_tell ftell
  #endif
  
 -#ifndef USE_CRT_DLL
 -extern int errno;
 -#endif
 -
  /* hash table read constants */
  Lisp_Object Qhash_table, Qdata;
  Lisp_Object Qtest, Qsize;
  Lisp_Object Qweakness;
  Lisp_Object Qrehash_size;
  Lisp_Object Qrehash_threshold;
 -extern Lisp_Object QCtest, QCsize, QCrehash_size, QCrehash_threshold, QCweakness;
  
  Lisp_Object Qread_char, Qget_file_char, Qstandard_input, Qcurrent_load_list;
  Lisp_Object Qvariable_documentation, Vvalues, Vstandard_input, Vafter_load_alist;
@@@ -86,6 -102,9 +86,6 @@@ static Lisp_Object Qget_emacs_mule_file
  
  static Lisp_Object Qload_force_doc_strings;
  
 -extern Lisp_Object Qevent_symbol_element_mask;
 -extern Lisp_Object Qfile_exists_p;
 -
  /* non-zero if inside `load' */
  int load_in_progress;
  static Lisp_Object Qload_in_progress;
@@@ -159,13 -178,13 +159,13 @@@ static FILE *instream
  static int read_pure;
  
  /* For use within read-from-string (this reader is non-reentrant!!)  */
 -static int read_from_string_index;
 -static int read_from_string_index_byte;
 -static int read_from_string_limit;
 +static EMACS_INT read_from_string_index;
 +static EMACS_INT read_from_string_index_byte;
 +static EMACS_INT read_from_string_limit;
  
  /* Number of characters read in the current call to Fread or
     Fread_from_string. */
 -static int readchar_count;
 +static EMACS_INT readchar_count;
  
  /* This contains the last string skipped with #@.  */
  static char *saved_doc_string;
@@@ -211,18 -230,18 +211,18 @@@ int force_load_messages
  
  static Lisp_Object Vbytecomp_version_regexp;
  
 -static int read_emacs_mule_char P_ ((int, int (*) (int, Lisp_Object),
 -                                   Lisp_Object));
 +static int read_emacs_mule_char (int, int (*) (int, Lisp_Object),
 +                                 Lisp_Object);
  
 -static void readevalloop P_ ((Lisp_Object, FILE*, Lisp_Object,
 -                            Lisp_Object (*) (), int,
 -                            Lisp_Object, Lisp_Object,
 -                            Lisp_Object, Lisp_Object));
 -static Lisp_Object load_unwind P_ ((Lisp_Object));
 -static Lisp_Object load_descriptor_unwind P_ ((Lisp_Object));
 +static void readevalloop (Lisp_Object, FILE*, Lisp_Object,
 +                          Lisp_Object (*) (Lisp_Object), int,
 +                          Lisp_Object, Lisp_Object,
 +                          Lisp_Object, Lisp_Object);
 +static Lisp_Object load_unwind (Lisp_Object);
 +static Lisp_Object load_descriptor_unwind (Lisp_Object);
  
 -static void invalid_syntax P_ ((const char *, int)) NO_RETURN;
 -static void end_of_file_error P_ (()) NO_RETURN;
 +static void invalid_syntax (const char *, int) NO_RETURN;
 +static void end_of_file_error (void) NO_RETURN;
  
  \f
  /* Functions that read one byte from the current source READCHARFUN
     is 0 or positive, it unreads C, and the return value is not
     interesting.  */
  
 -static int readbyte_for_lambda P_ ((int, Lisp_Object));
 -static int readbyte_from_file P_ ((int, Lisp_Object));
 -static int readbyte_from_string P_ ((int, Lisp_Object));
 +static int readbyte_for_lambda (int, Lisp_Object);
 +static int readbyte_from_file (int, Lisp_Object);
 +static int readbyte_from_string (int, Lisp_Object);
  
  /* Handle unreading and rereading of characters.
     Write READCHAR to read a character,
  static int unread_char;
  
  static int
 -readchar (readcharfun, multibyte)
 -     Lisp_Object readcharfun;
 -     int *multibyte;
 +readchar (Lisp_Object readcharfun, int *multibyte)
  {
    Lisp_Object tem;
    register int c;
 -  int (*readbyte) P_ ((int, Lisp_Object));
 +  int (*readbyte) (int, Lisp_Object);
    unsigned char buf[MAX_MULTIBYTE_LENGTH];
    int i, len;
    int emacs_mule_encoding = 0;
      {
        register struct buffer *inbuffer = XBUFFER (readcharfun);
  
 -      int pt_byte = BUF_PT_BYTE (inbuffer);
 +      EMACS_INT pt_byte = BUF_PT_BYTE (inbuffer);
  
        if (pt_byte >= BUF_ZV_BYTE (inbuffer))
        return -1;
      {
        register struct buffer *inbuffer = XMARKER (readcharfun)->buffer;
  
 -      int bytepos = marker_byte_position (readcharfun);
 +      EMACS_INT bytepos = marker_byte_position (readcharfun);
  
        if (bytepos >= BUF_ZV_BYTE (inbuffer))
        return -1;
     If the stream is a user function, call it with the char as argument.  */
  
  static void
 -unreadchar (readcharfun, c)
 -     Lisp_Object readcharfun;
 -     int c;
 +unreadchar (Lisp_Object readcharfun, int c)
  {
    readchar_count--;
    if (c == -1)
    else if (BUFFERP (readcharfun))
      {
        struct buffer *b = XBUFFER (readcharfun);
 -      int bytepos = BUF_PT_BYTE (b);
 +      EMACS_INT bytepos = BUF_PT_BYTE (b);
  
        BUF_PT (b)--;
        if (! NILP (b->enable_multibyte_characters))
    else if (MARKERP (readcharfun))
      {
        struct buffer *b = XMARKER (readcharfun)->buffer;
 -      int bytepos = XMARKER (readcharfun)->bytepos;
 +      EMACS_INT bytepos = XMARKER (readcharfun)->bytepos;
  
        XMARKER (readcharfun)->charpos--;
        if (! NILP (b->enable_multibyte_characters))
  }
  
  static int
 -readbyte_for_lambda (c, readcharfun)
 -     int c;
 -     Lisp_Object readcharfun;
 +readbyte_for_lambda (int c, Lisp_Object readcharfun)
  {
    return read_bytecode_char (c >= 0);
  }
  
  
  static int
 -readbyte_from_file (c, readcharfun)
 -     int c;
 -     Lisp_Object readcharfun;
 +readbyte_from_file (int c, Lisp_Object readcharfun)
  {
    if (c >= 0)
      {
  }
  
  static int
 -readbyte_from_string (c, readcharfun)
 -     int c;
 -     Lisp_Object readcharfun;
 +readbyte_from_string (int c, Lisp_Object readcharfun)
  {
    Lisp_Object string = XCAR (readcharfun);
  
  extern char emacs_mule_bytes[256];
  
  static int
 -read_emacs_mule_char (c, readbyte, readcharfun)
 -     int c;
 -     int (*readbyte) P_ ((int, Lisp_Object));
 -     Lisp_Object readcharfun;
 +read_emacs_mule_char (int c, int (*readbyte) (int, Lisp_Object), Lisp_Object readcharfun)
  {
    /* Emacs-mule coding uses at most 4-byte for one character.  */
    unsigned char buf[4];
  }
  
  
 -static Lisp_Object read_internal_start P_ ((Lisp_Object, Lisp_Object,
 -                                          Lisp_Object));
 -static Lisp_Object read0 P_ ((Lisp_Object));
 -static Lisp_Object read1 P_ ((Lisp_Object, int *, int));
 +static Lisp_Object read_internal_start (Lisp_Object, Lisp_Object,
 +                                        Lisp_Object);
 +static Lisp_Object read0 (Lisp_Object);
 +static Lisp_Object read1 (Lisp_Object, int *, int);
  
 -static Lisp_Object read_list P_ ((int, Lisp_Object));
 -static Lisp_Object read_vector P_ ((Lisp_Object, int));
 +static Lisp_Object read_list (int, Lisp_Object);
 +static Lisp_Object read_vector (Lisp_Object, int);
  
 -static Lisp_Object substitute_object_recurse P_ ((Lisp_Object, Lisp_Object,
 -                                                Lisp_Object));
 -static void substitute_object_in_subtree P_ ((Lisp_Object,
 -                                            Lisp_Object));
 -static void substitute_in_interval P_ ((INTERVAL, Lisp_Object));
 +static Lisp_Object substitute_object_recurse (Lisp_Object, Lisp_Object,
 +                                              Lisp_Object);
 +static void substitute_object_in_subtree (Lisp_Object,
 +                                          Lisp_Object);
 +static void substitute_in_interval (INTERVAL, Lisp_Object);
  
  \f
  /* Get a character from the tty.  */
     return Qnil if no input arrives within that time.  */
  
  Lisp_Object
 -read_filtered_event (no_switch_frame, ascii_required, error_nonascii,
 -                   input_method, seconds)
 -     int no_switch_frame, ascii_required, error_nonascii, input_method;
 -     Lisp_Object seconds;
 +read_filtered_event (int no_switch_frame, int ascii_required,
 +                   int error_nonascii, int input_method, Lisp_Object seconds)
  {
    Lisp_Object val, delayed_switch_frame;
    EMACS_TIME end_time;
@@@ -769,7 -803,8 +769,7 @@@ If the optional argument SECONDS is non
  specifying the maximum number of seconds to wait for input.  If no
  input arrives in that time, return nil.  SECONDS may be a
  floating-point value.  */)
 -     (prompt, inherit_input_method, seconds)
 -     Lisp_Object prompt, inherit_input_method, seconds;
 +  (Lisp_Object prompt, Lisp_Object inherit_input_method, Lisp_Object seconds)
  {
    Lisp_Object val;
  
@@@ -791,7 -826,8 +791,7 @@@ If the optional argument SECONDS is non
  specifying the maximum number of seconds to wait for input.  If no
  input arrives in that time, return nil.  SECONDS may be a
  floating-point value.  */)
 -     (prompt, inherit_input_method, seconds)
 -     Lisp_Object prompt, inherit_input_method, seconds;
 +  (Lisp_Object prompt, Lisp_Object inherit_input_method, Lisp_Object seconds)
  {
    if (! NILP (prompt))
      message_with_string ("%s", prompt, 0);
@@@ -812,7 -848,8 +812,7 @@@ If the optional argument SECONDS is non
  specifying the maximum number of seconds to wait for input.  If no
  input arrives in that time, return nil.  SECONDS may be a
  floating-point value.  */)
 -     (prompt, inherit_input_method, seconds)
 -     Lisp_Object prompt, inherit_input_method, seconds;
 +  (Lisp_Object prompt, Lisp_Object inherit_input_method, Lisp_Object seconds)
  {
    Lisp_Object val;
  
  
  DEFUN ("get-file-char", Fget_file_char, Sget_file_char, 0, 0, 0,
         doc: /* Don't use this yourself.  */)
 -     ()
 +  (void)
  {
    register Lisp_Object val;
    BLOCK_INPUT;
     because of an incompatible change in the byte compiler.  */
  
  static int
 -safe_to_load_p (fd)
 -     int fd;
 +safe_to_load_p (int fd)
  {
    char buf[512];
    int nbytes, i;
     after loading a file successfully.  */
  
  static Lisp_Object
 -record_load_unwind (old)
 -     Lisp_Object old;
 +record_load_unwind (Lisp_Object old)
  {
    return Vloads_in_progress = old;
  }
  /* This handler function is used via internal_condition_case_1.  */
  
  static Lisp_Object
 -load_error_handler (data)
 -     Lisp_Object data;
 +load_error_handler (Lisp_Object data)
  {
    return Qnil;
  }
  
  static Lisp_Object
 -load_warn_old_style_backquotes (file)
 -     Lisp_Object file;
 +load_warn_old_style_backquotes (Lisp_Object file)
  {
    if (!NILP (Vold_style_backquotes))
      {
@@@ -912,7 -953,7 +912,7 @@@ DEFUN ("get-load-suffixes", Fget_load_s
         doc: /* Return the suffixes that `load' should try if a suffix is \
  required.
  This uses the variables `load-suffixes' and `load-file-rep-suffixes'.  */)
 -     ()
 +  (void)
  {
    Lisp_Object lst = Qnil, suffixes = Vload_suffixes, suffix, ext;
    while (CONSP (suffixes))
@@@ -966,8 -1007,13 +966,12 @@@ Loading a file records its definitions
  `require' calls, in an element of `load-history' whose
  car is the file name loaded.  See `load-history'.
  
+ While the file is in the process of being loaded, the variable
+ `load-in-progress' is non-nil and the variable `load-file-name'
+ is bound to the file's name.
  Return t if the file exists and loads successfully.  */)
 -     (file, noerror, nomessage, nosuffix, must_suffix)
 -     Lisp_Object file, noerror, nomessage, nosuffix, must_suffix;
 +  (Lisp_Object file, Lisp_Object noerror, Lisp_Object nomessage, Lisp_Object nosuffix, Lisp_Object must_suffix)
  {
    register FILE *stream;
    register int fd = -1;
    int compiled = 0;
    Lisp_Object handler;
    int safe_p = 1;
 -  char *fmode = "r";
 +  const char *fmode = "r";
    Lisp_Object tmp[2];
    int version;
  
    specbind (Qold_style_backquotes, Qnil);
    record_unwind_protect (load_warn_old_style_backquotes, file);
  
 -  if (!bcmp (SDATA (found) + SBYTES (found) - 4,
 -           ".elc", 4)
 +  if (!memcmp (SDATA (found) + SBYTES (found) - 4, ".elc", 4)
        || (fd >= 0 && (version = safe_to_load_p (fd)) > 0))
      /* Load .elc files directly, but not when they are
         remote and have no handler!  */
  }
  
  static Lisp_Object
 -load_unwind (arg)  /* used as unwind-protect function in load */
 -     Lisp_Object arg;
 +load_unwind (Lisp_Object arg)  /* used as unwind-protect function in load */
  {
    FILE *stream = (FILE *) XSAVE_VALUE (arg)->pointer;
    if (stream != NULL)
  }
  
  static Lisp_Object
 -load_descriptor_unwind (oldlist)
 -     Lisp_Object oldlist;
 +load_descriptor_unwind (Lisp_Object oldlist)
  {
    load_descriptor_list = oldlist;
    return Qnil;
     This is used when starting a subprocess.  */
  
  void
 -close_load_descs ()
 +close_load_descs (void)
  {
  #ifndef WINDOWSNT
    Lisp_Object tail;
  }
  \f
  static int
 -complete_filename_p (pathname)
 -     Lisp_Object pathname;
 +complete_filename_p (Lisp_Object pathname)
  {
    register const unsigned char *s = SDATA (pathname);
    return (IS_DIRECTORY_SEP (s[0])
@@@ -1316,7 -1366,8 +1320,7 @@@ file name when searching
  If non-nil, PREDICATE is used instead of `file-readable-p'.
  PREDICATE can also be an integer to pass to the access(2) function,
  in which case file-name-handlers are ignored.  */)
 -     (filename, path, suffixes, predicate)
 -     Lisp_Object filename, path, suffixes, predicate;
 +  (Lisp_Object filename, Lisp_Object path, Lisp_Object suffixes, Lisp_Object predicate)
  {
    Lisp_Object file;
    int fd = openp (path, filename, suffixes, &file, predicate);
     but store the found remote file name in *STOREPTR.  */
  
  int
 -openp (path, str, suffixes, storeptr, predicate)
 -     Lisp_Object path, str;
 -     Lisp_Object suffixes;
 -     Lisp_Object *storeptr;
 -     Lisp_Object predicate;
 +openp (Lisp_Object path, Lisp_Object str, Lisp_Object suffixes, Lisp_Object *storeptr, Lisp_Object predicate)
  {
    register int fd;
    int fn_size = 100;
     ENTIRE is 1 if loading that entire file, 0 if evaluating part of it.  */
  
  static void
 -build_load_history (filename, entire)
 -     Lisp_Object filename;
 -     int entire;
 +build_load_history (Lisp_Object filename, int entire)
  {
    register Lisp_Object tail, prev, newelt;
    register Lisp_Object tem, tem2;
                           Vload_history);
  }
  
 -Lisp_Object
 -unreadpure (junk) /* Used as unwind-protect function in readevalloop */
 -     Lisp_Object junk;
 +static Lisp_Object
 +unreadpure (Lisp_Object junk) /* Used as unwind-protect function in readevalloop */
  {
    read_pure = 0;
    return Qnil;
  }
  
  static Lisp_Object
 -readevalloop_1 (old)
 -     Lisp_Object old;
 +readevalloop_1 (Lisp_Object old)
  {
    load_convert_to_unibyte = ! NILP (old);
    return Qnil;
     information.  */
  
  static void
 -end_of_file_error ()
 +end_of_file_error (void)
  {
    if (STRINGP (Vload_file_name))
      xsignal1 (Qend_of_file, Vload_file_name);
     If the input is not from a buffer, they must be nil.  */
  
  static void
 -readevalloop (readcharfun, stream, sourcename, evalfun,
 -            printflag, unibyte, readfun, start, end)
 -     Lisp_Object readcharfun;
 -     FILE *stream;
 -     Lisp_Object sourcename;
 -     Lisp_Object (*evalfun) ();
 -     int printflag;
 -     Lisp_Object unibyte, readfun;
 -     Lisp_Object start, end;
 +readevalloop (Lisp_Object readcharfun,
 +            FILE *stream,
 +            Lisp_Object sourcename,
 +            Lisp_Object (*evalfun) (Lisp_Object),
 +            int printflag,
 +            Lisp_Object unibyte, Lisp_Object readfun,
 +            Lisp_Object start, Lisp_Object end)
  {
    register int c;
    register Lisp_Object val;
@@@ -1768,7 -1829,8 +1772,7 @@@ DO-ALLOW-PRINT, if non-nil, specifies t
   functions should work normally even if PRINTFLAG is nil.
  
  This function preserves the position of point.  */)
 -     (buffer, printflag, filename, unibyte, do_allow_print)
 -     Lisp_Object buffer, printflag, filename, unibyte, do_allow_print;
 +  (Lisp_Object buffer, Lisp_Object printflag, Lisp_Object filename, Lisp_Object unibyte, Lisp_Object do_allow_print)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object tem, buf;
@@@ -1811,7 -1873,8 +1815,7 @@@ instead of `read' to read each expressi
  which is the input stream for reading characters.
  
  This function does not move point.  */)
 -     (start, end, printflag, read_function)
 -     Lisp_Object start, end, printflag, read_function;
 +  (Lisp_Object start, Lisp_Object end, Lisp_Object printflag, Lisp_Object read_function)
  {
    int count = SPECPDL_INDEX ();
    Lisp_Object tem, cbuf;
@@@ -1845,7 -1908,8 +1849,7 @@@ STREAM or the value of `standard-input
   a string (takes text from string, starting at the beginning)
   t (read text line using minibuffer and use it, or read from
      standard input in batch mode).  */)
 -     (stream)
 -     Lisp_Object stream;
 +  (Lisp_Object stream)
  {
    if (NILP (stream))
      stream = Vstandard_input;
@@@ -1862,7 -1926,8 +1866,7 @@@ DEFUN ("read-from-string", Fread_from_s
  Returns a cons: (OBJECT-READ . FINAL-STRING-INDEX).
  START and END optionally delimit a substring of STRING from which to read;
   they default to 0 and (length STRING) respectively.  */)
 -     (string, start, end)
 -     Lisp_Object string, start, end;
 +  (Lisp_Object string, Lisp_Object start, Lisp_Object end)
  {
    Lisp_Object ret;
    CHECK_STRING (string);
  /* Function to set up the global context we need in toplevel read
     calls. */
  static Lisp_Object
 -read_internal_start (stream, start, end)
 -     Lisp_Object stream;
 -     Lisp_Object start; /* Only used when stream is a string. */
 -     Lisp_Object end; /* Only used when stream is a string. */
 +read_internal_start (Lisp_Object stream, Lisp_Object start, Lisp_Object end)
 +/* start, end only used when stream is a string. */
  {
    Lisp_Object retval;
  
    if (STRINGP (stream)
        || ((CONSP (stream) && STRINGP (XCAR (stream)))))
      {
 -      int startval, endval;
 +      EMACS_INT startval, endval;
        Lisp_Object string;
  
        if (STRINGP (stream))
     S is error string of length N (if > 0)  */
  
  static void
 -invalid_syntax (s, n)
 -     const char *s;
 -     int n;
 +invalid_syntax (const char *s, int n)
  {
    if (!n)
      n = strlen (s);
     are not allowed. */
  
  static Lisp_Object
 -read0 (readcharfun)
 -     Lisp_Object readcharfun;
 +read0 (Lisp_Object readcharfun)
  {
    register Lisp_Object val;
    int c;
@@@ -1965,7 -2035,9 +1969,7 @@@ static char *read_buffer
     If the escape sequence forces unibyte, return eight-bit char.  */
  
  static int
 -read_escape (readcharfun, stringp)
 -     Lisp_Object readcharfun;
 -     int stringp;
 +read_escape (Lisp_Object readcharfun, int stringp)
  {
    register int c = READCHAR;
    /* \u allows up to four hex digits, \U up to eight.  Default to the
     range.  */
  
  static Lisp_Object
 -read_integer (readcharfun, radix)
 -     Lisp_Object readcharfun;
 -     int radix;
 +read_integer (Lisp_Object readcharfun, int radix)
  {
    int ndigits = 0, invalid_p, c, sign = 0;
    /* We use a floating point number because  */
     FIRST_IN_LIST is nonzero if this is the first element of a list.  */
  
  static Lisp_Object
 -read1 (readcharfun, pch, first_in_list)
 -     register Lisp_Object readcharfun;
 -     int *pch;
 -     int first_in_list;
 +read1 (register Lisp_Object readcharfun, int *pch, int first_in_list)
  {
    register int c;
    int uninterned_symbol = 0;
                invalid_syntax ("#&...", 5);
  
              val = Fmake_bool_vector (length, Qnil);
 -            bcopy (SDATA (tmp), XBOOL_VECTOR (val)->data,
 -                   size_in_chars);
 +            memcpy (XBOOL_VECTOR (val)->data, SDATA (tmp), size_in_chars);
              /* Clear the extraneous bits in the last byte.  */
              if (XINT (length) != size_in_chars * BOOL_VECTOR_BITS_PER_CHAR)
                XBOOL_VECTOR (val)->data[size_in_chars - 1]
        }
  
      case '`':
 -      if (first_in_list)
 -      {
 -        Vold_style_backquotes = Qt;
 -        goto default_label;
 -      }
 -      else
 -      {
 -        Lisp_Object value;
 -
 -        new_backquote_flag++;
 -        value = read0 (readcharfun);
 -        new_backquote_flag--;
 +      {
 +      int next_char = READCHAR;
 +      UNREAD (next_char);
 +      /* Transition from old-style to new-style:
 +         If we see "(`" it used to mean old-style, which usually works
 +         fine because ` should almost never appear in such a position
 +         for new-style.  But occasionally we need "(`" to mean new
 +         style, so we try to distinguish the two by the fact that we
 +         can either write "( `foo" or "(` foo", where the first
 +         intends to use new-style whereas the second intends to use
 +         old-style.  For Emacs-25, we should completely remove this
 +         first_in_list exception (old-style can still be obtained via
 +         "(\`" anyway).  */
 +      if (first_in_list && next_char == ' ')
 +        {
 +          Vold_style_backquotes = Qt;
 +          goto default_label;
 +        }
 +      else
 +        {
 +          Lisp_Object value;
  
 -        return Fcons (Qbackquote, Fcons (value, Qnil));
 -      }
 +          new_backquote_flag++;
 +          value = read0 (readcharfun);
 +          new_backquote_flag--;
  
 +          return Fcons (Qbackquote, Fcons (value, Qnil));
 +        }
 +      }
      case ',':
        if (new_backquote_flag)
        {
  
            ok = (next_next_char <= 040
                  || (next_next_char < 0200
 -                    && (index ("\"';([#?", next_next_char)
 +                    && (strchr ("\"';([#?", next_next_char)
                          || (!first_in_list && next_next_char == '`')
                          || (new_backquote_flag && next_next_char == ','))));
          }
          {
            ok = (next_char <= 040
                  || (next_char < 0200
 -                    && (index ("\"';()[]#?", next_char)
 +                    && (strchr ("\"';()[]#?", next_char)
                          || (!first_in_list && next_char == '`')
                          || (new_backquote_flag && next_char == ','))));
          }
  
        if (next_char <= 040
            || (next_char < 0200
 -              && (index ("\"';([#?", next_char)
 +              && (strchr ("\"';([#?", next_char)
                    || (!first_in_list && next_char == '`')
                    || (new_backquote_flag && next_char == ','))))
          {
          while (c > 040
                 && c != 0x8a0 /* NBSP */
                 && (c >= 0200
 -                   || (!index ("\"';()[]#", c)
 +                   || (!strchr ("\"';()[]#", c)
                         && !(!first_in_list && c == '`')
                         && !(new_backquote_flag && c == ','))))
            {
  static Lisp_Object seen_list;
  
  static void
 -substitute_object_in_subtree (object, placeholder)
 -     Lisp_Object object;
 -     Lisp_Object placeholder;
 +substitute_object_in_subtree (Lisp_Object object, Lisp_Object placeholder)
  {
    Lisp_Object check_object;
  
    } while (0)
  
  static Lisp_Object
 -substitute_object_recurse (object, placeholder, subtree)
 -     Lisp_Object object;
 -     Lisp_Object placeholder;
 -     Lisp_Object subtree;
 +substitute_object_recurse (Lisp_Object object, Lisp_Object placeholder, Lisp_Object subtree)
  {
    /* If we find the placeholder, return the target object. */
    if (EQ (placeholder, subtree))
  
  /*  Helper function for substitute_object_recurse.  */
  static void
 -substitute_in_interval (interval, arg)
 -     INTERVAL    interval;
 -     Lisp_Object arg;
 +substitute_in_interval (INTERVAL interval, Lisp_Object arg)
  {
    Lisp_Object object      = Fcar (arg);
    Lisp_Object placeholder = Fcdr (arg);
  #define EXP_INT 16
  
  int
 -isfloat_string (cp, ignore_trailing)
 -     register char *cp;
 -     int ignore_trailing;
 +isfloat_string (const char *cp, int ignore_trailing)
  {
 -  register int state;
 -
 -  char *start = cp;
 +  int state;
 +  const char *start = cp;
  
    state = 0;
    if (*cp == '+' || *cp == '-')
      }
  
    return ((ignore_trailing
 -           || (*cp == 0) || (*cp == ' ') || (*cp == '\t') || (*cp == '\n') || (*cp == '\r') || (*cp == '\f'))
 +         || *cp == 0 || *cp == ' ' || *cp == '\t' || *cp == '\n'
 +         || *cp == '\r' || *cp == '\f')
          && (state == (LEAD_INT|DOT_CHAR|TRAIL_INT)
              || state == (DOT_CHAR|TRAIL_INT)
              || state == (LEAD_INT|E_CHAR|EXP_INT)
  
  \f
  static Lisp_Object
 -read_vector (readcharfun, bytecodeflag)
 -     Lisp_Object readcharfun;
 -     int bytecodeflag;
 +read_vector (Lisp_Object readcharfun, int bytecodeflag)
  {
    register int i;
    register int size;
      and make structure pure.  */
  
  static Lisp_Object
 -read_list (flag, readcharfun)
 -     int flag;
 -     register Lisp_Object readcharfun;
 +read_list (int flag, register Lisp_Object readcharfun)
  {
    /* -1 means check next element for defun,
       0 means don't check,
@@@ -3514,13 -3592,14 +3518,13 @@@ Lisp_Object initial_obarray
  
  int oblookup_last_bucket_number;
  
 -static int hash_string ();
 +static int hash_string (const unsigned char *ptr, int len);
  
  /* Get an error if OBARRAY is not an obarray.
     If it is one, return it.  */
  
  Lisp_Object
 -check_obarray (obarray)
 -     Lisp_Object obarray;
 +check_obarray (Lisp_Object obarray)
  {
    if (!VECTORP (obarray) || XVECTOR (obarray)->size == 0)
      {
     interned in the current obarray.  */
  
  Lisp_Object
 -intern (str)
 -     const char *str;
 +intern (const char *str)
  {
    Lisp_Object tem;
    int len = strlen (str);
@@@ -3576,13 -3656,14 +3580,13 @@@ intern_c_string (const char *str
  /* Create an uninterned symbol with name STR.  */
  
  Lisp_Object
 -make_symbol (str)
 -     char *str;
 +make_symbol (const char *str)
  {
    int len = strlen (str);
  
 -  return Fmake_symbol ((!NILP (Vpurify_flag)
 -                      ? make_pure_string (str, len, len, 0)
 -                      : make_string (str, len)));
 +  return Fmake_symbol (!NILP (Vpurify_flag)
 +                     ? make_pure_string (str, len, len, 0)
 +                     : make_string (str, len));
  }
  \f
  DEFUN ("intern", Fintern, Sintern, 1, 2, 0,
  If there is none, one is created by this function and returned.
  A second optional argument specifies the obarray to use;
  it defaults to the value of `obarray'.  */)
 -     (string, obarray)
 -     Lisp_Object string, obarray;
 +  (Lisp_Object string, Lisp_Object obarray)
  {
    register Lisp_Object tem, sym, *ptr;
  
        && EQ (obarray, initial_obarray))
      {
        XSYMBOL (sym)->constant = 1;
 -      XSYMBOL (sym)->value = sym;
 +      XSYMBOL (sym)->redirect = SYMBOL_PLAINVAL;
 +      SET_SYMBOL_VAL (XSYMBOL (sym), sym);
      }
  
    ptr = &XVECTOR (obarray)->contents[XINT (tem)];
@@@ -3637,7 -3718,8 +3641,7 @@@ NAME may be a string or a symbol.  If i
  symbol is searched for.
  A second optional argument specifies the obarray to use;
  it defaults to the value of `obarray'.  */)
 -     (name, obarray)
 -     Lisp_Object name, obarray;
 +  (Lisp_Object name, Lisp_Object obarray)
  {
    register Lisp_Object tem, string;
  
@@@ -3665,7 -3747,8 +3669,7 @@@ The value is t if a symbol was found an
  NAME may be a string or a symbol.  If it is a symbol, that symbol
  is deleted, if it belongs to OBARRAY--no other symbol is deleted.
  OBARRAY defaults to the value of the variable `obarray'.  */)
 -     (name, obarray)
 -     Lisp_Object name, obarray;
 +  (Lisp_Object name, Lisp_Object obarray)
  {
    register Lisp_Object string, tem;
    int hash;
         error ("Attempt to unintern t or nil"); */
  
    XSYMBOL (tem)->interned = SYMBOL_UNINTERNED;
 -  XSYMBOL (tem)->constant = 0;
 -  XSYMBOL (tem)->indirect_variable = 0;
  
    hash = oblookup_last_bucket_number;
  
     Also store the bucket number in oblookup_last_bucket_number.  */
  
  Lisp_Object
 -oblookup (obarray, ptr, size, size_byte)
 -     Lisp_Object obarray;
 -     register const char *ptr;
 -     int size, size_byte;
 +oblookup (Lisp_Object obarray, register const char *ptr, EMACS_INT size, EMACS_INT size_byte)
  {
    int hash;
    int obsize;
        {
        if (SBYTES (SYMBOL_NAME (tail)) == size_byte
            && SCHARS (SYMBOL_NAME (tail)) == size
 -          && !bcmp (SDATA (SYMBOL_NAME (tail)), ptr, size_byte))
 +          && !memcmp (SDATA (SYMBOL_NAME (tail)), ptr, size_byte))
          return tail;
        else if (XSYMBOL (tail)->next == 0)
          break;
  }
  
  static int
 -hash_string (ptr, len)
 -     const unsigned char *ptr;
 -     int len;
 +hash_string (const unsigned char *ptr, int len)
  {
    register const unsigned char *p = ptr;
    register const unsigned char *end = p + len;
  }
  \f
  void
 -map_obarray (obarray, fn, arg)
 -     Lisp_Object obarray;
 -     void (*fn) P_ ((Lisp_Object, Lisp_Object));
 -     Lisp_Object arg;
 +map_obarray (Lisp_Object obarray, void (*fn) (Lisp_Object, Lisp_Object), Lisp_Object arg)
  {
    register int i;
    register Lisp_Object tail;
      }
  }
  
 -void
 -mapatoms_1 (sym, function)
 -     Lisp_Object sym, function;
 +static void
 +mapatoms_1 (Lisp_Object sym, Lisp_Object function)
  {
    call1 (function, sym);
  }
  DEFUN ("mapatoms", Fmapatoms, Smapatoms, 1, 2, 0,
         doc: /* Call FUNCTION on every symbol in OBARRAY.
  OBARRAY defaults to the value of `obarray'.  */)
 -     (function, obarray)
 -     Lisp_Object function, obarray;
 +  (Lisp_Object function, Lisp_Object obarray)
  {
    if (NILP (obarray)) obarray = Vobarray;
    obarray = check_obarray (obarray);
  #define OBARRAY_SIZE 1511
  
  void
 -init_obarray ()
 +init_obarray (void)
  {
    Lisp_Object oblength;
 -  int hash;
 -  Lisp_Object *tem;
  
    XSETFASTINT (oblength, OBARRAY_SIZE);
  
 -  Qnil = Fmake_symbol (make_pure_c_string ("nil"));
    Vobarray = Fmake_vector (oblength, make_number (0));
    initial_obarray = Vobarray;
    staticpro (&initial_obarray);
 -  /* Intern nil in the obarray */
 -  XSYMBOL (Qnil)->interned = SYMBOL_INTERNED_IN_INITIAL_OBARRAY;
 -  XSYMBOL (Qnil)->constant = 1;
 -
 -  /* These locals are to kludge around a pyramid compiler bug. */
 -  hash = hash_string ("nil", 3);
 -  /* Separate statement here to avoid VAXC bug. */
 -  hash %= OBARRAY_SIZE;
 -  tem = &XVECTOR (Vobarray)->contents[hash];
 -  *tem = Qnil;
  
    Qunbound = Fmake_symbol (make_pure_c_string ("unbound"));
 -  XSYMBOL (Qnil)->function = Qunbound;
 -  XSYMBOL (Qunbound)->value = Qunbound;
 +  /* Set temporary dummy values to Qnil and Vpurify_flag to satisfy the
 +     NILP (Vpurify_flag) check in intern_c_string.  */
 +  Qnil = make_number (-1); Vpurify_flag = make_number (1);
 +  Qnil = intern_c_string ("nil");
 +
 +  /* Fmake_symbol inits fields of new symbols with Qunbound and Qnil,
 +     so those two need to be fixed manally.  */
 +  SET_SYMBOL_VAL (XSYMBOL (Qunbound), Qunbound);
    XSYMBOL (Qunbound)->function = Qunbound;
 +  XSYMBOL (Qunbound)->plist = Qnil;
 +  /* XSYMBOL (Qnil)->function = Qunbound; */
 +  SET_SYMBOL_VAL (XSYMBOL (Qnil), Qnil);
 +  XSYMBOL (Qnil)->constant = 1;
 +  XSYMBOL (Qnil)->plist = Qnil;
  
    Qt = intern_c_string ("t");
 -  XSYMBOL (Qnil)->value = Qnil;
 -  XSYMBOL (Qnil)->plist = Qnil;
 -  XSYMBOL (Qt)->value = Qt;
 +  SET_SYMBOL_VAL (XSYMBOL (Qt), Qt);
    XSYMBOL (Qt)->constant = 1;
  
    /* Qt is correct even if CANNOT_DUMP.  loadup.el will set to nil at end.  */
  }
  \f
  void
 -defsubr (sname)
 -     struct Lisp_Subr *sname;
 +defsubr (struct Lisp_Subr *sname)
  {
    Lisp_Object sym;
    sym = intern_c_string (sname->symbol_name);
@@@ -3890,33 -3990,31 +3894,33 @@@ defalias (sname, string
  }
  #endif /* NOTDEF */
  
 -/* Define an "integer variable"; a symbol whose value is forwarded
 -   to a C variable of type int.  Sample call:
 -   DEFVAR_INT ("emacs-priority", &emacs_priority, "Documentation");  */
 +/* Define an "integer variable"; a symbol whose value is forwarded to a
 +   C variable of type int.  Sample call (munged w "xx" to fool make-docfile):
 +   DEFxxVAR_INT ("emacs-priority", &emacs_priority, "Documentation");  */
  void
 -defvar_int (const char *namestring, EMACS_INT *address)
 +defvar_int (struct Lisp_Intfwd *i_fwd,
 +          const char *namestring, EMACS_INT *address)
  {
 -  Lisp_Object sym, val;
 +  Lisp_Object sym;
    sym = intern_c_string (namestring);
 -  val = allocate_misc ();
 -  XMISCTYPE (val) = Lisp_Misc_Intfwd;
 -  XINTFWD (val)->intvar = address;
 -  SET_SYMBOL_VALUE (sym, val);
 +  i_fwd->type = Lisp_Fwd_Int;
 +  i_fwd->intvar = address;
 +  XSYMBOL (sym)->redirect = SYMBOL_FORWARDED;
 +  SET_SYMBOL_FWD (XSYMBOL (sym), (union Lisp_Fwd *)i_fwd);
  }
  
  /* Similar but define a variable whose value is t if address contains 1,
     nil if address contains 0.  */
  void
 -defvar_bool (const char *namestring, int *address)
 +defvar_bool (struct Lisp_Boolfwd *b_fwd,
 +           const char *namestring, int *address)
  {
 -  Lisp_Object sym, val;
 +  Lisp_Object sym;
    sym = intern_c_string (namestring);
 -  val = allocate_misc ();
 -  XMISCTYPE (val) = Lisp_Misc_Boolfwd;
 -  XBOOLFWD (val)->boolvar = address;
 -  SET_SYMBOL_VALUE (sym, val);
 +  b_fwd->type = Lisp_Fwd_Bool;
 +  b_fwd->boolvar = address;
 +  XSYMBOL (sym)->redirect = SYMBOL_FORWARDED;
 +  SET_SYMBOL_FWD (XSYMBOL (sym), (union Lisp_Fwd *)b_fwd);
    Vbyte_boolean_vars = Fcons (sym, Vbyte_boolean_vars);
  }
  
     gc-marked for some other reason, since marking the same slot twice
     can cause trouble with strings.  */
  void
 -defvar_lisp_nopro (const char *namestring, Lisp_Object *address)
 +defvar_lisp_nopro (struct Lisp_Objfwd *o_fwd,
 +                 const char *namestring, Lisp_Object *address)
  {
 -  Lisp_Object sym, val;
 +  Lisp_Object sym;
    sym = intern_c_string (namestring);
 -  val = allocate_misc ();
 -  XMISCTYPE (val) = Lisp_Misc_Objfwd;
 -  XOBJFWD (val)->objvar = address;
 -  SET_SYMBOL_VALUE (sym, val);
 +  o_fwd->type = Lisp_Fwd_Obj;
 +  o_fwd->objvar = address;
 +  XSYMBOL (sym)->redirect = SYMBOL_FORWARDED;
 +  SET_SYMBOL_FWD (XSYMBOL (sym), (union Lisp_Fwd *)o_fwd);
  }
  
  void
 -defvar_lisp (const char *namestring, Lisp_Object *address)
 +defvar_lisp (struct Lisp_Objfwd *o_fwd,
 +           const char *namestring, Lisp_Object *address)
  {
 -  defvar_lisp_nopro (namestring, address);
 +  defvar_lisp_nopro (o_fwd, namestring, address);
    staticpro (address);
  }
  
     at a particular offset in the current kboard object.  */
  
  void
 -defvar_kboard (const char *namestring, int offset)
 +defvar_kboard (struct Lisp_Kboard_Objfwd *ko_fwd,
 +             const char *namestring, int offset)
  {
 -  Lisp_Object sym, val;
 +  Lisp_Object sym;
    sym = intern_c_string (namestring);
 -  val = allocate_misc ();
 -  XMISCTYPE (val) = Lisp_Misc_Kboard_Objfwd;
 -  XKBOARD_OBJFWD (val)->offset = offset;
 -  SET_SYMBOL_VALUE (sym, val);
 +  ko_fwd->type = Lisp_Fwd_Kboard_Obj;
 +  ko_fwd->offset = offset;
 +  XSYMBOL (sym)->redirect = SYMBOL_FORWARDED;
 +  SET_SYMBOL_FWD (XSYMBOL (sym), (union Lisp_Fwd *)ko_fwd);
  }
  \f
  /* Record the value of load-path used at the start of dumping
  static Lisp_Object dump_path;
  
  void
 -init_lread ()
 +init_lread (void)
  {
 -  char *normal;
 +  const char *normal;
    int turn_off_warning = 0;
  
    /* Compute the default load-path.  */
     does not exist.  Print it on stderr and put it in *Messages*.  */
  
  void
 -dir_warning (format, dirname)
 -     char *format;
 -     Lisp_Object dirname;
 +dir_warning (const char *format, Lisp_Object dirname)
  {
    char *buffer
      = (char *) alloca (SCHARS (dirname) + strlen (format) + 5);
  }
  
  void
 -syms_of_lread ()
 +syms_of_lread (void)
  {
    defsubr (&Sread);
    defsubr (&Sread_from_string);
@@@ -4475,3 -4572,5 +4479,3 @@@ to load.  See also `load-dangerous-libr
    staticpro (&Qrehash_threshold);
  }
  
 -/* arch-tag: a0d02733-0f96-4844-a659-9fd53c4f414d
 -   (do not change this comment) */
diff --combined src/xsettings.c
index b3f3cb61541f1d4ff0713ad0572e16f57ba05876,de37063c741b82bdc924375552c1f53d33103703..83ca87ed0bd3df00d847a72c4433a3a4f1696b13
@@@ -1,4 -1,4 +1,4 @@@
 -/* Functions for handle font changes dynamically.
 +/* Functions for handle font and other changes dynamically.
     Copyright (C) 2009, 2010
                   Free Software Foundation, Inc.
  
@@@ -17,8 -17,7 +17,8 @@@ GNU General Public License for more det
  You should have received a copy of the GNU General Public License
  along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
  
 -#include "config.h"
 +#include <config.h>
 +#include <limits.h>
  #include <setjmp.h>
  #include <fcntl.h>
  #include "lisp.h"
  #endif
  
  static char *current_mono_font;
 +static char *current_font;
  static struct x_display_info *first_dpyinfo;
 -static Lisp_Object Qfont_name, Qfont_render;
 +static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render,
 +  Qtool_bar_style;
  static int use_system_font;
  static Lisp_Object Vxft_settings;
 -
 +static Lisp_Object current_tool_bar_style;
  
  #ifdef HAVE_GCONF
  static GConfClient *gconf_client;
@@@ -54,7 -51,9 +54,7 @@@
  
  
  static void
 -store_font_changed_event (arg, display_name)
 -     Lisp_Object arg;
 -     Lisp_Object display_name;
 +store_config_changed_event (Lisp_Object arg, Lisp_Object display_name)
  {
    struct input_event event;
    EVENT_INIT (event);
    kbd_buffer_store_event (&event);
  }
  
 +#define XSETTINGS_FONT_NAME       "Gtk/FontName"
 +#define XSETTINGS_TOOL_BAR_STYLE  "Gtk/ToolbarStyle"
 +
 +enum {
 +  SEEN_AA         = 0x01,
 +  SEEN_HINTING    = 0x02,
 +  SEEN_RGBA       = 0x04,
 +  SEEN_LCDFILTER  = 0x08,
 +  SEEN_HINTSTYLE  = 0x10,
 +  SEEN_DPI        = 0x20,
 +  SEEN_FONT       = 0x40,
 +  SEEN_TB_STYLE   = 0x80,
 +};
 +struct xsettings 
 +{
 +#ifdef HAVE_XFT
 +  FcBool aa, hinting;
 +  int rgba, lcdfilter, hintstyle;
 +  double dpi;
 +#endif
 +
 +  char *font;
 +  char *tb_style;
 +
 +  unsigned seen;
 +};
 +
  #ifdef HAVE_GCONF
  
 -#define SYSTEM_MONO_FONT       "/desktop/gnome/interface/monospace_font_name"
 +#define SYSTEM_MONO_FONT     "/desktop/gnome/interface/monospace_font_name"
 +#define SYSTEM_FONT          "/desktop/gnome/interface/font_name"
  
  /* Callback called when something changed in GConf that we care about,
     that is SYSTEM_MONO_FONT.  */
  
  static void
 -something_changedCB (client, cnxn_id, entry, user_data)
 -     GConfClient *client;
 -     guint cnxn_id;
 -     GConfEntry *entry;
 -     gpointer user_data;
 +something_changedCB (GConfClient *client,
 +                     guint cnxn_id,
 +                     GConfEntry *entry,
 +                     gpointer user_data)
  {
    GConfValue *v = gconf_entry_get_value (entry);
    
    if (v->type == GCONF_VALUE_STRING)
      {
        const char *value = gconf_value_get_string (v);
 -      int i;
        if (current_mono_font != NULL && strcmp (value, current_mono_font) == 0)
          return; /* No change. */
  
          found = dpyinfo == first_dpyinfo;
  
        if (found && use_system_font)
 -        store_font_changed_event (Qfont_name,
 -                                  XCAR (first_dpyinfo->name_list_element));
 +        store_config_changed_event (Qmonospace_font_name,
 +                                    XCAR (first_dpyinfo->name_list_element));
      }
  }
  #endif /* HAVE_GCONF */
  #define FC_LCD_FILTER "lcdfilter"
  #endif
  
 +#endif /* HAVE_XFT */
 +
  /* Find the window that contains the XSETTINGS property values.  */
  
  static void
 -get_prop_window (dpyinfo)
 -     struct x_display_info *dpyinfo;
 +get_prop_window (struct x_display_info *dpyinfo)
  {
    Display *dpy = dpyinfo->display;
  
    XUngrabServer (dpy);
  }
  
 -enum {
 -  SEEN_AA         = 0x01,
 -  SEEN_HINTING    = 0x02,
 -  SEEN_RGBA       = 0x04,
 -  SEEN_LCDFILTER  = 0x08,
 -  SEEN_HINTSTYLE  = 0x10,
 -  SEEN_DPI        = 0x20,
 -};
 -struct xsettings 
 -{
 -  FcBool aa, hinting;
 -  int rgba, lcdfilter, hintstyle;
 -  double dpi;
 -
 -  unsigned seen;
 -};
 -
  #define SWAP32(nr) (((nr) << 24) | (((nr) << 8) & 0xff0000)     \
                      | (((nr) >> 8) & 0xff00) | ((nr) >> 24))
  #define SWAP16(nr) (((nr) << 8) | ((nr) >> 8))
  */
  
  static int
 -parse_xft_settings (prop, bytes, settings)
 -     unsigned char *prop;
 -     unsigned long bytes;
 -     struct xsettings *settings;
 +parse_settings (unsigned char *prop,
 +                long unsigned int bytes,
 +                struct xsettings *settings)
  {
    Lisp_Object byteorder = Fbyteorder ();
    int my_bo = XFASTINT (byteorder) == 'B' ? MSBFirst : LSBFirst;
  
    memset (settings, 0, sizeof (*settings));
  
 -  while (bytes_parsed+4 < bytes && settings_seen < 6
 +  while (bytes_parsed+4 < bytes && settings_seen < 7
           && i < n_settings)
      {
        int type = prop[bytes_parsed++];
        CARD32 vlen, ival = 0;
        char name[128]; /* The names we are looking for are not this long.  */
        char sval[128]; /* The values we are looking for are not this long.  */
 -      int is_xft;
 +      int want_this;
        int to_cpy;
  
        sval[0] = '\0';
        bytes_parsed += 4; /* Skip serial for this value */
        if (bytes_parsed > bytes) return BadLength;
  
 -      is_xft = nlen > 6 && strncmp (name, "Xft/", 4) == 0;
 +      want_this =
 +#ifdef HAVE_XFT
 +        (nlen > 6 && strncmp (name, "Xft/", 4) == 0)
 +        ||
 +#endif
 +        (strcmp (XSETTINGS_FONT_NAME, name) == 0)
 +        || (strcmp (XSETTINGS_TOOL_BAR_STYLE, name) == 0);
  
        switch (type) 
          {
          case 0: /* Integer */
            if (bytes_parsed+4 > bytes) return BadLength;
 -          if (is_xft)
 +          if (want_this)
              {
                memcpy (&ival, prop+bytes_parsed, 4);
                if (my_bo != that_bo) ival = SWAP32 (ival);
            memcpy (&vlen, prop+bytes_parsed, 4);
            bytes_parsed += 4;
            if (my_bo != that_bo) vlen = SWAP32 (vlen);
 -          if (is_xft)
 +          if (want_this)
              {
                to_cpy = vlen > 127 ? 127 : vlen;
                memcpy (sval, prop+bytes_parsed, to_cpy);
            return BadValue;
          }
  
 -      if (is_xft
 +      if (want_this
          {
            ++settings_seen;
 -          if (strcmp (name, "Xft/Antialias") == 0)
 +          if (strcmp (name, XSETTINGS_FONT_NAME) == 0)
 +            {
 +              settings->font = xstrdup (sval);
 +              settings->seen |= SEEN_FONT;
 +            }
 +          else if (strcmp (name, XSETTINGS_TOOL_BAR_STYLE) == 0)
 +            {
 +              settings->tb_style = xstrdup (sval);
 +              settings->seen |= SEEN_TB_STYLE;
 +            }
 +#ifdef HAVE_XFT
 +          else if (strcmp (name, "Xft/Antialias") == 0)
              {
                settings->seen |= SEEN_AA;
                settings->aa = ival != 0;
                else
                  settings->seen &= ~SEEN_LCDFILTER;
              }
 +#endif /* HAVE_XFT */
          }
      }
  
  }
  
  static int
 -read_xft_settings (dpyinfo, settings)
 -     struct x_display_info *dpyinfo;
 -     struct xsettings *settings;
 +read_settings (struct x_display_info *dpyinfo, struct xsettings *settings)
  {
 -  long long_len;
    Atom act_type;
    int act_form;
    unsigned long nitems, bytes_after;
  
    if (rc == Success && prop != NULL && act_form == 8 && nitems > 0
        && act_type == dpyinfo->Xatom_xsettings_prop)
 -    rc = parse_xft_settings (prop, nitems, settings);
 +    rc = parse_settings (prop, nitems, settings);
  
    XFree (prop);
  
  
  
  static void
 -apply_xft_settings (dpyinfo, send_event_p)
 -     struct x_display_info *dpyinfo;
 -     int send_event_p;
 +apply_xft_settings (struct x_display_info *dpyinfo,
 +                    int send_event_p,
 +                    struct xsettings *settings)
  {
 +#ifdef HAVE_XFT
    FcPattern *pat;
 -  struct xsettings settings, oldsettings;
 +  struct xsettings oldsettings;
    int changed = 0;
    char buf[256];
  
 -  if (!read_xft_settings (dpyinfo, &settings))
 -    return;
 -
    memset (&oldsettings, 0, sizeof (oldsettings));
    buf[0] = '\0';
    pat = FcPatternCreate ();
    FcPatternGetInteger (pat, FC_RGBA, 0, &oldsettings.rgba);
    FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi);
  
 -  if ((settings.seen & SEEN_AA) != 0 && oldsettings.aa != settings.aa)
 +  if ((settings->seen & SEEN_AA) != 0 && oldsettings.aa != settings->aa)
      {
        FcPatternDel (pat, FC_ANTIALIAS);
 -      FcPatternAddBool (pat, FC_ANTIALIAS, settings.aa);
 +      FcPatternAddBool (pat, FC_ANTIALIAS, settings->aa);
        ++changed;
 -      oldsettings.aa = settings.aa;
 +      oldsettings.aa = settings->aa;
      }
    sprintf (buf, "Antialias: %d", oldsettings.aa);
  
 -  if ((settings.seen & SEEN_HINTING) != 0
 -      && oldsettings.hinting != settings.hinting)
 +  if ((settings->seen & SEEN_HINTING) != 0
 +      && oldsettings.hinting != settings->hinting)
      {
        FcPatternDel (pat, FC_HINTING);
 -      FcPatternAddBool (pat, FC_HINTING, settings.hinting);
 +      FcPatternAddBool (pat, FC_HINTING, settings->hinting);
        ++changed;
 -      oldsettings.hinting = settings.hinting;
 +      oldsettings.hinting = settings->hinting;
      }
    if (strlen (buf) > 0) strcat (buf, ", ");
    sprintf (buf+strlen (buf), "Hinting: %d", oldsettings.hinting);
 -  if ((settings.seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings.rgba)
 +  if ((settings->seen & SEEN_RGBA) != 0 && oldsettings.rgba != settings->rgba)
      {
        FcPatternDel (pat, FC_RGBA);
 -      FcPatternAddInteger (pat, FC_RGBA, settings.rgba);
 -      oldsettings.rgba = settings.rgba;
 +      FcPatternAddInteger (pat, FC_RGBA, settings->rgba);
 +      oldsettings.rgba = settings->rgba;
        ++changed;
      }
    if (strlen (buf) > 0) strcat (buf, ", ");
    sprintf (buf+strlen (buf), "RGBA: %d", oldsettings.rgba);
  
    /* Older fontconfig versions don't have FC_LCD_FILTER. */
 -  if ((settings.seen & SEEN_LCDFILTER) != 0
 -      && oldsettings.lcdfilter != settings.lcdfilter)
 +  if ((settings->seen & SEEN_LCDFILTER) != 0
 +      && oldsettings.lcdfilter != settings->lcdfilter)
      {
        FcPatternDel (pat, FC_LCD_FILTER);
 -      FcPatternAddInteger (pat, FC_LCD_FILTER, settings.lcdfilter);
 +      FcPatternAddInteger (pat, FC_LCD_FILTER, settings->lcdfilter);
        ++changed;
 -      oldsettings.lcdfilter = settings.lcdfilter;
 +      oldsettings.lcdfilter = settings->lcdfilter;
      }
    if (strlen (buf) > 0) strcat (buf, ", ");
    sprintf (buf+strlen (buf), "LCDFilter: %d", oldsettings.lcdfilter);
  
 -  if ((settings.seen & SEEN_HINTSTYLE) != 0
 -      && oldsettings.hintstyle != settings.hintstyle)
 +  if ((settings->seen & SEEN_HINTSTYLE) != 0
 +      && oldsettings.hintstyle != settings->hintstyle)
      {
        FcPatternDel (pat, FC_HINT_STYLE);
 -      FcPatternAddInteger (pat, FC_HINT_STYLE, settings.hintstyle);
 +      FcPatternAddInteger (pat, FC_HINT_STYLE, settings->hintstyle);
        ++changed;
 -      oldsettings.hintstyle = settings.hintstyle;
 +      oldsettings.hintstyle = settings->hintstyle;
      }
    if (strlen (buf) > 0) strcat (buf, ", ");
    sprintf (buf+strlen (buf), "Hintstyle: %d", oldsettings.hintstyle);
  
 -  if ((settings.seen & SEEN_DPI) != 0 && oldsettings.dpi != settings.dpi
 -      && settings.dpi > 0)
 +  if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi
 +      && settings->dpi > 0)
      {
        Lisp_Object frame, tail;
  
        FcPatternDel (pat, FC_DPI);
 -      FcPatternAddDouble (pat, FC_DPI, settings.dpi);
 +      FcPatternAddDouble (pat, FC_DPI, settings->dpi);
        ++changed;
 -      oldsettings.dpi = settings.dpi;
 +      oldsettings.dpi = settings->dpi;
        
        /* Change the DPI on this display and all frames on the display.  */
 -      dpyinfo->resy = dpyinfo->resx = settings.dpi;
 +      dpyinfo->resy = dpyinfo->resx = settings->dpi;
        FOR_EACH_FRAME (tail, frame)
          if (FRAME_X_P (XFRAME (frame))
              && FRAME_X_DISPLAY_INFO (XFRAME (frame)) == dpyinfo)
 -          XFRAME (frame)->resy = XFRAME (frame)->resx = settings.dpi;
 +          XFRAME (frame)->resy = XFRAME (frame)->resx = settings->dpi;
      }
  
    if (strlen (buf) > 0) strcat (buf, ", ");
      {
        XftDefaultSet (dpyinfo->display, pat);
        if (send_event_p)
 -        store_font_changed_event (Qfont_render,
 -                                  XCAR (dpyinfo->name_list_element));
 +        store_config_changed_event (Qfont_render,
 +                                    XCAR (dpyinfo->name_list_element));
        Vxft_settings = make_string (buf, strlen (buf));
      }
    else
      FcPatternDestroy (pat);
 +#endif /* HAVE_XFT */
  }
  
 -#endif /* HAVE_XFT */
 +static void
 +read_and_apply_settings (struct x_display_info *dpyinfo, int send_event_p)
 +{
 +  struct xsettings settings;
 +  Lisp_Object dpyname = XCAR (dpyinfo->name_list_element);
 +
 +  if (!read_settings (dpyinfo, &settings))
 +    return;
 +
 +  apply_xft_settings (dpyinfo, True, &settings);
 +  if (settings.seen & SEEN_TB_STYLE)
 +    {
 +      Lisp_Object style = Qnil;
 +      if (strcmp (settings.tb_style, "both") == 0)
 +        style = Qboth;
 +      else if (strcmp (settings.tb_style, "both-horiz") == 0)
 +        style = Qboth_horiz;
 +      else if (strcmp (settings.tb_style, "icons") == 0)
 +        style = Qimage;
 +      else if (strcmp (settings.tb_style, "text") == 0)
 +        style = Qtext;
 +      if (!NILP (style) && !EQ (style, current_tool_bar_style))
 +        {
 +          current_tool_bar_style = style;
 +          if (send_event_p)
 +            store_config_changed_event (Qtool_bar_style, dpyname);
 +        }
 +      free (settings.tb_style);
 +    }
 +
 +  if (settings.seen & SEEN_FONT)
 +    {
 +      if (!current_font || strcmp (current_font, settings.font) != 0) 
 +        {
 +          free (current_font);
 +          current_font = settings.font;
 +          if (send_event_p)
 +            store_config_changed_event (Qfont_name, dpyname);
 +        }
 +      else
 +        free (settings.font);
 +    }
 +}
  
  void
 -xft_settings_event (dpyinfo, event)
 -     struct x_display_info *dpyinfo;
 -     XEvent *event;
 +xft_settings_event (struct x_display_info *dpyinfo, XEvent *event)
  {
 -#ifdef HAVE_XFT
    int check_window_p = 0;
 +  int apply_settings = 0;
  
    switch (event->type)
      {
        if (event->xproperty.window == dpyinfo->xsettings_window
            && event->xproperty.state == PropertyNewValue
            && event->xproperty.atom == dpyinfo->Xatom_xsettings_prop)
 -        {
 -          apply_xft_settings (dpyinfo, True);
 -        }
 +        apply_settings = 1;
        break;
      }
  
 +
    if (check_window_p)
      {
        dpyinfo->xsettings_window = None;
        get_prop_window (dpyinfo);
        if (dpyinfo->xsettings_window != None)
 -        apply_xft_settings (dpyinfo, True);
 +        apply_settings = 1;
      }
 -#endif /* HAVE_XFT */
 +
 +  if (apply_settings)
 +    read_and_apply_settings (dpyinfo, True);
  }
  
  
  static void
 -init_gconf ()
 +init_gconf (void)
  {
  #if defined (HAVE_GCONF) && defined (HAVE_XFT)
 -  int i;
    char *s;
  
+ #ifdef HAVE_G_TYPE_INIT
    g_type_init ();
+ #endif
    gconf_client = gconf_client_get_default ();
    s = gconf_client_get_string (gconf_client, SYSTEM_MONO_FONT, NULL);
    if (s)
        current_mono_font = xstrdup (s);
        g_free (s);
      }
 +  s = gconf_client_get_string (gconf_client, SYSTEM_FONT, NULL);
 +  if (s)
 +    {
 +      current_font = xstrdup (s);
 +      g_free (s);
 +    }
    gconf_client_set_error_handling (gconf_client, GCONF_CLIENT_HANDLE_NONE);
    gconf_client_add_dir (gconf_client,
                          SYSTEM_MONO_FONT,
  }
  
  static void
 -init_xfd_settings (dpyinfo)
 -     struct x_display_info *dpyinfo;
 +init_xsettings (struct x_display_info *dpyinfo)
  {
 -#ifdef HAVE_XFT
 -  char sel[64];
    Display *dpy = dpyinfo->display;
  
    BLOCK_INPUT;
  
 -  sprintf (sel, "_XSETTINGS_S%d", XScreenNumberOfScreen (dpyinfo->screen));
 -  dpyinfo->Xatom_xsettings_sel = XInternAtom (dpy, sel, False);
 -  dpyinfo->Xatom_xsettings_prop = XInternAtom (dpy,
 -                                               "_XSETTINGS_SETTINGS",
 -                                               False);
 -  dpyinfo->Xatom_xsettings_mgr = XInternAtom (dpy, "MANAGER", False);
 -
    /* Select events so we can detect client messages sent when selection
       owner changes.  */
    XSelectInput (dpy, dpyinfo->root_window, StructureNotifyMask);
  
    get_prop_window (dpyinfo);
    if (dpyinfo->xsettings_window != None)
 -    apply_xft_settings (dpyinfo, False);
 +    read_and_apply_settings (dpyinfo, False);
  
    UNBLOCK_INPUT;
 -
 -#else /* ! HAVE_XFT */
 -
 -  dpyinfo->Xatom_xsettings_sel = None;
 -  dpyinfo->Xatom_xsettings_prop = None;
 -  dpyinfo->Xatom_xsettings_mgr = None;
 -  dpyinfo->xsettings_window = None;
 -
 -#endif /* ! HAVE_XFT */
  }
  
  void
 -xsettings_initialize (dpyinfo)
 -     struct x_display_info *dpyinfo;
 +xsettings_initialize (struct x_display_info *dpyinfo)
  {
    if (first_dpyinfo == NULL) first_dpyinfo = dpyinfo;
    init_gconf ();
 -  init_xfd_settings (dpyinfo);
 +  init_xsettings (dpyinfo);
  }
  
  const char *
 -xsettings_get_system_font ()
 +xsettings_get_system_font (void)
  {
    return current_mono_font;
  }
  
 +const char *
 +xsettings_get_system_normal_font (void)
 +{
 +  return current_font;
 +}
 +
 +DEFUN ("font-get-system-normal-font", Ffont_get_system_normal_font,
 +       Sfont_get_system_normal_font,
 +       0, 0, 0,
 +       doc: /* Get the system default application font. */)
 +  (void)
 +{
 +  return current_font
 +    ? make_string (current_font, strlen (current_font))
 +    : Qnil;
 +}
 +
  DEFUN ("font-get-system-font", Ffont_get_system_font, Sfont_get_system_font,
         0, 0, 0,
 -       doc: /* Get the system default monospaced font. */)
 -  ()
 +       doc: /* Get the system default fixed width font. */)
 +  (void)
  {
 -  return current_mono_font && use_system_font
 +  return current_mono_font
      ? make_string (current_mono_font, strlen (current_mono_font))
      : Qnil;
  }
  
 +DEFUN ("tool-bar-get-system-style", Ftool_bar_get_system_style, Stool_bar_get_system_style,
 +       0, 0, 0,
 +       doc: /* Get the system tool bar style.
 +If no system tool bar style is known, return `tool-bar-style' if set to a
 +known style.  Otherwise return image.  */)
 +  (void)
 +{
 +  if (EQ (Vtool_bar_style, Qimage)
 +      || EQ (Vtool_bar_style, Qtext)
 +      || EQ (Vtool_bar_style, Qboth)
 +      || EQ (Vtool_bar_style, Qboth_horiz)
 +      || EQ (Vtool_bar_style, Qtext_image_horiz))
 +    return Vtool_bar_style;
 +  if (!NILP (current_tool_bar_style))
 +    return current_tool_bar_style;
 +  return Qimage;
 +}
 +
  void
 -syms_of_xsettings ()
 +syms_of_xsettings (void)
  {
    current_mono_font = NULL;
 +  current_font = NULL;
    first_dpyinfo = NULL;
  #ifdef HAVE_GCONF
    gconf_client = NULL;
  #endif
  
 +  Qmonospace_font_name = intern_c_string ("monospace-font-name");
 +  staticpro (&Qmonospace_font_name);
    Qfont_name = intern_c_string ("font-name");
    staticpro (&Qfont_name);
    Qfont_render = intern_c_string ("font-render");
    staticpro (&Qfont_render);
    defsubr (&Sfont_get_system_font);
 +  defsubr (&Sfont_get_system_normal_font);
  
    DEFVAR_BOOL ("font-use-system-font", &use_system_font,
 -    doc: /* *Non-nil means to use the system defined font.  */);
 +    doc: /* *Non-nil means to apply the system defined font dynamically.
 +When this is non-nil and the system defined fixed width font changes, we
 +update frames dynamically.
 +If this variable is nil, Emacs ignores system font changes.  */);
    use_system_font = 0;
  
    DEFVAR_LISP ("xft-settings", &Vxft_settings,
    Fprovide (intern_c_string ("system-font-setting"), Qnil);
  #endif
  #endif
 +
 +  current_tool_bar_style = Qnil;
 +  Qtool_bar_style = intern_c_string ("tool-bar-style");
 +  staticpro (&Qtool_bar_style);
 +  defsubr (&Stool_bar_get_system_style);
 +
 +  Fprovide (intern_c_string ("dynamic-setting"), Qnil);
  }
  
  /* arch-tag: 541716ed-2e6b-42e1-8212-3197e01ea61d