changeset 109591:1fb35da4a097

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 29 Jul 2010 23:01:42 +0000
parents 3c9de3b961fe (current diff) b54c435793d9 (diff)
children d5c206ebf542
files src/s/usg5-4-common.h src/s/usg5-4.h
diffstat 100 files changed, 1240 insertions(+), 922 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,11 @@
+2010-07-29  Chad Brown  <yandros@mit.edu>
+
+	* configure.in: Check for dirent.h.
+
+2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* configure.in: Remove reference to usg5-4, unused.
+
 2010-07-25  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* configure.in: Check for __executable_start.
--- a/admin/CPP-DEFINES	Wed Jul 28 22:44:58 2010 +0000
+++ b/admin/CPP-DEFINES	Thu Jul 29 23:01:42 2010 +0000
@@ -65,7 +65,6 @@
 EXPLICIT_SIGN_EXTEND
 LOAD_AVE_CVT
 LOAD_AVE_TYPE
-NO_REMAP
 VIRT_ADDR_VARIES
 WORDS_BIG_ENDIAN
 
@@ -190,7 +189,6 @@
 HAVE_UNISTD_H
 HAVE_UTIMES
 HAVE_UTIME_H
-HAVE_VOLATILE
 HAVE_WINDOW_SYSTEM
 HAVE_WORKING_VFORK
 HAVE_XRMSETDATABASE
@@ -237,7 +235,6 @@
 PURESIZE
 RUN_TIME_REMAP
 SA_RESTART
-SECTION_ALIGNMENT  -- was only used by s/lynxos.h, maybe all code depending on it can be removed.
 SEGMENT_MASK
 SETPGRP_RELEASES_CTTY
 SETUP_SLAVE_PTY
@@ -252,14 +249,12 @@
 SIGTYPE
 SOLARIS2
 STDC_HEADERS
-SYMS_SYSTEM
 SYSTEM_PURESIZE_EXTRA
 SYSTEM_MALLOC
 SYSV_SYSTEM_DIR
 TAB3
 TABDLY
 TERM
-THIS_IS_CONFIGURE
 TIME_WITH_SYS_TIME
 TIOCSIGSEND
 TM_IN_SYS_TIME
--- a/configure	Wed Jul 28 22:44:58 2010 +0000
+++ b/configure	Thu Jul 29 23:01:42 2010 +0000
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for emacs 24.0.50.
+# Generated by GNU Autoconf 2.65 for emacs 24.0.50.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -316,7 +316,7 @@
       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 @@
 fi # as_fn_arith
 
 
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error 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=$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: $2" >&2
+  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
+  fi
+  $as_echo "$as_me: error: $1" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -530,7 +530,7 @@
 exec 6>&1
 
 # Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
@@ -950,7 +950,7 @@
     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
@@ -976,7 +976,7 @@
     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
@@ -1180,7 +1180,7 @@
     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
@@ -1196,7 +1196,7 @@
     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
@@ -1226,8 +1226,8 @@
   | --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."
     ;;
 
   *=*)
@@ -1235,7 +1235,7 @@
     # 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 ;;
@@ -1253,13 +1253,13 @@
 
 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
@@ -1282,7 +1282,7 @@
     [\\/$]* | ?:[\\/]* )  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'
@@ -1296,8 +1296,8 @@
 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
@@ -1312,9 +1312,9 @@
 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.
@@ -1353,11 +1353,11 @@
 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
@@ -1397,7 +1397,7 @@
       --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
@@ -1613,9 +1613,9 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 emacs configure 24.0.50
-generated by GNU Autoconf 2.66
-
-Copyright (C) 2010 Free Software Foundation, Inc.
+generated by GNU Autoconf 2.65
+
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1755,10 +1755,10 @@
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if { 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 :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1821,7 +1821,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -1885,7 +1885,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1907,18 +1907,15 @@
 
 } # ac_fn_c_check_header_compile
 
-# 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 LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, 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_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 "$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_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1927,12 +1924,8 @@
 int
 main ()
 {
-#ifndef $as_decl_name
-#ifdef __cplusplus
-  (void) $as_decl_use;
-#else
-  (void) $as_decl_name;
-#endif
+#ifndef $2
+  (void) $2;
 #endif
 
   ;
@@ -1961,7 +1954,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1991,7 +1984,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
 $as_echo_n "checking for $2.$3... " >&6; }
-if eval "test \"\${$4+set}\"" = set; then :
+if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2047,7 +2040,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2115,7 +2108,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -2164,7 +2157,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by emacs $as_me 24.0.50, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+generated by GNU Autoconf 2.65.  Invocation command line was
 
   $ $0 $@
 
@@ -2274,9 +2267,11 @@
   {
     echo
 
-    $as_echo "## ---------------- ##
+    cat <<\_ASBOX
+## ---------------- ##
 ## Cache variables. ##
-## ---------------- ##"
+## ---------------- ##
+_ASBOX
     echo
     # The following way of writing the cache mishandles newlines in values,
 (
@@ -2310,9 +2305,11 @@
 )
     echo
 
-    $as_echo "## ----------------- ##
+    cat <<\_ASBOX
+## ----------------- ##
 ## Output variables. ##
-## ----------------- ##"
+## ----------------- ##
+_ASBOX
     echo
     for ac_var in $ac_subst_vars
     do
@@ -2325,9 +2322,11 @@
     echo
 
     if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
+      cat <<\_ASBOX
+## ------------------- ##
 ## File substitutions. ##
-## ------------------- ##"
+## ------------------- ##
+_ASBOX
       echo
       for ac_var in $ac_subst_files
       do
@@ -2341,9 +2340,11 @@
     fi
 
     if test -s confdefs.h; then
-      $as_echo "## ----------- ##
+      cat <<\_ASBOX
+## ----------- ##
 ## confdefs.h. ##
-## ----------- ##"
+## ----------- ##
+_ASBOX
       echo
       cat confdefs.h
       echo
@@ -2398,12 +2399,7 @@
 ac_site_file1=NONE
 ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  # 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
+  ac_site_file1=$CONFIG_SITE
 elif test "x$prefix" != xNONE; then
   ac_site_file1=$prefix/share/config.site
   ac_site_file2=$prefix/etc/config.site
@@ -2418,11 +2414,7 @@
     { $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" \
-      || { { $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; }
+    . "$ac_site_file"
   fi
 done
 
@@ -2503,7 +2495,7 @@
 $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. ##
@@ -2677,7 +2669,7 @@
 	    g | gt | gtk  )	val=gtk ;;
 	    gtk3  )	val=gtk3 ;;
 	    * )
-as_fn_error $? "\`--with-x-toolkit=$withval' is invalid;
+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
 	    ;;
@@ -2956,7 +2948,7 @@
 	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"
@@ -3074,22 +3066,16 @@
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
+  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
 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,
@@ -3103,7 +3089,7 @@
 
 # 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; }
@@ -3114,16 +3100,16 @@
 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='-'
@@ -3148,7 +3134,7 @@
   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
@@ -3156,7 +3142,7 @@
 $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='-'
@@ -3450,7 +3436,7 @@
 
 
 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
 
@@ -3764,8 +3750,8 @@
 
 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
@@ -3879,8 +3865,9 @@
 
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+{ as_fn_set_status 77
+as_fn_error "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; }
@@ -3922,8 +3909,8 @@
 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
@@ -3980,9 +3967,9 @@
     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
@@ -4033,8 +4020,8 @@
 
 { { $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
@@ -4445,8 +4432,8 @@
 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
@@ -4507,7 +4494,7 @@
   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
@@ -4573,7 +4560,7 @@
   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
@@ -4705,7 +4692,8 @@
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -5002,8 +4990,8 @@
 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
@@ -5440,7 +5428,7 @@
   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
+    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
@@ -5594,7 +5582,7 @@
     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
+      as_fn_error "What gives?  Fix me if DEC Unix supports ELF now." "$LINENO" 5
     fi
   else
     UNEXEC_OBJ=unexalpha.o
@@ -5872,7 +5860,7 @@
   ## 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
+    as_fn_error "crt*.o not found in specified location." "$LINENO" 5
 
 fi
 
@@ -5927,7 +5915,8 @@
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -6118,7 +6107,7 @@
 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
@@ -6149,11 +6138,12 @@
   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.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
+  sys/utsname.h pwd.h utmp.h dirent.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -6995,7 +6985,7 @@
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then :
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -7003,7 +6993,7 @@
 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;;
@@ -7139,7 +7129,7 @@
   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
@@ -7157,7 +7147,7 @@
 	@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
@@ -7426,7 +7416,7 @@
 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
 
@@ -7542,7 +7532,7 @@
    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.
@@ -7665,7 +7655,8 @@
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
 "
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -7771,7 +7762,6 @@
 main ()
 {
   char *data, *data2, *data3;
-  const char *cdata2;
   int i, pagesize;
   int fd, fd2;
 
@@ -7796,10 +7786,10 @@
   fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
   if (fd2 < 0)
     return 4;
-  cdata2 = "";
-  if (write (fd2, cdata2, 1) != 1)
+  data2 = "";
+  if (write (fd2, data2, 1) != 1)
     return 5;
-  data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
+  data2 = mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
   if (data2 == MAP_FAILED)
     return 6;
   for (i = 0; i < pagesize; ++i)
@@ -8172,7 +8162,8 @@
 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 :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -8453,7 +8444,7 @@
   fi
 
   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
-     as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
+     as_fn_error "$GTK_PKG_ERRORS" "$LINENO" 5
   fi
 fi
 
@@ -8559,7 +8550,7 @@
   fi
 
   if test "$pkg_check_gtk" = "no" && test "$USE_X_TOOLKIT" != "maybe"; then
-     as_fn_error $? "$GTK_PKG_ERRORS" "$LINENO" 5
+     as_fn_error "$GTK_PKG_ERRORS" "$LINENO" 5
   fi
 fi
 fi
@@ -8586,7 +8577,7 @@
 
   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
@@ -8716,7 +8707,8 @@
 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 :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -9081,7 +9073,7 @@
       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; }
@@ -10258,7 +10250,8 @@
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -10510,7 +10503,7 @@
     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
@@ -10845,7 +10838,8 @@
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -10909,7 +10903,7 @@
 
 
 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.
@@ -11105,7 +11099,7 @@
 
 
   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
   fi
@@ -11194,7 +11188,8 @@
 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 :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -11225,7 +11220,8 @@
 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 :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -11277,8 +11273,8 @@
 static time_t time_t_min;
 
 /* Values we'll use to set the TZ environment variable.  */
-static const char *tz_strings[] = {
-  (const char *) 0, "TZ=GMT0", "TZ=JST-9",
+static char *tz_strings[] = {
+  (char *) 0, "TZ=GMT0", "TZ=JST-9",
   "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
 };
 #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
@@ -11295,7 +11291,7 @@
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
+  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
 
   tm.tm_year = 98;
   tm.tm_mon = 3;
@@ -11308,14 +11304,16 @@
 }
 
 static int
-mktime_test1 (time_t now)
+mktime_test1 (now)
+     time_t now;
 {
   struct tm *lt;
   return ! (lt = localtime (&now)) || mktime (lt) == now;
 }
 
 static int
-mktime_test (time_t now)
+mktime_test (now)
+     time_t now;
 {
   return (mktime_test1 (now)
 	  && mktime_test1 ((time_t) (time_t_max - now))
@@ -11339,7 +11337,8 @@
 }
 
 static int
-bigtime_test (int j)
+bigtime_test (j)
+     int j;
 {
   struct tm tm;
   time_t now;
@@ -11383,7 +11382,7 @@
      instead of "TZ=America/Vancouver" in order to detect the bug even
      on systems that don't support the Olson extension, or don't have the
      full zoneinfo tables installed.  */
-  putenv ((char*) "TZ=PST8PDT,M4.1.0,M10.5.0");
+  putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
 
   t = mktime (&tm);
 
@@ -11418,7 +11417,7 @@
   for (i = 0; i < N_STRINGS; i++)
     {
       if (tz_strings[i])
-	putenv ((char*) tz_strings[i]);
+	putenv (tz_strings[i]);
 
       for (t = 0; t <= time_t_max - delta; t += delta)
 	if (! mktime_test (t))
@@ -11470,7 +11469,7 @@
 
 # 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
 
@@ -12339,7 +12338,7 @@
 fi
 
 if test "$have_tputs_et_al" != true; then
-  as_fn_error $? "I couldn't find termcap functions (tputs and friends).
+  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
@@ -13486,7 +13485,8 @@
 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 :
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13860,14 +13860,14 @@
    && 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 '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}/src/emacs.c'." "$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}/src/emacs.c'." >&5
@@ -14149,7 +14149,7 @@
 ORDINARY_LINK=
 case "$opsys" in
   ## gnu: GNU needs its own crt0.
-  aix4-2|cygwin|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
+  aix4-2|cygwin|darwin|gnu|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
@@ -14425,7 +14425,6 @@
 
 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$//'
@@ -14587,19 +14586,19 @@
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
+# as_fn_error 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=$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: $2" >&2
+  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
+  fi
+  $as_echo "$as_me: error: $1" >&2
   as_fn_exit $as_status
 } # as_fn_error
 
@@ -14795,7 +14794,7 @@
       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
@@ -14849,7 +14848,7 @@
 # values after options handling.
 ac_log="
 This file was extended by emacs $as_me 24.0.50, which was
-generated by GNU Autoconf 2.66.  Invocation command line was
+generated by GNU Autoconf 2.65.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -14915,10 +14914,10 @@
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 emacs config.status 24.0.50
-configured by $0, generated by GNU Autoconf 2.66,
+configured by $0, generated by GNU Autoconf 2.65,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2010 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -14972,7 +14971,7 @@
     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 ;;
@@ -14981,7 +14980,7 @@
     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"
@@ -15049,7 +15048,7 @@
     "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
 
@@ -15087,7 +15086,7 @@
 {
   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.
@@ -15121,7 +15120,7 @@
 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
@@ -15138,7 +15137,7 @@
   echo "_ACEOF"
 } >conf$$files.sh &&
 . ./conf$$files.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 rm -f conf$$files.sh
 
 {
@@ -15146,18 +15145,18 @@
   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
@@ -15252,28 +15251,20 @@
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+  || 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
 # 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[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[	 ]*\):*/\1/
 s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
 s/^[^=]*=[	 ]*$//
 }'
 fi
@@ -15301,7 +15292,7 @@
   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
@@ -15386,7 +15377,7 @@
 _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"
 
 
@@ -15399,7 +15390,7 @@
   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
@@ -15427,7 +15418,7 @@
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+	   as_fn_error "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'"
@@ -15454,7 +15445,7 @@
 
     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
@@ -15590,22 +15581,22 @@
 else
   $AWK -f "$tmp/subs.awk" | $SHELL
 fi >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+  || 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)
   #
@@ -15616,19 +15607,19 @@
       $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
  ;;
 
@@ -15665,7 +15656,7 @@
 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.
@@ -15686,7 +15677,7 @@
   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 1
+  $ac_cs_success || as_fn_exit $?
 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
--- a/configure.in	Wed Jul 28 22:44:58 2010 +0000
+++ b/configure.in	Thu Jul 29 23:01:42 2010 +0000
@@ -1204,7 +1204,7 @@
   linux/version.h sys/systeminfo.h termios.h limits.h string.h stdlib.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)
+  sys/utsname.h pwd.h utmp.h dirent.h)
 
 AC_MSG_CHECKING(if personality LINUX32 can be set)
 AC_TRY_COMPILE([#include <sys/personality.h>], [personality (PER_LINUX32)],
@@ -3326,7 +3326,7 @@
 ORDINARY_LINK=
 case "$opsys" in
   ## gnu: GNU needs its own crt0.
-  aix4-2|cygwin|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
+  aix4-2|cygwin|darwin|gnu|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
--- a/doc/emacs/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/doc/emacs/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,7 @@
+2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* frames.texi (Tool Bars): Add doc for tool-bar-position.
+
 2010-06-23  Glenn Morris  <rgm@gnu.org>
 
 	* abbrevs.texi, basic.texi, buffers.texi, building.texi, calendar.texi:
--- a/doc/emacs/frames.texi	Wed Jul 28 22:44:58 2010 +0000
+++ b/doc/emacs/frames.texi	Thu Jul 29 23:01:42 2010 +0000
@@ -1270,6 +1270,12 @@
 the same as for the desktop in the Gnome case.  If no default is found,
 the tool bar uses just images.
 
+@cindex Tool Bar position
+  You can also control the placement of the tool bar for the GTK+ tool bar
+with the frame parameter @code{tool-bar-position}.
+For a detailed description of frame parameters and customization,
+see @ref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}.
+
 @node Dialog Boxes
 @section Using Dialog Boxes
 @cindex dialog boxes
--- a/doc/lispref/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/doc/lispref/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,12 @@
+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,
--- a/doc/lispref/frames.texi	Wed Jul 28 22:44:58 2010 +0000
+++ b/doc/lispref/frames.texi	Thu Jul 29 23:01:42 2010 +0000
@@ -677,6 +677,11 @@
 means don't display a tool bar.  (GTK and Nextstep allow at most one
 tool bar line; they treat larger values as 1.)
 
+@item tool-bar-position
+The position of the tool bar.  Currently only for the GTK tool bar.
+Value can be one of @code{top}, @code{bottom} @code{left}, @code{right}.
+The default is  @code{top}.
+
 @item line-spacing
 Additional space to leave below each text line, in pixels (a positive
 integer).  @xref{Line Height}, for more information.
--- a/doc/lispref/processes.texi	Wed Jul 28 22:44:58 2010 +0000
+++ b/doc/lispref/processes.texi	Thu Jul 29 23:01:42 2010 +0000
@@ -868,7 +868,9 @@
 This function returns the terminal name that @var{process} is using for
 its communication with Emacs---or @code{nil} if it is using pipes
 instead of a terminal (see @code{process-connection-type} in
-@ref{Asynchronous Processes}).
+@ref{Asynchronous Processes}).  If @var{process} represents a program
+running on a remote host, the terminal name used by that program on
+the remote host is provided as process property @code{remote-tty}.
 @end defun
 
 @defun process-coding-system process
--- a/etc/NEWS	Wed Jul 28 22:44:58 2010 +0000
+++ b/etc/NEWS	Thu Jul 29 23:01:42 2010 +0000
@@ -99,6 +99,11 @@
 Customize `tool-bar-style' to choose style.  On a Gnome desktop, the default
 is taken from the desktop settings.
 
+** GTK tool bars can be placed on the left/right or top/bottom of the frame.
+The frame-parameter tool-bar-position controls this.  It takes the values
+top, left, tight or bottom.  The Options => Show/Hide menu has entries
+for this.
+
 ** Lucid menus and dialogs can display antialiased fonts if Emacs is built
 with Xft.
 
--- a/lib-src/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/lib-src/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,7 @@
+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
@@ -12,7 +16,7 @@
 
 2010-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
 
-	* update-game-score.c (usage):  Add NO_RETURN specifier.
+	* 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):
--- a/lib-src/make-docfile.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/lib-src/make-docfile.c	Thu Jul 29 23:01:42 2010 +0000
@@ -442,7 +442,7 @@
   register char *p;
   int in_ident = 0;
   char *ident_start;
-  int ident_length;
+  int ident_length = 0;
 
   fprintf (out, "(fn");
 
@@ -476,6 +476,12 @@
 	 identifier.  */
       if (c == ',' || c == ')')
 	{
+	  if (ident_length == 0)
+	    {
+	      error ("empty arg list for `%s' should be (void), not ()", func);
+	      continue;
+	    }
+
 	  if (strncmp (ident_start, "void", ident_length) == 0)
 	    continue;
 
--- a/lisp/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,36 @@
+2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* menu-bar.el (menu-bar-showhide-tool-bar-menu-customize-enable-left)
+	(menu-bar-showhide-tool-bar-menu-customize-disable)
+	(menu-bar-showhide-tool-bar-menu-customize-enable-right)
+	(menu-bar-showhide-tool-bar-menu-customize-enable-top)
+	(menu-bar-showhide-tool-bar-menu-customize-enable-bottom): New functions
+	(menu-bar-showhide-tool-bar-menu): If tool bar is moveable,
+	make a menu for Options => toolbar that can move it.
+
+2010-07-29  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacs-lisp/package-x.el (package--make-rss-entry):
+	(package-maint-add-news-item, package--update-news)
+	(package-upload-buffer-internal): New arg ARCHIVE-URL.
+
+	* emacs-lisp/package.el (package-archive-url): Rename from
+	package-archive-id.
+	(package-install): Doc fix.
+	(package-download-single, package-download-tar, package-install)
+	(package-menu-view-commentary): Callers changed.
+
+2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-handle-start-file-process): Check only for
+	`remote-tty' process property.
+	(tramp-open-shell): Don't check for tty.
+	(tramp-open-connection-setup-interactive-shell): Set `remote-tty'
+	process property.
+
+	* progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote
+	host.
+
 2010-07-28  Chong Yidong  <cyd@stupidchicken.com>
 
 	* emacs-lisp/package.el (package-load-list, package-archives)
--- a/lisp/ChangeLog.1	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/ChangeLog.1	Thu Jul 29 23:01:42 2010 +0000
@@ -173,7 +173,7 @@
 
 1986-03-15  Bill Rozas  (jinx@prep)
 
-	* scheme.el: (scheme-zap-name) Uses expand-file-name to obtain an
+	* scheme.el (scheme-zap-name): Uses expand-file-name to obtain an
 	absolute pathname.
 
 1986-03-15  Richard M. Stallman  (rms@prep)
@@ -184,7 +184,7 @@
 
 1986-03-13  Bill Rozas  (jinx@prep)
 
-	* scheme.el: (scheme-zap-name) change it back to fromedit.zap
+	* scheme.el (scheme-zap-name): Change it back to fromedit.zap
 	since that is where scheme expects it and it is too much work to
 	change scheme right now.  This interface is obsolete anyway, but
 	some people (athena) still use it.
@@ -384,7 +384,7 @@
 	* info.el (Info-find-node):
 	Fix braino.
 	Also, allow abbreviations for node names.
-	Info-tagify:  insert tags in forward order so that
+	(Info-tagify): Insert tags in forward order so that
 	an abbrev finds the textually first possibility rather than the
 	last.
 
@@ -570,7 +570,7 @@
 
 1986-01-18  Richard M. Stallman  (rms@prep)
 
-	* doctor.el:  Fix typo "symtoms".
+	* doctor.el: Fix typo "symtoms".
 
 1986-01-10  Richard Mlynarik  (mly@prep)
 
@@ -660,7 +660,7 @@
 1985-12-27  Richard Mlynarik  (mly@prep)
 
 	* view.el:
-	Various:  Fix cases of "view" => "View" which were missed.  Damn.
+	Various: Fix cases of "view" => "View" which were missed.  Damn.
 
 1985-12-27  Richard M. Stallman  (rms@prep)
 
@@ -917,7 +917,7 @@
 	* files.el (normal-mode):
 	New command to choose major mode automatically.
 
-	* inc-vers.el:  Renamed from inc-version.el
+	* inc-vers.el: Renamed from inc-version.el
 	for file name length reasons.
 
 	* term/*.el: terminal-specific files found here now.
@@ -1137,7 +1137,7 @@
 
 1985-11-27  Richard Mlynarik  (mly@prep)
 
-	* rnews.el: (news-mode, news-set-mode-line):
+	* rnews.el (news-mode, news-set-mode-line):
 	Get rid of news-mode-group-string.
 
 	* rnews.el (news-unsubscribe-internal):
@@ -1614,7 +1614,7 @@
 
 1985-10-17  Richard Mlynarik  (mly@mit-prep)
 
-	* rnews.el: (news-save-item-in-file)
+	* rnews.el (news-save-item-in-file):
 	Append to file, rather than overwriting.
 
 	* isearch.el
@@ -2521,10 +2521,10 @@
 	No, this directory is added automatically to the path
 	used by call-process.  It should have worked before. - RMS
 
-	* loaddefs.el:  C-z -> C-c in documentation for mail.
+	* loaddefs.el: C-z -> C-c in documentation for mail.
 	autoload report-emacs-bug from emacsbug.el.
 
-	* emacsbug.el:  New file.  Reports bugs with version info.
+	* emacsbug.el: New file.  Reports bugs with version info.
 
 	* helper.el (Helper-describe-bindings):
 	Make it describe local bindings faster by binding global map to
@@ -2532,7 +2532,7 @@
 
 	* lisp-mode.el: First form of prog1 is distinguished.
 
-	* loaddefs.el: autoload functions from chistory.el and echistory.el.
+	* loaddefs.el: Autoload functions from chistory.el and echistory.el.
 
 	* chistory.el:
 	New file containing two alternatives to `repeat-complex-command'
@@ -2585,10 +2585,10 @@
 
 1985-06-11  K. Shane Hartman  (shane@mit-prep)
 
-	* ebuff-menu.el:  Make M-C-v scroll-other-window instead of
+	* ebuff-menu.el: Make M-C-v scroll-other-window instead of
 	scroll-down.  Make M-v scroll-down.
 
-	* ebuff-menu.el, echistory.el:	Made them use electric.
+	* ebuff-menu.el, echistory.el: Made them use electric.
 
 	* electric.el:
 	New module for packages that retain control until some event
@@ -2600,7 +2600,7 @@
 	Made it use helper.el.  Remove kill-ring-save stuff pending use of
 	new winning prin1-to-string for minibuffer hacking.
 
-	* view.el:  Made it use helper.el.
+	* view.el: Made it use helper.el.
 
 	* helper.el:
 	New module for packages which want to do help without giving up
@@ -2802,7 +2802,7 @@
 
 1985-06-01  K. Shane Hartman  (shane@mit-prep)
 
-	* loaddefs.el:  Update documentation for rmail.
+	* loaddefs.el: Update documentation for rmail.
 
 	* lisp-mode.el (calculate-lisp-indent):
 	Asked (fboundp 'lisp-indent-hook).  Right question is boundp.
@@ -2856,7 +2856,7 @@
 	Skip strings, comments, char constants.
 	Find symbols even if they have no letters in them.
 
-	* mlsupport.el:  Insert symbol-value call in use-local-map.
+	* mlsupport.el: Insert symbol-value call in use-local-map.
 	Handle key codes > 127 in local-bind-to-key.
 	Write ml-modify-syntax-entry.
 
@@ -3165,7 +3165,7 @@
 1985-05-16  K. Shane Hartman  (shane@mit-prep)
 
 	* dired.el: Put dired-rename-file, dired-copy file-on keys.  Make
-	them change buffer if appropriate.  Put	dired-mark-backup-files,
+	them change buffer if appropriate.  Put dired-mark-backup-files,
 	dired-mark-temp-files on keys.  Eliminate possibility of looping
 	at last line in dired-repeat-over-filenames.
 
@@ -3194,53 +3194,56 @@
 	replace loop so that replacing continues after moving back to
 	previous.
 
-	* add-log.el: add prefix arg to add-change-log-entry so will
+	* add-log.el: Add prefix arg to add-change-log-entry so will
 	prompt for information if desired.  If there is an entry for today,
 	make sure login-name is same before using it, else make new entry.
 	Use auto-fill-mode.
 
 1985-05-12  Richard M. Stallman  (rms@mit-prep)
 
-	* lisp-mode.el: defined lisp-mode-commands, lisp-mode-variables.
+	* lisp-mode.el: Defined lisp-mode-commands, lisp-mode-variables.
 	Added external-lisp-mode.
 	Made doc strings mention mode hook variables.
 
-	* shell.el: defined functions `lisp' and `inferior-lisp-mode'.
+	* shell.el: Defined functions `lisp' and `inferior-lisp-mode'.
 	Renamed shell-send-defun... to lisp-send-defun...
 	and made them use process "lisp", buffer *lisp*.
 
-	* text-mode.el: made indented-text-mode not call text-mode.
+	* text-mode.el: Made indented-text-mode not call text-mode.
 	Made doc strings mention mode hook variables.
 
 	* c-mode.el: Made doc strings mention mode hook variables.
 
-	* add-log.el
+	* add-log.el:
 	Change format used for change log entries.
 	Select indented-text-mode for the change log file.
 
 1985-05-12  K. Shane Hartman  (shane@mit-ajax)
-	simple.el: suppress matching close paren if preceded
+
+	* simple.el: Suppress matching close paren if preceded
 		by char syntax \.
-	mim-mode.el: flush private paren blinker in favor of default.
-	add-log.el: change mode-string to mode-name so reflected in
+	* mim-mode.el: Flush private paren blinker in favor of default.
+	* add-log.el: Change mode-string to mode-name so reflected in
 		mode-line.  change \\W to \\sW when looking for place to add.
 
 1985-05-12  Richard M. Stallman  (rms@mit-prep)
-	simple.el: modified open-line to insert newlines before
+
+	* simple.el: Modified open-line to insert newlines before
 		an existing one before dot.  This makes better redisplay.
-	dired.el: Installed Shane's changes that allow user to choose
+	* dired.el: Installed Shane's changes that allow user to choose
 		switches to use.
 
 1985-05-11  Richard M. Stallman  (rms@mit-prep)
-	rmail.el: if given file name as argument,
+
+	* rmail.el: If given file name as argument,
 		correctly displays one message of that file
 		but does not try to get new mail.
-	simple.el: Fix what-line bug: line # too high by 1 if not at bol.
+	* simple.el: Fix what-line bug: line # too high by 1 if not at bol.
 		Put in blink-matching-paren-distance,
 		and check for wrong kinds of parens matching.
-	time.el: Put in display-time-day-and-date flag,
+	* time.el: Put in display-time-day-and-date flag,
 		to display day and date in addition to the time.
-	startup.el: Call lisp-interaction-mode-hook if defined.
+	* startup.el: Call lisp-interaction-mode-hook if defined.
 		Set current buffer variables from defaults
 		in case user's init file has changed them.
 
--- a/lisp/ChangeLog.14	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/ChangeLog.14	Thu Jul 29 23:01:42 2010 +0000
@@ -640,7 +640,7 @@
 
 2009-04-11  Chong Yidong  <cyd@stupidchicken.com>
 
-	* files.el (dir-locals-directory-cache):  Rename from
+	* files.el (dir-locals-directory-cache): Rename from
 	dir-locals-directory-alist.  Change format to include
 	the mtime of the directory-local variables file (Bug#2833).
 	(dir-locals-set-directory-class): New arg mtime.  Store it in
--- a/lisp/ChangeLog.9	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/ChangeLog.9	Thu Jul 29 23:01:42 2010 +0000
@@ -1667,7 +1667,7 @@
 	* Makefile.in (finder_setwins): Renamed from nonobsolete_setwins.
 	Don't include term/.
 
-	* mail/sc.el:  Moved to obsolete/.
+	* mail/sc.el: Moved to obsolete/.
 
 2001-08-14  Vinicius Jose Latorre  <vinicius@cpqd.com.br>
 
@@ -5547,7 +5547,7 @@
 
 2001-02-12  Dave Love  <d.love@dl.ac.uk>
 
-	* international/latin1-disp.el:  Doc fixes.
+	* international/latin1-disp.el: Doc fixes.
 	(latin1-display) <defgroup>: Add :link.
 	(latin1-display) <function>: Set variable latin1-display.
 
@@ -5978,7 +5978,7 @@
 
 	* shell.el (shell-write-history-on-exit): Make sure that we are in
 	the shell buffer (M-x tex-file RET inserted the error message into
-	the TeX	buffer).
+	the TeX buffer).
 
 2001-01-27  Eli Zaretskii  <eliz@is.elta.co.il>
 
@@ -8747,7 +8747,7 @@
 2000-11-13  Miles Bader  <miles@gnu.org>
 
 	* textmodes/fill.el (skip-line-prefix): New function.
-	(fill-region-as-paragraph, fill-region):  Return the fill-prefix.
+	(fill-region-as-paragraph, fill-region): Return the fill-prefix.
 	(fill-paragraph): Don't leave point inside the fill-prefix.
 	* textmodes/refill.el (refill-fill-paragraph-at): Don't leave
 	point inside the fill-prefix.
@@ -10795,7 +10795,7 @@
 2000-10-06  Dave Love  <fx@gnu.org>
 
 	* textmodes/fill.el (sentence-end-double-space)
-	(sentence-end-without-period):  Doc fix.
+	(sentence-end-without-period): Doc fix.
 	(adaptive-fill-regexp): Purecopy.
 	(unjustify-current-line): Use line-end-position.
 	(fill-individual-paragraphs-prefix): Use line-beginning-position.
@@ -11871,7 +11871,7 @@
 
 	* strokes.el: Sync with maintainer's current version with changes
 	for Emacs, but avoid runtime cl and levents.
-	(toplevel):  Change autoloads and compilation requires.
+	(toplevel): Change autoloads and compilation requires.
 	(strokes-version, strokes-bug-address, strokes-lift): Values
 	changed.
 	(strokes-xpm-header, strokes-insinuated): New variable.
@@ -11934,12 +11934,12 @@
 2000-09-14  Dave Love  <fx@gnu.org>
 
 	* toolbar/cancel.xpm, toolbar/close.xpm, toolbar/copy.xpm,
-	toolbar/cut.xpm, toolbar/exit.xpm, toolbar/fld_open.xpm,
-	toolbar/help.xpm, toolbar/info.xpm, toolbar/mail.xpm,
-	toolbar/mail_compose.xpm, toolbar/new.xpm, toolbar/open.xpm,
-	toolbar/paste.xpm, toolbar/preferences.xpm, toolbar/print.xpm,
-	toolbar/save.xpm, toolbar/saveas.xpm, toolbar/search-replace.xpm,
-	toolbar/search.xpm, toolbar/spell.xpm, toolbar/undo.xpm:  New.
+	* toolbar/cut.xpm, toolbar/exit.xpm, toolbar/fld_open.xpm,
+	* toolbar/help.xpm, toolbar/info.xpm, toolbar/mail.xpm,
+	* toolbar/mail_compose.xpm, toolbar/new.xpm, toolbar/open.xpm,
+	* toolbar/paste.xpm, toolbar/preferences.xpm, toolbar/print.xpm,
+	* toolbar/save.xpm, toolbar/saveas.xpm, toolbar/search-replace.xpm,
+	* toolbar/search.xpm, toolbar/spell.xpm, toolbar/undo.xpm: New.
 	From Tuomas Kuosmanen <tigert@gimp.org>.  (Gnome icons fetched
 	from <URL:http://tigert.gimp.org/gnome/gnome-stock/>.)
 
@@ -14832,7 +14832,7 @@
 	(comint-replace-by-expanded-history)
 	(comint-get-old-input-default, comint-show-output)
 	(comint-backward-matching-input, comint-forward-matching-input)
-	(comint-next-prompt, comint-previous-prompt):  Use field
+	(comint-next-prompt, comint-previous-prompt): Use field
 	properties if comint-use-prompt-regexp-instead-of-fields is nil.
 	(comint-line-beginning-position): New function.
 	(comint-bol): Use comint-line-beginning-position.  Make ARG optional.
@@ -18040,7 +18040,7 @@
 	(help-xref-interned): Maybe insert face doc too.  Separate
 	sections with a line of hyphens.
 
-	* faces.el:  Some doc fixes.  Declare some functions obsolete.
+	* faces.el: Some doc fixes.  Declare some functions obsolete.
 	(describe-face): Add customize button.  Return the help
 	text.  Fix prompt.
 
@@ -20406,7 +20406,7 @@
 
 2000-01-10  Ken Stevens  <k.stevens@ieee.org>
 
-	* ispell.el:  Only define dictionaries in menus when they exist.
+	* ispell.el: Only define dictionaries in menus when they exist.
 	(version18p): New variable.
 	(version20p): New variable.
 	(xemacsp): New variable.
--- a/lisp/emacs-lisp/package-x.el	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/emacs-lisp/package-x.el	Thu Jul 29 23:01:42 2010 +0000
@@ -56,12 +56,12 @@
     (setq string (replace-match "&quot;" t nil string)))
   string)
 
-(defun package--make-rss-entry (title text)
+(defun package--make-rss-entry (title text archive-url)
   (let ((date-string (format-time-string "%a, %d %B %Y %T %z")))
     (concat "<item>\n"
 	    "<title>" (package--encode title) "</title>\n"
 	    ;; FIXME: should have a link in the web page.
-	    "<link>" package-archive-base "news.html</link>\n"
+	    "<link>" archive-url "news.html</link>\n"
 	    "<description>" (package--encode text) "</description>\n"
 	    "<pubDate>" date-string "</pubDate>\n"
 	    "</item>\n")))
@@ -85,7 +85,7 @@
 	(unless old-buffer
 	  (kill-buffer (current-buffer)))))))
 
-(defun package-maint-add-news-item (title description)
+(defun package-maint-add-news-item (title description archive-url)
   "Add a news item to the ELPA web pages.
 TITLE is the title of the news item.
 DESCRIPTION is the text of the news item.
@@ -93,21 +93,28 @@
   (interactive "sTitle: \nsText: ")
   (package--update-file (concat package-archive-upload-base "elpa.rss")
 			"<description>"
-			(package--make-rss-entry title description))
+			(package--make-rss-entry title description archive-url))
   (package--update-file (concat package-archive-upload-base "news.html")
 			"New entries go here"
 			(package--make-html-entry title description)))
 
-(defun package--update-news (package version description)
+(defun package--update-news (package version description archive-url)
   "Update the ELPA web pages when a package is uploaded."
   (package-maint-add-news-item (concat package " version " version)
-			       description))
+			       description
+			       archive-url))
 
-(defun package-upload-buffer-internal (pkg-info extension)
+(defun package-upload-buffer-internal (pkg-info extension &optional archive-url)
   "Upload a package whose contents are in the current buffer.
 PKG-INFO is the package info, see `package-buffer-info'.
 EXTENSION is the file extension, a string.  It can be either
-\"el\" or \"tar\"."
+\"el\" or \"tar\".
+
+Optional arg ARCHIVE-URL is the URL of the destination archive.
+If nil, the \"gnu\" archive is used."
+  (unless archive-url
+    (or (setq archive-url (cdr (assoc "gnu" package-archives)))
+	(error "No destination URL")))
   (save-excursion
     (save-restriction
       (let* ((file-type (cond
@@ -127,7 +134,7 @@
 
 	     ;; Download latest archive-contents.
 	     (buffer (url-retrieve-synchronously
-		      (concat package-archive-base "archive-contents"))))
+		      (concat archive-url "archive-contents"))))
 
 	;; Parse archive-contents.
 	(set-buffer buffer)
@@ -178,7 +185,7 @@
 
 	  ;; Write a news entry.
 	  (package--update-news (concat file-name "." extension)
-				pkg-version desc)
+				pkg-version desc archive-url)
 
 	  ;; special-case "package": write a second copy so that the
 	  ;; installer can easily find the latest version.
--- a/lisp/emacs-lisp/package.el	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/emacs-lisp/package.el	Thu Jul 29 23:01:42 2010 +0000
@@ -685,7 +685,7 @@
 (defun package-download-single (name version desc requires)
   "Download and install a single-file package."
   (let ((buffer (url-retrieve-synchronously
-		 (concat (package-archive-id name)
+		 (concat (package-archive-url name)
 			 (symbol-name name) "-" version ".el"))))
     (with-current-buffer buffer
       (package-handle-response)
@@ -698,7 +698,7 @@
 (defun package-download-tar (name version)
   "Download and install a tar package."
   (let ((tar-buffer (url-retrieve-synchronously
-		     (concat (package-archive-id name)
+		     (concat (package-archive-url name)
 			     (symbol-name name) "-" version ".tar"))))
     (with-current-buffer tar-buffer
       (package-handle-response)
@@ -856,7 +856,7 @@
 (defun package-install (name)
   "Install the package named NAME.
 Interactively, prompt for the package name.
-The package is found on one of the archives in `package-archive-base'."
+The package is found on one of the archives in `package-archives'."
   (interactive
    (list (intern (completing-read "Install package: "
 				  (mapcar (lambda (elt)
@@ -1030,7 +1030,7 @@
 		     ;; FIXME: query user?
 		     'always))
 
-(defun package-archive-id (name)
+(defun package-archive-url (name)
   "Return the archive containing the package NAME."
   (let ((desc (cdr (assq (intern-soft name) package-archive-contents))))
     (cdr (assoc (aref desc (- (length desc) 1)) package-archives))))
@@ -1350,7 +1350,7 @@
   (interactive)
   (let* ((pkg-name (package-menu-get-package))
 	 (buffer (url-retrieve-synchronously
-		  (concat (package-archive-id pkg-name)
+		  (concat (package-archive-url pkg-name)
 			  pkg-name
 			  "-readme.txt")))
 	 start-point ok)
--- a/lisp/gnus/ChangeLog.2	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/gnus/ChangeLog.2	Thu Jul 29 23:01:42 2010 +0000
@@ -2603,7 +2603,7 @@
 
 	* message.el (message-use-idna): Use mm-coding-system-p.
 	(message-tokenize-header, message-make-organization)
-	(message-make-from):  Use with-temp-buffer.
+	(message-make-from): Use with-temp-buffer.
 	(message-set-work-buffer): Deleted.
 	(message-fill-paragraph): Use `if' not `and' for compiler warning.
 	(message-check-news-header-syntax): Remove useless lambda.
@@ -5643,7 +5643,7 @@
 
 2003-01-12  Raymond Scholz  <ray-2003@zonix.de>
 
-	* gnus-msg.el (gnus-confirm-mail-reply-to-news):  May be a
+	* gnus-msg.el (gnus-confirm-mail-reply-to-news): May be a
 	regexp or a function too.
 	(gnus-confirm-treat-mail-like-news): New variable.  Ask for
 	confirmation even if the original article is mail.
@@ -16855,7 +16855,7 @@
 
 	* gnus-msg.el (gnus-summary-mail-forward): ???
 
-	* message.el (message-forward):  Move mime-to-mml here.
+	* message.el (message-forward): Move mime-to-mml here.
 
 2000-12-20 02:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
@@ -17157,7 +17157,7 @@
 
 	* nnheader.el: Wrap subst-char-in-string def in eval-and-compile.
 	Put some defvars in eval-when-compile.
-	(gnus-intersection, gnus-sorted-complement):  Autoload.
+	(gnus-intersection, gnus-sorted-complement): Autoload.
 
 	* imap.el (imap-point-at-eol): New, replacing gnus-point-at-eol.
 
@@ -17329,7 +17329,7 @@
 
 	* qp.el (mm-decode-coding-region, mm-encode-coding-region):
 	Autoload.
-	(quoted-printable-decode-region):  Rename arg which confused
+	(quoted-printable-decode-region): Rename arg which confused
 	charset with coding-system.  Don't use nonascii-insert-offset.
 	Coding-system encode the region initially.  Don't recognize `=='
 	as valid QP.  Coding-system decode the region finally.
@@ -17384,7 +17384,7 @@
 
 2000-09-29  Gerd Moellmann  <gerd@gnu.org>
 
-	* smiley-ems.el (smiley-update-cache):  Use `:ascent center'.
+	* smiley-ems.el (smiley-update-cache): Use `:ascent center'.
 
 2000-09-21  Dave Love  <fx@gnu.org>
 
@@ -18036,7 +18036,7 @@
 	* gnus-art.el (gnus-mime-display-part): Show MIME security button.
 	(gnus-insert-mime-security-button): New function.
 	* mm-decode.el (mm-possibly-verify-or-decrypt): Add security info.
-	* mml2015.el:  Add security info when verify or decrypt.
+	* mml2015.el: Add security info when verify or decrypt.
 	* mm-uu.el (mm-uu-pgp-signed-extract): Use multipart.
 	(mm-uu-pgp-encrypted-extract): Ditto.
 
@@ -18433,7 +18433,7 @@
 	(mm-dissect-multipart): Use it.
 	* mml2015.el (mml2015-fix-micalg): New function.
 	(mml2015-decrypt): Use new interface.
-	(mml2015-verify):  Use new interface.
+	(mml2015-verify): Use new interface.
 	(mml2015-setup): Make it bogus.
 
 2000-10-28 16:54:45  ShengHuo ZHU  <zsh@cs.rochester.edu>
--- a/lisp/menu-bar.el	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/menu-bar.el	Thu Jul 29 23:01:42 2010 +0000
@@ -968,11 +968,95 @@
 	      :help ,(purecopy "Turn menu-bar on/off")
 	      :button (:toggle . (> (frame-parameter nil 'menu-bar-lines) 0))))
 
-(define-key menu-bar-showhide-menu [showhide-tool-bar]
-  `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame
-	      :help ,(purecopy "Turn tool-bar on/off")
-	      :visible (display-graphic-p)
-	      :button (:toggle . (> (frame-parameter nil 'tool-bar-lines) 0))))
+(defun menu-bar-showhide-tool-bar-menu-customize-disable ()
+  "Do not display tool bars."
+  (interactive)
+  (customize-set-variable 'tool-bar-mode nil))
+(defun menu-bar-showhide-tool-bar-menu-customize-enable-left ()
+  "Display tool bars on the left side."
+  (interactive)
+  (customize-set-variable 'tool-bar-mode t)
+  (set-frame-parameter nil 'tool-bar-position 'left))
+
+(defun menu-bar-showhide-tool-bar-menu-customize-enable-right ()
+  "Display tool bars on the right side."
+  (interactive)
+  (customize-set-variable 'tool-bar-mode t)
+  (set-frame-parameter nil 'tool-bar-position 'right))
+(defun menu-bar-showhide-tool-bar-menu-customize-enable-top ()
+  "Display tool bars on the top side."
+  (interactive)
+  (customize-set-variable 'tool-bar-mode t)
+  (set-frame-parameter nil 'tool-bar-position 'top))
+(defun menu-bar-showhide-tool-bar-menu-customize-enable-bottom ()
+  "Display tool bars on the bottom side."
+  (interactive)
+  (customize-set-variable 'tool-bar-mode t)
+  (set-frame-parameter nil 'tool-bar-position 'bottom))
+
+(if (featurep 'move-toolbar)
+    (progn
+      (defvar menu-bar-showhide-tool-bar-menu (make-sparse-keymap "Tool-bar"))
+
+      (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-left]
+	`(menu-item ,(purecopy "On the left") 
+		    menu-bar-showhide-tool-bar-menu-customize-enable-left
+		    :help ,(purecopy "Tool-bar at the left side")
+		    :visible (display-graphic-p)
+		    :button 
+		    (:radio . (and tool-bar-mode 
+				   (eq (frame-parameter nil 'tool-bar-position)
+				       'left)))))
+
+      (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-right]
+	`(menu-item ,(purecopy "On the right") 
+		    menu-bar-showhide-tool-bar-menu-customize-enable-right
+		    :help ,(purecopy "Tool-bar at the right side")
+		    :visible (display-graphic-p)
+		    :button
+		    (:radio . (and tool-bar-mode 
+				   (eq (frame-parameter nil 'tool-bar-position)
+				       'right)))))
+
+      (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-bottom]
+	`(menu-item ,(purecopy "On the bottom") 
+		    menu-bar-showhide-tool-bar-menu-customize-enable-bottom
+		    :help ,(purecopy "Tool-bar at the bottom")
+		    :visible (display-graphic-p)
+		    :button
+		    (:radio . (and tool-bar-mode 
+				   (eq (frame-parameter nil 'tool-bar-position)
+				       'bottom)))))
+
+      (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-top]
+	`(menu-item ,(purecopy "On the top") 
+		    menu-bar-showhide-tool-bar-menu-customize-enable-top
+		    :help ,(purecopy "Tool-bar at the top")
+		    :visible (display-graphic-p)
+		    :button
+		    (:radio . (and tool-bar-mode 
+				   (eq (frame-parameter nil 'tool-bar-position)
+				       'top)))))
+
+      (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-none]
+	`(menu-item ,(purecopy "None") 
+		    menu-bar-showhide-tool-bar-menu-customize-disable
+		    :help ,(purecopy "Turn tool-bar off")
+		    :visible (display-graphic-p)
+		    :button (:radio . (eq tool-bar-mode nil))))
+
+      (define-key menu-bar-showhide-menu [showhide-tool-bar]
+	`(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu
+		    :visible (display-graphic-p)))
+
+      )
+  ;; else not tool bar that can move.
+  (define-key menu-bar-showhide-menu [showhide-tool-bar]
+    `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame
+		:help ,(purecopy "Turn tool-bar on/off")
+		:visible (display-graphic-p)
+		:button (:toggle . (> (frame-parameter nil 'tool-bar-lines) 0))))
+)
 
 (define-key menu-bar-options-menu [showhide]
   `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu))
--- a/lisp/mh-e/ChangeLog.1	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/mh-e/ChangeLog.1	Thu Jul 29 23:01:42 2010 +0000
@@ -333,9 +333,9 @@
 	Synced with manual.
 	(mh-junk-program): Use double-quotes on non-symbols.
 
-	* mh-pick.el: (mh-search-folder): Synced docstrings with manual.
-
-	* mh-index.el: (mh-index-search, mh-pick-execute-search)
+	* mh-pick.el (mh-search-folder): Synced docstrings with manual.
+
+	* mh-index.el (mh-index-search, mh-pick-execute-search)
 	(mh-grep-execute-search, mh-mairix-execute-search)
 	(mh-swish-execute-search, mh-swish++-execute-search)
 	(mh-namazu-execute-search): Synced docstrings with manual. Note
@@ -659,13 +659,13 @@
 
 	* mh-mime.el (mh-display-with-external-viewer): Checkdoc fixes.
 
-	* mh-identity.el: (mh-identity-attribution-verb-end): Stripped
+	* mh-identity.el (mh-identity-attribution-verb-end): Stripped
 	trailing space; checkdoc fixes.
 
 	* mh-e.el (mh-restore-desktop-buffer): Checkdoc fixes.
 
-	* mh-customize.el: (mh-inc-spool-list,
-	mh-compose-forward-as-mime-flag, defcustom): Stripped trailing
+	* mh-customize.el (mh-inc-spool-list)
+	(mh-compose-forward-as-mime-flag, defcustom): Stripped trailing
 	space; checkdoc fixes.
 
 	* mh-comp.el (mh-reply): Stripped trailing space.
@@ -794,7 +794,7 @@
 
 	Merged in 7.4.4 changes, described below.
 
-	* mh-e.el (Version, mh-version):  Set to 7.4.4+cvs.
+	* mh-e.el (Version, mh-version): Set to 7.4.4+cvs.
 
 2004-07-10  Bill Wohler  <wohler@newt.com>
 
@@ -1214,7 +1214,7 @@
 	* mh-loaddefs.el: Regenerated.
 
 	* mh-index.el (mh-indexer-choices): Remove option for the non-free
-	glimpse indexer	(closes SF #831276).
+	glimpse indexer (closes SF #831276).
 	(mh-glimpse-binary, mh-glimpse-directory)
 	(mh-glimpse-execute-search, mh-glimpse-next-result): Functions
 	and variables to implement glimpse support are removed.
@@ -1819,7 +1819,7 @@
 
 2003-08-19  Bill Wohler  <wohler@newt.com>
 
-	* mh-seq.el: (mh-edit-pick-expr): Renamed from mh-read-pick-regexp
+	* mh-seq.el (mh-edit-pick-expr): Renamed from mh-read-pick-regexp
 	since the new name is more indicative of what the function does.
 	Prompt now says "Pick expression" instead of "Pick regexp".
 	(mh-narrow-to-subject): Rewrote function to behave like other
@@ -1980,7 +1980,7 @@
 	* mh-comp.el (mh-send-letter): Go to the top of the draft so that
 	the user can see which header fields have been inserted. I think
 	this is more important than leaving point alone or going to the
-	end to see the signature since Mail-Followup-To	or Bcc or cc could
+	end to see the signature since Mail-Followup-To or Bcc or cc could
 	have some deleterious effects.
 
 	* mh-customize.el (mh-auto-fields-prompt-flag): New variable.
@@ -2197,7 +2197,7 @@
 	* mh-comp.el (mh-extract-rejected-mail, mh-letter-mode-message):
 	Ditto.
 
-	* mh-e.el (mh-refile-a-msg):  Ditto.
+	* mh-e.el (mh-refile-a-msg): Ditto.
 
 	* mh-funcs.el (mh-undo-folder): Ditto.
 
@@ -2509,7 +2509,7 @@
 
 2003-07-28  Peter S Galbraith  <psg@debian.org>
 
-	* mh-comp.el (mh-insert-letter):  Remove `mh-visible-headers'
+	* mh-comp.el (mh-insert-letter): Remove `mh-visible-headers'
 	operation.
 
 	* mh-mime.el (mh-mm-inline-message): Same.
@@ -2697,7 +2697,7 @@
 
 2003-06-24  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el (Version, mh-version):  Set to 7.4.1+cvs.
+	* mh-e.el (Version, mh-version): Set to 7.4.1+cvs.
 
 2003-06-25  Bill Wohler  <wohler@newt.com>
 
@@ -2719,7 +2719,7 @@
 
 2003-06-24  Bill Wohler  <wohler@newt.com>
 
-	* mh-e.el (Version, mh-version):  Set to 7.4+cvs.
+	* mh-e.el (Version, mh-version): Set to 7.4+cvs.
 
 2003-06-24  Bill Wohler  <wohler@newt.com>
 
@@ -2763,7 +2763,7 @@
 	replacement text.
 	(mh-index-parse-search-regexp): Preserve case of search terms.
 	This is needed to take advantage of the acronym indexing in
-	swish++	(closes SF #755718).
+	swish++ (closes SF #755718).
 
 2003-06-13  Satyaki Das  <satyakid@stanford.edu>
 
@@ -4106,7 +4106,7 @@
 
 2003-04-06  Bill Wohler  <wohler@newt.com>
 
-	* mh-comp.el (mh-forward):  Updated docstrings to indicate that a
+	* mh-comp.el (mh-forward): Updated docstrings to indicate that a
 	list of messages is acceptable as well.
 
 	* mh-e.el (mh-delete-msg, mh-delete-msg-no-motion, mh-refile-msg)
@@ -4198,7 +4198,7 @@
 
 2003-04-04  Peter S Galbraith  <psg@debian.org>
 
-	* mh-e.el (mh-folder-from-address):  Minor Fix.  Wrong ending of
+	* mh-e.el (mh-folder-from-address): Minor Fix.  Wrong ending of
 	`when' block.
 
 2003-04-04  Satyaki Das  <satyaki@theforce.stanford.edu>
@@ -5383,7 +5383,7 @@
 
 	* import-emacs: MH-E now has its own directory in Emacs.
 
-	* mh-e.el: (mh-version): Set to 7.2+cvs.
+	* mh-e.el (mh-version): Set to 7.2+cvs.
 
 2003-02-03  Bill Wohler  <wohler@newt.com>
 
@@ -6883,7 +6883,7 @@
 	* mh-e.el (mh-add-cur-notation): New function to mark the
 	current message with the mh-note-cur character.
 	(mh-get-new-mail): Use mh-add-cur-notation to undo the work of
-	mh-remove-cur-notation if there was no new mail	(closes SF #647681).
+	mh-remove-cur-notation if there was no new mail (closes SF #647681).
 
 	* mh-e.el (mh-set-cmd-note): Do not update the default mh-cmd-note
 	value (closes SF #643701).
@@ -7247,7 +7247,7 @@
 
 2002-11-13  Mark D. Baushke  <mdb@gnu.org>
 
-	* mh-identity.el (mh-insert-identity):  A value of either nil or
+	* mh-identity.el (mh-insert-identity): A value of either nil or
 	"" should cause the field to be removed.
 	(mh-identity-list): Update the docstring.
 
@@ -7911,7 +7911,7 @@
 	(mh-folder-font-lock-subject): Adapt to new mh-scan-subject-regexp.
 	* mh-seq.el (mh-subject-to-sequence): Ditto.
 
-	* mh-e.el (mh-folder-sequence-menu):  Remove "Toggle Subject
+	* mh-e.el (mh-folder-sequence-menu): Remove "Toggle Subject
 	Thread" from menu.   mh-toggle-threads is in the Folder menu.
 
 	* mh-e.el (mh-folder-sequence-menu): Minor menu text edits.
@@ -8250,7 +8250,7 @@
 	(mh-thread-generate-scan-lines): Renamed dupl-p as dupl-flag.
 	This addresses part of SF #627015.
 
-	* mh-index.el (mh-index-advance):  Renamed backward-p
+	* mh-index.el (mh-index-advance): Renamed backward-p
 	local variable as backward-flag.
 	(mh-index-next-button): Renamed backward-p
 	argument as backward-flag.
@@ -9217,7 +9217,7 @@
 	decide how many buttons to use for replying.
 
 	* mh-mime.el (mh-file-mime-type-substitutions)
-	(mh-file-mime-type-substitute):  Fix typos and doc strings.
+	(mh-file-mime-type-substitute): Fix typos and doc strings.
 
 2002-09-30  Peter S Galbraith  <psg@debian.org>
 
@@ -9321,7 +9321,7 @@
 2002-08-19  Peter S Galbraith  <psg@debian.org>
 
 	* reply-to.xpm, reply-to.pbm, reply-from.xpm, reply-from.pbm,
-	* reply-all.xpm, reply-all.pbm:  New icons for various reply methods.
+	* reply-all.xpm, reply-all.pbm: New icons for various reply methods.
 	* mh-e.el (mh-folder-tool-bar-map): Split reply button into three
 	that won't prompt for "from", "to" and "all".
 	* mh-comp.el (mh-reply): Put variable reply-to in the interactive
@@ -9760,13 +9760,13 @@
 	to `mh-mml-to-mime' in `mh-send-letter'.
 	(mh-mml-secure-message-sign-pgpmime): New function.
 	Front end to mml-secure-message-sign-pgpmime.
-	(mh-mml-secure-message-encrypt-pgpmime):  New function.
+	(mh-mml-secure-message-encrypt-pgpmime): New function.
 	Front end to mml-secure-message-encrypt-pgpmime.
 
 	* mh-comp.el (mh-send-letter): automatic call to `mh-mml-to-mime'
 	if mh-mml-compose-insert-p is set.
 	(mh-letter-mode-map): Add keys for new mh-mime functions above.
-	* mh-comp.el:  Added autoloads for new mh-mime functions above.
+	* mh-comp.el: Added autoloads for new mh-mime functions above.
 
 2002-06-17  Peter S Galbraith  <psg@debian.org>
 
@@ -10501,7 +10501,7 @@
 	* mh-comp.el: Require mh-e and easymenu, moved autoloads to top of
 	file.
 
-	* Makefile: (EMACS): New constant to hold emacs calling sequence.
+	* Makefile (EMACS): New constant to hold emacs calling sequence.
 	(install): Renamed to install-emacs.
 	(compile): New target to compile all files.
 	(dist): Make dependent on compile.
@@ -10738,7 +10738,7 @@
 
 2001-11-29  Jeffrey C Honig  <jch@honig.net>
 
-	* mh-utils.el: (mh-find-progs): Change mh-find-progs to rely on
+	* mh-utils.el (mh-find-progs): Change mh-find-progs to rely on
 	the existence of mhparam.  The location of mhparam is used to find
 	`mh-progs'.  It uses the libdir and etcdir to find the
 	`mh-lib-progs' and `mh-lib' directories.  If etcdir doesn't return
@@ -10795,7 +10795,7 @@
 	set mh-page-to-next-msg-p to t. The second time the end of page is
 	hit, go to the next message.
 
-	* mh-utils.el: (mh-show-msg): Initialize mh-page-to-next-msg-p to
+	* mh-utils.el (mh-show-msg): Initialize mh-page-to-next-msg-p to
 	nil.
 
 2001-11-27  Bill Wohler  <wohler@newt.com>
@@ -11004,8 +11004,8 @@
 2001-11-20  Peter S Galbraith  <psg@debian.org>
 
 	* mh-comp.el (mh-letter-mode): Make font-lock-defaults a local variable
-	* mh-e.el (mh-folder-mode):  Same.
-	* mh-utils.el (mh-show-mode):  Same.
+	* mh-e.el (mh-folder-mode): Same.
+	* mh-utils.el (mh-show-mode): Same.
 
 	* mh-e.el (mh-scan-msg-num-regexp): Delete variable and replace
 	with mh-good-msg-regexp.
@@ -11279,7 +11279,7 @@
 	* mh-e.el (mh-refile-msg): Mark messages in region for refiling if
 	mark is active and in transient-mark-mode.
 	* mh-e.el (mh-undo): Undo message marks for refile or deletion if
-	region if mark is active and in	transient-mark-mode.
+	region if mark is active and in transient-mark-mode.
 
 2001-11-06  Peter S Galbraith  <psg@debian.org>
 
--- a/lisp/net/tramp.el	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/net/tramp.el	Thu Jul 29 23:01:42 2010 +0000
@@ -4538,14 +4538,12 @@
 	  (with-current-buffer (tramp-get-connection-buffer v)
 	    (clear-visited-file-modtime)
 	    (narrow-to-region (point-max) (point-max)))
-	  (if (stringp program)
-	      ;; Send the command.  `tramp-send-command' opens a new
-	      ;; connection.
+	  (if command
+	      ;; Send the command.
 	      (tramp-send-command v command nil t) ; nooutput
-	    ;; Check, whether a pty is associated, and set it as
-	    ;; process property.
-	    (condition-case nil
-		(tramp-send-command-and-read v "echo \\\"`tty`\\\"")
+	    ;; Check, whether a pty is associated.
+	    (tramp-maybe-open-connection v)
+	    (unless (process-get (tramp-get-connection-process v) 'remote-tty)
 	      (tramp-error
 	       v 'file-error "pty association is not supported for `%s'" name)))
 	  ;; Set query flag for this process.
@@ -6631,10 +6629,7 @@
      vec (format "PS1=%s" (shell-quote-argument tramp-end-of-output)) t)
     (tramp-send-command vec "PS2=''" t)
     (tramp-send-command vec "PS3=''" t)
-    (tramp-send-command vec "PROMPT_COMMAND=''" t)
-    ;; Dump tty in the traces.
-    (when (>= tramp-verbose 9)
-      (tramp-send-command vec "tty" t))))
+    (tramp-send-command vec "PROMPT_COMMAND=''" t)))
 
 (defun tramp-find-shell (vec)
   "Opens a shell on the remote host which groks tilde expansion."
@@ -7071,6 +7066,11 @@
   (when (string-match "^IRIX64" (tramp-get-connection-property vec "uname" ""))
     (tramp-send-command vec "set +H" t))
 
+  ;; Set `remote-tty' process property.
+  (ignore-errors
+    (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"")))
+      (unless (zerop (length tty)) (process-put proc 'remote-tty tty))))
+
   ;; Set the environment.
   (tramp-message vec 5 "Setting default environment")
 
--- a/lisp/progmodes/gdb-mi.el	Wed Jul 28 22:44:58 2010 +0000
+++ b/lisp/progmodes/gdb-mi.el	Thu Jul 29 23:01:42 2010 +0000
@@ -795,7 +795,10 @@
   (gdb-input
    ;; Needs GDB 6.4 onwards
    (list (concat "-inferior-tty-set "
-		 (process-tty-name (get-process "gdb-inferior")))
+		 (or
+		  ;; The process can run on a remote host.
+		  (process-get (get-process "gdb-inferior") 'remote-tty)
+		  (process-tty-name (get-process "gdb-inferior"))))
 	 'ignore))
   (if (eq window-system 'w32)
       (gdb-input (list "-gdb-set new-console off" 'ignore)))
--- a/lwlib/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/lwlib/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,7 @@
+2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* xlwmenu.c (abort_gracefully): Mark as NO_RETURN.
+
 2010-07-26  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* xlwmenu.h (xlwmenu_window_p, xlwmenu_redisplay): Add declarations.
--- a/lwlib/xlwmenu.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/lwlib/xlwmenu.c	Thu Jul 29 23:01:42 2010 +0000
@@ -204,7 +204,7 @@
 static void Nothing(Widget w, XEvent *ev, String *params, Cardinal *num_params);
 static int separator_height (enum menu_separator);
 static void pop_up_menu (XlwMenuWidget, XButtonPressedEvent *);
-
+static void abort_gracefully (Widget w) NO_RETURN;
 
 static XtActionsRec
 xlwMenuActionsList [] =
--- a/msdos/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/msdos/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,7 @@
+2010-07-29  Chad Brown  <yandros@mit.edu>
+
+	* sed2v2.inp (HAVE_DIRENT_H): Edit to 1.
+
 2010-07-12  Eli Zaretskii  <eliz@gnu.org>
 
 	* sed1v2.inp (C_WARNINGS_SWITCH, PROFILING_CFLAGS, PROFILING_LDFLAGS):
--- a/msdos/sed2v2.inp	Wed Jul 28 22:44:58 2010 +0000
+++ b/msdos/sed2v2.inp	Thu Jul 29 23:01:42 2010 +0000
@@ -57,6 +57,7 @@
 /^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
 /^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/
 /^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
+/^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/
 
 /^#undef GNU_MALLOC *$/s/^.*$/#define GNU_MALLOC 1/
 /^#undef REL_ALLOC *$/s/^.*$/#define REL_ALLOC 1/
--- a/nt/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/nt/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,7 @@
+2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* config.nt: Remove code referring to NO_REMAP, unused.
+
 2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
 
 	Build binary distros on Windows using emacs-VERSION as root dir name.
--- a/nt/config.nt	Wed Jul 28 22:44:58 2010 +0000
+++ b/nt/config.nt	Thu Jul 29 23:01:42 2010 +0000
@@ -308,12 +308,6 @@
 #undef config_machfile
 #include "m/intel386.h"
 
-/* If no remapping takes place, static variables cannot be dumped as
-   pure, so don't worry about the `static' keyword. */
-#ifdef NO_REMAP
-#undef static
-#endif
-
 /* Define `subprocesses' should be defined if you want to
    have code for asynchronous subprocesses
    (as used in M-x compile and M-x shell).
--- a/src/ChangeLog	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/ChangeLog	Thu Jul 29 23:01:42 2010 +0000
@@ -1,3 +1,192 @@
+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
@@ -5,7 +194,7 @@
 
 	* xdisp.c (Qtext_image_horiz): Define.
 	(syms_of_xdisp): Initialize Qtext_image_horiz.  Add text-image-horiz
-	to ducumentation of tool-bar-style.
+	to documentation of tool-bar-style.
 
 	* lisp.h (Qtext_image_horiz): Declare.
 
--- a/src/ChangeLog.2	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/ChangeLog.2	Thu Jul 29 23:01:42 2010 +0000
@@ -683,7 +683,7 @@
 	(That `select' saw something on channel 0 doesn't mean it is
 	kbd input; it could be an expose event.)
 
-	* keyboard.c (read_avail_input) [FIONREAD]:  Now static.
+	* keyboard.c (read_avail_input) [FIONREAD]: Now static.
 	New arg specifies value of NREAD;
 	if it is nonzero, don't call get_input_pending to get it.
 	Use kbd_buffer_store_char to put chars into kbd_buffer.
@@ -1210,7 +1210,7 @@
 	Remove #ifndef VMS around the sleep when buffer is full.
 	* s-vms.h: Define nonstandard PENDING_OUTPUT_COUNT for VMS use.
 
-	* fileio.c (file_name_as_directory) [VMS]:  Fix 3rd arg to strncmp.
+	* fileio.c (file_name_as_directory) [VMS]: Fix 3rd arg to strncmp.
 
 1987-07-17  Paul Rubin  (phr@prep)
 
@@ -1323,7 +1323,7 @@
 
 1987-06-09  Richard M. Stallman  (rms@prep)
 
-	* syntax.c: (scan_lists): Clear mathexit on 2nd math-char in a pair.
+	* syntax.c (scan_lists): Clear mathexit on 2nd math-char in a pair.
 
 1987-06-08  Richard M. Stallman  (rms@prep)
 
@@ -1442,7 +1442,7 @@
 	Turn on call to vmserrstr.
 	* sysdep.c (vmserrstr) [VMS]: Define this function.
 
-	* process.c (create_process) [IRIS]:  Don't open the pty's tty
+	* process.c (create_process) [IRIS]: Don't open the pty's tty
 	in the parent process.  Open only once, in the child.
 
 	* xdisp.c (redisplay_window): If window-start points nowhere,
@@ -1544,8 +1544,8 @@
 
 1987-05-05  Richard Mlynarik  (mly@prep)
 
-	* m-irist.h:  New version from raible@orville.arpa
-	* s-iris3-5.h:  New file.  (s-usg5-2 with additions)
+	* m-irist.h: New version from raible@orville.arpa
+	* s-iris3-5.h: New file.  (s-usg5-2 with additions)
 
 	* keyboard.c:
 	IRIS, like HPUX, #defines but does not implement FIONREAD.
@@ -1566,7 +1566,7 @@
 	Fcopy_file, Fset_file_modes: Don't use un*x modes if
 	env var USE_DOMAIN_ACLS is set.
 	Fset_file_modes: utimes fix.
-	Finsert_file_contents:  Must do fstat after open for Apollo.
+	Finsert_file_contents: Must do fstat after open for Apollo.
 
 	* emacs.c (main): (APOLLO from lnz):
 	Don't use un*x modes if env var USE_DOMAIN_ACLS set.
@@ -1675,7 +1675,7 @@
 
 1987-03-20  Richard Mlynarik  (mly@prep)
 
-	* filemode.c:  Hacks for set-uid/gid but not executable.
+	* filemode.c: Hacks for set-uid/gid but not executable.
 
 1987-03-20  Richard M. Stallman  (rms@prep)
 
@@ -1966,7 +1966,7 @@
 
 1987-02-22  Richard M. Stallman  (rms@prep)
 
-	* dispnew.c (Fopen_termscript):  Close existing termscript
+	* dispnew.c (Fopen_termscript): Close existing termscript
 	file before trying to open a new one.  Report open failure
 	with report_file_error.
 
@@ -2071,7 +2071,7 @@
 
 1987-02-10  Richard Mlynarik  (mly@prep)
 
-	* xfns.c (Fx_get_default):  Add (unsigned char *) cast.
+	* xfns.c (Fx_get_default): Add (unsigned char *) cast.
 
 	* window.c: typo.
 
@@ -2853,7 +2853,7 @@
 	local variables for more register decls.  Compute
 	and pass `envlen' arg to child_setup.
 
-	* process.c (create_process):  Compute and pass `envlen' arg
+	* process.c (create_process): Compute and pass `envlen' arg
 	to child_setup.
 
 	* xterm.c (x_term_init): Don't call XPopUpWindow at all.
@@ -3998,7 +3998,7 @@
 	* editfns.c (Fuser_uid, Fuser_real_uid):
 	New functions that return values of geteuid and getuid system calls.
 
-	* dired.c (Ffile_attributes):  Value has additional element
+	* dired.c (Ffile_attributes): Value has additional element
 	t iff file gid would change if Emacs deletes it and recreates it.
 
 	* xdisp.c (display_mode_element):
@@ -4078,7 +4078,7 @@
 	being unbound.  struct catchtag has two new fields,
 	gcpro and pdlcount.
 
-	* eval.c (Fthrow, Fsignal):  Use unbind_catch before longjmp.
+	* eval.c (Fthrow, Fsignal): Use unbind_catch before longjmp.
 
 	* eval.c (internal_catch): No need to restore anything
 	from the catchtag after throw, because unbind_catch does it all.
@@ -4657,14 +4657,14 @@
 
 	* fileio.c (Ffile_newer_than_file_p): New Lisp primitive.
 
-	* fileio.c (Ffile_exists_p):  this is now distinct from
+	* fileio.c (Ffile_exists_p): This is now distinct from
 	Ffile_readable_p; it checks only for existence, not for
 	readability.
 
 	* editfns.c (Fgoto_char): Use new interactive code N.
 
-	* callint.c (Fcall_interactively): New code N
-	means use prefix argif have one, else read number from minibuffer.
+	* callint.c (Fcall_interactively): New code N means use
+	prefix arg if have one, else read number from minibuffer.
 
 	* buffer.c (record_buffer):
 	Don't use Frassq, Fmemq or Fdelq since their loops
--- a/src/ChangeLog.5	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/ChangeLog.5	Thu Jul 29 23:01:42 2010 +0000
@@ -176,7 +176,7 @@
 1995-06-12  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
 	* mem-limits.h [_LIBC] (start_of_data): Define to &__data_start
- 	for GNU libc.
+	for GNU libc.
 
 1995-06-11  Richard Stallman  <rms@gnu.ai.mit.edu>
 
@@ -227,7 +227,7 @@
 	* xterm.c (x_get_keysym_name): New function.
 	* keyboard.c (modify_event_symbol): Mask out high bits here,
 	and only for certain purposes.  table_size now unsigned.
-	(modify_event_symbol) [HAVE_X_WINDOWS]:	Use x_get_keysym_name.
+	(modify_event_symbol) [HAVE_X_WINDOWS]: Use x_get_keysym_name.
 	(make_lispy_event): Don't mask high bits here.
 	Supply -1 as table_size for system-specific keys.
 
@@ -316,9 +316,9 @@
 	(Fexecute_extended_command, init_kboard, syms_of_keyboard):
 	Undo Feb 28 change; prefix arg handling is now in Lisp code again.
 
-	* buffer.c: (syms_of_buffer): Doc fix.
-
-	* buffer.c: (Fbuffer_disable_undo): Make this function interactive.
+	* buffer.c (syms_of_buffer): Doc fix.
+
+	* buffer.c (Fbuffer_disable_undo): Make this function interactive.
 
 1995-06-07  Richard Stallman  <rms@gnu.ai.mit.edu>
 
@@ -335,7 +335,7 @@
 	(ALL_CFLAGS): Insert $(TOOLKIT_DEFINES) here.
 	* xfns.c (syms_of_xfns): Provide motif in Motif version.
 
-	* lisp.h: (Fwaiting_for_user_input_p): Function declared.
+	* lisp.h (Fwaiting_for_user_input_p): Function declared.
 	(Fupcase_initials, Fupcase_initials_region): Likewise.
 	(Fplist_get, get_local_map, Fx_popup_menu, Fx_popup_dialog): Likewise.
 	(Fframe_first_window): Likewise.
@@ -849,7 +849,7 @@
 1995-05-07  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
 	* process.c (wait_reading_process_input): Pass arg in new call to
- 	set_waiting_for_input.
+	set_waiting_for_input.
 
 	* xfns.c (Funfocus_frame): Check for live X frame.
 
@@ -1366,8 +1366,8 @@
 1995-04-11  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
 	* process.c (create_process): Set PROCESS's tty_name to Qnil when
- 	!PTY_FLAG, so Fprocess_tty_name returns nil for pipes as its
- 	docstring says.
+	!PTY_FLAG, so Fprocess_tty_name returns nil for pipes as its
+	docstring says.
 
 1995-04-11  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
@@ -1764,12 +1764,12 @@
 	* keyboard.c (kbd_buffer_get_event): Pass 0 for `insist' arg.
 
 	* m/intel386.h (C_SWITCH_SYSTEM): Don't #undef or define it.
- 	[SOLARIS2, SOLARIS2_4, !__GNUC__] (C_SWITCH_MACHINE): Define instead.
+	[SOLARIS2, SOLARIS2_4, !__GNUC__] (C_SWITCH_MACHINE): Define instead.
 
 1995-03-26  Germano Caronni  <caronni@tik.ethz.ch>
 
 	* ralloc.c (r_re_alloc): Correct realloc behavior--allow shrinking
- 	of blocks while reallocating, if shrinking by more than one page.
+	of blocks while reallocating, if shrinking by more than one page.
 	(relocate_blocs, resize_blocs): Added failsafe to protect future
 	calling of these routines when in frozen state.
 	(r_alloc_thaw): Added call to r_alloc_init.
@@ -1820,7 +1820,7 @@
 	* m/sparc.h: Don't include alloca.h if NOT_C_CODE.
 
 	* m/mips-siemens.h (UNEXEC): Override the definition.
-  	(LIBS_DEBUG, ORDINARY_LINK): Add #undefs.
+	(LIBS_DEBUG, ORDINARY_LINK): Add #undefs.
 
 1995-03-22  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
@@ -2334,7 +2334,7 @@
 
 1995-02-14  Richard Stallman  <rms@geech.gnu.ai.mit.edu>
 
-	* filelock.c: (unlock_buffer, unlock_all_files, Flock_buffer)
+	* filelock.c (unlock_buffer, unlock_all_files, Flock_buffer)
 	(Funlock_buffer): Use buffer's file_truename, not filename.
 
 	* buffer.c (syms_of_buffer): Set up Lisp var buffer-file-truename.
@@ -3107,7 +3107,7 @@
 
 	* lisp.h (enum Lisp_Type): Lisp_Process, Lisp_Window, Lisp_Frame,
 	Lisp_Subr deleted.
-	(PSEUDOVECTORP, GC_PSEUDOVECTORP):  Add paren for proper nesting.
+	(PSEUDOVECTORP, GC_PSEUDOVECTORP): Add paren for proper nesting.
 	(PROCESSP, GC_PROCESSP, XSETPROCESS): Rewrite to use pseudovectors.
 	(WINDOWP, GC_WINDOWP, XSETWINDOW): Likewise.
 	(FRAMEP, GC_FRAMEP): Likewise.
@@ -3461,7 +3461,7 @@
 
 1994-11-19  Francesco Potortì  <pot@cnuce.cnr.it>
 
-	* lisp.h: (running_asynch_code): New global flag.
+	* lisp.h (running_asynch_code): New global flag.
 	* emacs.c (running_asynch_code): New global flag.
 	(main): Initialise it.
 	* process.c (read_process_output, exec_sentinel): Set and
@@ -3493,7 +3493,7 @@
 
 1994-11-17  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
-	* lisp.h: (enum Lisp_Misc_Type): Rename Lisp_Vector to
+	* lisp.h (enum Lisp_Misc_Type): Rename Lisp_Vector to
 	Lisp_Vectorlike.  Mark Lisp_Window_Configuration as obsolete.
 	(PSEUDOVECTOR_FLAG, PSEUDOVECTOR_SIZE_MASK, PVEC_BUFFER,
 	PVEC_PROCESS, PVEC_FRAME, PVEC_COMPILED, PVEC_WINDOW,
@@ -3645,7 +3645,7 @@
 
 1994-11-14  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
-	* lisp.h: (enum Lisp_Misc_Type): Add new enumeration Lisp_Misc_Overlay.
+	* lisp.h (enum Lisp_Misc_Type): Add new enumeration Lisp_Misc_Overlay.
 	(enum Lisp_Type): Delete the corresponding enumeration from here.
 	(struct Lisp_Overlay): New structure.
 	(XOVERLAY, OVERLAYP): Access the new structure.
@@ -3711,7 +3711,7 @@
 
 1994-11-11  Karl Heuer  <kwzh@nutrimat.gnu.ai.mit.edu>
 
-	* lisp.h: (enum Lisp_Misc_Type): Add new enumerations
+	* lisp.h (enum Lisp_Misc_Type): Add new enumerations
 	Lisp_Misc_Buffer_Local_Value and Lisp_Misc_Some_Buffer_Local_Value.
 	(enum Lisp_Type): Delete the corresponding enumerations from here.
 	(struct Lisp_Buffer_Local_Value): New structure.
@@ -3798,7 +3798,7 @@
 	* xfns.c (Fx_list_fonts): Don't bother to retrieve font info when
 	there's no size_ref to compare it against.
 
-	* editfns.c: (Fdecode_time): Fix Lisp_Object vs. integer problems.
+	* editfns.c (Fdecode_time): Fix Lisp_Object vs. integer problems.
 	Don't use tm_gmtoff; it's not portable.
 
 	* lisp.h: Leave DEVICE_SEP undefined by default.
@@ -3955,7 +3955,7 @@
 	Use the return value of child_setup to get the child's pid;
 	don't call vfork etc. explicitly.
 
-	* callproc.c [WINDOWSNT]: Add includes.	 Define NOMINMAX, _P_NOWAIT.
+	* callproc.c [WINDOWSNT]: Add includes.  Define NOMINMAX, _P_NOWAIT.
 	(Vbinary_process_input, Vbinary_process_output)
 	(Qbuffer_file_type): Test DOS_NT, not MSDOS.
 	(syms_of_callproc): Test DOS_NT, not MSDOS.
@@ -4367,7 +4367,7 @@
 	(the_x_screen): Variable moved here.
 	(syms_of_xterm): Staticpro parts of the_x_screen.
 	* xfns.c (Fx_open_connection): Get dpyinfo from x_term_init.
-	Don't set up atoms, xrdb here.	Pass name as Lisp_Object.
+	Don't set up atoms, xrdb here.  Pass name as Lisp_Object.
 	(the_x_screen): Variable moved to xterm.c.
 	(syms_of_xfns): Don't staticpro it here.
 
@@ -4511,7 +4511,7 @@
 
 1994-10-19  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
-	* search.c: (searchbufs): New variable, replaces searchbuf and
+	* search.c (searchbufs): New variable, replaces searchbuf and
 	last_regexp and search_fastmap.
 	(syms_of_search): Initialize it.
 	(searchbuf_head): New variable.
@@ -4597,7 +4597,7 @@
 	* frame.h [!MULTI_FRAME]: We give up having selected_frame be
 	an always-zero integer variable.  From now on it will be a
 	pointer to a `struct frame' just like in the MULTI_FRAME case.
-	(selected_frame, last_nonminibuf_frame): use FRAME_PTR,	not EMACS_INT.
+	(selected_frame, last_nonminibuf_frame): use FRAME_PTR, not EMACS_INT.
 	(XFRAME): Redefine to use the_only_frame.
 	(XSETFRAME): Define to set Lisp value.
 	(WINDOW_FRAME): Redefine to return Lisp value.
@@ -4640,7 +4640,7 @@
 	(the_only_x_display, x_current_display) [!HAVE_X_WINDOWS]: New
 	variables.
 
-	* msdos.h: (XFontStruct, GC, Pixmap, Display, Window) [MSDOS_NO_X]:
+	* msdos.h (XFontStruct, GC, Pixmap, Display, Window) [MSDOS_NO_X]:
 	Dummy types.
 	(struct face, FACE_HAS_GC, FACE_GC, FACE_FOREGROUND, FACE_BACKGROUND,
 	FACE_FONT, FACE_STIPPLE, FACE_UNDERLINE_P) [MSDOS_NO_X]: Define like
@@ -4937,7 +4937,7 @@
 	(struct Lisp_Free): New structure.
 	(Lisp_Misc_Free): Type code for that structure.
 	* buffer.h (OVERLAY_POSITION): Marker assert now tests substructure.
-	* alloc.c: (MARKER_BLOCK_SIZE, marker_block, marker_free_list):
+	* alloc.c (MARKER_BLOCK_SIZE, marker_block, marker_free_list):
 	Now refers to the superset type, not just markers.
 	(allocate_misc): New function, extracted from Fmake_marker.
 	(Fpurecopy): Check the substructure.
@@ -5185,7 +5185,7 @@
 
 1994-10-02  Paul Reilly  <pmr@geech.gnu.ai.mit.edu>
 
-	* xfns.c: (HACK_EDITRES): Declare if using X11R5.
+	* xfns.c (HACK_EDITRES): Declare if using X11R5.
 	(widget_id_tick): New variable.
 	(x_any_window_to_frame): Use lw_window_is_in_menubar for
 	widget set independence.
@@ -7039,7 +7039,7 @@
 
 1994-06-07  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 
-	* mips-siemens.h:  Include pyramid.h, not mips.h.
+	* mips-siemens.h: Include pyramid.h, not mips.h.
 	(LOAD_AVE_TYPE, LOAD_AVE_CVT): Definitions deleted.
 	(NO_ARG_ARRAY, HAVE_ALLOCA): Defined.
 	(BROKEN_FIONREAD): Add #undef.
--- a/src/ChangeLog.9	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/ChangeLog.9	Thu Jul 29 23:01:42 2010 +0000
@@ -319,7 +319,7 @@
 
 	* lisp.h (Ftop_level): Add prototype.
 
-	* xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
+	* xterm.c (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
 	(XTread_socket): Improve style of comments to follow other
 	comments.
 
@@ -1496,7 +1496,7 @@
 	* coding.c (setup_coding_system): Don't do any designation based
 	on reg_bits if charset is not yet defined.
 
-  	* lisp.h (XVECTOR): Verify correct object type before returning a
+	* lisp.h (XVECTOR): Verify correct object type before returning a
 	pointer, using eassert.
 
 2001-07-17  Gerd Moellmann  <gerd@gnu.org>
@@ -1752,7 +1752,7 @@
 	creating the directory might signal an error, and leaves
 	Emacs in a strange state.
 
-	* term.c: (tty_cursor_hidden): New variable.
+	* term.c (tty_cursor_hidden): New variable.
 	(update_begin): Don't call tty_hide_cursor.  Clean up.
 	(update_end, set_terminal_window, set_scroll_region): Clean up.
 	(ring_bell, reset_terminal_modes): Clean up.
@@ -3109,7 +3109,7 @@
 
 	* w32term.c (w32_encode_char): Treat eight bit graphic and control
 	characters the same as ASCII and latin-1.
-	(x_display_and_set_cursor): Check for the focus	frame's selected
+	(x_display_and_set_cursor): Check for the focus frame's selected
 	window instead of selected_window.
 	(x_after_update_window_line): Don't clear if frame's internal
 	border width is zero.
@@ -3896,7 +3896,7 @@
 
 2001-01-07  Dave Love  <fx@gnu.org>
 
-	* keyboard.c (Fread_key_sequence_vector):  Avoid newline in
+	* keyboard.c (Fread_key_sequence_vector): Avoid newline in
 	arglist, for documentation's sake.
 
 2001-01-06  Andrew Innes  <andrewi@gnu.org>
@@ -4180,7 +4180,7 @@
 	what's displayed in the window.
 
 	* xdisp.c (try_window_reusing_current_matrix)
-	<new start <= old start>:  Disable rows in the current matrix
+	<new start <= old start>: Disable rows in the current matrix
 	which are below the window after scrolling.
 
 	* xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
@@ -5004,7 +5004,7 @@
 	the metrics of BDF fonts.
 	(x_estimate_mode_line_height): If `mode-line' face
 	hasn't a font, use that of the frame, as drawing glyphs does.
-	(note_mouse_highlight): Change the cursor shape	on the vertical
+	(note_mouse_highlight): Change the cursor shape on the vertical
 	border between windows [not enabled].
 
 	* w32term.h (struct w32_output): Add member horizontal_drag_cursor.
@@ -5480,7 +5480,7 @@
 	* lisp.h (pos_visible_p): Change prototype.
 
 	* dispextern.h (CURRENT_MODE_LINE_HEIGHT)
-	(CURRENT_HEADER_LINE_HEIGHT):  Look at current_mode_line_height
+	(CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
 	and current_header_line_height first.
 	(current_mode_line_height, current_header_line_height):
 	Declare extern.
@@ -6683,7 +6683,7 @@
 	(create_offscreen_bitmap): New function.
 	(w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
 
-	* w32term.c (x_produce_glyphs):  If the distance from the current
+	* w32term.c (x_produce_glyphs): If the distance from the current
 	position to the next tab stop is less than a canonical character
 	width, use the tab stop after that.
 	(x_draw_glyphs): Handle case START and END are out of bounds more
@@ -7536,7 +7536,7 @@
 	CYCLE_CHECK arguments.
 	(merge_face_vector_with_property, Finternal_merge_in_global_face)
 	(lookup_named_face, lookup_derived_face, realize_named_face)
-	(face_at_string_position, face_at_buffer_position):  Supply
+	(face_at_string_position, face_at_buffer_position): Supply
 	new F and CYCLE_CHECK arguments to merge_face_vectors.
 	(merge_face_heights): New function.
 	(merge_face_vectors, merge_face_vector_with_property)
@@ -7826,7 +7826,7 @@
 	(x_compute_glyph_string_overhangs): Incomplete body removed, as
 	the X way of doing this will not work for W32.
 	(w32_intersect_rectangles): Removed. Use IntersectRect API call.
-	(x_draw_image_foreground):  Avoid drawing outside of the clip area
+	(x_draw_image_foreground): Avoid drawing outside of the clip area
 	when image doesn't have a mask.
 	(note_mouse_highlight): Process overlays in the right order of
 	priority. Set help_echo_window.
@@ -10156,7 +10156,7 @@
 	(encode_coding_string): Likewise.
 
 	* ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
-	<CCL_WriteMultibyteChar2>:  Handle charsets eight-bit-control and
+	<CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
 	eight-bit-graphic correctly.
 
 2000-05-24  Kenichi HANDA  <handa@etl.go.jp>
@@ -12812,7 +12812,7 @@
 	(xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
 	(xim_initialize, xim_close)
 	[HAVE_X_I18N && HAVE_X11R6]: New functions.
-	(x_destroy_window) [HAVE_X_I18N]:  Call xic_destroy_frame.
+	(x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
 	(x_term_init) [HAVE_X_I18N]: Call xim_initialize.
 	(x_delete_display) [HAVE_X_I18N]: Call xim_close.
 
@@ -13029,7 +13029,7 @@
 
 2000-01-19  Dave Love  <fx@gnu.org>
 
-	* lread.c: (syms_of_lread) [user-init-file]: Doc change.
+	* lread.c (syms_of_lread) [user-init-file]: Doc change.
 
 2000-01-18  Kenichi Handa  <handa@etl.go.jp>
 
--- a/src/buffer.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/buffer.c	Thu Jul 29 23:01:42 2010 +0000
@@ -174,8 +174,6 @@
 static void modify_overlay (struct buffer *, EMACS_INT, EMACS_INT);
 static Lisp_Object buffer_lisp_local_variables (struct buffer *);
 
-extern char * emacs_strerror (int);
-
 /* For debugging; temporary.  See set_buffer_internal.  */
 /* Lisp_Object Qlisp_mode, Vcheck_symbol; */
 
--- a/src/callint.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/callint.c	Thu Jul 29 23:01:42 2010 +0000
@@ -29,21 +29,12 @@
 #include "window.h"
 #include "keymap.h"
 
-extern Lisp_Object Qcursor_in_echo_area;
-extern Lisp_Object Qfile_directory_p;
-extern Lisp_Object Qonly;
-
 Lisp_Object Vcurrent_prefix_arg, Qminus, Qplus;
 Lisp_Object Qcall_interactively;
 Lisp_Object Vcommand_history;
 
-extern Lisp_Object Vhistory_length;
-extern Lisp_Object Vthis_original_command, real_this_command;
-extern int history_delete_duplicates;
-
 Lisp_Object Vcommand_debug_status, Qcommand_debug_status;
 Lisp_Object Qenable_recursive_minibuffers;
-extern Lisp_Object Qface, Qminibuffer_prompt;
 
 /* Non-nil means treat the mark as active
    even if mark_active is 0.  */
--- a/src/callproc.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/callproc.c	Thu Jul 29 23:01:42 2010 +0000
@@ -102,8 +102,6 @@
 /* Pattern used by call-process-region to make temp files.  */
 static Lisp_Object Vtemp_file_name_pattern;
 
-extern Lisp_Object Vtemporary_file_directory;
-
 Lisp_Object Vshell_file_name;
 
 Lisp_Object Vprocess_environment, Vinitial_environment;
--- a/src/ccl.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/ccl.c	Thu Jul 29 23:01:42 2010 +0000
@@ -72,8 +72,6 @@
 #define GET_HASH_TABLE(id) \
   (XHASH_TABLE (XCDR(XVECTOR(Vtranslation_hash_table_vector)->contents[(id)])))
 
-extern int charset_unicode;
-
 /* CCL (Code Conversion Language) is a simple language which has
    operations on one input buffer, one output buffer, and 7 registers.
    The syntax of CCL is described in `ccl.el'.  Emacs Lisp function
--- a/src/charset.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/charset.c	Thu Jul 29 23:01:42 2010 +0000
@@ -127,13 +127,6 @@
 
 Lisp_Object Vcurrent_iso639_language;
 
-/* Defined in chartab.c */
-extern void
-map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
-                            Lisp_Object function, Lisp_Object table,
-                            Lisp_Object arg, struct charset *charset,
-                            unsigned from, unsigned to);
-
 #define CODE_POINT_TO_INDEX(charset, code)				\
   ((charset)->code_linear_p						\
    ? (code) - (charset)->min_code					\
@@ -472,8 +465,6 @@
   return n;
 }
 
-extern Lisp_Object Qfile_name_handler_alist;
-
 /* Return a mapping vector for CHARSET loaded from MAPFILE.
    Each line of MAPFILE has this form
 	0xAAAA 0xCCCC
--- a/src/cmds.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/cmds.c	Thu Jul 29 23:01:42 2010 +0000
@@ -43,9 +43,6 @@
 /* This is the command that set up Vself_insert_face.  */
 Lisp_Object Vself_insert_face_command;
 
-extern Lisp_Object Qface;
-extern Lisp_Object Vtranslation_table_for_input;
-
 static int internal_self_insert (int, int);
 
 DEFUN ("forward-point", Fforward_point, Sforward_point, 1, 1, 0,
--- a/src/coding.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/coding.c	Thu Jul 29 23:01:42 2010 +0000
@@ -303,7 +303,6 @@
 
 Lisp_Object Qcoding_system, Qcoding_aliases, Qeol_type;
 Lisp_Object Qunix, Qdos;
-extern Lisp_Object Qmac;	/* frame.c */
 Lisp_Object Qbuffer_file_coding_system;
 Lisp_Object Qpost_read_conversion, Qpre_write_conversion;
 Lisp_Object Qdefault_char;
@@ -317,7 +316,6 @@
 Lisp_Object QCpost_read_conversion, QCpre_write_conversion;
 Lisp_Object QCascii_compatible_p;
 
-extern Lisp_Object Qinsert_file_contents, Qwrite_region;
 Lisp_Object Qcall_process, Qcall_process_region;
 Lisp_Object Qstart_process, Qopen_network_stream;
 Lisp_Object Qtarget_idx;
@@ -325,8 +323,6 @@
 Lisp_Object Qinsufficient_source, Qinconsistent_eol, Qinvalid_source;
 Lisp_Object Qinterrupted, Qinsufficient_memory;
 
-extern Lisp_Object Qcompletion_ignore_case;
-
 /* If a symbol has this property, evaluate the value to define the
    symbol as a coding system.  */
 static Lisp_Object Qcoding_system_define_form;
--- a/src/coding.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/coding.h	Thu Jul 29 23:01:42 2010 +0000
@@ -802,6 +802,9 @@
 /* Default coding systems used for process I/O.  */
 extern Lisp_Object Vdefault_process_coding_system;
 
+/* Char table for translating Quail and self-inserting input.  */
+extern Lisp_Object Vtranslation_table_for_input;
+
 /* Function to call to force a user to force select a propert coding
    system.  */
 extern Lisp_Object Vselect_safe_coding_system_function;
--- a/src/composite.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/composite.c	Thu Jul 29 23:01:42 2010 +0000
@@ -848,8 +848,6 @@
   return header;
 }
 
-extern void font_fill_lglyph_metrics (Lisp_Object, Lisp_Object);
-
 static void
 fill_gstring_body (Lisp_Object gstring)
 {
--- a/src/config.in	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/config.in	Thu Jul 29 23:01:42 2010 +0000
@@ -150,6 +150,9 @@
 /* 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
 
--- a/src/data.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/data.c	Thu Jul 29 23:01:42 2010 +0000
@@ -82,7 +82,8 @@
 
 Lisp_Object Qinteger;
 static Lisp_Object Qsymbol, Qstring, Qcons, Qmarker, Qoverlay;
-static Lisp_Object Qfloat, Qwindow_configuration, Qwindow;
+Lisp_Object Qwindow;
+static Lisp_Object Qfloat, Qwindow_configuration;
 Lisp_Object Qprocess;
 static Lisp_Object Qcompiled_function, Qbuffer, Qframe, Qvector;
 static Lisp_Object Qchar_table, Qbool_vector, Qhash_table;
--- a/src/dired.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/dired.c	Thu Jul 29 23:01:42 2010 +0000
@@ -48,29 +48,22 @@
    Since applying strlen to the name always works, we'll just do that.  */
 #define NAMLEN(p) strlen (p->d_name)
 
-#ifdef SYSV_SYSTEM_DIR
+#ifdef HAVE_DIRENT_H
 
 #include <dirent.h>
 #define DIRENTRY struct dirent
 
-#else /* not SYSV_SYSTEM_DIR */
+#else /* not HAVE_DIRENT_H */
 
-#ifdef MSDOS
-#include <dirent.h>
-#else
 #include <sys/dir.h>
-#endif
-
 #include <sys/stat.h>
 
-#ifndef MSDOS
 #define DIRENTRY struct direct
 
 extern DIR *opendir (char *);
 extern struct direct *readdir (DIR *);
 
-#endif /* not MSDOS */
-#endif /* not SYSV_SYSTEM_DIR */
+#endif /* HAVE_DIRENT_H */
 
 /* Some versions of Cygwin don't have d_ino in `struct dirent'.  */
 #if defined(MSDOS) || defined(__CYGWIN__)
@@ -102,9 +95,6 @@
 #define lstat stat
 #endif
 
-extern int completion_ignore_case;
-extern Lisp_Object Qcompletion_ignore_case;
-extern Lisp_Object Vcompletion_regexp_list;
 extern Lisp_Object Vw32_get_true_file_attributes;
 
 Lisp_Object Vcompletion_ignored_extensions;
--- a/src/dispnew.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/dispnew.c	Thu Jul 29 23:01:42 2010 +0000
@@ -5030,7 +5030,6 @@
 
 /* Char insertion/deletion cost vector, from term.c */
 
-extern int *char_ins_del_vector;
 #define char_ins_del_cost(f) (&char_ins_del_vector[FRAME_TOTAL_COLS((f))])
 
 
--- a/src/doc.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/doc.c	Thu Jul 29 23:01:42 2010 +0000
@@ -52,10 +52,6 @@
 /* A list of files used to build this Emacs binary.  */
 static Lisp_Object Vbuild_files;
 
-extern Lisp_Object Voverriding_local_map;
-
-extern Lisp_Object Qremap;
-
 /* Buffer used for reading from documentation file.  */
 static char *get_doc_string_buffer;
 static int get_doc_string_buffer_size;
--- a/src/editfns.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/editfns.c	Thu Jul 29 23:01:42 2010 +0000
@@ -97,7 +97,6 @@
 static void find_field (Lisp_Object, Lisp_Object, Lisp_Object, int *, Lisp_Object, int *);
 static void update_buffer_properties (int, int);
 static Lisp_Object region_limit (int);
-int lisp_time_argument (Lisp_Object, time_t *, int *);
 static size_t emacs_memftimeu (char *, size_t, const char *,
                                size_t, const struct tm *, int);
 static void general_insert_function (void (*) (const unsigned char *, EMACS_INT),
--- a/src/eval.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/eval.c	Thu Jul 29 23:01:42 2010 +0000
@@ -63,7 +63,6 @@
 Lisp_Object Qdebug_on_error;
 Lisp_Object Qdeclare;
 Lisp_Object Qdebug;
-extern Lisp_Object Qinteractive_form;
 
 /* This holds either the symbol `run-hooks' or nil.
    It is nil at an early stage of startup, and when Emacs
@@ -166,10 +165,6 @@
 
 Lisp_Object Vmacro_declaration_function;
 
-extern Lisp_Object Qrisky_local_variable;
-
-extern Lisp_Object Qfunction;
-
 static Lisp_Object funcall_lambda (Lisp_Object, int, Lisp_Object*);
 static void unwind_to_catch (struct catchtag *, Lisp_Object) NO_RETURN;
 
@@ -1634,7 +1629,6 @@
      That is a special case--don't do this in other situations.  */
   register struct handler *allhandlers = handlerlist;
   Lisp_Object conditions;
-  extern int gc_in_progress;
   extern int waiting_for_input;
   Lisp_Object string;
   Lisp_Object real_error_symbol;
--- a/src/fileio.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/fileio.c	Thu Jul 29 23:01:42 2010 +0000
@@ -104,8 +104,6 @@
 #endif
 
 #include "commands.h"
-extern int use_dialog_box;
-extern int use_file_dialog;
 
 #ifndef O_WRONLY
 #define O_WRONLY 1
@@ -214,16 +212,10 @@
 /* Lisp function for recursively deleting directories.  */
 Lisp_Object Qdelete_directory;
 
-extern Lisp_Object Vuser_login_name;
-
 #ifdef WINDOWSNT
 extern Lisp_Object Vw32_get_true_file_attributes;
 #endif
 
-extern int minibuf_level;
-
-extern int minibuffer_auto_raise;
-
 /* These variables describe handlers that have "already" had a chance
    to handle the current operation.
 
@@ -3049,7 +3041,6 @@
   return value;
 }
 
-extern int lisp_time_argument (Lisp_Object, time_t *, int *);
 
 DEFUN ("set-file-times", Fset_file_times, Sset_file_times, 1, 2, 0,
        doc: /* Set times of file FILENAME to TIME.
--- a/src/fns.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/fns.c	Thu Jul 29 23:01:42 2010 +0000
@@ -61,7 +61,6 @@
    questions asked by mouse commands.  */
 int use_file_dialog;
 
-extern int minibuffer_auto_raise;
 extern Lisp_Object minibuf_window;
 extern Lisp_Object Vlocale_coding_system;
 extern int load_in_progress;
--- a/src/fontset.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/fontset.c	Thu Jul 29 23:01:42 2010 +0000
@@ -1457,7 +1457,6 @@
   else if (STRINGP (font_spec))
     {
       Lisp_Object args[2];
-      extern Lisp_Object QCname;
 
       fontname = font_spec;
       args[0] = QCname;
--- a/src/frame.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/frame.c	Thu Jul 29 23:01:42 2010 +0000
@@ -119,7 +119,7 @@
 Lisp_Object Qtitle, Qname;
 Lisp_Object Qexplicit_name;
 Lisp_Object Qunsplittable;
-Lisp_Object Qmenu_bar_lines, Qtool_bar_lines;
+Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
 Lisp_Object Vmenu_bar_mode, Vtool_bar_mode;
 Lisp_Object Qleft_fringe, Qright_fringe;
 Lisp_Object Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list;
@@ -323,6 +323,7 @@
   f->menu_bar_window = Qnil;
   f->tool_bar_window = Qnil;
   f->tool_bar_items = Qnil;
+  f->tool_bar_position = Qtop;
   f->desired_tool_bar_string = f->current_tool_bar_string = Qnil;
   f->n_tool_bar_items = 0;
   f->left_fringe_width = f->right_fringe_width = 0;
@@ -2816,6 +2817,7 @@
   {"font-backend",		&Qfont_backend},
   {"alpha",			&Qalpha},
   {"sticky",			&Qsticky},
+  {"tool-bar-position",		&Qtool_bar_position},
 };
 
 #ifdef HAVE_WINDOW_SYSTEM
@@ -3209,6 +3211,7 @@
     XSETFASTINT (tem, FRAME_X_OUTPUT (f)->parent_desc);
   store_in_alist (alistptr, Qexplicit_name, (f->explicit_name ? Qt : Qnil));
   store_in_alist (alistptr, Qparent_id, tem);
+  store_in_alist (alistptr, Qtool_bar_position, f->tool_bar_position);
 }
 
 
@@ -3441,6 +3444,11 @@
 x_set_fringe_width (struct frame *f, Lisp_Object new_value, Lisp_Object old_value)
 {
   compute_fringe_widths (f, 1);
+#ifdef HAVE_X_WINDOWS
+  /* Must adjust this so window managers report correct number of columns.  */
+  if (FRAME_X_WINDOW (f) != 0)
+    x_wm_set_size_hint (f, 0, 0);
+#endif
 }
 
 void
@@ -3670,7 +3678,6 @@
   if (STRINGP (Vx_resource_name))
     {
       unsigned char *p = SDATA (Vx_resource_name);
-      int i;
 
       len = SBYTES (Vx_resource_name);
 
--- a/src/frame.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/frame.h	Thu Jul 29 23:01:42 2010 +0000
@@ -191,6 +191,10 @@
   /* Desired and current tool-bar items.  */
   Lisp_Object tool_bar_items;
 
+  /* Where tool bar is, can be left, right, top or bottom.  The native
+     tool bar only supports top.  */
+  Lisp_Object tool_bar_position;
+
   /* Desired and current contents displayed in tool_bar_window.  */
   Lisp_Object desired_tool_bar_string, current_tool_bar_string;
 
@@ -823,6 +827,7 @@
 
 extern Lisp_Object Qframep, Qframe_live_p;
 extern Lisp_Object Qtty, Qtty_type;
+extern Lisp_Object Qtty_color_mode;
 extern Lisp_Object Qterminal, Qterminal_live_p;
 extern Lisp_Object Qnoelisp;
 
@@ -1063,7 +1068,6 @@
 extern Lisp_Object Qleft_fringe, Qright_fringe;
 extern Lisp_Object Qheight, Qwidth;
 extern Lisp_Object Qminibuffer, Qmodeline;
-extern Lisp_Object Qonly;
 extern Lisp_Object Qx, Qw32, Qmac, Qpc, Qns;
 extern Lisp_Object Qvisible;
 extern Lisp_Object Qdisplay_type;
@@ -1071,7 +1075,7 @@
 
 extern Lisp_Object Qx_resource_name;
 
-extern Lisp_Object Qleft, Qright, Qtop, Qbox;
+extern Lisp_Object Qleft, Qright, Qtop, Qbox, Qbottom;
 extern Lisp_Object Qdisplay;
 
 #ifdef HAVE_WINDOW_SYSTEM
@@ -1089,7 +1093,6 @@
 
 /* These are in frame.c  */
 
-extern Lisp_Object Qtty_color_mode;
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
 
--- a/src/gtkutil.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/gtkutil.c	Thu Jul 29 23:01:42 2010 +0000
@@ -44,6 +44,9 @@
 #define FRAME_TOTAL_PIXEL_HEIGHT(f) \
   (FRAME_PIXEL_HEIGHT (f) + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f))
 
+#define FRAME_TOTAL_PIXEL_WIDTH(f) \
+  (FRAME_PIXEL_WIDTH (f) + FRAME_TOOLBAR_WIDTH (f))
+
 /* Avoid "differ in sign" warnings */
 #define SSDATA(x)  ((char *) SDATA (x))
 
@@ -640,7 +643,8 @@
 
   /* FRAME_TEXT_COLS_TO_PIXEL_WIDTH uses scroll_bar_actual_width, so call it
      after calculating that value.  */
-  pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols);
+  pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols)
+    + FRAME_TOOLBAR_WIDTH (f);
 
 
   /* Do this before resize, as we don't know yet if we will be resized.  */
@@ -677,14 +681,15 @@
      }
 }
 
-/* Handle height changes (i.e. add/remove menu/toolbar).
+/* Handle height/width changes (i.e. add/remove/move menu/toolbar).
    The policy is to keep the number of editable lines.  */
 
 static void
-xg_height_changed (FRAME_PTR f)
+xg_height_or_width_changed (FRAME_PTR f)
 {
   gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)),
-                     FRAME_PIXEL_WIDTH (f), FRAME_TOTAL_PIXEL_HEIGHT (f));
+                     FRAME_TOTAL_PIXEL_WIDTH (f),
+                     FRAME_TOTAL_PIXEL_HEIGHT (f));
   f->output_data.x->hint_flags = 0;
   x_wm_set_size_hint (f, 0, 0);
 }
@@ -733,7 +738,7 @@
 xg_create_frame_widgets (FRAME_PTR f)
 {
   GtkWidget *wtop;
-  GtkWidget *wvbox;
+  GtkWidget *wvbox, *whbox;
   GtkWidget *wfixed;
   GdkColor bg;
   GtkRcStyle *style;
@@ -749,12 +754,14 @@
   xg_set_screen (wtop, f);
 
   wvbox = gtk_vbox_new (FALSE, 0);
+  whbox = gtk_hbox_new (FALSE, 0);
   wfixed = gtk_fixed_new ();  /* Must have this to place scroll bars  */
 
-  if (! wtop || ! wvbox || ! wfixed)
+  if (! wtop || ! wvbox || ! whbox || ! wfixed)
     {
       if (wtop) gtk_widget_destroy (wtop);
       if (wvbox) gtk_widget_destroy (wvbox);
+      if (whbox) gtk_widget_destroy (whbox);
       if (wfixed) gtk_widget_destroy (wfixed);
 
       UNBLOCK_INPUT;
@@ -775,11 +782,13 @@
   FRAME_GTK_OUTER_WIDGET (f) = wtop;
   FRAME_GTK_WIDGET (f) = wfixed;
   f->output_data.x->vbox_widget = wvbox;
+  f->output_data.x->hbox_widget = whbox;
 
   gtk_widget_set_has_window (wfixed, TRUE);
 
   gtk_container_add (GTK_CONTAINER (wtop), wvbox);
-  gtk_box_pack_end (GTK_BOX (wvbox), wfixed, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (wvbox), whbox, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (whbox), wfixed, TRUE, TRUE, 0);
 
   if (FRAME_EXTERNAL_TOOL_BAR (f))
     update_frame_tool_bar (f);
@@ -889,7 +898,7 @@
   size_hints.height_inc = FRAME_LINE_HEIGHT (f);
 
   hint_flags |= GDK_HINT_BASE_SIZE;
-  base_width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 0);
+  base_width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 0) + FRAME_TOOLBAR_WIDTH (f);
   base_height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, 0)
     + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
 
@@ -2828,7 +2837,7 @@
   gtk_widget_show_all (x->menubar_widget);
   gtk_widget_size_request (x->menubar_widget, &req);
   FRAME_MENUBAR_HEIGHT (f) = req.height;
-  xg_height_changed (f);
+  xg_height_or_width_changed (f);
   UNBLOCK_INPUT;
 
   return 1;
@@ -2851,7 +2860,7 @@
           the container.  */
       x->menubar_widget = 0;
       FRAME_MENUBAR_HEIGHT (f) = 0;
-      xg_height_changed (f);
+      xg_height_or_width_changed (f);
       UNBLOCK_INPUT;
     }
 }
@@ -3548,13 +3557,21 @@
 
   if (f)
     {
+      GtkRequisition req, req2;
       FRAME_X_OUTPUT (f)->toolbar_detached = 1;
-
-      /* When detaching a tool bar, not everything dissapear.  There are
-         a few pixels left that are used to drop the tool bar back into
-         place.  */
-      FRAME_TOOLBAR_HEIGHT (f) = 4;
-      xg_height_changed (f);
+      gtk_widget_size_request (GTK_WIDGET (wbox), &req);
+      gtk_widget_size_request (w, &req2);
+      req.width -= req2.width;
+      req.height -= req2.height;
+      if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0)
+        FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height;
+      else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0)
+        FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height;
+      else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0)
+        FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width;
+      else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0)
+        FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width;
+      xg_height_or_width_changed (f);
     }
 }
 
@@ -3575,13 +3592,21 @@
 
   if (f)
     {
-      GtkRequisition req;
-
+      GtkRequisition req, req2;
       FRAME_X_OUTPUT (f)->toolbar_detached = 0;
-
-      gtk_widget_size_request (w, &req);
-      FRAME_TOOLBAR_HEIGHT (f) = req.height;
-      xg_height_changed (f);
+      gtk_widget_size_request (GTK_WIDGET (wbox), &req);
+      gtk_widget_size_request (w, &req2);
+      req.width += req2.width;
+      req.height += req2.height;
+      if (FRAME_TOOLBAR_TOP_HEIGHT (f) != 0)
+        FRAME_TOOLBAR_TOP_HEIGHT (f) = req.height;
+      else if (FRAME_TOOLBAR_BOTTOM_HEIGHT (f) != 0)
+        FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = req.height;
+      else if (FRAME_TOOLBAR_RIGHT_WIDTH (f) != 0)
+        FRAME_TOOLBAR_RIGHT_WIDTH (f) = req.width;
+      else if (FRAME_TOOLBAR_LEFT_WIDTH (f) != 0)
+        FRAME_TOOLBAR_LEFT_WIDTH (f) = req.width;
+      xg_height_or_width_changed (f);
     }
 }
 
@@ -3656,34 +3681,6 @@
   return FALSE;
 }
 
-/* Attach a tool bar to frame F.  */
-
-static void
-xg_pack_tool_bar (FRAME_PTR f)
-{
-  struct x_output *x = f->output_data.x;
-  int vbox_pos = x->menubar_widget ? 1 : 0;
-
-  x->handlebox_widget = gtk_handle_box_new ();
-  g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached",
-                    G_CALLBACK (xg_tool_bar_detach_callback), f);
-  g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached",
-                    G_CALLBACK (xg_tool_bar_attach_callback), f);
-
-  gtk_container_add (GTK_CONTAINER (x->handlebox_widget),
-                     x->toolbar_widget);
-
-  gtk_box_pack_start (GTK_BOX (x->vbox_widget), x->handlebox_widget,
-                      FALSE, FALSE, 0);
-
-  gtk_box_reorder_child (GTK_BOX (x->vbox_widget), x->handlebox_widget,
-                         vbox_pos);
-
-  gtk_widget_show (x->toolbar_widget);
-  gtk_widget_show (x->handlebox_widget);
-}
-
-/* Create a tool bar for frame F.  */
 #ifdef HAVE_GTK_ORIENTABLE_SET_ORIENTATION
 #define toolbar_set_orientation(w, o) \
   gtk_orientable_set_orientation (GTK_ORIENTABLE (w), o)
@@ -3692,6 +3689,56 @@
   gtk_toolbar_set_orientation (GTK_TOOLBAR (w), o)
 #endif
 
+/* Attach a tool bar to frame F.  */
+
+static void
+xg_pack_tool_bar (FRAME_PTR f, Lisp_Object pos)
+{
+  struct x_output *x = f->output_data.x;
+  int into_hbox = EQ (pos, Qleft) || EQ (pos, Qright);
+
+  toolbar_set_orientation (x->toolbar_widget,
+                           into_hbox
+                           ? GTK_ORIENTATION_VERTICAL
+                           : GTK_ORIENTATION_HORIZONTAL);
+  if (!x->handlebox_widget)
+    {
+      x->handlebox_widget = gtk_handle_box_new ();
+      g_signal_connect (G_OBJECT (x->handlebox_widget), "child-detached",
+                        G_CALLBACK (xg_tool_bar_detach_callback), f);
+      g_signal_connect (G_OBJECT (x->handlebox_widget), "child-attached",
+                        G_CALLBACK (xg_tool_bar_attach_callback), f);
+      gtk_container_add (GTK_CONTAINER (x->handlebox_widget),
+                         x->toolbar_widget);
+    }
+
+  if (into_hbox) 
+    {
+      gtk_box_pack_start (GTK_BOX (x->hbox_widget), x->handlebox_widget,
+                          FALSE, FALSE, 0);
+
+      if (EQ (pos, Qleft))
+        gtk_box_reorder_child (GTK_BOX (x->hbox_widget),
+                               x->handlebox_widget,
+                               0);
+      x->toolbar_in_hbox = 1;
+    }
+  else
+    {
+      int vbox_pos = x->menubar_widget ? 1 : 0;
+      gtk_box_pack_start (GTK_BOX (x->vbox_widget), x->handlebox_widget,
+                          FALSE, FALSE, 0);
+
+      if (EQ (pos, Qtop))
+        gtk_box_reorder_child (GTK_BOX (x->vbox_widget),
+                               x->handlebox_widget,
+                               vbox_pos);
+      x->toolbar_in_hbox = 0;
+    }
+}
+
+/* Create a tool bar for frame F.  */
+
 static void
 xg_create_tool_bar (FRAME_PTR f)
 {
@@ -3875,6 +3922,50 @@
   gtk_widget_show (GTK_WIDGET (ti));
 }
 
+static int
+xg_update_tool_bar_sizes (FRAME_PTR f)
+{
+  struct x_output *x = f->output_data.x;
+  GtkRequisition req;
+  int nl = 0, nr = 0, nt = 0, nb = 0;
+
+  gtk_widget_size_request (GTK_WIDGET (x->handlebox_widget), &req);
+  if (x->toolbar_in_hbox)
+    {
+      int pos;
+      gtk_container_child_get (GTK_CONTAINER (x->hbox_widget),
+                               x->handlebox_widget,
+                               "position", &pos, NULL);
+      if (pos == 0) nl = req.width;
+      else nr = req.width;
+    }
+  else
+    {
+      int pos;
+      gtk_container_child_get (GTK_CONTAINER (x->vbox_widget),
+                               x->handlebox_widget,
+                               "position", &pos, NULL);
+      if (pos == 0 || (pos == 1 && x->menubar_widget)) nt = req.height;
+      else nb = req.height;
+    }
+  
+  if (nl != FRAME_TOOLBAR_LEFT_WIDTH (f)
+      || nr != FRAME_TOOLBAR_RIGHT_WIDTH (f)
+      || nt != FRAME_TOOLBAR_TOP_HEIGHT (f)
+      || nb != FRAME_TOOLBAR_BOTTOM_HEIGHT (f))
+    {
+      FRAME_TOOLBAR_RIGHT_WIDTH (f) = FRAME_TOOLBAR_LEFT_WIDTH (f)
+        = FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0;
+      FRAME_TOOLBAR_LEFT_WIDTH (f) = nl;
+      FRAME_TOOLBAR_RIGHT_WIDTH (f) = nr;
+      FRAME_TOOLBAR_TOP_HEIGHT (f) = nt;
+      FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = nb;
+      return 1;
+    }
+
+  return 0;
+}
+
 
 /* Update the tool bar for frame F.  Add new buttons and remove old.  */
 
@@ -3884,7 +3975,6 @@
 update_frame_tool_bar (FRAME_PTR f)
 {
   int i;
-  GtkRequisition old_req, new_req;
   struct x_output *x = f->output_data.x;
   int hmargin = 0, vmargin = 0;
   GtkToolbar *wtoolbar;
@@ -3925,7 +4015,6 @@
     xg_create_tool_bar (f);
 
   wtoolbar = GTK_TOOLBAR (x->toolbar_widget);
-  gtk_widget_size_request (GTK_WIDGET (wtoolbar), &old_req);
   dir = gtk_widget_get_direction (GTK_WIDGET (wtoolbar));
   
   for (i = 0; i < f->n_tool_bar_items; ++i)
@@ -4143,18 +4232,16 @@
       if (ti) gtk_widget_hide_all (GTK_WIDGET (ti));
     } while (ti != NULL);
 
-  new_req.height = 0;
-  if (pack_tool_bar && f->n_tool_bar_items != 0)
-    xg_pack_tool_bar (f);
-  
-
-  gtk_widget_size_request (GTK_WIDGET (wtoolbar), &new_req);
-  if (old_req.height != new_req.height
-      && ! FRAME_X_OUTPUT (f)->toolbar_detached)
+  if (f->n_tool_bar_items != 0)
     {
-      FRAME_TOOLBAR_HEIGHT (f) = new_req.height;
-      xg_height_changed (f);
+      if (pack_tool_bar)
+        xg_pack_tool_bar (f, f->tool_bar_position);
+      gtk_widget_show (x->toolbar_widget);
+      gtk_widget_show (x->handlebox_widget);
+      if (xg_update_tool_bar_sizes (f))
+        xg_height_or_width_changed (f);
     }
+
   UNBLOCK_INPUT;
 }
 
@@ -4172,21 +4259,54 @@
       BLOCK_INPUT;
       /* We may have created the toolbar_widget in xg_create_tool_bar, but
          not the x->handlebox_widget which is created in xg_pack_tool_bar.  */
-      if (is_packed)
-        gtk_container_remove (GTK_CONTAINER (x->vbox_widget),
-                              x->handlebox_widget);
+      if (is_packed) 
+        {
+          if (x->toolbar_in_hbox)
+            gtk_container_remove (GTK_CONTAINER (x->hbox_widget),
+                                  x->handlebox_widget);
+          else
+            gtk_container_remove (GTK_CONTAINER (x->vbox_widget),
+                                  x->handlebox_widget);
+        }
       else
         gtk_widget_destroy (x->toolbar_widget);
 
       x->toolbar_widget = 0;
       x->handlebox_widget = 0;
-      FRAME_TOOLBAR_HEIGHT (f) = 0;
-      xg_height_changed (f);
+      FRAME_TOOLBAR_TOP_HEIGHT (f) = FRAME_TOOLBAR_BOTTOM_HEIGHT (f) = 0;
+      FRAME_TOOLBAR_LEFT_WIDTH (f) = FRAME_TOOLBAR_RIGHT_WIDTH (f) = 0;
+
+      xg_height_or_width_changed (f);
 
       UNBLOCK_INPUT;
     }
 }
 
+int
+xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos)
+{
+  struct x_output *x = f->output_data.x;
+
+  if (! x->toolbar_widget || ! x->handlebox_widget)
+    return 1;
+
+  BLOCK_INPUT;
+  g_object_ref (x->handlebox_widget);
+  if (x->toolbar_in_hbox)
+    gtk_container_remove (GTK_CONTAINER (x->hbox_widget),
+                          x->handlebox_widget);
+  else
+    gtk_container_remove (GTK_CONTAINER (x->vbox_widget),
+                          x->handlebox_widget);
+  xg_pack_tool_bar (f, pos);
+  g_object_unref (x->handlebox_widget);
+  if (xg_update_tool_bar_sizes (f))
+    xg_height_or_width_changed (f);
+
+  UNBLOCK_INPUT;
+  return 1;
+}
+
 
 
 /***********************************************************************
--- a/src/gtkutil.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/gtkutil.h	Thu Jul 29 23:01:42 2010 +0000
@@ -181,6 +181,7 @@
 
 extern void update_frame_tool_bar (FRAME_PTR f);
 extern void free_frame_tool_bar (FRAME_PTR f);
+extern int xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos);
 
 extern void xg_frame_resized (FRAME_PTR f,
                               int pixelwidth,
--- a/src/image.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/image.c	Thu Jul 29 23:01:42 2010 +0000
@@ -8130,8 +8130,6 @@
 void
 syms_of_image (void)
 {
-  extern Lisp_Object Qrisky_local_variable;   /* Syms_of_xdisp has already run.  */
-
   /* Initialize this only once, since that's what we do with Vimage_types
      and they are supposed to be in sync.  Initializing here gives correct
      operation on GNU/Linux of calling dump-emacs after loading some images.  */
--- a/src/keyboard.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/keyboard.c	Thu Jul 29 23:01:42 2010 +0000
@@ -246,9 +246,6 @@
    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;
 
@@ -497,7 +494,6 @@
 Lisp_Object Qmenu_enable;
 Lisp_Object QCenable, QCvisible, QChelp, QCfilter, QCkeys, QCkey_sequence;
 Lisp_Object QCbutton, QCtoggle, QCradio, QClabel;
-extern Lisp_Object Qmenu_item;
 
 /* An event header symbol HEAD may have a property named
    Qevent_symbol_element_mask, which is of the form (BASE MODIFIERS);
@@ -526,8 +522,6 @@
 Lisp_Object Qextended_command_history;
 EMACS_TIME timer_check (int do_it_now);
 
-extern Lisp_Object Vhistory_length, Vtranslation_table_for_input;
-
 static void record_menu_key (Lisp_Object c);
 static int echo_length (void);
 
@@ -1836,14 +1830,11 @@
     }
 }
 
-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 (Lisp_Object, Lisp_Object, Lisp_Object);
 
 static void
@@ -8116,7 +8107,6 @@
 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
--- a/src/keyboard.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/keyboard.h	Thu Jul 29 23:01:42 2010 +0000
@@ -422,6 +422,8 @@
 extern Lisp_Object Qfunction_key, Qmouse_click, Qmouse_movement;
 extern Lisp_Object Qscroll_bar_movement;
 
+extern Lisp_Object Qhelp_echo;
+
 /* Getting the kind of an event head.  */
 #define EVENT_HEAD_KIND(event_head) \
   (Fget ((event_head), Qevent_kind))
@@ -429,6 +431,17 @@
 /* Symbols to use for non-text mouse positions.  */
 extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line;
 
+/* True while doing kbd input.  */
+extern int waiting_for_input;
+
+/* Address (if not 0) of EMACS_TIME to zero out if a SIGIO interrupt
+   happens.  */
+extern EMACS_TIME *input_available_clear_time;
+
+extern int ignore_mouse_drag_p;
+
+extern Lisp_Object Vdouble_click_time;
+
 /* Forward declaration for prototypes.  */
 struct input_event;
 
@@ -445,6 +458,13 @@
 /* Keymap of key translations that can override keymaps.  */
 extern Lisp_Object Vkey_translation_map;
 
+/* This is like Vthis_command, except that commands never set it.  */
+extern Lisp_Object real_this_command;
+
+/* If the lookup of the command returns a binding, the original
+   command is stored in this-original-command.  It is nil otherwise.  */
+extern Lisp_Object Vthis_original_command;
+
 extern int parse_menu_item (Lisp_Object, int);
 
 extern void echo_now (void);
--- a/src/keymap.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/keymap.c	Thu Jul 29 23:01:42 2010 +0000
@@ -108,8 +108,6 @@
    character.  */
 extern Lisp_Object meta_prefix_char;
 
-extern Lisp_Object Voverriding_local_map;
-
 /* Hash table used to cache a reverse-map to speed up calls to where-is.  */
 static Lisp_Object where_is_cache;
 /* Which keymaps are reverse-stored in the cache.  */
--- a/src/keymap.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/keymap.h	Thu Jul 29 23:01:42 2010 +0000
@@ -22,6 +22,10 @@
 
 #define KEYMAPP(m) (!NILP (get_keymap (m, 0, 0)))
 extern Lisp_Object Qkeymap, Qmenu_bar;
+extern Lisp_Object Qremap;
+extern Lisp_Object Qmenu_item;
+extern Lisp_Object Voverriding_local_map;
+extern Lisp_Object Voverriding_local_map_menu_flag;
 extern Lisp_Object current_global_map;
 EXFUN (Fmake_sparse_keymap, 1);
 EXFUN (Fkeymap_prompt, 1);
--- a/src/lisp.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/lisp.h	Thu Jul 29 23:01:42 2010 +0000
@@ -2269,6 +2269,7 @@
 extern Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive;
 extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
 extern Lisp_Object Qtext_read_only;
+extern Lisp_Object Qinteractive_form;
 
 extern Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp;
 extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
@@ -2449,9 +2450,11 @@
 
 /* Defined in fns.c */
 extern int use_dialog_box;
+extern int use_file_dialog;
 extern int next_almost_prime (int);
 extern Lisp_Object larger_vector (Lisp_Object, int, Lisp_Object);
 extern void sweep_weak_hash_tables (void);
+extern Lisp_Object Qcursor_in_echo_area;
 extern Lisp_Object Qstring_lessp;
 extern Lisp_Object Vfeatures;
 extern Lisp_Object QCsize, QCtest, QCweakness, Qequal, Qeq;
@@ -2558,6 +2561,9 @@
 extern void init_fringe_once (void);
 
 /* Defined in image.c */
+extern Lisp_Object QCascent, QCmargin, QCrelief, Qcount, Qextension_data;
+extern Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask;
+extern Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask;
 EXFUN (Finit_image_library, 2);
 extern void syms_of_image (void);
 extern void init_image (void);
@@ -2635,6 +2641,7 @@
 extern Lisp_Object Qspace, Qcenter, QCalign_to;
 extern Lisp_Object Vmessage_log_max;
 extern Lisp_Object QCdata, QCfile;
+extern Lisp_Object Qrisky_local_variable;
 extern int message_enable_multibyte;
 extern Lisp_Object echo_area_buffer[2];
 extern void add_to_log (const char *, Lisp_Object, Lisp_Object);
@@ -2774,10 +2781,15 @@
 extern void map_char_table (void (*) (Lisp_Object, Lisp_Object,
                             Lisp_Object),
                             Lisp_Object, Lisp_Object, Lisp_Object);
+extern void map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
+					Lisp_Object, Lisp_Object,
+					Lisp_Object, struct charset *,
+					unsigned, unsigned);
 extern void syms_of_chartab (void);
 
 /* Defined in print.c */
 extern Lisp_Object Vprin1_to_string_buffer;
+extern Lisp_Object Vprint_level;
 extern void debug_print (Lisp_Object);
 EXFUN (Fprin1, 2);
 EXFUN (Fprin1_to_string, 2);
@@ -2804,6 +2816,7 @@
 
 /* Defined in lread.c */
 extern Lisp_Object Qvariable_documentation, Qstandard_input;
+extern Lisp_Object Qfunction;
 extern Lisp_Object Vobarray, initial_obarray, Vstandard_input;
 EXFUN (Fread, 1);
 EXFUN (Fread_from_string, 3);
@@ -2845,6 +2858,7 @@
 extern Lisp_Object Vdebug_on_error;
 extern Lisp_Object Vsignaling_function;
 extern int handling_signal;
+extern int debug_on_next_call;
 extern int interactive_p (int);
 
 /* To run a normal hook, use the appropriate function from the list below.
@@ -2925,6 +2939,9 @@
 extern void syms_of_eval (void);
 
 /* Defined in editfns.c */
+extern Lisp_Object Qfield;
+extern Lisp_Object Vinhibit_field_text_motion;
+extern Lisp_Object Vuser_login_name;
 EXFUN (Fpropertize, MANY);
 EXFUN (Fcurrent_message, 0);
 EXFUN (Fgoto_char, 1);
@@ -2971,7 +2988,6 @@
 extern Lisp_Object make_buffer_string_both (int, int, int, int, int);
 extern void init_editfns (void);
 extern void syms_of_editfns (void);
-extern Lisp_Object Vinhibit_field_text_motion;
 EXFUN (Fconstrain_to_field, 5);
 EXFUN (Ffield_string, 1);
 EXFUN (Fdelete_field, 1);
@@ -3013,7 +3029,7 @@
 EXFUN (Fbuffer_enable_undo, 1);
 EXFUN (Ferase_buffer, 0);
 extern Lisp_Object Qoverlayp;
-extern Lisp_Object Qevaporate;
+extern Lisp_Object Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string;
 extern Lisp_Object get_truename_buffer (Lisp_Object);
 extern struct buffer *all_buffers;
 EXFUN (Fprevious_overlay_change, 1);
@@ -3045,6 +3061,8 @@
 /* Defined in fileio.c */
 
 extern Lisp_Object Qfile_error;
+extern Lisp_Object Qfile_directory_p;
+extern Lisp_Object Qinsert_file_contents;
 EXFUN (Ffind_file_name_handler, 2);
 EXFUN (Ffile_name_as_directory, 1);
 EXFUN (Fmake_temp_name, 1);
@@ -3104,7 +3122,14 @@
 
 /* Defined in minibuf.c */
 
+extern Lisp_Object Qcompletion_ignore_case;
+extern Lisp_Object Qcompletion_ignore_case;
+extern Lisp_Object Vcompletion_regexp_list;
+extern Lisp_Object Vhistory_length;
 extern Lisp_Object last_minibuf_string;
+extern int completion_ignore_case;
+extern int history_delete_duplicates;
+extern int minibuffer_auto_raise;
 extern void choose_minibuf_frame (void);
 EXFUN (Fcompleting_read, 8);
 EXFUN (Fread_from_minibuffer, 7);
@@ -3206,6 +3231,7 @@
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
 #endif /* HAVE_WINDOW_SYSTEM */
+extern Lisp_Object Qonly;
 extern Lisp_Object Qvisible;
 extern void store_frame_param (struct frame *, Lisp_Object, Lisp_Object);
 extern void store_in_alist (Lisp_Object *, Lisp_Object, Lisp_Object);
@@ -3253,6 +3279,7 @@
 extern Lisp_Object Vbefore_init_time, Vafter_init_time;
 extern Lisp_Object Vinstallation_directory;
 extern Lisp_Object empty_unibyte_string, empty_multibyte_string;
+extern Lisp_Object Qfile_name_handler_alist;
 EXFUN (Fkill_emacs, 1) NO_RETURN;
 #if HAVE_SETLOCALE
 void fixup_locale (void);
@@ -3359,6 +3386,9 @@
 /* Defined in textprop.c */
 extern Lisp_Object Qfont, Qmouse_face;
 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
+extern Lisp_Object Qfront_sticky, Qrear_nonsticky;
+extern Lisp_Object Qminibuffer_prompt;
+
 EXFUN (Fnext_single_property_change, 4);
 EXFUN (Fnext_single_char_property_change, 4);
 EXFUN (Fprevious_single_property_change, 4);
@@ -3424,6 +3454,7 @@
 #endif
 
 /* Defined in filelock.c */
+extern Lisp_Object Vtemporary_file_directory;
 EXFUN (Funlock_buffer, 0);
 EXFUN (Ffile_locked_p, 1);
 extern void unlock_all_files (void);
@@ -3453,6 +3484,7 @@
                                              int, Lisp_Object);
 
 /* Defined in term.c */
+extern int *char_ins_del_vector;
 extern void syms_of_term (void);
 extern void fatal (const char *msgid, ...) NO_RETURN;
 
@@ -3478,6 +3510,7 @@
 #endif
 
 /* Defined in xfaces.c */
+extern Lisp_Object Qface;
 extern Lisp_Object Qnormal;
 extern Lisp_Object QCfamily, QCweight, QCslant, QCwidth;
 extern Lisp_Object QCheight, QCsize, QCname, QCwidth, QCforeground, QCbackground;
--- a/src/m/alpha.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/alpha.h	Thu Jul 29 23:01:42 2010 +0000
@@ -64,12 +64,6 @@
    termio and struct termios are mutually incompatible.  */
 #define NO_TERMIO
 
-#if defined (GNU_LINUX) || defined (__NetBSD__) || defined (__OpenBSD__)
-# ifndef __ELF__
-#  define COFF
-# endif /* notdef __ELF__ */
-#endif
-
 /* Many Alpha implementations (e.g. gas 2.8) can't handle DBL_MIN:
    they generate code that uses a signaling NaN instead of DBL_MIN.
    Define DBL_MIN_REPLACEMENT to be the next value larger than DBL_MIN:
--- a/src/m/arm.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/arm.h	Thu Jul 29 23:01:42 2010 +0000
@@ -22,7 +22,5 @@
    is the most significant byte.  */
 #undef WORDS_BIG_ENDIAN
 
-#define NO_REMAP
-
 /* arch-tag: 07856f0c-f0c8-4bd8-99af-0b7fa1e5ee42
    (do not change this comment) */
--- a/src/m/intel386.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/intel386.h	Thu Jul 29 23:01:42 2010 +0000
@@ -32,8 +32,6 @@
 /* libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared library, */
 /* we cannot get the maximum address for brk */
 #define ULIMIT_BREAK_VALUE (32*1024*1024)
-
-#define SEGMENT_MASK ((SEGMENT_SIZE)-1)
 #endif
 
 /* arch-tag: 746338f0-cb7b-4f49-a98c-cb50817cf2ec
--- a/src/m/m68k.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/m68k.h	Thu Jul 29 23:01:42 2010 +0000
@@ -40,7 +40,6 @@
 #define DATA_SEG_BITS 0x80000000
 #endif
 
-#define NO_REMAP
 #endif
 
 /* arch-tag: 4eadd161-b4e8-4b82-82a1-e4ce7f42969d
--- a/src/m/sparc.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/sparc.h	Thu Jul 29 23:01:42 2010 +0000
@@ -34,9 +34,6 @@
 /* Convert that into an integer that is 100 for a load average of 1.0  */
 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
 
-/* Mask for address bits within a memory segment */
-#define SEGMENT_MASK (SEGSIZ - 1)
-
 #ifdef __arch64__		/* GCC, 64-bit ABI.  */
 
 #define BITS_PER_LONG 64
--- a/src/m/template.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/m/template.h	Thu Jul 29 23:01:42 2010 +0000
@@ -47,12 +47,6 @@
    numerically.  */
 #define VIRT_ADDR_VARIES
 
-/* Define NO_REMAP if memory segmentation makes it not work well
-   to change the boundary between the text section and data section
-   when Emacs is dumped.  If you define this, the preloaded Lisp
-   code will not be sharable; but that's better than failing completely.  */
-#define NO_REMAP
-
 /* After adding support for a new machine, modify the large case
    statement in configure.in to recognize reasonable
    configuration names, and add a description of the system to
--- a/src/macros.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/macros.c	Thu Jul 29 23:01:42 2010 +0000
@@ -51,8 +51,6 @@
 
 Lisp_Object executing_kbd_macro;
 
-extern Lisp_Object real_this_command;
-
 Lisp_Object Fexecute_kbd_macro (Lisp_Object macro, Lisp_Object count, Lisp_Object loopfunc);
 
 DEFUN ("start-kbd-macro", Fstart_kbd_macro, Sstart_kbd_macro, 1, 2, "P",
--- a/src/mem-limits.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/mem-limits.h	Thu Jul 29 23:01:42 2010 +0000
@@ -34,24 +34,9 @@
 # endif
 #endif
 
-#ifdef BSD4_2
-#include <sys/time.h>
-#include <sys/resource.h>
-#endif /* BSD4_2 */
-
-/* The important properties of this type are that 1) it's a pointer, and
-   2) arithmetic on it should work as if the size of the object pointed
-   to has a size of 1.  */
-typedef POINTER_TYPE *POINTER;
-
 typedef unsigned long SIZE;
 
-#ifdef NULL
-#undef NULL
-#endif
-#define NULL ((POINTER) 0)
-
-extern POINTER start_of_data (void);
+extern char *start_of_data (void);
 #if defined USE_LSB_TAG
 #define EXCEEDS_LISP_PTR(ptr) 0
 #elif defined DATA_SEG_BITS
--- a/src/minibuf.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/minibuf.c	Thu Jul 29 23:01:42 2010 +0000
@@ -143,9 +143,6 @@
 
 Lisp_Object Qread_expression_history;
 
-extern Lisp_Object Voverriding_local_map;
-
-extern Lisp_Object Qfield;
 
 /* Put minibuf on currently selected frame's minibuffer.
    We do this whenever the user starts a new minibuffer
@@ -442,9 +439,6 @@
   Lisp_Object empty_minibuf;
   Lisp_Object dummy, frame;
 
-  extern Lisp_Object Qfront_sticky;
-  extern Lisp_Object Qrear_nonsticky;
-
   specbind (Qminibuffer_default, defalt);
 
   /* If Vminibuffer_completing_file_name is `lambda' on entry, it was t
@@ -822,7 +816,6 @@
 {
   Lisp_Object tail, num, buf;
   char name[24];
-  extern Lisp_Object nconc2 (Lisp_Object, Lisp_Object);
 
   XSETFASTINT (num, depth);
   tail = Fnthcdr (num, Vminibuffer_list);
--- a/src/msdos.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/msdos.c	Thu Jul 29 23:01:42 2010 +0000
@@ -1191,7 +1191,6 @@
 
   if (row->enabled_p)
     {
-      extern Lisp_Object Qhelp_echo;
       struct glyph *glyph, *end;
       Lisp_Object help, map;
 
--- a/src/print.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/print.c	Thu Jul 29 23:01:42 2010 +0000
@@ -166,8 +166,6 @@
 
 extern int noninteractive_need_newline;
 
-extern int minibuffer_auto_raise;
-
 void print_interval (INTERVAL interval, Lisp_Object printcharfun);
 
 /* GDB resets this to zero on W32 to disable OutputDebugString calls.  */
--- a/src/s/aix4-2.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/aix4-2.h	Thu Jul 29 23:01:42 2010 +0000
@@ -47,11 +47,6 @@
 /* Define HAVE_SOCKETS if system supports 4.2-compatible sockets.  */
 #define HAVE_SOCKETS
 
-
-/* Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir library
-   functions.  Almost, but not quite the same as the 4.2 functions.  */
-#define SYSV_SYSTEM_DIR
-
 /* The file containing the kernel's symbol table is called /unix.  */
 #define KERNEL_FILE "/unix"
 
--- a/src/s/bsd-common.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/bsd-common.h	Thu Jul 29 23:01:42 2010 +0000
@@ -45,8 +45,6 @@
 #define HAVE_TERMIOS
 #define NO_TERMIO
 
-#define SYSV_SYSTEM_DIR
-
 /* If the system's imake configuration file defines `NeedWidePrototypes'
    as `NO', we must define NARROWPROTO manually.  Such a define is
    generated in the Makefile generated by `xmkmf'.  If we don't
--- a/src/s/cygwin.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/cygwin.h	Thu Jul 29 23:01:42 2010 +0000
@@ -89,7 +89,6 @@
 #define CYGWIN 1
 
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
-#define SYSV_SYSTEM_DIR 1
 
 #define HAVE_SOCKETS
 
--- a/src/s/gnu-linux.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/gnu-linux.h	Thu Jul 29 23:01:42 2010 +0000
@@ -124,8 +124,6 @@
 #define INTERRUPT_INPUT
 #endif /* emacs */
 
-#define SYSV_SYSTEM_DIR       /* use dirent.h */
-
 #define POSIX                 /* affects getpagesize.h and systty.h */
 
 /* This is to work around mysterious gcc failures in some system versions.
--- a/src/s/hpux10-20.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/hpux10-20.h	Thu Jul 29 23:01:42 2010 +0000
@@ -113,12 +113,6 @@
    on HP-UX.  (You get duplicate symbol errors on linking). */
 #undef _FILE_OFFSET_BITS
 
-/* Define NO_REMAP if memory segmentation makes it not work well
-   to change the boundary between the text section and data section
-   when Emacs is dumped.  If you define this, the preloaded Lisp
-   code will not be sharable; but that's better than failing completely.  */
-#define NO_REMAP
-
 /* Define VIRT_ADDR_VARIES if the virtual addresses of
    pure and impure space as loaded can vary, and even their
    relative order cannot be relied on.
--- a/src/s/irix6-5.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/irix6-5.h	Thu Jul 29 23:01:42 2010 +0000
@@ -20,7 +20,7 @@
 
 
 #define IRIX6_5			/* used in m/iris4d */
-#include "usg5-4.h"
+#include "usg5-4-common.h"
 
 #undef _longjmp /* use system versions, not conservative aliases */
 #undef _setjmp
@@ -91,7 +91,7 @@
 
 #undef SA_RESTART
 
-#undef TIOCSIGSEND		/* defined in usg5-4.h */
+#undef TIOCSIGSEND		/* defined in usg5-4-common.h */
 
 /* Tested on Irix 6.5.  SCM worked on earlier versions.  */
 #define GC_SETJMP_WORKS 1
--- a/src/s/ms-w32.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/ms-w32.h	Thu Jul 29 23:01:42 2010 +0000
@@ -62,10 +62,6 @@
    for received packets, so datagrams are broken too.  */
 #define BROKEN_DATAGRAM_SOCKETS 1
 
-/* If your system uses COFF (Common Object File Format) then define the
-   preprocessor symbol "COFF".  */
-#define COFF 1
-
 #define MAIL_USE_POP 1
 #define MAIL_USE_SYSTEM_LOCK 1
 
--- a/src/s/msdos.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/msdos.h	Thu Jul 29 23:01:42 2010 +0000
@@ -38,17 +38,11 @@
    It sets the Lisp variable system-type.  */
 #define SYSTEM_TYPE "ms-dos"
 
-#define SYSV_SYSTEM_DIR
-
 /* subprocesses should be defined if you want to have code for
    asynchronous subprocesses (as used in M-x compile and M-x shell).
    This is the only system that needs this.  */
 #undef subprocesses
 
-/* If your system uses COFF (Common Object File Format) then define the
-   preprocessor symbol "COFF".  */
-#define COFF
-
 /* Here, on a separate page, add any special hacks needed to make
    Emacs work on this system.  For example, you might define certain
    system call names that don't exist on your system, or that do
@@ -131,7 +125,5 @@
 #define GC_SETJMP_WORKS 1
 #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
 
-#define NO_REMAP
-
 /* arch-tag: d184f860-815d-4ff4-8187-d05c0f3c37d0
    (do not change this comment) */
--- a/src/s/sol2-6.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/sol2-6.h	Thu Jul 29 23:01:42 2010 +0000
@@ -18,7 +18,7 @@
 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 "usg5-4.h"
+#include "usg5-4-common.h"
 
 #define SOLARIS2
 
@@ -34,7 +34,7 @@
 #define HAVE_LIBKSTAT
 #endif
 
-/* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
+/* This is the same definition as in usg5-4-common.h, but with sigblock/sigunblock
    rather than sighold/sigrelse, which appear to be BSD4.1 specific.
    It may also be appropriate for SVR4.x
    (x<2) but I'm not sure.   fnf@cygnus.com */
--- a/src/s/template.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/template.h	Thu Jul 29 23:01:42 2010 +0000
@@ -85,11 +85,6 @@
 
 /* #undef subprocesses */
 
-/* If your system uses COFF (Common Object File Format) then define the
-   preprocessor symbol "COFF".  */
-
-/* #define COFF */
-
 /* Define CLASH_DETECTION if you want lock files to be written
    so that Emacs can tell instantly when you try to modify
    a file that someone else has modified in his Emacs.  */
--- a/src/s/unixware.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/s/unixware.h	Thu Jul 29 23:01:42 2010 +0000
@@ -19,7 +19,7 @@
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
-#include "usg5-4.h"
+#include "usg5-4-common.h"
 
 /* fnf@cygnus.com says these exist.  */
 #define HAVE_TCATTR
@@ -28,7 +28,7 @@
 
 #undef HAVE_SYSV_SIGPAUSE
 
-/* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
+/* This is the same definition as in usg5-4-common.h, but with sigblock/sigunblock
    rather than sighold/sigrelse, which appear to be BSD4.1 specific.
    It may also be appropriate for SVR4.x
    (x<2) but I'm not sure.   fnf@cygnus.com */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/usg5-4-common.h	Thu Jul 29 23:01:42 2010 +0000
@@ -0,0 +1,116 @@
+/* Definitions file for GNU Emacs running on AT&T's System V Release 4
+
+Copyright (C) 1987, 1990, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+  2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+
+Written by James Van Artsdalen of Dell Computer Corp. james@bigtex.cactus.org.
+Subsequently improved for Dell 2.2 by Eric S. Raymond <esr@snark.thyrsus.com>.
+
+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/>.  */
+
+/* Use the SysVr3 file for at least base configuration.  */
+#define USG				/* System III, System V, etc */
+
+#define USG5
+#define USG5_4
+
+/* SYSTEM_TYPE should indicate the kind of system you are using.
+   It sets the Lisp variable system-type.  */
+#define SYSTEM_TYPE "usg-unix-v"
+
+/* Define HAVE_TERMIO if the system provides sysV-style ioctls
+   for terminal control.  */
+#define HAVE_TERMIO
+
+/* The file containing the kernel's symbol table is called /unix.  */
+#define KERNEL_FILE "/unix"
+
+/* The kernel symbol where the load average is found is named avenrun.  */
+#define LDAV_SYMBOL "avenrun"
+
+/* setjmp and longjmp can safely replace _setjmp and _longjmp,
+   but they will run slower.  */
+#define _setjmp setjmp
+#define _longjmp longjmp
+
+/* The docs for system V/386 suggest v.3 has sigpause, so let's try it.  */
+#define HAVE_SYSV_SIGPAUSE
+
+/* On USG systems signal handlers return void.  */
+#define SIGTYPE void
+
+/* Get FIONREAD from <sys/filio.h>.  Get <sys/ttold.h> to get struct tchars.
+   But get <termio.h> first to make sure ttold.h doesn't interfere.
+   And don't try to use SIGIO yet.  */
+#include <sys/wait.h>
+
+#ifdef emacs
+#include <sys/filio.h>
+#include <termio.h>
+#include <sys/ttold.h>
+#include <signal.h>
+#include <sys/stream.h>
+#include <sys/stropts.h>
+#include <sys/termios.h>
+#define BROKEN_SIGIO
+#endif
+
+/* Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
+   instead, there's a system variable _sys_nsig.  Unfortunately, we need the
+   constant to dimension an array.  So wire in the appropriate value here.  */
+#define NSIG_MINIMUM 32
+
+/* We can support this.  */
+#define CLASH_DETECTION
+
+/* Define HAVE_PTYS if the system supports pty devices.  */
+#define HAVE_PTYS
+#define HAVE_TERMIOS
+
+/* It is possible to receive SIGCHLD when there are no children
+   waiting, because a previous waitsys(2) cleaned up the carcass of child
+   without clearing the SIGCHLD pending info.  So, use a non-blocking
+   wait3 instead, which maps to waitpid(2) in SysVr4. */
+#define wait3(status, options, rusage) \
+  waitpid ((pid_t) -1, (status), (options))
+#define WRETCODE(w) (w >> 8)
+
+/* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
+   subprocesses the usual way.  But TIOCSIGNAL does work for PTYs, and
+   this is all we need.  */
+#define TIOCSIGSEND TIOCSIGNAL
+
+/* This change means that we don't loop through allocate_pty too many
+   times in the (rare) event of a failure.  */
+#define FIRST_PTY_LETTER 'z'
+
+/* This sets the name of the master side of the PTY.  */
+#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
+
+/* Push various streams modules onto a PTY channel.  */
+#define SETUP_SLAVE_PTY \
+  if (ioctl (xforkin, I_PUSH, "ptem") == -1)	\
+    fatal ("ioctl I_PUSH ptem", errno);		\
+  if (ioctl (xforkin, I_PUSH, "ldterm") == -1)	\
+    fatal ("ioctl I_PUSH ldterm", errno);	\
+  if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
+    fatal ("ioctl I_PUSH ttcompat", errno);
+
+/* This definition was suggested for next release.  So give it a try.  */
+#define HAVE_SOCKETS
+
+/* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6
+   (do not change this comment) */
--- a/src/s/usg5-4.h	Wed Jul 28 22:44:58 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/* Definitions file for GNU Emacs running on AT&T's System V Release 4
-
-Copyright (C) 1987, 1990, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-  2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
-
-Written by James Van Artsdalen of Dell Computer Corp. james@bigtex.cactus.org.
-Subsequently improved for Dell 2.2 by Eric S. Raymond <esr@snark.thyrsus.com>.
-
-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/>.  */
-
-/* Use the SysVr3 file for at least base configuration.  */
-#define USG				/* System III, System V, etc */
-
-#define USG5
-#define USG5_4
-
-/* SYSTEM_TYPE should indicate the kind of system you are using.
-   It sets the Lisp variable system-type.  */
-#define SYSTEM_TYPE "usg-unix-v"
-
-/* Define HAVE_TERMIO if the system provides sysV-style ioctls
-   for terminal control.  */
-#define HAVE_TERMIO
-
-/* Define SYSV_SYSTEM_DIR to use the V.3 getdents/readir library
-   functions. Almost, but not quite the same as the 4.2 functions.  */
-#define SYSV_SYSTEM_DIR
-
-/* The file containing the kernel's symbol table is called /unix.  */
-#define KERNEL_FILE "/unix"
-
-/* The kernel symbol where the load average is found is named avenrun.  */
-#define LDAV_SYMBOL "avenrun"
-
-/* setjmp and longjmp can safely replace _setjmp and _longjmp,
-   but they will run slower.  */
-#define _setjmp setjmp
-#define _longjmp longjmp
-
-/* The docs for system V/386 suggest v.3 has sigpause, so let's try it.  */
-#define HAVE_SYSV_SIGPAUSE
-
-/* On USG systems signal handlers return void.  */
-#define SIGTYPE void
-
-#undef COFF
-
-/* Get FIONREAD from <sys/filio.h>.  Get <sys/ttold.h> to get struct tchars.
-   But get <termio.h> first to make sure ttold.h doesn't interfere.
-   And don't try to use SIGIO yet.  */
-#include <sys/wait.h>
-
-#ifdef emacs
-#include <sys/filio.h>
-#include <termio.h>
-#include <sys/ttold.h>
-#include <signal.h>
-#include <sys/stream.h>
-#include <sys/stropts.h>
-#include <sys/termios.h>
-#define BROKEN_SIGIO
-#endif
-
-/* Some SVr4s don't define NSIG in sys/signal.h for ANSI environments;
-   instead, there's a system variable _sys_nsig.  Unfortunately, we need the
-   constant to dimension an array.  So wire in the appropriate value here.  */
-#define NSIG_MINIMUM 32
-
-/* We can support this.  */
-#define CLASH_DETECTION
-
-/* Define HAVE_PTYS if the system supports pty devices.  */
-#define HAVE_PTYS
-#define HAVE_TERMIOS
-
-/* It is possible to receive SIGCHLD when there are no children
-   waiting, because a previous waitsys(2) cleaned up the carcass of child
-   without clearing the SIGCHLD pending info.  So, use a non-blocking
-   wait3 instead, which maps to waitpid(2) in SysVr4. */
-#define wait3(status, options, rusage) \
-  waitpid ((pid_t) -1, (status), (options))
-#define WRETCODE(w) (w >> 8)
-
-/* TIOCGPGRP is broken in SysVr4, so we can't send signals to PTY
-   subprocesses the usual way.  But TIOCSIGNAL does work for PTYs, and
-   this is all we need.  */
-#define TIOCSIGSEND TIOCSIGNAL
-
-/* This change means that we don't loop through allocate_pty too many
-   times in the (rare) event of a failure.  */
-#define FIRST_PTY_LETTER 'z'
-
-/* This sets the name of the master side of the PTY.  */
-#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptmx");
-
-/* Push various streams modules onto a PTY channel.  */
-#define SETUP_SLAVE_PTY \
-  if (ioctl (xforkin, I_PUSH, "ptem") == -1)	\
-    fatal ("ioctl I_PUSH ptem", errno);		\
-  if (ioctl (xforkin, I_PUSH, "ldterm") == -1)	\
-    fatal ("ioctl I_PUSH ldterm", errno);	\
-  if (ioctl (xforkin, I_PUSH, "ttcompat") == -1) \
-    fatal ("ioctl I_PUSH ttcompat", errno);
-
-/* This definition was suggested for next release.  So give it a try.  */
-#define HAVE_SOCKETS
-
-/* arch-tag: 1a0ed909-5faa-434b-b7c3-9d86c63d53a6
-   (do not change this comment) */
--- a/src/sysdep.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/sysdep.c	Thu Jul 29 23:01:42 2010 +0000
@@ -2447,7 +2447,7 @@
 
 /* Directory routines for systems that don't have them. */
 
-#ifdef SYSV_SYSTEM_DIR
+#ifdef HAVE_DIRENT_H
 
 #include <dirent.h>
 
@@ -2464,7 +2464,7 @@
   return rtnval;
 }
 #endif /* not HAVE_CLOSEDIR */
-#endif /* SYSV_SYSTEM_DIR */
+#endif /* HAVE_DIRENT_H */
 
 
 int
--- a/src/systime.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/systime.h	Thu Jul 29 23:01:42 2010 +0000
@@ -147,6 +147,9 @@
 #ifdef GCPRO1
 /* defined in dired.c */
 extern Lisp_Object make_time (time_t);
+
+/* defined in editfns.c*/
+extern int lisp_time_argument (Lisp_Object, time_t *, int *);
 #endif
 
 /* Compare times T1 and T2.  Value is 0 if T1 and T2 are the same.
--- a/src/unexec.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/unexec.c	Thu Jul 29 23:01:42 2010 +0000
@@ -48,8 +48,6 @@
  *
  * Specifying zero for data_start means the boundary between text and data
  * should not be the same as when the program was loaded.
- * If NO_REMAP is defined, the argument data_start is ignored and the
- * segment boundaries are never changed.
  *
  * Bss_start indicates how much of the data segment is to be saved in the
  * a.out file and restored when the program is executed.  It gives the lowest
@@ -69,56 +67,6 @@
  * of Dell Computer Corporation.  james@bigtex.cactus.org.
  */
 
-/* There are several compilation parameters affecting unexec:
-
-* COFF
-
-Define this if your system uses COFF for executables.
-
-* NO_REMAP
-
-Define this if you do not want to try to save Emacs's pure data areas
-as part of the text segment.
-
-Saving them as text is good because it allows users to share more.
-
-However, on machines that locate the text area far from the data area,
-the boundary cannot feasibly be moved.  Such machines require
-NO_REMAP.
-
-Also, remapping can cause trouble with the built-in startup routine
-/lib/crt0.o, which defines `environ' as an initialized variable.
-Dumping `environ' as pure does not work!  So, to use remapping,
-you must write a startup routine for your machine in Emacs's crt0.c.
-If NO_REMAP is defined, Emacs uses the system's crt0.o.
-
-* SECTION_ALIGNMENT
-
-Some machines that use COFF executables require that each section
-start on a certain boundary *in the COFF file*.  Such machines should
-define SECTION_ALIGNMENT to a mask of the low-order bits that must be
-zero on such a boundary.  This mask is used to control padding between
-segments in the COFF file.
-
-If SECTION_ALIGNMENT is not defined, the segments are written
-consecutively with no attempt at alignment.  This is right for
-unmodified system V.
-
-* SEGMENT_MASK
-
-Some machines require that the beginnings and ends of segments
-*in core* be on certain boundaries.  For most machines, a page
-boundary is sufficient.  That is the default.  When a larger
-boundary is needed, define SEGMENT_MASK to a mask of
-the bits that must be zero on such a boundary.
-
-* ADJUST_EXEC_HEADER
-
-This macro can be used to generate statements to adjust or
-initialize nonstandard fields in the file header
-
-*/
-
 #ifndef emacs
 #define PERROR(arg) perror (arg); return -1
 #else
@@ -264,19 +212,9 @@
   pagemask = getpagesize () - 1;
 
   /* Adjust text/data boundary. */
-#ifdef NO_REMAP
   data_start = (int) start_of_data ();
-#else /* not NO_REMAP */
-  if (!data_start)
-    data_start = (int) start_of_data ();
-#endif /* not NO_REMAP */
   data_start = ADDR_CORRECT (data_start);
-
-#ifdef SEGMENT_MASK
-  data_start = data_start & ~SEGMENT_MASK; /* (Down) to segment boundary. */
-#else
   data_start = data_start & ~pagemask; /* (Down) to page boundary. */
-#endif
 
   bss_end = ADDR_CORRECT (sbrk (0)) + pagemask;
   bss_end &= ~ pagemask;
@@ -374,42 +312,20 @@
      to correspond to what we want to dump.  */
 
   f_hdr.f_flags |= (F_RELFLG | F_EXEC);
-#ifndef NO_REMAP
   f_ohdr.text_start = (long) start_of_text ();
   f_ohdr.tsize = data_start - f_ohdr.text_start;
   f_ohdr.data_start = data_start;
-#endif /* NO_REMAP */
   f_ohdr.dsize = bss_start - f_ohdr.data_start;
   f_ohdr.bsize = bss_end - bss_start;
-  /* On some machines, the old values are right.
-     ??? Maybe on all machines with NO_REMAP.  */
   f_thdr.s_size = f_ohdr.tsize;
   f_thdr.s_scnptr = sizeof (f_hdr) + sizeof (f_ohdr);
   f_thdr.s_scnptr += (f_hdr.f_nscns) * (sizeof (f_thdr));
   lnnoptr = f_thdr.s_lnnoptr;
-#ifdef SECTION_ALIGNMENT
-  /* Some systems require special alignment
-     of the sections in the file itself.  */
-  f_thdr.s_scnptr
-    = (f_thdr.s_scnptr + SECTION_ALIGNMENT) & ~SECTION_ALIGNMENT;
-#endif /* SECTION_ALIGNMENT */
   text_scnptr = f_thdr.s_scnptr;
   f_dhdr.s_paddr = f_ohdr.data_start;
   f_dhdr.s_vaddr = f_ohdr.data_start;
   f_dhdr.s_size = f_ohdr.dsize;
   f_dhdr.s_scnptr = f_thdr.s_scnptr + f_thdr.s_size;
-#ifdef SECTION_ALIGNMENT
-  /* Some systems require special alignment
-     of the sections in the file itself.  */
-  f_dhdr.s_scnptr
-    = (f_dhdr.s_scnptr + SECTION_ALIGNMENT) & ~SECTION_ALIGNMENT;
-#endif /* SECTION_ALIGNMENT */
-#ifdef DATA_SECTION_ALIGNMENT
-  /* Some systems require special alignment
-     of the data section only.  */
-  f_dhdr.s_scnptr
-    = (f_dhdr.s_scnptr + DATA_SECTION_ALIGNMENT) & ~DATA_SECTION_ALIGNMENT;
-#endif /* DATA_SECTION_ALIGNMENT */
   data_scnptr = f_dhdr.s_scnptr;
   f_bhdr.s_paddr = f_ohdr.data_start + f_ohdr.dsize;
   f_bhdr.s_vaddr = f_ohdr.data_start + f_ohdr.dsize;
@@ -427,10 +343,6 @@
       f_thdr.s_lnnoptr += bias;
     }
 
-#ifdef ADJUST_EXEC_HEADER
-  ADJUST_EXEC_HEADER;
-#endif /* ADJUST_EXEC_HEADER */
-
   if (write (new, &f_hdr, sizeof (f_hdr)) != sizeof (f_hdr))
     {
       PERROR (new_name);
--- a/src/vm-limit.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/vm-limit.c	Thu Jul 29 23:01:42 2010 +0000
@@ -25,10 +25,6 @@
 
 #include "mem-limits.h"
 
-#ifdef HAVE_GETRLIMIT
-#include <sys/resource.h>
-#endif
-
 /*
   Level number of warnings already issued.
   0 -- no warnings issued.
@@ -37,8 +33,9 @@
   3 -- 95% warning issued; keep warning frequently.
 */
 enum warnlevel { not_warned, warned_75, warned_85, warned_95 };
+static enum warnlevel warnlevel;
 
-static enum warnlevel warnlevel;
+typedef POINTER_TYPE *POINTER;
 
 /* Function to call to issue a warning;
    0 means don't issue them.  */
@@ -100,7 +97,7 @@
 }
 
 #else
-#if !defined (BSD4_2) && !defined (__osf__) && !defined (CYGWIN)
+#if !defined (BSD4_2) && !defined (CYGWIN)
 
 #ifdef MSDOS
 void
@@ -148,7 +145,7 @@
 }
 #endif /* not MSDOS */
 
-#else /* BSD4_2 */
+#else /* BSD4_2 || CYGWIN */
 
 static void
 get_lim_data (void)
@@ -260,7 +257,7 @@
  *
  */
 
-POINTER
+char *
 start_of_data (void)
 {
 #ifdef BSD_SYSTEM
--- a/src/w32select.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/w32select.c	Thu Jul 29 23:01:42 2010 +0000
@@ -398,7 +398,6 @@
      with global variables and calling strange looking functions.  Is
      this really the right way to run Lisp callbacks?  */
 
-  extern int waiting_for_input;
   int owfi;
 
   BLOCK_INPUT;
--- a/src/window.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/window.c	Thu Jul 29 23:01:42 2010 +0000
@@ -645,13 +645,18 @@
 #ifdef FRAME_MENUBAR_HEIGHT
   *add_y += FRAME_MENUBAR_HEIGHT (f);
 #endif
-#ifdef FRAME_TOOLBAR_HEIGHT
+#ifdef FRAME_TOOLBAR_TOP_HEIGHT
+  *add_y += FRAME_TOOLBAR_TOP_HEIGHT (f);
+#elif FRAME_TOOLBAR_HEIGHT
   *add_y += FRAME_TOOLBAR_HEIGHT (f);
 #endif
 #ifdef FRAME_NS_TITLEBAR_HEIGHT
   *add_y += FRAME_NS_TITLEBAR_HEIGHT (f);
 #endif
   *add_x = f->left_pos;
+#ifdef FRAME_TOOLBAR_LEFT_WIDTH
+  *add_x += FRAME_TOOLBAR_LEFT_WIDTH (f);
+#endif
 }
 
 DEFUN ("window-absolute-pixel-edges", Fwindow_absolute_pixel_edges,
--- a/src/xdisp.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xdisp.c	Thu Jul 29 23:01:42 2010 +0000
@@ -276,15 +276,11 @@
 extern int interrupt_input;
 extern int command_loop_level;
 
-extern int minibuffer_auto_raise;
 extern Lisp_Object Vminibuffer_list;
 
 extern Lisp_Object Qface;
 extern Lisp_Object Qmode_line, Qmode_line_inactive, Qheader_line;
 
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
-extern Lisp_Object Qmenu_item;
 extern Lisp_Object Qwhen;
 extern Lisp_Object Qhelp_echo;
 extern Lisp_Object Qbefore_string, Qafter_string;
@@ -379,7 +375,6 @@
 /* Names of text properties relevant for redisplay.  */
 
 Lisp_Object Qdisplay;
-extern Lisp_Object Qface, Qinvisible, Qwidth;
 
 /* Symbols used in text property values.  */
 
@@ -3689,7 +3684,6 @@
 
   if (STRINGP (it->string))
     {
-      extern Lisp_Object Qinvisible;
       Lisp_Object prop, end_charpos, limit, charpos;
 
       /* Get the value of the invisible text property at the
@@ -4873,7 +4867,6 @@
 static void
 load_overlay_strings (struct it *it, int charpos)
 {
-  extern Lisp_Object Qwindow, Qpriority;
   Lisp_Object overlay, window, str, invisible;
   struct Lisp_Overlay *ov;
   int start, end;
@@ -10585,7 +10578,6 @@
       if ((nlines = tool_bar_lines_needed (f, &f->n_tool_bar_rows),
 	   nlines != WINDOW_TOTAL_LINES (w)))
 	{
-	  extern Lisp_Object Qtool_bar_lines;
 	  Lisp_Object frame;
 	  int old_height = WINDOW_TOTAL_LINES (w);
 
@@ -10677,7 +10669,6 @@
 	 frame parameter.  */
       if (change_height_p)
 	{
-	  extern Lisp_Object Qtool_bar_lines;
 	  Lisp_Object frame;
 	  int old_height = WINDOW_TOTAL_LINES (w);
 	  int nrows;
@@ -14485,7 +14476,6 @@
 
           if (redisplay_tool_bar_p && redisplay_tool_bar (f))
 	    {
-	      extern int ignore_mouse_drag_p;
 	      ignore_mouse_drag_p = 1;
 	    }
         }
--- a/src/xfaces.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xfaces.c	Thu Jul 29 23:01:42 2010 +0000
@@ -3666,8 +3666,6 @@
 	  if (! NILP (xlfd))
 	    {
 #if defined HAVE_X_I18N
-	      extern char *xic_create_fontsetname
-                (char *base_fontname, Bool motif);
 	      char *fontsetname = xic_create_fontsetname (SDATA (xlfd), motif);
 #else
 	      char *fontsetname = (char *) SDATA (xlfd);
--- a/src/xfns.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xfns.c	Thu Jul 29 23:01:42 2010 +0000
@@ -715,6 +715,22 @@
   f->output_data.x->wait_for_wm = !NILP (new_value);
 }
 
+static void
+x_set_tool_bar_position (struct frame *f,
+                         Lisp_Object new_value,
+                         Lisp_Object old_value)
+{
+  if (! EQ (new_value, Qleft) && ! EQ (new_value, Qright)
+      && ! EQ (new_value, Qbottom) && ! EQ (new_value, Qtop))
+    return;
+  if (EQ (new_value, old_value)) return;
+
+#ifdef USE_GTK
+  if (xg_change_toolbar_position (f, new_value)) 
+    f->tool_bar_position = new_value;
+#endif
+}
+
 #ifdef USE_GTK
 
 /* Set icon from FILE for frame F.  By using GTK functions the icon
@@ -1901,12 +1917,12 @@
 
 /* Create an X fontset on frame F with base font name BASE_FONTNAME.  */
 
-char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
+const char xic_defaut_fontset[] = "-*-*-*-r-normal--14-*-*-*-*-*-*-*";
 
 /* Create an Xt fontset spec from the name of a base font.
    If `motif' is True use the Motif syntax.  */
 char *
-xic_create_fontsetname (char *base_fontname, int motif)
+xic_create_fontsetname (const char *base_fontname, int motif)
 {
   const char *sep = motif ? ";" : ",";
   char *fontsetname;
@@ -1926,7 +1942,7 @@
 	 - the base font.
 	 - the base font where the charset spec is replaced by -*-*.
 	 - the same but with the family also replaced with -*-*-.  */
-      char *p = base_fontname;
+      const char *p = base_fontname;
       int i;
 
       for (i = 0; *p; p++)
@@ -1945,13 +1961,13 @@
       else
 	{
 	  int len;
-	  char *p1 = NULL, *p2 = NULL, *p3 = NULL;
+	  const char *p1 = NULL, *p2 = NULL, *p3 = NULL;
 	  char *font_allcs = NULL;
 	  char *font_allfamilies = NULL;
 	  char *font_all = NULL;
-	  char *allcs = "*-*-*-*-*-*-*";
-	  char *allfamilies = "-*-*-";
-	  char *all = "*-*-*-*-";
+	  const char *allcs = "*-*-*-*-*-*-*";
+	  const char *allfamilies = "-*-*-";
+	  const char *all = "*-*-*-*-";
 	  char *base;
 
 	  for (i = 0, p = base_fontname; i < 8; p++)
@@ -2080,7 +2096,7 @@
       char **missing_list;
       int missing_count;
       char *def_string;
-      char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*";
+      const char *xlfd_format = "-*-*-medium-r-normal--%d-*-*-*-*-*";
 
       sprintf (buf, xlfd_format, pixel_size);
       missing_list = NULL;
@@ -2344,7 +2360,7 @@
   area.x = FRAME_PIXEL_WIDTH (f) - area.width - FRAME_INTERNAL_BORDER_WIDTH (f);
   area.y = (FRAME_PIXEL_HEIGHT (f) - area.height
 	    - FRAME_MENUBAR_HEIGHT (f)
-	    - FRAME_TOOLBAR_HEIGHT (f)
+	    - FRAME_TOOLBAR_TOP_HEIGHT (f)
             - FRAME_INTERNAL_BORDER_WIDTH (f));
   XFree (needed);
 
@@ -5239,9 +5255,6 @@
   (void)
 {
 #ifdef USE_GTK
-  extern int use_dialog_box;
-  extern int use_file_dialog;
-
   if (use_dialog_box
       && use_file_dialog
       && have_menus_p ()
@@ -5312,7 +5325,6 @@
   Widget dialog, text, help;
   Arg al[10];
   int ac = 0;
-  extern XtAppContext Xt_app_con;
   XmString dir_xmstring, pattern_xmstring;
   int count = SPECPDL_INDEX ();
   struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6;
@@ -5751,6 +5763,7 @@
   x_set_font_backend,
   x_set_alpha,
   x_set_sticky,
+  x_set_tool_bar_position,
 };
 
 void
@@ -5901,6 +5914,7 @@
      accepts --with-x-toolkit=gtk.  */
   Fprovide (intern_c_string ("x-toolkit"), Qnil);
   Fprovide (intern_c_string ("gtk"), Qnil);
+  Fprovide (intern_c_string ("move-toolbar"), Qnil);
 
   DEFVAR_LISP ("gtk-version-string", &Vgtk_version_string,
                doc: /* Version info for GTK+.  */);
--- a/src/xmenu.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xmenu.c	Thu Jul 29 23:01:42 2010 +0000
@@ -113,9 +113,6 @@
 
 extern Lisp_Object QCtoggle, QCradio;
 
-extern Lisp_Object Voverriding_local_map;
-extern Lisp_Object Voverriding_local_map_menu_flag;
-
 extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
 
 extern Lisp_Object Qmenu_bar_update_hook;
@@ -2209,7 +2206,6 @@
 static void
 menu_help_callback (char *help_string, int pane, int item)
 {
-  extern Lisp_Object Qmenu_item;
   Lisp_Object *first_item;
   Lisp_Object pane_name;
   Lisp_Object menu_object;
--- a/src/xrdb.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xrdb.c	Thu Jul 29 23:01:42 2010 +0000
@@ -508,7 +508,6 @@
 
 #ifdef USE_MOTIF
   const char *courier = "-*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1";
-  extern Lisp_Object Vdouble_click_time;
 #endif
 
   x_rm_string = XrmStringToQuark (XrmStringType);
--- a/src/xsmfns.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xsmfns.c	Thu Jul 29 23:01:42 2010 +0000
@@ -45,10 +45,6 @@
 /* Avoid "differ in sign" warnings */
 #define SSDATA(x)  ((char *) SDATA (x))
 
-/* The user login name.  */
-
-extern Lisp_Object Vuser_login_name;
-
 /* This is the event used when SAVE_SESSION_EVENT occurs.  */
 
 static struct input_event emacs_event;
--- a/src/xterm.c	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xterm.c	Thu Jul 29 23:01:42 2010 +0000
@@ -8610,7 +8610,8 @@
 
   compute_fringe_widths (f, 0);
 
-  pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols);
+  pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols)
+    + FRAME_TOOLBAR_WIDTH (f);
   pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows)
     + FRAME_MENUBAR_HEIGHT (f) + FRAME_TOOLBAR_HEIGHT (f);
 
@@ -9010,7 +9011,6 @@
 	    /* It could be confusing if a real alarm arrives while
 	       processing the fake one.  Turn it off and let the
 	       handler reset it.  */
-            extern void poll_for_input_1 (void);
 	    int old_poll_suppress_count = poll_suppress_count;
 	    poll_suppress_count = 1;
 	    poll_for_input_1 ();
@@ -10139,8 +10139,6 @@
   dpyinfo->connection = connection;
 
   {
-    extern int gray_bitmap_width, gray_bitmap_height;
-    extern char *gray_bitmap_bits;
     dpyinfo->gray
       = XCreatePixmapFromBitmapData (dpyinfo->display, dpyinfo->root_window,
 				     gray_bitmap_bits,
--- a/src/xterm.h	Wed Jul 28 22:44:58 2010 +0000
+++ b/src/xterm.h	Thu Jul 29 23:01:42 2010 +0000
@@ -433,9 +433,15 @@
      if the menubar is turned off.  */
   int menubar_height;
 
-  /* Height of tool bar widget, in pixels.
-     Zero if not using an external tool bar.  */
-  int toolbar_height;
+  /* Height of tool bar widget, in pixels.  top_height is used if tool bar
+     at top, bottom_height if tool bar is at the bottom.
+     Zero if not using an external tool bar or if tool bar is vertical.  */
+  int toolbar_top_height, toolbar_bottom_height;
+
+  /* Width of tool bar widget, in pixels.  left_width is used if tool bar
+     at left, right_width if tool bar is at the right.
+     Zero if not using an external tool bar or if tool bar is horizontal.  */
+  int toolbar_left_width, toolbar_right_width;
 
   /* The tiled border used when the mouse is out of the frame.  */
   Pixmap border_tile;
@@ -480,6 +486,8 @@
   GtkWidget *edit_widget;
   /* The widget used for laying out widgets vertically.  */
   GtkWidget *vbox_widget;
+  /* The widget used for laying out widgets horizontally.  */
+  GtkWidget *hbox_widget;
   /* The menubar in this frame.  */
   GtkWidget *menubar_widget;
   /* The tool bar in this frame  */
@@ -488,6 +496,8 @@
   GtkWidget *handlebox_widget;
   /* Non-zero if the tool bar is detached.  */
   int toolbar_detached;
+  /* Non-zero if tool bar is packed into the hbox widget (i.e. vertical).  */
+  int toolbar_in_hbox;
 
   /* The last size hints set.  */
   GdkGeometry size_hints;
@@ -700,7 +710,15 @@
 #define FRAME_FONT(f) ((f)->output_data.x->font)
 #define FRAME_FONTSET(f) ((f)->output_data.x->fontset)
 #define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height)
-#define FRAME_TOOLBAR_HEIGHT(f) ((f)->output_data.x->toolbar_height)
+#define FRAME_TOOLBAR_TOP_HEIGHT(f) ((f)->output_data.x->toolbar_top_height)
+#define FRAME_TOOLBAR_BOTTOM_HEIGHT(f) \
+  ((f)->output_data.x->toolbar_bottom_height)
+#define FRAME_TOOLBAR_HEIGHT(f) \
+  (FRAME_TOOLBAR_TOP_HEIGHT (f) + FRAME_TOOLBAR_BOTTOM_HEIGHT (f))
+#define FRAME_TOOLBAR_LEFT_WIDTH(f) ((f)->output_data.x->toolbar_left_width)
+#define FRAME_TOOLBAR_RIGHT_WIDTH(f) ((f)->output_data.x->toolbar_right_width)
+#define FRAME_TOOLBAR_WIDTH(f) \
+  (FRAME_TOOLBAR_LEFT_WIDTH (f) + FRAME_TOOLBAR_RIGHT_WIDTH (f))
 #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.x->baseline_offset)
 
 /* This gives the x_display_info structure for the display F is on.  */
@@ -933,6 +951,8 @@
 EXFUN (Fx_display_color_p, 1);
 EXFUN (Fx_display_grayscale_p, 1);
 extern void x_free_gcs (struct frame *);
+extern int gray_bitmap_width, gray_bitmap_height;
+extern char *gray_bitmap_bits;
 
 /* From xrdb.c.  */
 
@@ -1053,6 +1073,7 @@
 extern int x_defined_color (struct frame *, const char *, XColor *, int);
 #ifdef HAVE_X_I18N
 extern void free_frame_xic (struct frame *);
+extern char * xic_create_fontsetname (const char *base_fontname, int motif);
 #endif
 extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object);